В личке получил довольно стандартный вопрос, которым задаются многие начинающие паровозики.
Цитата
Стандартный вопрос начинающего: "Что учить и с чего начать?".
Входные данные: 32 года, экономическое образование, опыта в программировании нет. Живу в Беларуси в небольшом городе, поэтому рассматриваю Минск для дальнейшего трудоустройства.
В окружении программистов нет, поэтому не с кем толком посоветоваться, что на данный момент лучше изучать, чтобы через 8-12 месяцев можно было уверенно получить 1й офер при условии, готов уделять обучению по 45 часов в неделю.
Дополню, что математика на довольно посредственном уровне.
уровень английского B1.
Думаю, что можно на данном примере расписать примерную логику по решению этого вечного вопроса с языком.
Для начала обозначим критерии.
- Устройство на работу является первым приоритетом.
- Паровозик не имеет большого количества времени, а отличие, к примеру, от студентов.
- Многие двери закрыты наглухо изначально (всякие фаанги и прочие яндексы), что тоже надо брать во внимание.
Основные моменты, которые надо учесть.
Первое и самое главное, о чем я многократно писал - наличие вакансий в локации. В данном случае, мы считаем что в случае Минска недостатка в вакансиях нет.
Второе - стоит брать только мейнстрим (можно глянуть TIOBE, например)
Третье - из-за ограниченности времени не стоит лезть в сложные вещи. Еще хотел бы заметить, что 45 часов в неделю это овердофига и маловероятно, что получится уделять этому столько времени.
Четвертое - наличие помощи (группы или человека, которые могут помочь с изучением)
Последнее, но не в последнюю очередь - язык должен нравится.
А теперь попробуем исключить более конкретно.
C++ исключается из-за сложности.
PHP вакансий меньше (например в том же епаме вообще нет), да и с ним вообще не очень понятно.
Ruby можно вычеркнуть из-за не очень большой распространенности в СНГ.
Всякую функциональщину (хаскеллы, скалы и т.п.) так же откидываем из-за сложности и малой распространенности.
Сюда же можно отнести языки, которые предназначены для какой-то платформы только (всякие апексы, абапы и прочие 1С). Переключение на них это чаще всего дорога в один конец, лично мне эластичность видится куда большим +ev, несмотря на потенциальную выгоду в зп.
Если брать список рекомендуемых языков, то он вряд ли кого-то удивит -
Java, C#, JS (именно он, а не всякие дарты), Python. Интересными вариантами выглядят Go и, в меньшей степени, Kotlin.
Есть всякие языки для мобильной разработки типа Swift, про них ничего сказать не могу.
В комнату заходит первый мегамозг. Он имеет право посмотреть содержимое всех бутылок и, если посчитает нужным, поменять местами любые две бутылки. После этого он уходит. Затем в комнату приглашается второй мегамозг. Ему называют произвольное число от 1 до 100, и он должен найти это число, открыв не более 50 бутылок. В лучших традициях жанра, мегамозги придумали стратегию и не были пущены на колбасу. О чём же они договорились?