55

Всем вITшникам посвящается

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

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

Как люди себе это представляют - "Сейчас я пробегусь (*)> по Пикабу (и другим ресурсам), соберу с десяток отзывов, пойду на курсы "Как входить в отдел ITшников с двух ног", потом мне сразу предложат работу и я стану успешным, с повёрнутой жизнью  (в нужное русло, конечно)".

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

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

Чтоб было яснее, возьмем примеры и аналогии (без них никуда, сори).
Чтобы нарисовать двумерный домик с трубой, окошком, крылечком и яблоней с яблоками справа от домика много навыков не надо. НО есть нюансы:
- Надо понимать, что сейчас для бизнеса нужен именно этот рисунок и именно в таком исполнении, он будет полезен/ решит определенную проблему. Нужно обосновать эту позицию перед многими людьми (навыки анализа информации и взаимодействия с людьми).
- К рисунку должны быть составлены и выполнены требования (масштаб, какие объекты должны быть на нем, требования к каждому элементу рисунка - толщине линий, положение объектов относительно друг друга, цветам и тд).
- Рисунок должен быть выполнен с использованием определенной технологии, исходя из доступных бизнесу ресурсов. 
- Потом уже на последнем этапе ты шлёпнешь свой кривой-косой рисунок домика (который перерисуешь 100500 раз, пока не получится настолько нормально, чтоб всех устроило).

Курсы учат "как рисовать домик".
Курсы не говорят зачем он нужен, курсы не расширяют кругозор в той сфере бизнеса, задачи которого человек будет потом выполнять. Они просто научат рисовать домик. Вы научитесь ставить карандаш на бумагу или "как правильно открыть фотошоп и выбрать кисточку для рисования домика". Окей, домик рисовать надо уметь, ведь, в конце концов, его нарисовать надо будет. Без умения рисовать домик (выполнять запросы к серверу, взаимодействовать с api, да даже просто писать классы, методы, объявлять переменные и функции, или использовать любую другую языковую конструкцию) вы вообще никому не нужны будете, т.к. это совсем БАЗА. Именно эту базу вам предложат курсы.

Чего они не предложат:
Как понять, что для "рисования домика для заказчика" нужен javascript, а не python или C#.
Не дадут знаний в предметной области бизнеса, где вы будете работать.
Не дадут гибкость мышления для поиска ошибок в вашем решении и его дальнейшем улучшении, чтобы решить поставленную задачу  - "здесь нужен не домик, а трактор, не яблоня, а чистое поле, или вообще тут не рисунок нужен, а таблица с парой диаграмм и надпись на китайском".

Поэтому
Неправильно ставить себе задачу - "я хочу освоить python/ js/ java/ c#/ c++ и устроиться на работу".
Надо спросить - в какой сфере я хочу работать и какие языки используются для решения задач в ней. Правильно составленный вопрос, как мы помним, уже содержит в себе ответ.
"Я хочу участвовать в разработке фронтенда или серверной части интернет-магазина". Окей, изучаем какие инструменты используются для разработки сайтов, как работают сайты, как работает передача данных по сети от пользователя к серверу, как работает движок браузера, который твой сайт будет рисовать, как работает сервер, какие бывают базы данных и как с ними работать, и тд. Это малая часть того, что придётся узнать.
"Я хочу разрабатывать встроенное ПО для холодильного оборудования".
"Я хочу разрабатывать систему визуализации физических процессов".
"Я хочу разрабатывать игры для платформы андроид или ios".
И т.д. Ставим вопрос, содержащий ваше желание и область применения, изучаем требования к специалистам в этой области, идём подтягивать свои умения рисовать домики и определять места, где их не хватает.

Почему "вайтишников" много, а программистов мало?
Попробуйте ежедневно в течение года по +/- 5 часов (в основном) ежедневно анализировать самого себя и переписывать одно и то же на тему - почему домик перестал рисоваться, почему "ручка не пишет", почему "карандашом ведешь, а след не остаётся", почему нарисованный домик на ваших глазах начал разваливаться, почему при попадании на рисунок воздуха из кондиционера домик превращается в кактус, при попадании солнечного света превращается в арбуз, а будучи неосвещенным начинает мягко пульсировать пурпурным цветом, поедая бумагу вокруг себя и стол заодно. При этом тебе надо решить - нужно ли больше домиков в других местах и сколько именно, нужны ли около каждого домика яблони или стоит нарисовать заборы. При этом, например, вокруг тебя бегает начальник с криком "10 домиков на той улице нужны были вчера", дизайнер плачет, что на рисунке от прошлой недели расстояние между домиком и яблоней больше необходимого на 1.5 метра и яблоня, после обновлений, оказалась слева, а не справа от домика, а тимлид спрашивает чей домик не соответствует размеру и воткнулся посреди улицы, из-за чего другие домики кто попадал, а кто покосился. Если у тебя в подчинении есть и другие "художники", то еще и периодически контролировать соответствие их домиков необходимому качеству и количеству. До должностей, когда надо будет определять "что именно рисовать, чтобы бизнесу стало лучше/ принесло много денег", "что будет рисовать этот отдел", "принесло ли рисование желаемый результат" из рисовальщиков домиков переходят далеко не все. Так называемое "выгорание" наступает рано у большого числа людей. Помимо прочего - рисовать домики одновременно с вами учится оч много людей и надо быть конкурентным по отношению к ним. Знать не только как рисовать домики, а еще и, например, как рисовать здания в целом, животных, владеть знаниями анатомии человека и основами академического рисунка. Выделяться из общего числа соискателей, как и везде. И не отвлекаться на мысли о том, что ты вообще ничего не знаешь, домики рисуешь как неуклюжий первоклассник, а все вокруг кажутся умнее тебя, тк не о рисовании домиков разговаривают, а о какой-нибудь воронке продаж для сайта о каркасных дачных домах и необходимости переезда сервера в облако.

Программирование - больше про анализ информации, нахождение закономерностей между частями и построение/ настройка взаимодействия между ними по определенным алгоритмам. Как вы в детстве узнавали, что чтобы пойти в магазин надо:
Понять какие продукты (и не только съедобные вещи) нужны - Подготовить деньги в необходимом количестве - Добраться до магазина - Набрать предметов по списку (плюс непредвиденные, которые захотелось, т.е. в предыдущих пунктах надо было предусмотреть сумку побольше и денег побольше) - Провзаимодействовать с системой оплаты (поговорить с кассиром на нужном языке, оплатить определенным способом свои товары - налично или картой определенной платёжной системы) - Упаковать покупки определенным образом, чтобы их транспортировать до дома или места назначения - Переместить их домой, не потеряв и не сломав - Дома их распаковать, разложить в холодильнике или на полках, и соблюсти необходимые условия хранения для каждого отдельного продукта, чтобы он не отсырел и не просыпался, не подвергался огню.
Это тоже алгоритм. Их вы каждый день реализуете, не особо задумываясь, при чем в самых разных областях. Вот находить их и составлять, описывать - тоже часть работы программиста.
Сказать определенному браузеру(chrome, ff, edge, safari, ie), что вот в этом месте надо определенным образом нарисовать определенного размера и определенного стиля форму, используя определенным образом полученные с определенного сервера правильные данные с ее содержанием, а полученные от пользователя данные надо провалидировать, определенным образом отправить на тот же самый сервер и там определенным образом сохранить, чтобы потом их использовать в системе авторизации - тоже нужны навыки. Нужно описать каждый шаг, каждый нюанс, предусмотреть большое количество всяких "если" на каждый чих. Дать каждому исполнителю на каждом этапе всю информацию что и в какой последовательности ему надо сделать или где посмотреть как сделать, и при этом не дать лишней информации, не добавлять лишнего функционала, использовать эффективные инструменты для каждой задачи, видеть где есть шаблоны для упрощения работы, и крч еще много нюансов.

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

0
Автор поста оценил этот комментарий

Дайте подсказку - хочу питон на базовом уровне поднять,а?

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

На базовом это на каком? Базовый уровень - это когда тебе всё равно какой ЯП используется. По высокоуровневым языкам там различий не особо много - типы данных, логические операторы, условные операторы, структуры данных, операции с ними и тд везде примерно одинаковы. В большинстве языков ты сможешь сказать, что у тебя есть целое число 5, ты хочешь сделать так, чтобы компьютер запомнил его в переменной с названием А, мог организовать хранение таких переменных в каком либо виде - в массиве, списке, как свойство объекта, если язык поддерживает объекты и тд. Ты сможешь делать с ним какие-либо операции, средствами языка - складывать, присваивать, отправлять в выводе на экран или с помощью протоколов передать по сети. Вопрос - зачем тебе это нужно =)

показать ответы
Автор поста оценил этот комментарий

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

И да, я в АйТи шёл в том числе и чтобы с заказчиками не общаться =)

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Я больше про осознанность подхода к делу, а там, по мне, знания не будут бесполезны. Если на каждом этапе человек будет понимать почему и как мы пришли к текущему решению, ему будет проще дальше разобраться. Не просто - "мы берем js, потому что так надо, делаем вот так", а "мы берем js потому что под капотом браузера стоит движок Gecko, который правильно поймёт js-код и на финальном этапе CRP преобразует его в пиксели". Да, для совсем новичка это будет не самая доступная информация, но он поймёт причинно-следственную связь "почему так".

показать ответы
2
Автор поста оценил этот комментарий

Наконец то обличающий пост показывающий реальность!) Спасибо тс. Только скажи почему ты так аналитиков не любишь?) Часть их работы приписал программистам так ещё и в списке профессий даже не упомянул)

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Я всех люблю, просто на второй половине поста сосед решил, что сверлить/стучать надо не просто со вкусом, но и с огоньком, и достал перфоратор. Получилось чуть скомкано, но, надеюсь, хоть мысль не потерялась. Аналитиков люблю и сам посматривал в их сторону в плане дальнейшего развития, а не упомянул много что и кого, но это уже сам себя по рукам стучал, чтоб не превращать полотно текста в месиво из мыслей и образов, а просто покороче и подоступнее донести мысль.
3
Автор поста оценил этот комментарий
Как понять, что для "рисования домика для заказчика" нужен javascript, а не python или C#.

А, собственно, нахуя это знать? Большинство всё равно будет работать в своей сфере и выполнять уже проработанные задачи. И кто там заказчик и что он хочет - глубоко похуй. Есть задача - делай. С заказчиками уже другие люди общаются на других должностях с другим набором навыков.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

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

показать ответы
5
Автор поста оценил этот комментарий
Надо спросить - в какой сфере я хочу работать и какие языки используются для решения задач в ней.

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

"Учить язык" - это "учиться использовать перфоратор".

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Всё так.

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества