Как поднять свой уровень программирования?

Как поднять свой уровень программирования и уйти от рутинного клепания CRUD-ов?

Читая хабр, ощущаю некоторую зависть по отношению к людям, которые занимаются действительно сложными и интересными задачами. Нейронные сети, анализ данных, хитроумное кеширование и алгоритмы.

Как люди к этому приходят?
Вузы, как правило, оторваны от реалий в ИТ. Редкий работодатель предлагает что-то интереснее обработки форм и простецкого (и, не спорю, достаточно эффективного) кеширования.

Какую стратегию вы бы посоветовали, чтобы уйти из современного, но однообразного программирования, в разработку, граничащую с последними достижениями науки?
Вопрос немного общий, просто выскажите свое мнение.

О себе: типичный середнячок в программировании (4 года в ИТ. PHP, node.js, Scala).
  • Вопрос задан
  • 6234 просмотра
Пригласить эксперта
Ответы на вопрос 8
@pavelsh
От себя. Взять открытый проект с продвинутыми технологиями и начать в нем что-то делать. Опыт получится, а там может что и с работой прояснится.
Ответ написан
Комментировать
@egorinsk
Как поменять образ деятельности:

1) Устроиться на работу в компанию, которая этим занимается, может вам разрешат хотя бы заваривать чай и разносить печеньки тамошним разрабочикам
2) Сделать свою успешную софтокомпанию, добиться известности и получить заказ на разработку какой-нибудь сложной системы.
3) Просто придумать какйю-то идею и пытаться ее реализовать.

«Хитроумное кеширование» — этого нет, кеширование не более чем костыль.

«Алгоритмы» — если вам интересны алгоритмы, решайте олимпиадные задачи, например на codeforces и читайте статьи по способы сортировки, поиска пути на графе, вроде на тему алгоритмов есть какой-то западный видеокурс по Computer Science.

Товарищу, который написал про геймдев, не верьте — российский «геймдев» не имеет ничего общего с компаниями врде Valve/id Software и занимается копипастингом зомбиферм, натягиванием моделей на купленные движки, убогоиграми для айфонов и прочей иногда впрочем хорошо оплачиваемой ерундой.

Про фриланс — тоже не верьте, там обычно задачи уровня «I need a plugin for my ecommerce site».

По мне, так реально сложные и важные задачи — это распознавание образов и ориентация в пространстве (не на уровне OpenCV и статей с хабра, а на уровне как их распознают живые сущеста), распознавание речи и музыки, автопилот для автомобиля, автоматизация добычи природных ресурсов и сервисы для городской инфраструктуры (вроде управления светофорами или мониторинг проблем со светом).
Ответ написан
TheHorse
@TheHorse
Варианты:
1. Пойти работать в НИИ. Во многие возьмут без проблем, и будут учить. (есть основания полагать что так оно и будет)
2. Учить математику, С++ и идти в GameDev. Там будет очень весело от алгоритмов.
3. Уйти в фриланс и выбирать задачи поинтересней.

В любом случае нужно будет учить математику, алгоритмы, что-то более низкоуровневое.
Ответ написан
silvansky
@silvansky
Надо идти работать в фирму, занимающуюся чем-то действительно серьёзным.
Ответ написан
Комментировать
KorP
@KorP
Кратко о себе
Согласен с двумя предыдущими ораторами — нужна своя идея, которая вам будет интересна и вас будет привлекать. Я вот ни разу не программист, но за то время что я занимался собственными проектами — стал понимать программирование на много лучше, много чему научился (правда и понял что ещё очень многое не знаю и не умею :))).
Ответ написан
Комментировать
ks_ks
@ks_ks
«поднять свой уровень программирования» можно читая книжки и общаясь с умными людьми…
где бы вы не находились, какие бы задачи не решали. Говнокодеры не те люди,
кто пишут рутинные и неинтересные задачи, а те, кто к задачам подходят,
не имея в запасе желание и время, сделать свой код лучше.

Я поступил, как некоторые тут советуют — придумал идеи,
которые хотелось бы развивать и пилю потихоньку,
а качество кода — это дело наживное.

Чем больше пишете, отдаете кому-то на ревью, работаете не один,
а в команде — тем лучше и чище ваш код становится.
Ответ написан
Комментировать
dobeer
@dobeer
Я бы предложил придумать свой собственный интересный проект, который вам кажется на первый взгляд трудно выполнимым, поставьте перед собой большую задачу… создать новый поисковик, сделать свою гугл карту… ну это я так для примера. Необязательно чтоб вы реально создадите что то грандиозное, но в процессе его реализации вы будете изучать для себя что то новое, так вы отойдет от рутины и возможно придумаете и реально создадите что то интересное.
Ответ написан
Комментировать
Mowsar
@Mowsar
Web™brothers
Единственный способ стать умнее играть с более сильным противником;

// Эмануэль Ласкер - немецкий шахматист и математик ( wiki )
// Хотя в каком то фильме я слышал что это слова Цезаря .
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы