Как перейти из инженера в программисты?
=========================================

 Приветствую всех.  
  

Сначала расскажу немного о себе и о том как я пришел к вопросу в заголовке.  
  

Мне 32 года. По образованию я инженер по холодильной технике и кондиционированию. Работаю с 4 курса (стаж на сегодняшний день порядка 12 лет) в строительстве. бОльшую часть времени занимался проектированием системы отопления, вентиляции, кондиционирования. Последние два года занимаюсь водой и канализацией + выступаю как ГИП (главный инженер проектов) по части кабельных разделов. Так же работал менеджером по развитию продуктов, инженером по тех. поддержке продуктов. Имею опыт в руководстве группой инженеров.  
  

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

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

Вообще все началось с установки на компьютер линукса пару недель назад (давно хотел попробовать что это и как этим пользоваться). Линукс понравился, но пользоваться я им не стану конечно :).  
  

В общем меня осенило меня конкретно. А почему бы не попробовать себя в программировании. Склонности к IT у меня всегда были:  

- делал простенькие сайты, запускал на сервере все это;  

- написал пару расчетных программ для подбора оборудования (если конечно формулы в excel’e и простенькие команды в visual basic можно назвать программированием).  
  

Подскажите в какой области программирования (да и IT вообще) могут пригодится мои знания? В какую сторону стоит смотреть? Хочется не просто клепать сайты, а заниматься чем то более менее серьезным. На сколько реально влезть в серьезное программирование, при моих вводных?  
  

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

Получилось несколько сумбурно, но как есть. 

> Из того, что мне кажется наиболее реальным - это программирование контроллеров для инженерных систем зданий

  

Замечательное решение, даже добавить нечего.  

Главное, в веб не идите. 

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

Чтобы представить масштаб стоящей перед вами проблемы, просто представьте, что к вам пришёл паренёк и сказал что-то вроде:  

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

Можно, но не просто.  

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

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

Если оно вам таки надо.  

1)Очень сильно советую рассмотреть карьерный путь менеджера. Это параллельная ветка.  

2)Тестирование. Ещё одна параллельная ветка с более простым порогом входа. Но тем не менее там развиваться есть куда и вверх и вширь и деньги там есть.  

3)Пробуйте вечерами писать под смартфон (тот что у вас уже есть). Те приложения что были бы вам интересны. Покачайтесь пол-года и попробуйте постучаться по конторам в качестве начинающего мобайл-разработчика. На любые деньги. Поработаете годик, оперитесь и уже пойдёте искать нормальную работу как нормальный разработчик.  
  

как-то так. 

> На сколько реально влезть в серьезное программирование

 ***влезть***, можно куда угодно.. но частенько, для этого, *надо упереться рогом (с) народное?*  
  

ps 
> В принципе готов к плавному переходу из одной области в другую в течении пары лет.

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

.. что бы вы вообще смогли 
> из одной области в другую

, надо 
> в течении пары лет

 все.. ВСЕ свободное (и не только) время, посвятить программированию вообще, и вгрызанию в конкретную предметную область в частности 

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

Я немного скажу вам свой путь в этой сфере.  

1. С самого начала хотел быть программистом. Вот прям со школы, с 7-го класса. Раньше не получилось - персоналок ещё не было, поэтому начинал на терминалах. Но это не критично. Поэтому и в 30 лет, думаю, можно и не надо себе запрещать. Пластика мозга.  

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

3. Бесчисленное количество попыток заставить работать идею в виде программы. Иногда это не 1-2 попытки. 20, 30 и больше. Сутки, двое, неделю, чтобы заставить "это" работать. И это далеко не предел.  

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

5. А вот теперь самое главное - работа программистом в "чистом виде" называется "кодировщик". И это вообще не интересное занятие. Даже низкоквалифицированное. Поэтому, самое интересно в программирование - личное общение с людьми других профессий. Вот представьте себе, что квалифицированный спец или даже ГИП рассказывает вам как что-то проектируется и строится! Да ни один препод в институте вам так интересно и с энтузиазмом не расскажет как идёт этот процесс. А вы слушаете, мотаете на ус и размышляете, что вы можете для этого человека сделать, чтобы автоматизировать его деятельность (п.2 и 4). Так сказать ищете своё место в этой работе. Фактически, имея одну профессию программиста можно познакомится с большим количеством разных профессий и поучаствовать в них. И на этом уровне недостатка в работе вроде как и не будет больше. Но тут надо решить для себя, что вы готовы к такой смене профессий, но к ней люди идут годами и таких людей не так уж много.  
  

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

Скажу вам пару секретов из опыта:  
  

1. Нет хорошего или плохого кода (типа "говнокод"). Если код работает и выполняет свою задачу - он хороший. Остальные идут лесом. Можно спросить коллег, чтобы они вам подсказали, как можно было бы решить задачу проще, но их советами можно игнорировать, т.к. они не живут в контексте вашей задачи и именно вы несёте ответственность, что в вашей программе окажется тот или иной кусок кода. Поэтому не вставляйте в программу код, который вы не понимаете.  

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

3. Ведите журнал. Записывайте, что получилось, потом перечитывайте. Начните с простого, "написал программу Hello World на C#" и сделал это следующим образом - скрин запуска Visual Sudio, создание нового класса, указание места, куда вписал текст "Hello World". Потом через пару дней будете делать другую программу будете быстрее вспоминать как вы начинали первую программу. Лично я себе стал делать такие заметки лет 8 назад. И писать доки в своим программам. Очень помогает, когда выдёргивают из контекста на полгода, потом просят доработать.  
  

У меня тоже получилось несколько сумбурно, но как есть. )))  
  

P.S.  

> программирование контроллеров для инженерных систем зданий

 - с моей точки зрения отличается от "обычного" программирования инструментами разработки и возможностями отладки и имитации тестовой среды. Поэтому с контроллерами - это лучше после некоторого опыта программирования. Хотя само программирование контроллеров может быть и проще чем обычное программирование под Windows/Linux. 

 Контроллеры - то, что надо. Codesys (IL не надо, ST, CFC, SFC; можно просмотреть LD и FBD) и какие-нибудь SCADA. 

 Самый простой вариант попробовать себя на поддержке. Я сам из стсадминов ушел. Для разрабов требования высоки даже для джуна. В нашей компании постоянно требуются сотрудники. Для Москвы Воронежа и Саратова всегда есть предложения. 

[Engineer\_R410a](http://toster.ru/user/Engineer_R410a)   
  

Я как-то уже отвечал на подобный вопрос. Там входные условия были примерно как у вас. [Смотрим тут](https://toster.ru/q/471350#answer_1111675)