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

Пишет Анонимус: «Наваял тут небольшой гайд для вкатывальщиков. Рейтим, комментируем, дополняем.
Итак, мой дорогой друг, ты решил вкатиться в ПРОГРАММИРОВАНИЕ. Стать тем самым 300к в наносекунду и работать из бунгало в Таиланде час в месяц. Из компуктерных знаний у тебя только как стим запустить и шиндошс переставить, на программирование тебе абсолютно похуй, но хочется ДЕНЕЖЕК.
Спешу тебя порадовать — это реально сделать в абсолютно любом возрасте. Сам собесил и принимал на работу 29летнего вкатывальщика вообще без опыта. Было бы ему 35 — думаю, ничего бы не изменилось.
Но заранее предупрежу, что:
1. Тебе минимум год придется задрачивать дома. Задрачивать ежедневно. Тебе постоянно будет хотеться забить. Ты постоянно будешь думать, что ты все знаешь (тот самый эффект Даннинга-Крюгера). На деле же ты хуже червя-пидорастудента-третьекурсника, готового работать за мивину.
2. На удаленку тебя никто не возьмет. И даже через 5 лет тебя не факт, что возьмут. Удаленка — это только для крепких мидловсениоров и выше с сильным work ethics. Распиздяю-двачеру надо сразу приготовиться, что даже если вдруг он удачно вкатиться — это будет говноофис, с тетей Глашей, тупыми эйчарами, и начальником, играющим в танки на работе.
3. Никаких огромных денег тоже тебе никто не даст. В Москве зеленому спецалисту без опыта дадут максимум тысяч 50, в Петербурге — в районе 30, в зажопинсках — вероятно еще меньше. И далеко не факт, что эта зарплата как-то изменится через год.
4. Ты никогда не будешь работать в Blizzardid SoftwareBethesdaValveRiotлюбая геймдев-контора. Потолок — какие-нибудь хуевые Аллоды онлайн от мейл.ру, но скажу честно — про геймдев лучше совсем забыть. Это всегда мало денег, очень много работы, и заниматься ты будешь очередным рескином говноигры типа 3-в-ряд-быстрее-донать для андроида.
5. Работа программиста, по большей части, заключается в копании в доисторическом некроговне. Никому не нужны твои гениальные архитектуры новых модулей, надо понять, почему бэкап хостинга, написанный Аркадием Израилевечем на перле 15 лет назад начал валиться. И всем похуй, что ты не знаешь перл, его никто в конторе не знает.
6. У тебя точно не будет персональной служанки, бесплатных обедов, охуенных молодых коллег, свежих технологий, массажных кресел и охуительных офисов. А будет хуевый компьютер с одним дешманским монитором, стул, переживший блокаду Ленинграда, бесконечно заебанные соседи, никакой медстраховки, и обед в судочке вези через весь город.
Если тебя это все не отпугнуло, и ты полон решимости и надежды СТАТЬ ПРОГРАММИСТОМ — тогда начнем
Какой язык мне учить? — спросишь ты
Ответ: Английский. Вся актуальная документация на нем, все конференции, все топовые блоги. На любую более-менее вменяемую работу — везде требуется всегда английский, минимум на уровне вменяемого чтения и письма. На работе автора на 100% технических вакансий нужен разговорный английский, даже зеленым джунам
А если серьезно, то тут два варианта:
1. Ты живешь в ДС (может быть в ДС2).
Что тебе интересно? Хотелось бы тебе написать приложение для андроида? Может быть для iOS? Быть может, тебе было бы интересно сделать веб-сайт? Может быть тебе просто похуй, и просто хочется денег? А может тебе все таки интересно сделать какую-нибудь хуевую игру, хоть я и предупреждал? Или все таки, ты думаешь, что можешь хардкорно байтоебить, а не быть какой-то веб-макакой?
Определился? Здорово! Читай дальше!
2. Ты живешь в Усть-залупинске.
Главное отличие от ДС и ДС2 заключается в том, что в твоей деревне неточень мало вакансий. Тебе будет немного труднее. Идешь на hh.ru и локальный сайт поиска работы (такие есть в каждом городе) — ищещь вакансии для новичков, и внимательно считаешь их количество для каждой технологии. И из самых распространненых выбираешь то, что наиболее тебе интереснонаименее противно.

Общее для обоих вариантов:

Нужно очень внимательно пошукать по знакомымдрузьямродственникам. Часто у людей есть выходы на какие-либо вакансии, знакомых с вакансиями, и тд. Автору в свое время знакомая слила вопросы с собеседования, по которым он подготовился,
блестяще прошел собес, и год работал в том месте.
Итого, что выбрать по технологииязыку:
То, на что у вас есть выход — самое востребованное для замкада, самое интересное для ДС-ов.
Ты понял, ты хочешь заниматься, что дальше?
Очень важное правило — ни в коем случае не слушай разных долбоебов, которые советую ХАСКЕЛЬ, ЭРЛАНГ, КОТЛИН, РАСТ, ЛИСП и прочую непонятную хуету. Математика так же тебе нахуй не нужна.
JavascriptTypescript, PHP, Python, C++, Java, C#, SwiftObjC. Все, больше языков нет для вкатывальщиков. И пожалуйста, не надо сразу пытаться вкатиться в какое-нибудь вырвиглазное машинное обучение.
Так же — надо знать инструменты, применимые в области. Всякие нодывебпакиангулярыреакты для JS. Yii или Symphony + какой-нибудь сборщик проектов для PHP, СпрингиХибернейты для Джавы, АСП.нет или XAML для C#. Как не крути — придется изучать Linux на уровне «могу без проблем работать в консоли». Ставить это говно на десктоп не нужно, а вот в виртуальную машинку (VirtualBox) — будь добр, накати и поковыряй. Подними веб-сервер руками.

Читайте также:  Веб камера на эвересте

2 года
Тебе, скорее всего, так везти не будет как мне, но свои 120+ в ДС вполне реально зарабатывать через 2−3 года практически любому.
Все реально, если вы ПРОСТО БУДЕТЕ ЕЖЕДНЕВНО ЕБАШИТЬ, а не ныть на двачах.

Подробная инструкция, которая поможет вам писать хороший код.

Как учить программирование с нуля

1. Самостоятельно

Если вы обладаете железной силой воли и горите желанием стать программистом, то можете добиться своей цели с помощью самообразования. Это не самый простой и короткий путь: вам придётся самому разбираться в информационном хаосе и бороться с прокрастинацией. Зато вы можете учиться в удобное время за относительно небольшие деньги или же совсем бесплатно.

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

Платформа с бесплатными курсами по веб-разработке freeCodeCamp

Запомните, что у вас ничего не получится без практики. Учитесь по проектно-ориентированным курсам и пытайтесь сами писать разобранные в них программы и сайты. Ищите лекции на YouTube с разбором проектов, которые вы бы хотели разрабатывать. Сначала копируйте работу других людей и анализируйте её. Затем пробуйте отходить от оригинала, экспериментируйте, изменяйте отдельные элементы, пока не сможете создавать что-то уникальное.

Помимо курсов и видеолекций, к вашим услугам официальная документация, доступная на сайтах языков, и книги. Когда разберётесь в основах, поищите свежие издания с подзаголовком Best Practices по выбранному языку программирования. Такие книги содержат лучшие приёмы разработки.

Обязательно поставьте перед собой цель создать свой проект и постоянно работайте над ним.

Это поможет закрепить полученные знания и понять, какой информации вам ещё не хватает. Ваши навыки будут развиваться вместе с проектом. Когда закончите его, работайте над новым — более сложным.

Если у вас возникнут трудности в процессе обучения или разработки, вы всегда сможете обратиться по любому вопросу к сообществам программистов вроде «Тостер» и Stack Overflow. Вам, например, помогут решить какую-нибудь задачу, выбрать хороший курс или укажут на ошибки в коде.

Сервис вопросов и ответов на технологические темы «Тостер»

Оттачивать навыки удобно на специальных площадках, где можно посоревноваться с другими программистами, решая с помощью кода различные практические задачи. В числе таких сервисов — Codewars, TopCoder и HackerRank.

Если почувствуете, что ваше развитие зашло в тупик, или захотите ускорить обучение, попробуйте следующие варианты.

2. С помощью ментора

Ментор — персональный наставник, который указывает на ошибки, предупреждает о подводных камнях, помогает прокладывать курс обучения. Полезная рекомендация, полученная в нужный момент, может избавить вас от многих проблем и сэкономить массу времени. Поэтому ментор никому не помешает.

Узнайте, есть ли среди ваших знакомых разработчики. Возможно, кто-нибудь из них захочет вам помогать. Если таких людей вы не знаете, можете поискать их в сообществах программистов. К примеру, на том же «Тостере». Только услуги менторства стоят недёшево, а за просто так тратить много времени на незнакомых людей никто не желает.

3. У преподавателей «живых» курсов

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

Популярные русскоязычные онлайн-площадки, которые занимаются системной подготовкой программистов: «Нетология», GeekBrains и Loftschool.

Если предпочитаете заниматься очно, можете поискать образовательные центры, которые обучают программированию в вашем населённом пункте. К сожалению, такие заведения чаще всего присутствуют только в больших городах. В качестве примера можно привести компьютерную академию «ШАГ», у которой есть филиалы в нескольких странах.

4. В университете

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

С другой стороны, университет даст фундаментальные знания математики, алгоритмов и других областей, которые помогут вам стать высококлассным программистом. За годы усердной учёбы вы сформируете правильный тип мышления, благодаря которому будете схватывать всё на лету в профессиональной сфере.

Как выбрать направление и язык

В ИТ-индустрии можно выделить несколько направлений, в каждом из которых используют свой набор языков. Перечислим основные направления в порядке возрастания сложности:

  1. Веб-разработка. Популярные языки: JavaScript, PHP, Python, Ruby.
  2. Мобильная разработка. Популярные языки: Java, Swift.
  3. Разработка игр и программ для настольных компьютеров. Популярные языки: C++, C#, C.
  4. Big Data, машинное обучение. Популярные языки: Python, R, Scala.
Читайте также:  Ифнс волжский официальный сайт личный кабинет

На что обратить внимание при выборе

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

График востребованности языков на международном рынке труда / research.hackerrank.com

Востребованность языка в вашем регионе легко проверить на сайтах для поиска работы. Просто откройте раздел для разработчиков ПО и посмотрите количество доступных вакансий.

Если не можете определиться

Если вы в замешательстве, присмотритесь к JavaScript — языку, на котором написан почти весь веб. Многие организации и программисты советуют новичкам выбирать именно этот язык в качестве первого.

Например, основатель образовательного ресурса freeCodeCamp Квинси Ларсон рекомендует JavaScript всем начинающим. Ларсон приводит очень простые аргументы:

  1. JavaScript относительно легко освоить. А чтобы написать что-то и запустить на этом языке, достаточно иметь редактор кода и браузер.
  2. JavaScript — самый востребованный язык на международном рынке труда и у него большие перспективы. В экосистему JavaScript инвестируют крупные компании вроде Google, Microsoft и Facebook.
  3. У JavaScript очень широкая сфера применения: от сайтов и браузерных игр до мобильных приложений.

Кроме того, вокруг этого языка сформировалось крупное сообщество разработчиков. Высокий интерес к JavaScript обеспечивает огромное количество курсов, книг и другого образовательного контента.

Что ещё должен знать программист: математика и английский?

Любому программисту не помешает глубокое понимание математики. Для таких направлений, как разработка игровой графики или большие данные, математический ум — это необходимость. Но что касается веб-разработки и создания несложных программ, то в большинстве случаев без математики можно обойтись. Хотя среди профессионалов на этот счёт нет единого мнения.

А вот понимание английского, хотя бы на уровне беглого чтения документации, обязательно для всех программистов. Официальные документы и большая часть образовательных материалов появляются в первую очередь на английском языке. Книги часто устаревают ещё до того, как выходит перевод. Кроме того, знание английского открывает перспективы для работы со всем миром.

Как получить первый опыт и первую работу

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

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

  1. Выполните несколько заказов на биржах фриланса. Это могут быть «Фрилансим» или Upwork. Предлагайте свои услуги бесплатно, тогда к вам придут первые заказчики.
  2. Найдите единомышленников и создайте с ними общий проект. Люди объединяются для таких целей почти на каждой образовательной площадке, где есть курсы по программированию.
  3. Выберите курсы, организатор которых помогает с трудоустройством. Например, в GeekBrains после обучения открывается доступ к стажировкам от разных компаний, в том числе — оплачиваемым. GeekUniversity и «ШАГ» гарантируют трудоустройство своим выпускникам.

Перед собеседованием не забудьте поискать в Сети списки задач и вопросов, которые часто задают соискателям.

Всем привет.
Желание написать этот пост на меня навело участившееся количество материалов в разных пабликах о том, как это просто взять и стать программистом, первый язык, первое приложение/сайт/игра и горы предполагаемых денег.
После таких ободряющих постов заряженные надеждой молодые (и не очень) люди делают свой первый hello word и с ним, в качестве резюме, смело прут на биржи. На бирже, получив несколько отказов, даже перспективные и одаренные люди теряют надежду и оставляют начинание. Другая часть соискателей, которая каким-то образом умудрилась получить первый проект — пополняет ряды отечественных быдлокодеров, которые толпятся в заявках на копеечные проекты и задачи и генерируют код с запахом. И лишь малая часть преодолеват порог вхождения в профессию, получая настоящий полезный первый опыт благодаря стечению обстоятельств, везению либо собственным талантам.
Я люблю программирование и занимаюсь им с детства. Соответственно выбор профессии после школы для меня был очевиден, но несмотря на это, настоящим делом я занялся, только аж через 4 года после окончания универа. Оглядываясь назад, сейчас я точно понимаю причины почему я, работая 4 года инженером-программистом на большом предприятии, не являлся программистом вообще. И все мои попытки чего-то достигнуть окнчивались некоторое время провалом.
Современная система образования на постсоветском пространстве, как и посты, о которых я упомянул в начале, не учат нас — как же на самом деле стать и быть программистом, как искать клиентов, работать на компании, начинать и вести свои проекты, как зарабатывать деньги, как и о чем договариваться с людьми. Нам не говорят о подводных камнях, не прививают систему ценностей, без которых существование тебя, как программиста — в принципе не возможно. Нам не рассказывают о карьерной лестнице, ее ключевых этапах, разветвлениях и общих направлениях. Не рассказывают о работе с клиентом, о жизненном цикле программного продукта и его поддержке. Нас учат многому: технологиям, языкам, каким-то техникам. Но нас не учат как этим пользоватсья. Не обучают профессии программиста.
Сейчас мне чуть больше 30, через 4 года после универа мне наконец-то повезло. Я рискнул и вырвался из зоны комфорта, уволился с завода и получил свою первую должность юниора «удаленно». Лишь за первый год работы я влил в себя полезной информации больше, чем за всю жизнь до этого. Сейчас уже прошло 6 лет с тех пор и за это время через мои руки прошло несколько юниоров. Не всегда по работе, иногда по знакомству в жизни, не суть. У всех юниоров однозначно диагностируется неопонимание того, сколько времени и сил нужно затратить на профессию и на каком этапе чего стоит ожидать от нее. С этого и начну.

Читайте также:  Как в компасе вернуть пропавшую панель свойств

Часть 1. Вход в профессию.
— Первые этапы
— Какие знания нужны для начала
— Что вам за это перепадет

Этапов 3:
— Вы никто
— Вы начинающий перспективный юниор
— Вы начинающий перспективный юниор с кое-каким опытом

Цель прохождения этих этапов — «зацепиться», запрыгнуть в движущийся состав индустрии и стать полноценным юниором на постоянной основе в какой нибудь мелкой компании.

Пока вы никто — вам абсолютно все равно с чего начинать. На самом деле разница есть. Начинать следует с наиболее живого рынка. Он не самый оплачиваемый, но получить первый опыт в кратчайшие сроки есть шанс у вас именно тут. И этот рынок — web-приложения.
Для примера я однажды завел абсолютно пустой аккаунт, без резюме и без деталей об опыте работы, и смог в течении двух дней получить заказ на сайт-визитку на wordpress c итоговым заработком $250 за 5 дней (на самом деле было $350, но $100 ушло дизайнеру на той же бирже).

Итого - большой шанс получить первые заказы у вас есть именно на простых web-приложениях - сайтах-визитках и landing-страницах. Для освоения вам понадобится знать поверхностно:
— html
— css
— java script
— sql (mysql)
— какой нибудь движек типа wordpress
— понимание принципов рабоыт интернета
— минимальные навыки администрирвоания vps/хостинга
Да, и это только для минимального первого заказа.
Уже тут, если у вас нет никакой базы, я бы посоветовал вам пойти на какие нибудь курсы, на которых вас методично прогонят по must have технологиям. Ну или можно попытаться пройти все это самостоятельно, по вечерам. В результате усердных методичных занятий стадия «никто» будет преодолена.

. Прошло 6 месяцев

Поздравляю! вы на второй стадии. Вы начинающий перспективный (о да, если вы дожили, то вы перспективный) юниор без опыта работы. На этом этапе цель — набить себе в резюме как минимум 2−3 простеньких проекта. Проще всего найти нуждающихся студентов и сделать им курсовые/дипломы, точнее только их техническую часть. Да, за бесценок, но именно на этом этапе вы будете писать максимальное количество своих велосипедов, и будет лучше если это будет работа, которой никто и никогда после не воспользуется.

. Прошло еще месяца 3

Далее идем на одну или сразу все биржи и начинаем мониторить подходящие набитым скиллам проекты/задачи.
Это самый сложный эмоциональный этап, рубеж. Вы себя чувствуете никем, всего боитесь. Но на самом деле получить заказ — легко. Немножко психологии — и заказ у вас. Основное правило — предлагайте заказчику то, чего он хочет, а не то, чего по вашему мнению ему нужно. И никогда ничего не скрывайте.
В этом и состояит весь второй этап — пытаться заработать несколько строк в резюме.
Одновременно с этим процессом нужно начинать работу над третьим этапом — юниор с опытом. На этом этапе ваша цель получить вакансию.
Удаленно или на офисе — не суть. Но вы должны запомнить — фриланс пока не для вас. Вы не сможете жить проектно.
Вам нужна вакансия юниора и наставник. Наставник вам нужен, так как с ним вы переболеете всеми детскими болезнями за пол года вместо двух лет и будете готовы выйти на настоящий рынок труда намного раньше.
Как только вы получите вакансию — держитесь за нее двумя руками. Как минимум год. А потом смело меняйте компанию, только если вам тут ну прям рай, можно посидеть еще. Но в итоге менять место первые года нужно регулярно раз в 2 года как минимум. Так как каждая смена обстановки — это новая солидная порция опыта и шанс значительно повысить текущий уровень дохода.

Ну и по ценам, обещал упомянуть:
— если вам повезет сорвать по 500 рублей за курсовые — это будет подарок судьбы
— $50 за первые проекты
— $2−4 в час за первые юниорские месяцы
— $6−10 в час через три года после того как вы были «никто» вы сможете найти

Программистом может стать каждый, но не каждый может программировать.
Я верю в вас.

Продолжение следует.
Часть 2. Система ценностей хорошего программиста.