tgoop.com/metaprogramming/18
Last Update:
Часто считается, что (любой) программист должен знать, для начала:
— обязательно язык Си (почему именно Си, обычно уточняют неубедительно)
— матан на уровне второго курса технического ВУЗа
— алгоритмы и структуры данных на уровне книги Кернигана и Ритчи
Это вроде как даёт "прочную базу". До идеи "прочной базы" потенциальный бросивший учиться программированию заинтересованный студент доходит не своим умом, ему это наглядно объясняют либо старшие коллеги, либо вопросы к собеседованиям FAANG (устоявшаяся аббревиатура по названию крупнейших IT-компаний: Facebook, Apple, Amazon, Netflix, Google).
Старшие коллеги, конечно, хотят применить весь багаж полученных за все пять или шесть тяжелых учебных лет знаний хотя бы в качестве средства для интеллектуального снобизма и эксгибиционизма. Ну а в FAANG такая очередь желающих, что лучше всего было бы просто отбирать по лотерее каждого сотого, но, видимо, считается что это будет выглядеть совсем неприлично, поэтому придумывают иные испытания, не связанные с реальной производительностью после найма.
В целом, конечно, и жалко человека, застрявшего в вечных "поисках базы"; с другой стороны: падающего подтолкни. Поэтому добавим к списку выше следующее:
— знание системы команд x86 и языка ассемблера
— знание основ дизайна схем на языках высокого уровня (Verilog и т. п.) и основных архитектур процессоров
— знание основ API целевых операционных систем (Windows, Linux, ...)
— знание принципов разработки языков программирования (парсеры, лексеры, грамматики, и т. д.)
— знание многоуровневой модели сетевых протоколов и основных протоколов стека TCP/IP
...Но на самом деле по-хорошему-то и этого мало. Транзисторы-то маленькие, это сверху кажется, что они работают как простой цифровой вентиль, а на самом деле это целый мир. Поэтому как минимум ещё надо знать:
— работу полупроводников приборов: основные принципы и мат. модели
— уравнения электродинамики их приложение к полупроводниковым приборам
Но на самом деле электроны состоят из кварков, так что неплохо бы ещё и квантовую физику изучить. А кварки из суперструн, так что и физики суперструн стоит пройти базовый курс. А чтобы уложить это всё в голове — заполировать историей и философией науки. Ну и Маркса в довесок — не знаю, честно говоря, зачем, но его любят цитировать последнее время, наверное столь же полезен для прикладного специалиста, как и всё вышеперечисленное.
#programming #education
BY Metaprogramming
Share with your friend now:
tgoop.com/metaprogramming/18