Найти в Дзене

Программирование с нуля — как не попасть в ловушку

В заметке мы рассматриваем простой способ влиться в IT-мир как разработчик, изучив подход «без кода» — популярный сейчас тренд разработки в системах No-code и Low-code.

Читайте далее и, возможно, это сэкономит ваше время, нервы и деньги

Как люди приходят к этому — работают где хотят и сколько хотят?
Как люди приходят к этому — работают где хотят и сколько хотят?

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

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

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

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

ВЫБЕРИТЕ КОНКРЕТНЫЙ ПУТЬ, ИМЕЯ ДОСТИЖИМУЮ ЦЕЛЬ ПО ЕГО МОНЕТИЗАЦИИ

Опыт работы с гитхабом, знание трёх столпов ООП и умение написать алгоритм на каком-либо языке программирования не делает из вас программиста. Однако, это то, с чего обычно начинается ваше обучение. Вас учат всему этому, якобы, необходимому , а по окончании курса вы не можете найти работу даже стажером. Если вы вообще дойдете до конца курса, на что способны от 3 до 10% курсантов, если вы не знали.

Тем не менее, вы можете заняться другим направлением в ИТ, реализовать себя как аналитик, консультант, проектировщик интерфейсов, специалист UI-UX или другой специалист, кого часто ищут на рынке труда. Это больше половины рынка ИТ, но курсов про это нет. Почему? Да потому что невозможно научить тому складу ума, который нужен в этих профессиях.

На всех курсах, рекламой которых пестрит интернет, вас учат конкретным инструментам и технологиям, будь то питон, java, html или различные платформы. Вас не научат мыслить как ИТ-специалист, потому что тот, кто вас учит, в лучшем случае очень далёк от вас по мировосприятию. В худшем случае — он просто читает вам лекцию, не умея ничего делать сам.

Лекции и учебные занятия не заменят вам практику — сделайте что-то на продажу своими руками
Лекции и учебные занятия не заменят вам практику — сделайте что-то на продажу своими руками
Мой самый молодой коллега пришел к нам в ИТ меньше полугода назад, в 24 года, без опыта программирования. Сейчас он получает зарплату на уровне java-программиста с 8-летним стажем в нашем регионе, участвуя в очень серьезных проектах. Он заставляет готовые программы делать полезные вещи. Да, ему приходится программировать простейшие конструкции, такие как ветвления и циклы, — этому он научился у нас за испытательный срок. У него не программистский склад ума, но он умеет соображать, что дает ему достойное место в индустрии.

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

Интеграл, как любой конструктор, помогает сократить трудозатраты
Интеграл, как любой конструктор, помогает сократить трудозатраты

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

Как только у вас появится понимание ИТ-проекта изнутри, вас перестанут «зомбировать» слова вроде Python, Data science, Big data и им подобные. Я много работаю с начинающими программистами, и у всех у них каша в голове — не видя общую картину, они мечутся в выборе языков и технологий, не продвигаясь вперед ни на шаг. Необходимо внести ясность в их видение и обозначить цель.

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

ПРОТЕСТИРУЙТЕ СЕБЯ, СПОСОБНЫ ЛИ ВЫ В ПРИНЦИПЕ СТАТЬ ПРОГРАММИСТОМ

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

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

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

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

В Интеграле используется квинтетная модель данных (QDM) и метод эволюционной разработки — выдаем быстрый результат и затем улучшаем его
В Интеграле используется квинтетная модель данных (QDM) и метод эволюционной разработки — выдаем быстрый результат и затем улучшаем его

УСПЕХ — КОГДА ВЫ ВИДИТЕ СИЮМИНУТНУЮ ЦЕННОСТЬ В ТОМ, ЧТО ВЫ УМЕЕТЕ

Вы не сможете продать написанный вами код хрестоматийного решения дифференциальных уравнений или ваше умение пользоваться Spring Boot. Так же мало заказчику будет интересен ваш демо-бот на Python или прекрасный прототип в Figma. Заказчик нуждается в простейшем, но индивидуальном сервисе для ведения его бизнеса. Он платит за это деньги, и эти деньги получаете вы, если умеете выполнять заказную разработку.

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

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

Вы немедленно обнаружите огромный пласт того, о чем вы и не подозревали: от системы доступов и безопасности до написания тест-планов и таинственных «глюков» в поведении программ. Основное открытие — нужно обдумывать и кропотливо делать бесконечное количество мелочей, нудных, совершенно неинтересных и неоправданно сложных.

Быстродействие приложения — проблема, с которой вы рано или поздно столкнетесь
Быстродействие приложения — проблема, с которой вы рано или поздно столкнетесь
Я понимаю, как всё сделано в этом приложении, но никогда не смогу сам осилить подобное. Я побеждал на программистской олимпиаде, но вот это ваше прикладное программирование — решительно не моя тема.

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

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