Фундаментальные знания
И снова пост из разряда "размышлений на тему". В любой области есть такая проблема, что знания могут стать не актуальны и невостребованными рынком. Технологии умирают, что-то устаревает и т.п. Юнити пока это конечно не грозит, но думаю что когда кто-то начинал изучать Action Script 3 и подумать не мог, что его убьёт HTML5 (но это не значит, что за убийства флеша можно простить! Помним! Скорбим! Не простим!) Поэтому работа в IT это путь постоянного обучения. При этом очень важно актуализировать знания. И где-то тут по тексту мне уже кажется должна быть реклама какого-то курса, но нет) Да и я не хочу пока в этом канале рекламу делать XD
Есть одна абсолютно не устаревающая вещь. Фундаментальные знания. Почему любой Senior разработчик в среднем легко сможет перескочить с технологии Х, на технологию Y? Будет плеваться конечно, но перескочит) Потому что в программировании суть везде одна, меняется чуть-чуть синтаксис, где-то инструменты удобнее (привет джавистам от .Net разрабов), где-то чуть сложнее, так как придётся вникнуть в другую парадигму. Но всё программирование по сути сводится к простой фразе. Программирование — это превращение одного представления данных в другое представление данных посредством серии обработок :) И так по сути можно описать любую программу. Поэтому фундаментальные вопросы архитектуры, простоты, чистоты кода не меняются в зависимости от технологии. И лучше учить их, чем конкретику фреймворков. Конкретику и нюансы фреймворка надо знать только в том фреймворке, в котором ты работаешь. Я просто встречал ребят которые знают миллиард фреймворков, но по сути про программирование не знают ничего (а тут стоит передать привет части фронтендеров)
Чем же прикольны вузовские знания? Многие говорят, что они устарели, что то что проходят в вузах уже не нужно в реальности, так как технологии обновляются быстрее, чем университетские программы. И это так) Но лишь наполовину. Если брать конкретные прикладные технологии, конкретные языки и т.п. в вузе иногда преподаётся что-то древнее. У когда я учился у нас преподавали: C++ — который в целом ой как не скоро можно будет назвать "устаревшим", но у нас преподавали какой-то древний стандарт), Ассемблер — который полезно знать для понимания работы ПК и больше ни за чем и собственно Action Script 3. Но помимо прочего на парах рассказывали про ООП (который не меняется уже хз сколько лет концептуально), про паттерны, про классы, объекты и т.п. И да, конечно я понимаю что можно было в курсе сделать лучше, спустя 10 лет программирования, но оглядываясь назад по той же теории баз данных и прочим вещам нам давали неплохую фундаменталку. Так как ну модель OSI и теорема CAP так же особо сильно не меняются со временем)
И моё любимое фундаментальное знание — это математика. Понимание теории множеств, дискретной математики — дают буст в целом в любой области программирования. Теория функции комплексного переменного и матан — больше про игровую индустрию и математическое моделирование. Линал — очень полезен при работе с графикой. И это те знания которые не устаревают вообще, так как они не меняются и имеют огромную широту применения. Даже если надоест программирование, есть очень много применений математического моделирования и той же комбинаторики :)
Практические навыки в конкретной технологии тоже нужны. Но чтобы не переживать что "знания будут не актуальны" и "устареют" лучше делать максимальный упор на фундаментальные знания. Тогда смена областей, языков и т.п. будет происходить буквально по щелчку пальцев и прочтению одного мануала. Там уже будет как в анекдоте :)
Стоят студенты и курят. И у них спрашивают:
- Hу как, мужики, за сколько сможете китайский выучить?
(Студенты) - А методичка есть?
- Да, есть.
(Студенты) - Hу сейчас докурим и сдадим!