Введение — Жизнь программиста
Добро пожаловать на Хекслет! Этим уроком мы открываем наш курс, посвященный профессии программиста. На протяжении нескольких уроков мы будем разговаривать о том, кто такие программисты, как ими становятся и что нужно для того, чтобы стать одним из них. Мы подготовили большое количество информации, и вас ждут пять объёмных уроков. Мы не будем писать код, устанавливать софт и делать практические задачи — вместо этого мы разберёмся во всех нюансах профессии.
На кого рассчитан этот курс
- Школьники
- Студенты
- Те, кто хочет поменять профессию
Этот курс рассчитан на всех, кто хочет стать программистом. Студенты технической специальности почерпнут для себя что-то новое, поскольку далеко не всё, что преподается в институте, имеет отношение к промышленному программированию. Те же, кто не имеет к нему отношения, но хотят им заниматься, получат максимально подробный обзор этой профессии. Программирование открыто для всех, поэтому всё больше и больше людей становятся программистами.
Страхи
Поговорим о страхах людей, которые хотят стать программистами. Мы получаем много писем от наших пользователей, в которых они рассказывают, почему они боятся, что у них не получится освоить эту профессию.
Я — взрослый
И на первом месте находится страх, который называется «я — взрослый». Такому «взрослому» может быть и 25, и 50 лет — это абсолютно субъективная оценка. На самом деле, возраст играет малую роль, а большинство программистов уже достаточно взрослые люди. В целом профессия с каждым днем становится старше, и это нормально. Некоторые думают, что чем старше вы становитесь, тем медленнее вы соображаете, но это совершенно не всегда так: если у вас гибкий, сообразительный мозг, и вы понимаете, что вы умеете решать различные задачи и принимать определённые решения, то программирование точно для вас, ведь такие навыки по жизни не теряются. Поэтому не нужно переживать по поводу своего возраста.
Джуниор (младший разработчик) в 20 или даже в 30 лет — это нормально. Существует множество примеров, когда на работу приходили люди, которым под 40 и более лет — они спокойно устраивались и работают в коллективе с молодыми ребятами. Безусловно, у некоторых может возникнуть психологический барьер, когда твой начальник сильно тебя младше, но программирование — такая профессия, где в первую очередь ценится компетентность и то, что вы из себя представляете как профессионал. Поэтому, если вы успешно растете как программист, у вас не будет никаких проблем. Наоборот, накопленный вами опыт может помочь быстрее продвигаться по карьерной лестнице.
Я плохо знаю математику
Другой частый страх, о котором говорят — «я плохо знаю математику».
Было бы нечестно скрывать, что математика играет важную роль в программировании. В нём много направлений, которые требуют глубоких знаний различных дисциплин. Для разработки сложных игр такой дисциплиной является физика. Существуют направления, где нужна серьёзная математика, но в целом базовое программирование, особенно веб-программирование, где люди создают и настраивают сайты и веб-приложения, требует лишь минимальных знаний.
Когда говорят, что для программирования нужна математика, подразумевают в первую очередь не знание её как таковой — то есть конкретных дисциплин и математического аппарата — а знание математики как способа развития мышления и личности. Математика действительно хорошо помогает структурировать мозги и размышлять немного на другом уровне, раскачивать своё абстрактное мышление и делать многое другое. Поэтому знание математики никогда не повредит. Часто бывает так, что её начинают учить вместе с программированием, и это правильный подход.
При этом незнание математики не должно становиться причиной не заниматься программированием, но если вы начали им заниматься, то хотя бы на каком-то базовом уровне её можно тоже подтягивать. Вы сами почувствуете тот момент, когда она вам понадобится: при осуществлении каких-либо вычислений или работе с алгоритмами. Множество ресурсов, таких как Coursera, дают доступ к большим университетским и простым базовым курсам, которых достаточно, чтобы подтянуть свои знания по математике.
Я слишком туп / глуп
На третьем месте — страх, который называется «я слишком туп или глуп». Этот страх часто проявляется у людей, мечтающих стать программистами, у которых есть знакомые, успешно работающие в этой профессии. На фоне таких знакомых им иногда кажется, что они ничего не понимают. Просто потому, что те используют специфические термины и в каких-то вещах разбираются лучше. Чаще всего этот страх не обоснован, и, как показывает практика, есть такой интересный эффект: начинающие и опытные разработчики обладают схожей характеристикой — они себя недооценивают. Это касается и зарплаты, и знаний, и способностей. Зачастую совершенно иная ситуация со средними разработчиками, которые себя переоценивают. Поэтому, если вы себя недооцениваете, возможно, вы уже достаточно профессиональны.
Всё-таки нужно
Теперь поговорим о тех вещах, которые всё-таки нужны каждому начинающему программисту.
Английский язык (хотя бы со словарём)
Когда заходит речь о том, какой нужно выучить язык для освоения программирования, то большинство разработчиков скажет, что это, конечно же, английский. Здесь всё примерно так же, как и с математикой. Отсутствие английского — это не повод для того, чтобы не заниматься программированием. Если вы изучаете программирование, уровень английского у вас растёт сам по себе, хотя бы на базовом уровне. Точно так же в конце девяностых и начале двухтысячных молодые ребята, игравшие в компьютерные игры, невольно выучивали английский. Его важность нельзя недооценивать, потому что даже если вы найдёте документацию на русском языке, она будет лишь переводом с языка оригинала — английского — и, зачастую, не самым качественным. Оригинальный контент на других языках появляется крайне редко, всё в первую очередь появляется на английском.
Даже если вы нашли документацию на русском, при работе со своими программами вы будете получать ошибки на английском языке, и с этим нужно будет разбираться. Более того, когда вы начинаете изучать, как решать эти проблемы и исправлять ошибки, вы будете попадать на популярные англоязычные сервисы, где, собственно, все общаются на английском. Опять же, повторимся, это не означает, что незнание английского не позволит вам начать программировать, но нужно понимать, что без английского в принципе не получится делать это профессионально, и его нужно подтягивать с вашими первыми попытками писать программный код.
Первый и самый простой шаг, который необходимо сделать любому начинающему разработчику, это переключить все интерфейсы на всех устройствах и во всех программах (в том числе сайтах) на английский язык. Так вы быстрее освоите профессиональную терминологию.
Желание
Ну и конечно же вам понадобится очень много желания, потому что научиться программированию — не так просто, как кажется на первый взгляд. Полки книжных магазинов завалены книгами с громкими названиями наподобие: «Выучи С++ за 21 день». Кто-то может из этого сделать вывод, что за это время можно научиться программированию. Это не совсем так, а если уж говорить честно — совсем не так. Программирование требует от вас достаточно много времени и упорства, потому что вы будете часто сталкиваться с ситуациями, когда будет непонятно, что делать и куда двигаться, и иногда вы будете испытывать даже полную безысходность. Поэтому программирование, кроме прочего, требует наличия либо ментора, либо команды, либо онлайн-сервисов, призванных вам помочь — одному бывает сложновато. В целом всё это решаемо, и как раз успешное преодоление всех преград и будет показателем того, что у вас всё в дальнейшем получится, потому что в первую очередь, когда нанимают разработчиков, хотят видеть в людях способность разбираться с проблемами самостоятельно.
Время
Если говорить о времени, которое понадобится вам, чтобы овладеть этой профессией — здесь всё очень индивидуально. Как мы уже говорили в самом начале урока, есть разные категории людей. Студенты и школьники, у которых много времени, могут себе позволить потратить его на обучение программированию, но обычно в этом возрасте люди еще не так хорошо понимают, что конкретно им нужно. А вот люди постарше не имеют в своём распоряжении такого количества свободного времени, зато хорошо понимают, зачем им всё это надо, и что нужно учить.
Порог снижения эффективности обучения
Существует такой феномен — снижение эффективности обучения. Что он означает?
Вначале вам нужно заниматься самостоятельно, потому что вас вряд ли кто-то возьмёт на работу, когда вы еще ничего не знаете, и для вас это будет достаточно эффективно, особенно если вы будете использовать современные средства, которые всячески помогают обучению. Но в какой-то момент скорость освоения предмета у вас начнет резко падать. Нужно не пропустить этот момент и устроиться на работу — тогда обучение снова станет весьма эффективным, плюс вы начнете расти уже профессионально.
Есть категория людей, которые получают второе и третье образование, продолжают бесконечно учиться — такая ситуация опасна и вредна, и главное — не попасться в эту ловушку.
Сколько нужно учиться, чтобы начать работать
Нельзя рассчитывать на то, что обучение займёт меньше трёх месяцев, просто потому что это физически невозможно. Даже если вы будете очень быстро учиться, всё впитывать, читать правильные книги, делать всё верно и по минимуму ошибаться, всё равно мозгу нужно какое-то время для адаптации и усвоения большого количества разных аспектов, поэтому 3 месяца — это самый минимальный крайний срок, после которого вам может повезти, и вы устроитесь совсем-совсем джуниором делать какую-то очень простую работу. В целом не стоит на это рассчитывать.
Поэтому приблизительно для изучения основ программирования потребуется от 3 месяцев до 1 года. Больше года обучения без практики — это уже перебор. Давайте считать, что в среднем при неполной занятости, но при постоянном упорном обучении, вы сможете устроиться на должность программиста где-то через полгода после старта.
Что дальше
Вы завершили теорию в данном уроке. Впереди вас ждут простые тесты и демонстрационное упражнение, чтобы познакомиться с интерфейсом сайта. После выполнения каждого шага нажимайте большую синюю кнопку Далее -> в верхнем правом углу.
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Сколько времени реально нужно, чтобы освоить программирование?
Этот текст для тех, кто хочет оценить трудовые и временные затраты на изучение профессии разработчика. Посмотрим, какие результаты реально получить за неделю, месяц, полгода и далее.
Спонсор проекта — буткемпы «Яндекс Практикума». Буткемпы — это как обычные курсы Практикума, только вдвое более интенсивные и поэтому короткие. Если классический курс «Аналитик данных» проходится за 6 месяцев, то буткемп по той же специальности длится всего 4 месяца.
- Буткемпы требуют выделять на обучение около 40 часов в неделю. Обычные курсы — около 20 часов.
- Буткемпы нужны тем, кто хочет вот прямо сейчас уйти с работы и попасть в новую специальность. Обычные курсы — для тех, кто изучает новую специальность параллельно с основной работой.
1 неделя: базовые конструкции и простые алгоритмы
Если у вас есть наставник, советчик или просто нормально организованный учебный процесс, первый код на любом языке программирования вы напишете уже в первый день. На второй день вы напишете простую работающую программу.
За неделю занятий вы сможете:
- Писать и запускать свой код.
- Объявлять любые типы данных.
- Делать простые вещи с помощью циклов и условных операторов.
- Работать с массивами, строками и числами; производить математические операции.
- Объявлять функции.
- Работать с объектами.
- Если изучаете JavaScript и HTML, то вы даже сделаете простую интерактивную веб-страницу.
✅ Этого этапа хватит, чтобы начать писать собственные простые программы и экспериментировать. Но пока что вы будете сталкиваться с проблемами на каждом шагу, потому что любой минимально амбициозный проект будет казаться неподъёмным.
⚠️ Подводный камень: вам может начать казаться, что теперь вы умеете программировать, и вы начнёте решать все данные вам задачи теми базовыми инструментами языка, которые вы знаете. Часто ваши решения будут громоздкими и нестабильными. Как с этим быть — вы узнаете дальше.
1—3 месяца: основные задачи, которые решают этим языком
Следующий этап — вы начинаете погружаться в специфику языка программирования и узнавать, какие именно задачи им лучше всего решать и как. Это этап узнавания основных паттернов языка.
На примере фронтенд-разработки:
- Вы начинаете использовать фреймворки для работы с веб-страницей.
- Узнаёте про стандартные компоненты интерфейсов.
- Начинаете общаться с сервером с помощью асинхронных запросов.
- Познаёте силу современных верстальных инструментов типа CSS Grid.
- Учитесь показывать всплывающие и модальные окна, валидировать формы, настраивать анимации.
✅ Это этап всемогущества: вам кажется, что любую задачу, какую вы только можете представить, вы сможете решить с помощью своих знаний этого языка. Это всё ещё не так, но ваши возможности заметно выросли.
⚠️ Очень важно здесь не впасть в состояние самоуверенности. На этом этапе вы ещё не можете идти на работу разработчиком, но уже можете идти джуном, например писать документацию и заниматься рутинной технической работой.
3—6 месяцев: фреймворк, или набор инструментов для решения специфической задачи
На этом этапе вам открывается истина: чтобы делать коммерчески востребованные продукты, нужно не просто владеть языком, но и пользоваться специфическим стеком технологий — фреймворков и библиотек. Вы понимаете, зачем в первый месяц обучения вам рассказали про классы, наследование, прототипы. Вы понимаете, зачем нужны компоненты. Ваш код становится всё более абстрактным и высокоуровневым, потому что иначе вы просто утонете в нём. Вы погружаетесь в специфические фреймворки.
- В случае с веб-разработкой это будут Angular, Vue или React — смотря куда вас понесёт.
- Если вы пишете на Python — вы начнёте специализироваться на каком-то виде вычислений: либо провалитесь в веб-разработку и Django, либо начнёте глубоко изучать математические и визуализирующие библиотеки.
✅ После этого этапа вы уже уверенный разработчик, которого можно нанимать на коммерческие задачи.
⚠️ Вы ещё не знаете, что работа в ИТ-компании — это не только разработка (и далеко не она).
6 месяцев и далее: отраслевой опыт, лучшие практики и боль работы в ИТ-компаниях
Где-то здесь вы уже начинаете искать работу и попадаете в свою первую ИТ-компанию. Скорее всего, первая работа будет на позиции джуна, хотя по уровню знаний вы уже можете претендовать на позицию мидла.
Тут вам открывается, что работа в ИТ-компании несколько больше, чем просто разработка. А именно:
- Вы контактируете с менеджерами и другими разработчиками. Выясняется, что нужно уметь общаться, и это не такой очевидный навык. Договорённости искажаются, поручения теряются, менеджеры приходят с противоречивыми заданиями.
- Вы должны будете научиться управлять собой, своим временем, психологическим состоянием и работоспособностью.
- Некоторые задачи будут скучны настолько, что вы будете адски прокрастинировать.
- Вы поймёте, что писать код для любимых хобби-проектов — это не то же самое, что работать на чужом проекте внутри группы поддержки скучных служебных модулей.
✅ Вы будете уставать и выгорать, но если вы справитесь с этим этапом, у вас откроется второе дыхание и вы станете настоящим мастером разработки.
⚠️ Раньше вы смеялись над людьми, которые выгорают, работая за компьютером. Теперь вы этот человек.
12—24 месяца: оптимизация, рефакторинг, политика
Пройдя долину выгорания и скучных задач, вы узнаете о себе три вещи:
- В мире разработки есть вещи, которые вам искренне интересны.
- Если применить софт-скиллы и навыки переговоров, вы сможете загрузить себя именно такой работой. А всё неинтересное скинуть на других бедолаг.
- Программирование — это своего рода спорт высоких достижений. Ваша программа может работать быстрее.
Это этап, на котором вас начинает раздражать легаси-код. Вы хотите всё переписать под новые фреймворки, оптимизированные под новое железо. Вы начинаете заморачиваться читаемостью кода, скоростью работы и нагрузкой на исполняющие машины; у вас на столе появляются классические учебники по алгоритмам. Вы наконец-то прочитали «Искусство программирования» и всё там поняли (хотя эта книга была у вас уже год).
✅ Ваш софт начинает работать быстрее, стабильнее и просто элегантнее. Вы получаете истинное удовольствие, когда ваши программы запускаются на старом железе.
⚠️ Простые люди перестают вас понимать, считают гиком и занудой.
2—5 лет: вставки на ассемблере, экзотические языки, духовность, квантовая физика
Если не остановить этот необратимый процесс, дальше вас ждёт погружение в глубины машин. В голове рождается мысль, что вы используете недостаточно оптимизированные фреймворки, и вы начинаете разбирать их по частям, выбрасывая лишнее. Но оставшиеся во фреймворках функции тоже оказываются недостаточно оптимизированными, и вы погружаетесь на самый низкий уровень, чтобы оптимизировать этот код с помощью ассемблерных вставок.
Если говорить языком автомобилей, вы разбираете свою машину до двигателя и растачиваете цилиндры, чтобы добавить ещё сотню лошадиных сил.
Вы начинаете изучать ассемблеры, но теперь с полным пониманием, зачем вам это.
Чтобы отвлечься от мыслей об оптимизации кода, вы начинаете программировать микроконтроллеры и случайно воссоздаёте Doom на инженерном калькуляторе.
✅ Почти любую разработческую задачу вы можете решить на одноядерном процессоре с тактовой частотой 500 мегагерц, как в девяностых.
❌ Люди боятся говорить с вами о разработке.
6+ лет: сопромат, проектирование загородного дома
Вы в понимании разработки уже так преисполнились, что решаете любую задачу силой мысли. Ваша клавиатура — кастомная 12-клавишная разработка с десятью функциональными слоями. Вы напечатали её на 3Д-принтере, а логическую плату для вас изготавливали в Гонконге.
Вы начинаете задумываться о других аспектах своей жизни:
- Начинаете думать о покупке земли и строительстве дома. Правда, дом вам интересен в первую очередь как инженерный проект: можно ли его сделать полностью автоматизированным, используя микросхемы времён СССР?
- Нейронка на вашем облачном сервере считает идеальное расположение несущих конструкций вашего будущего дома.
- Вы изучаете вопрос создания собственной системы навигации на базе ГЛОНАСС, чтобы промаркировать своих будущих кур и гусей. Телеметрия и дистанционная ветеринария. Математические модели для выпаса овец. Квадрокоптер-пастух. Непрерывное энергоснабжение. Лазерное энергоснабжение.
- Однажды на рыбалке вам является оптимизация кода в одной из рабочих задач. Вы видите красоту в движении волн.
- Глядя на водную рябь, вы размышляете о критериях разумности машин.
- Вы используете Linux с доработанным вами же ядром. Вам не нужен монитор.
- Вы из тех людей, которые входят в комнату, и все компьютеры резко перестают глючить.
Сколько времени в среднем проходит для освоения программирования с нуля и возможностью заработка?
Мне 20, студент, и я всерьез, да и довольно долго, думал о том, чтобы связать свою жизнь с программированием. Математика нравится, но не изучал в силу ненужности. Так вот в чем, собственно, вопрос. У меня около 10 часов свободного времени в день (на обучение программированию готов уделять бОльшую часть) и мне интересно: через сколько я смогу зарабатывать? И сколько я смогу зарабатывать? И в какую сферу программирования лучше ‘сунуться’: веб, прикладное, или %забылназвание%? И смогу ли я всю жизнь этим заниматься, из серии: выбрал и развивайся себе в удовольствие?
Изучил огромное количество статей, мнений, вопросов на эту тему, но меня интересует мнение ‘тутошних’ жителей, считаю его более авторитетным. Подумывал о своем бизнесе, о заработке на сайтах и сетках узкотематических блогах, но честно — голова пухнет от размышлений о выборе. Хочется выбрать свою ‘нишу’ и развиваться в направлении, не париться больше об этом. Вот и делаю своеобразную ‘оценку рентабельности’, что-ли. Хочется знать наверняка.
UPDATE: для подписавшихся и для себя подведу краткие выводы.
1 — Основной вопрос, сколько времени проходит между начинанием в программировании и заработком — от 2-х недель, до 3-х месяцев. Зависит от выбранного направления, языка /etc. Количество «сколачиваемого баблища» напрямую зависит от сложности специализации и затраченного времени.
2 — Верхний средний порог заработка в России — 150 000р.
3 — Как это работает: Изучаешь простенький язык, осваивая программирование как таковое (на PHP, или js), после чего 2 варианта: продолжить обучение в качестве «подмастерья», или самостоятельно, одновременно с работой на фрилансе по полученным навыкознаниям.
4 — Задумался о программировании только ради денег? Тебе в другую сторону, друг.
5 — Прочесть вот эту штуку
Вроде все важные выводы =)
- Вопрос задан более трёх лет назад
- 125180 просмотров
1 комментарий
Оценить 1 комментарий
Денис Каракчиев @Satori_Kanzo Автор вопроса
Upd: Что скажете по поводу вот этого?
Решения вопроса 4
Хорошим программистом можно стать только если это занятие нравится. По крайней мере в первые годы это занятие должно приносить удовольствие само по себе. Это должно быть стремление, страсть, талант. Если бы у вас это было, вы бы вопросы здесь не задавали, а просто программировали. Не важно что.
То, что вам, похоже, нужно — это быстрый заработок. Для этого нужно изучить спрос, и сопоставить его с вашими возможностями. Здесь уже писали, что хороший источник статистики спроса — это фриланс-биржи. Смотрите заказы, ищете наиболее популярные темы. Всякие там WordPress и django с RoR для веб, а может что-то по мобильной разработке, но это уже сложнее. Смотрите, что это такое (по попсовым темам очень много материалов), изучаете (попсовые темы потому и попсовые, что легки в освоении) и практикуетесь.
С выходом на фриланс лучше повременить. Не имея опыта можно сходу угробить себе репутацию, а исправить это тяжело. Лучше пойдите к кому-нибудь в подмастерья. Есть у вас на районе веб-студии небольшие? Вот к ним. У них вечно работы больше, чем исполнителей. И не звездите сразу. Подмастерья зарабатывают мало. Немного опыта на реальных проектах — и вы готовы конкурировать с индусами на фриланс-биржах.
Ответ написан более трёх лет назад
Комментировать
Нравится 17 Комментировать
Программист — этим все сказано
Все проще чем кажется — не думай, делай! Бери, изучай языки пиши простенькие проекты, сначала для сея а потом и на заказ. Первые задачи лучше придумать самому из разряда «для себя». Т.е. какую именно программу сам бы хотел иметь — очень поможет освоиться в програмировании. Потом можно брать заказы на фрилансбиржах. Вилка оплаты очень разнится. Например фронтенд разработка в вебе от 80 до 800р за час! Естественно начинаешь с маленьких сумм, с приобретением опыта увеличиваешь ставку.
Это не предел. Потом можно стать тимлидом и самому руководить разработкой какого-то проекта в какой-нибудь компании. Или набрать техже фрилансеров на крупный проект и организовать свое дело. Потолка по доходности просто нет.
Что касается сферы в которой следует развиваться — тут сложнее. Можно посмотреть в сторону веб — вроде как очень перспективные технологии там сейчас и большинство приложений переписываются именно на него.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Я в 20 лет уже подрабатывал админом на пол ставки в небольшой компании. Думается, что эта строчка в моем резюме потом очень сильно помогла в дальнейшем карьерном росте. Сколько будете зарабатывать — зависит от региона и специализации. Средний заработок нетрудно прикинуть по HeadHunter. Где-то 150 000 в России — это практически максимум для программиста. Я встречал людей, который зарабатывают и больше, но это, как правило, очень узкие специалисты. О том, с чего начать, какой язык выбрать и тп, см тут.
Ответ написан более трёх лет назад
Нравится 2 1 комментарий
Денис Каракчиев @Satori_Kanzo Автор вопроса
Спасибо огромное, но на счет того, что я все еще не работаю полноценно — есть ряд причин, которые закончатся, но в данный момент не представляют возможным делать то, что я хочу.
Чтобы зарабатывать деньги можно либо выполнять задачи по заказу (проще) либо сделать готовый продукт и продавать (сложнее). Задачи по заказу бывают разного охвата — либо это, например, просто вёрстка (проще), либо это софт под какую-то задачу целиком, с разработкой концепции, тестированием, выкаткой, поддержкой и т.д. (сложнее). То есть, зарабатывать можно в любом случае, но это разные уровни сложности, и, соответственно, разные деньги. Чтобы взять нижнюю ступеньку обычно нужно около года. В дальнейшем всё зависит от того, определитесь ли вы со специализацией.
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 9
После откола от хабра, тостер превратился в сборник вопросов и разряда «Хай, пасаны! Вы тут прогеры все крутые? Какую мне книжку почитать минут на 15, что бы завтра мульёны зарабатывать?»
Ответом должно быть: Карл Маркс «Капитал», Дэн Ариели «Предсказуемая иррациональность», Стив Бланк «Четыре шага к озарению» и ещё тысячи книг по экономике. Не ту область выбираете.
Ответ написан более трёх лет назад
Нравится 19 4 комментария
А как же Doing Business?
Денис Каракчиев @Satori_Kanzo Автор вопроса
Нет, я выбираю ТУ область. Вышеуказанные книги по ранее интересующим темам прочитаны, не волнуйтесь))
@Satori_Kanzo, искренне рад за вас. Почти год прошёл, вы стали джуниором?
«тостер превратился в сборник вопросов и разряда «Хай, пасаны! Вы тут прогеры все крутые? Какую мне книжку почитать минут на 15, что бы завтра мульёны зарабатывать?»
ИМХО
Причиной этого явления является осознание того, что возможностью зарабатывать мало -мальски адекватную ценам зарплату своим трудом для среднего человека — является «уход в программисты».
+ «кажущаяся» простота написания кода.
.net developer
На самом деле кол-во таких вопрос действительно зашкаливает, потому что беспокоит многих, но каждый считает, что именно ему ответят каким-то уникальным образом. К сожалению нет, не ответят, универсальных рецептов нет. Я сам одно время, брался за одной, брался за другое, загорался и снова перегорал. Потом приходит понимание, что топчешься на одной месте, даже совершая «гипер прыжки» в кратчайшее время, такие переключения с новым «гипер-прыжком» отбрасывают сильно назад. Это как вектор, который резко меняет направление. Сумма таких векторов может не порадовать точно 🙂
Вроде выбрал, вроде решил, начал углубляться, но смотришь по сторонам и начинаются сомнения, а то ли ты выбрал, а насколько это будет актуально, а насколько будет интересно дальше и так далее. Например, мне импонирует разработка под мобильные платформы, но нет работы на местном рынке. Возникает разумное сомнение, выбрать то, что нужно здесь и сейчас, но не особо перспективно, либо. либо. и еще много разных либо.
Какой же выход из этого порочного круга. Наверное составить Roadmap, где придется проверить свою силу воли. Составить карту планов на год. Проанализируйте такие вопросы как:
1. Что интересно
2. Что проще всего дается
3. Что востребовано на местном рынке
4. Рассматривается ли возможность переезда
5. Что востребовано на фриланс биржах и каков уровень конкуренции в данном сегменте
Нарисовали — пошли добивать, и не метаться. Метания — ваш тормоз. Юношеский максимализм, когда хочется всего и сразу, в этом плане не помощник. Нужно иметь определенный фокус, тогда будет результат. Ну и как минимум лучше всего начать работать хоть с чего-то.
Теперь ответ на ваш вопрос: время освоения программирования с нуля и возможность заработка никак между собой напрямую не связаны. То есть ответа конкретного никто не сможет дать.
Можно всю жизнь программировать, но не зарабатывать на этом. Может повезти устроиться с нулевым опытом, и вы зарабатываете почти тут же. Это как вопрос, сколько надо забить гвоздей, чтобы начать на этом зарабатывать. Утрирую? — да. Но вы так же можете отбивать себе пальцы молотком, но зарабатывать какую-то копеечку, а можете профессионально дома с закрытыми глазами вбивать одним ударом гвоздь, но не иметь с этого ни рубля.
Бывает человек 10 лет программирует, но качество кода остается на уровне джуниора и решать задачи в написании серьезных приложений на фрилансе он не сможет. Получается в локальном вопросе, для конкретной компании этот человек может продать свою работу и получает за это деньги, в более масштабном плане — ему будем сложно себя продать и соответственно шансы на заработок не так велики. Это же и объясняет тот факт, что не всегда умные люди добиваются успеха в компаниях. Человек может быть не самым полезным, не самым эффективным, но грамотный «само-маркетинг, нетворкинг ака полезные связи» бывает творят чудеса.
Единственное, что я могу однозначно рекомендовать даже для программиста — это так называемые soft skills. Навыки общения, коммуникации, понимание идей бизнеса и так далее. Напрямую с программированием не связано, но вопросы настолько универсальные, что пригодятся в любой работе.
Сколько нужно времени чтобы научиться программировать?
Здравствуйте. Мне 20 лет. Я работаю торговым агентом. Недавно попробовал себя в программировании. Наткнулся на самоучитель по Java. Выполнил все задания, нагуглил ещё каких то курсов, даже какое то подобие игры написал. Вообщем я изучал это 1.5 недели в свободные от работы часы. Не знаю зачем, мне просто было интересно. Есть желание это развивать и время.
Вопросы такие:
Смогу ли я самостоятельно изучить программирование до такого уровня чтобы устроиться на работу?(книги, видео уроки, гугл)
Сколько времени это займет?
С чего лучше начать?
Обязательно ли идти в универ?
20 лет не поздно?
Извините за глупые вопросы и спасибо за ответы.
- Вопрос задан более трёх лет назад
- 83524 просмотра
1 комментарий
Оценить 1 комментарий
andrey_233 @andrey_233
Зря детство продеградировал из-за девушки, 6 лет жизни без развития. Представляете?
Решения вопроса 4
sergeygarnov @sergeygarnov
Смогу ли я самостоятельно изучить программирование до такого уровня чтобы устроиться на работу?(книги, видео уроки, гугл)
Да
Сколько времени это займет?
1,5 — 2,5 месяца
С чего лучше начать?
Месяц потратить на изучение основ на любом языке, выполняя различные задачки, далее уже в общих чертах начать знакомиться со всякими модными фреймворками и пр.
Обязательно ли идти в универ?
Говорят, что обязательно
20 лет не поздно?
Учиться никогда не поздно
Ответ написан более трёх лет назад
Нравится 4 1 комментарий
за пару месяцев вряд ли можно освоить программирование, скорее больше уйдет
Defold, Corona, Lua, GameDev
Самостоятельно можно.
Вы ещё не определились что вам ближе? Сайты, десктоп приложения, игры, мобильные приложения?
Если нет, то нужно начинать с самых основ — упор на алгоритмы и методологию.
Универ никогда лишним не будет, но можно и без него всё изучить.
Хотя бы посмотрите в сторону курсов по программированию.
20 ничуть не поздо.
Если английский не знаете — учить в обязательном порядке и очень интенсивно. Для программиста это очень важно.
Ответ написан более трёх лет назад
Нравится 4 3 комментария
TelepuzikU @TelepuzikU Автор вопроса
Спасибо за ответ. Что конкретно нужно знать, перед тем как пытаться устроиться на работу например как Java программист? Ближе наверно десктоп.
Илья Гром @Gromobanan777
@TelepuzikU Главное — желание учиться и совершенствоваться. Пиши-код-блять! Постоянная практика, пробуйте себя на гитхабе. Смотрите вакансии, там и узнаете, что вам нужно знать.
Можете спросить прямо у работодателя. Они вам скажут весь стек технологий, который используется у них в разработке. У других схожих фирм должно быть примерно то же самое.
Кстати далеко не везде необходимо применение каких-то сложных алгоритмов. На десктопах обычно всё проще — показать окошко, заполнить данными из БД, сохранить изменения и тому подобное.
Николай Турнавиотов @foxmuldercp
Системный администратор, программист, фотограф
Поставить реальную задачу перед собой и её решать, используя выбранный инструментарий.
Такой задачей ждя меня стало написание веб варианта домашней бухгалтерии на c# + asp.net mvc.
заодно разобрался и с субд, и с html и с jquery с twitter bootstrap.
Если пересчитать на фуллтайм, то получилось где-то 2-3 месяца, более менее войти в курс дела, я из 31 года около 16 админ без навыков программирования как таковых, только небольшие скрипты.
Ну а Вам надо понять, под что хотите писать, выбирать инструмент и вперед, покорять вершины
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Универ, очень нужен, если хотите этим заниматься серьезно. Но с другой стороны 5 лет (или 4 года бакалавром), можно с успехом до 3-х сократить. Придется учить кучу хрени, типа метрологии, философии, истории и прочей хренотени, которая потом будет успешно забыта. Но с другой стороны, если сможете с преподами договориться, не тратя время на эту муть, то после 2-3 курса можно смело на работу идти на junior позицию.
Без универа будете говнокодером, знаю по примерам, даже если сходите на какие-нибудь курсы.
Ответ написан более трёх лет назад
Филипп @shcherbanich
холивар тема, можно стать хорошим специалистом и без него.
Ответы на вопрос 2
Начать писать программы можно за неделю. «Научиться программированию» занимает лет 10 минимум. Касательно «с чего начать» см например тынц.
Ответ написан более трёх лет назад
Нравится 1 4 комментария
TelepuzikU @TelepuzikU Автор вопроса
Мне интересно сколько времени уйдет чтобы начать зарабатывать программированием?
TelepuzikU @TelepuzikU Автор вопроса
И что лучше выбрать(десктоп приложения, игры, мобильные приложения, веб) чтобы по меньше времени ушло.
Ну это явно не лучшая мотивация в изучении программирования. Учите PHP и устраивайтесь в какую-нибудь веб студию. Одним меньше, одним больше.
yurygolikov @yurygolikov
TelepuzikU: Быстрее зарабатывать это скорее в веб
Alibaba2018 @Alibaba2018
Смогу ли я самостоятельно изучить программирование до такого уровня чтобы устроиться на работу?(книги, видео уроки, гугл)
Да (Я сам такой же. Изучаю программирование уже года 2.5 (последний год конкретно, до этого так), но так и программировать качественно сам до сих пор не умею, т.е. именно писать свой source code, кот. был бы приемлем на профессиональном уровне, хотя и изучал и Swift, и Java, и даже C++, и Python. Копировать чужие программки и код — это не программирование, a обучение и дрочилка.
Сколько времени это займет?
В зависимости от сферы в какой хотите работать
(Для клЕпания сайтов — front end: недолго, для создания своих AI движков: очень долго)
Я лично, например, решил сконцентрироваться сейчас только на Python. По сути, если научиться капитально программировать (опять же, именно программировать(!), то после любой язык прогрраммирования (а для начальных прогеров синтакс) дается очень легко, т.к. понимаешь а) структурирование, б) архитектуру решения задач и в) собственно построение этого решения.
Я начинал с изучения со Swift’а для создания приложений на Iphone. С одной стороны рад, что начал с более сложного языка (а Swift — это intermediate язык по сложности), с другой нет, т.к. это было не программирование, а попытка копипастить откуда можно, чтобы что то работало, т.е. попытка сшить из носовых платков штаны, собственно, по сравнению с брюками нормальными от пиджака, также получались разноцветные шаровары, да еще и на соплях, да еще и если получались..
С чего лучше начать?
Начните с языка Python, самый легкий. Если есть английский:
1. «Learn to Program with Python» by Irv Kalb
2. www.udemy.com курсы Jose Podilla — рекомендую почти все
3. найдите сайт фоксфорд с лекциями по подготовке к ЕГЭ Тимофея Хирьянова, а потом для закрепления пройдите и все его курсы для 1 курса МФТИ (все есть на youtube)
Обязательно ли идти в универ?
Нет. По сути, если взяться конкретно за это (т.е. заниматься с 8 утра до 8 вечера, 6 дней в неделю, где то полгода-год), то можно закончить всю университетскую программу самому. Если еще есть хороший наставник, кот. подсказывает то за полгода точно можно даже хакером стать. Я все учил сам, что значительно и увеличило время изучения, так как иногда приходилось делать круги.
20 лет не поздно?
Да хоть в 60, если мозги работают. Самое главное желание.
PS От Себя.
По сути, программирование — это 3 этапа
а) структурирование, т.е. разбивка задачи на транзакции, для чего нужна логика, усидчивость и немного мозгов, т.е. само программирование здесь почти нулевое (больше нужно даже problem solving skills, но это уже отдельных навык, связанный с след. пунктом)
б) перевод затем всего этого структурирования в математический язык и алгоритмы,
т.е. знание алгоритмов, структур данных, паттернов итд итп всяких intermediate и advanced программных штук — что начинающий поймет после изучения базового синтаксиса, а также что не мало важно хороший уровень математики (матан, дискретка, линейная алгебра — 3 в особенности, ну и далее статистика, итд итп, т.е. по специализации)
c) и затем перевод это все в синтаксис, язык программирования, что со знанием базы уже становится очень просто
PPS проблема что пункт б) практически нигде не отмечают, особенно в курсах для начинающих, и в основном преподают тоже качественно учителя в ВУЗах, т.е. люди, кот. реально умеют программировать и писали, код, а не те, кто выучил синтаксис, а реальной практикой на профессиональном уровне никогда не занимались в своем большинстве