Как стать программистом — первые шаги

Как стать программистом без курсов и вуза – имея только желание и интернет.

Всем доброго и позитивного времени суток!

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

Итак, как же стать программистом, зарабатывать 500к в наносек и начать жить?

Ответ очень прост — надо писать. Много писать.

Как стать программистом — первые шаги

Ладно, не говорите мне, что я троль. Давайте подробнее и по порядку.

Все начинается с намерения. Важно решить, что Вы точно хотите стать на этот путь и посвятить какое-то время в своей жизни этому ремеслу. Это действительно ремесло — разработчик использует мозг и руки, чтобы крафтить код. Вначале плохой, потом чуть-чуть лучше, потом еще, еще и так до бесконечности, со временем улучшая свой скилл. Первое время учиться надо много, переваривать большое количество информации, чтобы начать понимать, как вся эта штука работает. Самое важное — понять принципы и логику того, что стоит за тем, что принято называть программированием. А они очень простые. Конечно, senior vice president of Hardware Technologies at Apple со мной не согласится и отчасти будет прав. Однако базовые принципы, на которые все нанизывается — действительно очень просты.

По сути он один.

Дай компьютеру команду.

Он ее выполнит.

Как стать программистом — первые шаги

Тут меня, наверное, обвинят, что я все слишком упрощаю. И да, и нет.

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

Звучит как плохая новость.

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

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

Давайте рассмотрим на примере.

В разработке есть традиция — начинать изучения языка с вывода фразы «Привет, Мир!» в консоль. Какую бы книгу, язык, таториал вы не взяли — с большой долей вероятности там будет рассказываться, как сделать именно это. Я предполагаю, что так сложилось, тк это самая простая операция, которая дает видимый результат, а именно печатает строчку. Впервые она была использована в книге A Tutorial Introduction to the Programming Language B за авторством Brian Kernighan. А еще команда печати становится лучшим другом разработчика в начале пути, тк помогает дебажить.

Пример вывода «Привет, Мир» на языке JavaScript выглядит так

console.log("Привет, Мир!")

После этого программе напишет в консоль "Привет, Мир! ”.

Чтобы не верить мне на слово, вы можете открыть любимый Chrome, консоль разработчика, выбрать там Сonsole и написать

Как стать программистом — первые шаги

Если нажать enter, то выглядеть будет так

Как стать программистом — первые шаги

Мне в начале пути был непонятен смысл этой процедуры. «Привет, мир»? Что это, зачем, почему, wtf? Ну, написало оно, и чего?

Давайте посмотрим другой пример.

Скажем, что если мы напишем программу, которая будет выбирать случайным образом, что сегодня будет на ужин?

Наша программа будет состоять из следующих команд и шагов

  • Создай пул возможных блюд
  • Выбери случайное блюдо
  • Покажи мне сегодняшнее блюдо

Открываем уже знакомую консоль хрома и пишем

const dishes = ["Картоха", "Рис", "Греча"]

Первая команда дана. Здесь создается массив блюд. Массив — это список объектов. Из массива можно доставать объект по индексу в массиве, где первый объект имеет индекс 0. Так, чтобы получить блюдо с индексом 0, мы пишем dishes[0] и получаем на выходе нашу любимую картоху. Пишем 1 — рис. 2 — греча.

Пул готов.

Теперь давайте выберем случайное блюдо.

const randomDish = Math.floor(Math.random() * 3)

Что здесь происходит?

Мы создаем переменную. Переменная — это коробочка, которая может хранить какие-то данные. У каждой коробочки есть имя. Мы же хотим быстро находить нужную коробочку, чтобы доставать данные, которые нужны именно в текущий момент? Мы создали переменную с названием «randomDish».

Создав переменную «randomDish», мы кладем в нее данные. А именно — случайное число от 0 до 3. У нас же всего 3 блюда на выбор, верно ?

Теперь последний шаг — показ случайного блюда.

alert(dishes[randomDish])

Знакомьтесь, это — функция alert! Она есть во всех браузерах и она очень простая — после ее вызова показывается системное окно с текстом. Если посмотреть документацию (призываю не верить мне на слово!), то вы увидите, что аргументом функции является значение, которое называется message — это то, что будет написано внутри окна.

Окей, давайте тестировать.

Вводим каждую команду и нажимаем enter после каждой.

Как стать программистом — первые шаги
Как стать программистом — первые шаги

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

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

Хорошо, у нас есть намерение, у нас есть понимание принципа.

Теперь вопрос — с чего же начать ?

Надо решить, какие программы хочется писать.

Кому-то нравится игры. Кому-то нравится мобильные приложения — это ведь очень прикольно, иметь возможность потыкать пальцем результат своего труда. А кто-то мечтает сделать доску объявлений о продаже котиков.

Выберите, что нравится именно вам. Придумайте программу.

Дальше, надо разбить ее на части. На проф жаргоне это называется «декомпозиция».

Разбили на части, после этого начинаем разбираться, как писать.

Здесь помогут 2 вещи — знание английского языка и умение пользоваться Google.

Как стать программистом — первые шаги

Без шуток, это 2 навыка, на котором зиждется вся профессия. Первый — потому что на английском наибольшее кол-во полезной информации по IT. Как бы не был прекрасен наш великий и могучий, увы, если вбить описание проблемы в Google, то результатов на русском языке будет на порядки меньше, чем на английском. Переведённых книг значительно меньше, плюс качество перевода может хромать. А про документацию я совсем молчу.

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

Если ничего не находится, попробуйте переформулировать вопрос.

Если и после этого ответ на вопрос не находится, то стоит зарегистрироваться на StackOverflow. Там сидят тысячи людей, которые целыми дням мониторят и ждут, что им зададут вопрос, они смогут блеснуть знаниями и ответить автору. Автору польза, ответившему — карма. Win win. Правда, задать такой вопрос на старте, ответа на которого там еще нет — это надо постараться.

Как стать программистом — первые шаги

Есть много шуток и мемов про SO. Про программистов, которые копируют код не зная, как он работает, путая ответ и вопрос, а потом оно уходит в прод.

В начале пути — это абсолютно нормально.

Думая, какую программу хотите написать, вспомните целеполагание SMART — specific, measurable, attainable, relevant, time-bound.

Первые три критерия будут как нельзя кстати.

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

Разбиваем ее на части и получается следующее

  • Сверстать форму ввода города
  • Сверстать кнопку подтверждения
  • По нажатию на кнопку отправить запрос
  • Показать что приложение грузится
  • Получить ответ
  • Вывести результат на экран

Открываем Google

Как стать программистом — первые шаги

Видим кучу материалов и разбираемся, пока не получится measurable результата. Повторяем для каждого пункта.

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

Начните с изучения любого языка, чтобы понять основы — переменные, массивы, словари, функции, циклы, условия.

Хороший ресурс для старта — codeacademy. com

Я начинал на нем учиться в 2015, когда он только стартовал, а в 2021 году его купили за $0.5 млрд. Это чудесный ресурс, где в формате самообучения можно познакомиться с основами основных языков.

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

Еще есть khanacademy. Coursera. Udemy. Udacity.

Для книг рекомендую купить подписку O’Really Media — там есть вообще все.

Не брезгуйте туториалами. Например, если вбить в Google «tutorial to do list». Будет куча материалов, которые по шагам описывают, как сделать планировщик.

Как только напишите первую программу — пишите следующую. Постепенно увеличивайте сложность и добавляйте фичи, которые не делали раньше.

Дальше можно сходить на какую-нибудь фриланс биржу, сделать пару проектов. А потом уже и резюме написать со всеми сделанными проектами и пойти искать вакансию junior developer. Каков сейчас спрос на IT, думаю, рассказывать не мне вам.

Главное — быть голодным до знаний. Как только освоите основы и определитесь с языком, можно поискать «languagename roadmap»

Например, по гошке находится гитхаб с замечательной картинкой

Как стать программистом — первые шаги

Пишите, учитесь и еще раз пишите и учитесь. А потом повторяйте. И все у вас будет хорошо.

Всех обнимаю, удачи!

3939
59 комментариев

Програминг должен быть интересным занятием. Многие выгорают, просто думая, что это круто и можно на этом много денег поднять. А когда, сталкиваются с многочасовым колупанием кода, вся романтика разом отпадает )

20
Ответить

Я думал что в многочасовом колупание и заключается вся романтика.

12
Ответить

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

Ответить

Комментарий недоступен

Ответить

Как все просто у Автора
Откуда вообще чел может узнать про слово то "консоль". Да еще найти в хроме? А названия переменных? тоже приснится должны
Все эти рассказы про IT одной картинкой
Чтобы просто понять на чем писать, уже надо начать разбираться.

10
Ответить

Понятное дело, что, как и в любой профессии, стать программистом - это очень не просто

4
Ответить

Не во всех языках первый элемент массива находится под индексом 0 (ноль).

6
Ответить