>> | №2632 Файл: 1249424069855.jpg -(42кб, 420x446) Показана уменьшенная копия, оригинал по клику. Предлагаю составить краткую программу из того, что стоит изучать сферическому программисту в вакууме на текущий момент. Это не к тому, что полезно знать много разных умных слов, но хотя бы если человек обзорно всё это шарит, то шансы пройти собеседование, на котором разговариваешь с технически просвещённым человеком, а не тупым манагером, сильно повышаются. Кроме того полезно поработать над проектами из разных сфер, чтобы наполнить резюме, если ебашить в одной и той же сфере всё время, то от этого начинает тошнить. Для прикола в дальнейшем можно разбить по "курсам" или "специализаям", но т.к. у нас этому систематически обучать не реально, то пусть будет просто сборная солянка: - тьюринг-полнота, теория сложности
- архитектура компьютеров (фон неймановская и т.п.), краткий экскурс в историю
- архитектура процессоров (RISC, CISC), распространённые архитектуры и их особенности (развитие x86 для асмоёбствующих, полезно знать как мы пришли к такому плачевному состоянию). вкратце полезно знать про существование всяких DSP, про ПЛИС
- интернеты, TCP/IP стек, модели, важные протоколы, история и перспективы развития
- лицензирование: EULA, FOSS, конкретно permissive и restrictive лицензии, какие из них с камими можно мешать, софтварные патенты, юридическая сторона дела
- project management: XP, agile и прочая лабудень вкратце, основы работы с wiki, ticket system's (trac и прочая), системы контроля версий (распределённые и централизированные), взаимодействие в проекте (мейл-листы, блоги, рассмотреть на примерах разработку больших проектов: ядро луникса, корпоративная разработка on the contrary), планирование, диаграммы ганта и проч
- структуры данных и алгоритмы: графы, деревья, взвешенные графы и деревья, алгоритмы обхода, поиска, хеширование (с последнего пункта можно плавно перетекать на основы криптографии), мемоизация, рекурсия. space and time complexity
- парсеры, трансляторы: грамматики, BNF, драконовые книжки (достаточно первых разделов последнего издания), книжка SLPJ про graph reduction
- теория типов, обзор существующих типизаций: duck typing, static, dynamic, зависимые типы, виды полиморфизма (ad-hoc, parametric), type classes, type inference
- базы данных, реляционные базы и нормальные формы, SQL, ACID
- виртуальные машины, JIT
- матлогика, булева алгебра, логическое программирование, пролог, алгоритм унификации
- математика и CS россыпью: теоркат, дискретка была упомянута выше, curry-howard isomorphism, detonational и operational semantics
- императивщина, стеки, работа с памятью, кешем, распараллеливание, software transactional memory, дедлоки, шедулинг
- системное программирование: ядра, микроядра, файловые системы
- веб-программирование, понятие о model-view-controller, CGI, HTTP, AJAX, javascript
- графика: рейтрейсинг, шейдеры, GPGPU, opengl/directx, опять линал (хорошо читать что-то типа http://blog.gamedeff.com/ , чтобы обзорно разобраться)
- AI, strong/weak, fuzzy matching, нейросетки, матстатистика
это то, что лежит на поверхности, насколько бы разнообразным весь этот набор не казался, если шаришь в одной сфере, то легче въехать в другую |