Всем привет! Пилотная статья на наболевшую тему.
Учиться ли на программиста?
Много ли зарабатывают программисты?
А как стать программистом?
Такие вопросы прилетают пачками, от молодых людей и людей уже с большим жизненным опытом.
Ответить на эти вопросы можно коротко и грубо:
- Учиться ли на программиста? - Нет.
- Много ли зарабатывают программисты? - Нет.
- А как стать программистом? - Никак.
Почему же так грубо и коротко? Разберем вопросы подробнее и дадим развернутый ответ на каждый.
*Наливаю кружку горячего кофе, приступаю*
И так, разберем первый вопрос, самый популярный и самый глупый на мой взгляд: "Учиться ли на программиста?";
Почему я его считаю глупым? Рассмотрим мой жизненный пример.
В далеком 2003 году, родители купили компьютер, я увидел впервые компьютерные игры, стратегии, Warcraft 3, GTA Vice City и т.д
Мне очень хотелось поиграть в игры, но папа не торопился звать знакомого "айтишника", что бы тот подключил компьютер.
Под угрозой потери компьютера и ремня, отец дал добро на то, что бы я собрал его сам.
Мне было 8 лет, был опыт подключения PS и прочих приставок к телевизору.
За короткое время я подключил все провода и нажал заветную кнопку.
Компьютер включился.
Спустя время, на компьютере "полетела" Винда.
Первый раз её восстановил мой дядя показав мне, как это делать.
Во второй раз, я уже сам её восстановил.
К чему эта история?
Я уже в детстве интересовался компьютерами, в 12 лет открыл для себя консольные команды и VBS.
В 14 лет я уже игрался с Basic.
В 15 лет я познакомился с С++.
В 16 лет я уже увлекся Pascal/Delphi(С++ для меня оказался слишком сложным)
И нет, в свои 24 года я не профессиональный программист, который зарабатывает 150 000$ в год.
Пока я увлекался программированием, я играл в компьютерные игры, в основном MMORPG, гулял, общался, попадал в передряги, занимался спортом и учился на 2-ки, мой школьный аттестат просто ужасен.
Для тех, кто спрашивает: "Учиться ли на программиста?", должны сами себе ответить: "А хочу ли я быть программистом?".
Если до 16 лет ты никогда не интересовался программированием или IT, то наверное поступать в колледж/университет Вам нужно точно не на ITшника.
- Программирование не принесет Вам деньги, только потому, что у Вас диплом программиста.
- Программирование не принесет Вам удовольствие, если Вы не понимаете, что Вы делете (история про CTRL+C/CTRL+V программистов).
- Программист вечно в борьбе, рынок растет, конкуренция высокая, а сильных программистов мало.
Учиться ли на программиста? - Нет. Не учитесь, за внешне красивым сайтом, стоит тяжелая работа программистов и дизайнеров.
Учиться ли на программиста? - Нет. Не учитесь, за любой программой, которая экономит тысячи часов офисного сотрудника, стоит целая команда разработчиков, которые порой не спали сутками из-за критического бага.
Много ли зарабатывают программисты?
Для начала мое личное мнение.
Программист зарабатывает столько, сколько стоит его время.
А стоимость его времени это совокупность опыта, навыков, знания и портфолио.
Сколько может зарабатывать студент из провинциального города? А выпускник? Столько, сколько стоит его время.
Серьезно, если Вы учились по методичкам и лабораторным в ВУЗе или СУЗе, в провинциальном город %CityName% Ваш доход будет очень низким. Программировать нужно во время учебы и после учебы, программирование должно стать Вашим Main - хобби, вы должны мыслить и думать, как программист.
Вы должны развиваться.
Да-да, развиваться, вчера был популярен YII2, а завтра уже что-то новое на основе новой технологии, а вы не готовы.
Вчера вы писали программы, как учили в ВУЗе, СУЗе, а сегодня уже надо знать паттерны проектирования MVC, MVM,MVVM, обязательно владеть WinForms и WPF, уметь писать свои компоненты.
Нехило так? А оно так и есть, технологии развиваются, рынок развивается, а Вас всегда можно заменить более талантливым программистом, который знает новые технологии.
Программист зарабатывает столько, сколько стоит его время, а рынок уже решает, стоят ли его услуги столько или нет.
Теперь обратим внимание на реальность рынка в России, посмотрим сколько стоит C# программист.
Верить ли этим зарплатам? Да им верить можно, если Вы живете в развивающимся регионе.
В провинции все хуже, зарплаты от 12 тысяч до 35 тысяч рублей в месяц это без учета вычета НДФЛ.
Требования к сожалению тоже не соответствуют порой зарплате, вот пример требований к программисту с зарплатой 300$(приблизительно 18 000 - 22 000р).
Требования основные:
- знание .NET Framework и языка C# (организация памяти, обработка исключений, работа с потоками, базовые типы, NUnit, MSTest, работа с XML и т.д.) - Выпускник ВУЗа этого не может знать, т.к в многих ВУЗах этому не учат.
- знание и понимание принципов ООП, шаблонов проектирования - Шаблоны проектирование и понимание ООП, это база, это нужно знать.
- знание ADO.NET, ORM (главное понимать основные принципы работы с ORM, желательно знание BLToolkit), WinForms, WCF, Windows service.
Тут без комментариев. - знание принципов работы с базами данных (MS SQL), языка запросов SQL, а также опыт оптимизации запросов.
А вот это должен знать каждый выпускник ВУЗа, СУЗа, MS SQL можно и дома поставить и научиться работать, SQL просто MUST HAVE. Многие используют объекты и модели, и чистый SQL - редко встречается уже в готовых проектах, но энивэй MUST HAVE. - умение читать и понимать технический английский.
Самое любимое. В основном базовые знания английского и словарный запас в 300-400 слов хватит с лихвой.
My english not perfect, but I can understend u and ur code. Go play CS:GO, RUSH B GUYS!
Stop... it's.. rly? Use fucking Dictionary and List pls! - опыт разработки ПО на .NET.
А вот тут не раскрыта тема сисе... тема опыта разработки. Готовьтесь предоставить Ваши проекты.
Моя оценка и мнение, это моя оценка и мнение. Другой программист может оценить по другому и это факт.
Повторюсь.
Я не сильный программист, максимум тяну до Middle C# Software Developer. Не могу назвать себя Junior, но и уверенным Middle разработчиком тоже.
А как стать программистом?
Как стать программистом... Сложный вопрос, давайте рассмотрим, а кто такой программист? И в чем различие между "Кодер" и "Программист".
В моем понимание программист это -
Кодер, который может писать код.
Инженер, который может проектировать, рассчитывать и прогнозировать.
т.е программист это и инженер, и кодер в одном лице. Человек, который большую часть времени может потратить на проектирование той или иной системы.
Так же в моем понимание кодер это -
Человек, который пишет программный код, ищет ошибки в коде и поддерживает продукт на основе уже готовой системы. Человек, который не проектирует сам.
И так, как же стать программистом?
Станьте сначала хорошим кодером, потом уже смотрите в сторону чина Программист.
Мое мнение может быть ошибочным, но многие коллеги согласятся, что порой "программисты" создают просто ужасные продукты, которые проще переписать, нежели поддерживать и дорабатывать.
System.Console.Writeline("Заключение");
Моя статья, это мое личное мнение, конечно нужно учиться и развиваться, но не стоит идти в IT сферу, если у Вас нет любви к этой сфере.
Тут огромные зарплаты только у профессионалов своего дела.
Тут успех только у тех, кто готов много работать.
Тут нету легких денег.