Фундаментальные знания для программиста?

На данный момент занимаюсь фронтендом, постепенно углубляясь в бэкенд. Со временем хочется перейти к python и заниматься более интересными вещами. Для этого, как я понимаю, нужны более фундаментальные знания, чем те, которыми я обладаю. Что 'musthave' для программиста? Какие категории знать обязательно? Из каких источников можно подчерпнуть?
  • Вопрос задан
  • 3075 просмотров
Пригласить эксперта
Ответы на вопрос 3
@amambaru
Всякие глубоко теоритические математики да теории алгоритмов, да сортировки - штука полезная для тренировки мозга, но не полезная на практике.

Не знания теоретические важны.
А практические знания, практический опыт.

Каждодневной основной для программиста является его собственная практика и т.н. "лучшие практики" и т.н. "паттерны" (которые не стоит учить, они сами придут, но почитать про них все же стоит).

Лучший способ:
Пойти работать в крупную компанию, где более опытные коллеги.

Самостоятельно - худший способ, но можно:
Читать актуальные статьи по твоим технологиям. Читать актуальные статьи по технологиям в смежных с твоей областям.
Ответ написан
Комментировать
AlexanderShapoval
@AlexanderShapoval
PHP maker
Обычно в университете дают фундаментальные знания. Да и для разных специалистов они нужны разные.

Разработчики игр должны знать физику, веб-разработчики - уметь проектировать базы данных.

За python сказать не могу - но вот за php вполне. Первое что нужно сделать - определить последовательность цикла разработки, для веб разработки, из личного опыта, выделяю такие этапы:
  1. Составляем ТЗ
  2. Создаем дизайн
  3. Проектируем БД
  4. Пишем логику сайта
  5. Отладка

Нарушение последовательности или пропуск пункта - ведет к необратимому краху. Тут еще важно не быть перфекционистом, не нужно стараться впихнуть все функции в первый релиз, в этом случае можно даже не начинать писать ТЗ, ничего не выйдет, также как и ваша программа никогда не выйдет. Нужно ограничиться базовым функционалом.

Относительно веба: нужно хоть минимально работать с git, применять различные сборщики которые экономят тонну времени (grunt, gulp), использовать пакетные менеджеры (composer, npm; в случае python это pip), использовать фреймворки и CMS (не изобретать велосипеды), уметь изобретать велосипеды (для мелких одноразовых задач).

Поймите для каких целей вам нужен python и начните изучать все стороны вопроса. Белые пятна увидите сами.
Ответ написан
Stalker_RED
@Stalker_RED
Помимо математики и упомянутых уже алгоритмов почитайте SICP и что нибудь о шаблонах проектирования (паттерны).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы