{"id":14275,"url":"\/distributions\/14275\/click?bit=1&hash=bccbaeb320d3784aa2d1badbee38ca8d11406e8938daaca7e74be177682eb28b","title":"\u041d\u0430 \u0447\u0451\u043c \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u044b \u0430\u0432\u0442\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f72066c6-8459-501b-aea6-770cd3ac60a6"}

6 ответов на «зачем мне учиться программировать» на личном примере

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

До 2015 года особого интереса к программированию не проявлял. Мне были интересны точные науки (математика, физика, химия), но что бы сесть и написать какую-то программу - нет, а зачем? На уроках по программированию делал смелый выбор в сторону NFS Underground, GTA Vice City и CS 1.6. Лабораторные работы по программированию в институте вряд ли можно считать серьезным опытом в ИТ.

Дело изменилось, когда появилась прикладная задача на первом месте работы. Нужно было сделать расчет в Matlab. Здесь то меня и зацепило. Можно не только делать расчеты, но и прикрутить интерфейс для управления параметрами - вау, а еще рядом построить графики и наглядно показать какая модель более эффективная.

Потом были пол года самостоятельного изучения Java. Почему именно Java? Конечно, можно рассказать байку, как я взвесил все за и против, опросил много людей, это был сложный путь; но нет, у нас же про личный опыт. Это была абсолютная случайность, рядом сидел коллега, который сказал попробуй пройти интерактивный курс по Java, учат с нуля. И я просто попробовал, затянуло. Изучил основы языка, алгоритмы, основы фреймворков и SQL, сделал несколько pet-projects.

Затем были два месяца провальных собеседований. К провалам научился относиться философски. Записывал вопросы, находил ответы, откликался на следующую вакансию. В результате получил оффер от небольшой веб-студии из Москвы, набирали стажеров на Java. Здесь стоит отметить, что мне очень повезло с наставником (СТО). Это был играющий тренер, который обладал обширными знаниями во всех направлениях веб-разработки. Многому меня научил, а главное, показал, что можно разбираться не только в одном фреймворке, а одновременно править код на фронте, бэкенде и в мобильном приложении. Чтобы не затягивать рассказ, далее были несколько позиций Java-разработчика в крупных интеграторах. Но всегда тянуло создать что-то свое, независимое. Увидели с Евгением восходящий тренд чат-ботов и основали агентство BotCreators.ru и компанию Искусство Автоматизации.

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

1. Отличать декларацию от реализации

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

Есть регламент / бизнес процесс, это лишь набор структурированных инструкций - что надо сделать. А есть execution этап, на котором описанные процессы выполняются. Для каждого из этапов (составления инструкций и их выполнения) существуют отдельные подходы для контроля качества. Особенно вдаваться в подробности не буду, статья про параллели, которые я обнаруживаю.

2. Решением может быть многоходовочка, а не сделай А->B->C и получи результат

Этот пункт до меня долго доходил. Как нам всем хочется - нажал на кнопку получил результат. И действительно это срабатывает на простых задачах. Но когда речь идет о задачах средней и высокой сложности, решить "в лоб" не всегда удается. Из компьютерного мира приходит аналогия с конечным автоматом. Автомат может приходить в целевое состояние через 50, а то и 100 переходных состояний. В задачах просчета вариантов, конечно, компьютер выигрывает у человека с большим отрывом. Но можно хотя бы взять на заметку и напоминать себе, что на пути из точки А в точку Б есть те самые переходные состояния, которые на данный момент трудно удержать в голове.

Так что смело могу заявить, программирование усложнило (в хорошем смысле) мое восприятие действительности. У этого есть оборотная сторона, но об этом в другой статье.

3. Чем меньше составных частей, тем ниже вероятность ошибки

Что в бизнесе, что в программировании прослеживается понятная аналогия: чем больше уровней абстракции, интеграций / контрагентов или подрядчиков, тем в геометрической прогрессии возрастает вероятность сбоя. Если в программировании нам на помощь приходят различные виды тестов, то в бизнесе - автоматизация, упрощение бизнес-процессов, резервирование исполнителей. Вспоминается фраза: самое плохое число для бизнеса это один; один клиент, один расчётный счет и т.д.

4. Где-то, кто-то уже решал твою задачу, погугли

За всю карьеру программиста я не задал ни одного вопроса ни на одном из форумов. Даже в далеком 2015 году, как-то находились ответы на любые вопросы. Пользовался в основном StackOverflow и SQL.ru (лютый в самом деле форум, где тебя сначала обложат матом и потом, может быть, помогут; поражала его токсичность, почему так / зачем?).

Можно было, конечно, писать по каждому вопросу на форум, но мне виделся более перспективным путь сбора и анализа информации, тем более по пути можно было натолкнуться на смежные темы и их заодно поресерчить.

Принцип "погугли" применим к любому вопросу, и пусть сначала ты вообще ничего не понимаешь в теме, достаточно пару часов провести за статьями и уже базовые представления получил (только нужно во время переключиться на реальные действия).

5. У одной задачи может быть множество решений

Допустим, перед нами стоит задача скачать файл по ссылке. Сколькими способами можно сделать? Сходу могу назвать 5 (cURL, браузером, скрипт на любом языке программирования, через Postman).

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

6. Ты не многопоточен, ты однопоточен, но выход есть

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

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

Здесь могла быть ссылка на онлайн курс по востребованной веб-профессии, но ее не будет. Только личный опыт :)

P.S. Ищу человека, который готов перекатиться в ИТ из смежной или не очень специальности. Тот кто понимает, что будет не просто, но готов идти до конца. Будем вместе делать из этого контент-шоу (из специалиста в области Х в бэкенд-разработчика). Пишите в личку в Telegram @B_Akhmad, одним сообщением, почему вам важно вкатиться в ИТ?

0
32 комментария
Написать комментарий...
Дмитрий Шеверев

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

Ответить
Развернуть ветку
Roma Mironov
Человек фактически становиться умнее, когда программирует и это влияет на многие сферы жизни.

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

Ответить
Развернуть ветку
Roma Mironov

Также неправильно ставлю окончания, напр "этот погода холодный", называю предметы какими то другими словами, обрываю предложения в самой середины. А если просто слово не могу подобрать, то в ход идут - "ну эта черная херня" когда имею в виду кофе с черной крышкой.
Причем мозг видит какой предмет я имею ввиду, но вот озвучить получается чаще всего неудачно.

Ответить
Развернуть ветку
Глеб Бут

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

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

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

Ответить
Развернуть ветку
Ахмад Боков
Автор

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

Ответить
Развернуть ветку
Roma Mironov

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

Ответить
Развернуть ветку
Андрей Шепс

многие программисты интроверты

Ответить
Развернуть ветку
Ware Wow

И что потом с этим делать? В что где когда играть?

Ответить
Развернуть ветку
Дмитрий Шеверев

Можете играть, а можете не играть :)

Ответить
Развернуть ветку
Андрей

Любая профессия, где есть творчество и решение задач, меняет мозг))
Проектирование меняет мозг.
Математика меняет мозг.
Психотерапия меняет мозг.
Адвокатура меняет мозг.
А становится человек умнее или нет - вопрос как оценивать)

Ответить
Развернуть ветку
Ахмад Боков
Автор

да, похоже нейросеть перестраивается, все верно

Ответить
Развернуть ветку
Кузьмич

Есть исследование на эту тему? Или так, мне показалось, что я стал умнее.

Ответить
Развернуть ветку
Олег Делинков

классная статья, спасибо автору

Ответить
Развернуть ветку
Владимир Воловцев

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

Ответить
Развернуть ветку

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

Развернуть ветку
Ахмад Боков
Автор

я использовал этот сервис https://javarush.ru/ -( не реклама)
попробуйте с бесплатных уроков, затягивает

Ответить
Развернуть ветку

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

Развернуть ветку
Ахмад Боков
Автор

Дерзайте , успехов !

Ответить
Развернуть ветку

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

Развернуть ветку
Ольга Кислица

Статья хорошо структурирована, удобна к прочтению.

Ответить
Развернуть ветку
Ахмад Боков
Автор

спасибо!

Ответить
Развернуть ветку
Юлия Боринских

хочу програмировать, даже училась в институте когда-то, забросила, теперь думаю заново начать(

Ответить
Развернуть ветку
Ахмад Боков
Автор

видел и в 45 вкатывались, никогда не поздно)

Ответить
Развернуть ветку
Денис

Какое направление в программировании Вы считаете сейчас актуальное? Если бы сейчас начинали изучать, то какое направление выбрали?

Ответить
Развернуть ветку
Anton S.

Я бы предложил идти в data science или machine learning(читай искусственный интеллект), остальное сейчас слишком забито конкурентами и не имеет перспектив, имхо.
Как раз питон для этого идеально подходит

Ответить
Развернуть ветку
Юрий Б.

Туда математику надо знать. Или уже не надо?

Ответить
Развернуть ветку
Anton S.

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

Ответить
Развернуть ветку
Ахмад Боков
Автор

Сейчас я бы начал с питона, чтобы познать самые самые азы. Плюс по нему очень много материалов в открытом доступе
Параллельно обязательно решал бы задачки по sql. Рекомендую сервис https://sql-ex.ru. Дальше 45й задачи можно не ходить, этого достаточно чтобы пройти собеседование

Ответить
Развернуть ветку
Борис Кокляев

Хорошая статья, это и правда очень полезно для общего развития, спасибо автору, мотивирует начать этим заняться

Ответить
Развернуть ветку
Ахмад Боков
Автор

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

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Ахмад Боков
Автор

И не надо, это не излечимо 😃

Ответить
Развернуть ветку
Богдан В.

Неплохой текст.;)
Занятно, что везде говорят про 5-7 максимальных параллельных объектах/процессах в оперативной памяти человека, тогда как в реальности 3-5, что вы на своём опыте и подтверждаете.

Ответить
Развернуть ветку
Евгений Кептюха

очень интересно было читать, все по порядку и очень доходчиво, спасибо

Ответить
Развернуть ветку
Ахмад Боков
Автор

спасибо !

Ответить
Развернуть ветку
29 комментариев
Раскрывать всегда