Как стать программистом: первые шаги
Содержание:
- Что с новыми технологиями?
- Менеджер по продажам (sales-менеджер)
- С чего начать?
- Как выглядит самый простой двоичный код
- SkillFactory
- HTML Academy
- Экзотика и минимализм: Raspberry Pi
- Базовые требования к профессионалу
- Contented
- Пробный период: программирование мое или не мое?
- Дизайнер (UI/UX)
- 15 лучших IT-школ онлайн, где обучат современным специальностям
- Front-end веб-разработчик
- Заменит ли AI разработчиков?
- Бизнес-аналитик
- Что еще влияет на зарплату программистов
Что с новыми технологиями?
Важная часть развития индустрии состоит в изобретении языков и фреймворков, позволяющих более оптимально решать те или иные задачи. В том числе с точки зрения утилизации золотых трудовых ресурсов. Но если Copilot и ему подобные становятся инструментами общего потребления, то все новые технологии будут вынуждены проходить “порог обучаемости”. Другими словами, пока нет достаточной кодобазы для обучения нейросети, технология не сможет рассчитывать на массовое применение. Уж не знаю хорошо это или плохо, но есть ощущение, что подобного рода инструменты могут серьезно замедлить прогресс в части вывода в массовое пользование новых языков программирования, а также добавления новых возможностей к существующим (java streams или let и const, упомянутые выше). Оно же касается фреймворков и библиотек.
Менеджер по продажам (sales-менеджер)
Чем занимается: Приводит в IT-компанию новых клиентов: обрабатывает лиды, сгенерированные маркетологами, и занимается самостоятельным поиском. Сопровождает действующих заказчиков: выясняет их потребности, мониторит ход проекта, будучи постоянно на связи с технической командой, следит за удовлетворенностью клиентов. Участвует в выставочных мероприятиях и организовывает активности для привлечения новых клиентов.
Типичный рабочий день: В основном – сплошная коммуникация: общение с потенциальными и текущими клиентами, смежными департаментами (маркетологи, финансисты, юристы), технической командой; документальное сопровождение сделок.
Кому подойдёт: Активным и предприимчивым людям, способным добиваться своего, убеждать и предугадывать желания других
Что нужно знать менеджеру по продажам в IT: Досконально разбираться в технологиях и процессе разработки, уметь рассказывать об их особенностях и преимуществах просто и понятно
Базовый уровень знаний:
- Знание основных этапов процесса продаж
- Умение работать с «трудными» клиентами
- Грамотная речь и продвинутые навыки переговорщика
- Знание культурных особенностей страны, в которой осуществляются продажи
- Английский язык от Upper Intermediate
Недостатки:
- Не подходит тем, кто не может похвастаться стрессоустойчивостью
- На такой позиции чаще всего компании ожидают увидеть человека с опытом – начинающим сложнее найти место
- Уровень заработной платы может сильно зависеть от премиальной части. Как следствие — высокая интенсивность работы
Достоинства:
- Хороший заработок и карьерные перспективы
- Отсутствие однообразия – явный плюс для тех, кто любит многозадачность
- Нетворкинг, которому можно позавидовать
Слушай наш подкаст «IT-продлёнка» по теме «Профессии для непрограммистов или Правда ли, что для того, чтобы попасть в IT, обязательно нужно уметь программировать?» на Google Podcasts, Яндекс.Музыка, Apple Podcasts!
С чего начать?
Программирование это и есть описание алгоритма программным языком, то есть перевод последовательности действий на язык, который понятен компьютеру. Программа – это уже готовый к выполнению и законченный алгоритм действий.
Какой язык программирования выбрать для изначального изучения?
- Java, Swift, C/C++ — именно с этих языков лучше начинать свое знакомство с программированием. Они довольно похожи, поэтому, если освоите один из них на хорошем уровне, с остальными разберетесь еще быстрее.
- Swift стоит выбирать, если вы ориентируетесь на разработку мобильных приложений под разные операционные системы.
- Java – это более универсальное решение, он используется для разработки сайтов, серверных приложений и приложений для компьютеров и мобильных приложений.
- С/С++ необходимо для создания высоко нагруженных приложений, он используется для оптимизации и работы с памятью.
- HTML – один из первых языков освоения, если планируете заниматься разработкой сайтов, именно он задает гипертекстовую разметку на странице.
- JavaScript – добавляет в страницы сайта интерактивность.
- Python – один из самых популярных и универсальных языков программирования, отличается более простыми правилами оформления кода, чем в других языках.
Начать обучение можно с самого простого языка программирования — Microsoft Small Basic. Его сможет освоить любой новичок. А затем уже выбирайте более сложный язык программирования, который хотели бы использоваться в работе в зависимости от ваших целей и предпочтений.
В обучении и работе могут пригодиться площадки, где можно задать свои вопросы и посмотреть примеры кода – Reddit, Stack Overflow, GitHub.
Главное в обучении как можно раньше начать писать код
…, разбирать чужие решения, что-то менять в них и снова пробовать. Если столкнетесь с ошибкой, то площадки для поиска ответов и советов перечислены выше.
В общем виде алгоритм изучения программирования может выглядеть следующим образом:
- Выбор первого языка программирования для освоения. Про языки программирования было написано выше. Стоит отметить, что обучение на курсах строиться следующим образом : Pascal , C++, PHP, а затем все языки, которые связаны с веб-программированием. Выбирать язык программирования необходимо, исходя из ваших профессиональных интересов, при этом первый язык не должен быть очень сложным, чтобы не убить эти самые интересы на корню.
- Изучение компиляторов. Компилятор – это техническое решение, назначение которого в переводе команды, введенной пользователем, в машинные инструкции понятные компьютеру. Все программы в последствии вы будете писать в компиляторах. Выбор компилятора определяется тем, какой язык для изучения вы ранее выбрали: для паскаля компилятор Free Pascal, TMT Pascal, Virtual Pascal, для C++ — Turbo C++ , Visual C++, Dev C++, для Java – Javac, GNU Compiler for Java, После освоения основ языка программирования можно будет переходить на более сложные компиляторы.
- Создание первого кода. Сделать первый код можно по видео-урокам, книгами или в процессе обучения на курсе. После того, как вы своими руками создали программный алгоритм и поняли, что вам интересно развиваться в этой сфере, то стоит переходить к следующему шагу.
- Выбор курсов или тренинга для более глубокого обучения. Вот список курсов, которые подойдут для погружения в программирование на первом этапе:
- CS 50 от MIT – практически легендарный курс программирования,
- Курс от Яндекса на Stepik org,
- Курсы на Coursera org,
- Основы HTML и CSS от «Нетологии»,
- Курсы от HTMLAcademy,
- Школа GeekBrains от Майл.ру
Как выглядит самый простой двоичный код
Давайте представим себе, что в языке племени Мумба-Юмба есть только две буквы. Пусть это будет две латинских заглавных буквы: «I» и «O». При этом «I» звучит по-русски, скажем, как «и». А вторая латинская буква «O» прямо так и звучит по-русски «о». Представили?
Как с помощью этих двух букв в мумбийском языке можно записать фразу «слезайте со слонов»? Пусть дано (как в математике), что в мумбийском языке эта фраза выглядит следующим образом:
- первое слово «слезайте» есть IIOOIOOI (ииооиоои),
- второе «со» выглядит как IOOOIOOO (иоооиооо),
- третье «слонов» записывается как OOIIOOIO (ооииооио).
Тогда выходит, что местный житель нам сказал примерно следующее (запишем слова в столбик):
IIOOIOOI
IOOOIOOO
OOIIOOIO
Замечательно, не правда ли? Давайте теперь заменим буквы на цифры. Букву I заменим на единицу «1», похожую по написанию на эту букву. В свою очередь букву O заменим на похожую на нее цифру ноль «0». Получим новый вариант мумбийского текста в виде:
11001001
10001000
00110010
Что напоминает приведенный выше текст из ноликов и единичек? Конечно же, так называемый двоичный код, состоящий исключительно из нулей и единиц. Значит, теперь переходя с мумбийского языка на математический и компьютерный, – мы имеем дело с самым примитивным, с самым простым языком, который называется «двоичный код».
Само племя Мумбы-Юмбы, конечно, тут ни при чем. Они не примитивные – это лишь математическая абстракция в данном игровом примере.
Почему код называется двоичным
Потому что он состоит всего лишь из 2-х знаков 1 и 0. А почему это так называемый код, а не что-то иное? Да потому что это код и есть, шифр какой-то. И человеку ничего не понятно, что тут закодировано!
Если никому не понятно, то зачем это нужно? Дело в том, что двоичный код прекрасно понимает… процессор, который есть в любом компьютере, телефоне, смартфоне, планшете, ноутбуке.
Более того, процессор понимает только двоичный код. Процессор можно назвать сердцем компьютера, благодаря которому всё у нас работает на компе!
Итак, получается, чтобы «донести» до процессора компьютера, что ему нужно сделать для нас (он же для нас, любимых, старается, не так ли?), нам надо преподнести ему некие команды, наборы слов в виде двоичного кода. И это только что было выше представлено в форме «игры» с катанием на слонах.
Напишем заново сказанное представителем племени. При этом немного модернизируем код. Вставим пробелы после каждых четырех символов кода, чтобы всё выглядело более структурированно. Получаем следующий код:
1100 1001
1000 1000
0011 0010
На этом пока остановимся с двоичным кодом, и перейдем к следующей части повествования.
SkillFactory
Сайт www.skillfactory.ru
Выпускники школы, которая считается крупнейшим провайдером online-образования сегмента Data Science, работают в банках с солидным капиталом, Ростелекоме, подразделениях Яндекс и Mail.Ru. Названой EdTech-компанией запущено 25 курсов, где пользователи осваивают как непосредственно Data Science, так и Python, Machine Learning, разработку и управление цифровой продукцией, IT-аналитику.
Партнеры SkillFactory, среди которых немало индустриальных лидеров, обучают в онлайн-школе своих сотрудников, при этом участвуя в разработке образовательных программ площадки. Учеба выстроена на реальных проектах, профессиональные навыки формируются исключительно под текущие запросы бизнеса, постоянно присутствует менторская поддержка.
Помимо курсов с относительно короткой продолжительностью (в несколько недель) SkillFactory разработало учебные программы длительностью 1-2 года. В частности, годичный срок отведен на прохождение полного курса Data Science. Традиционные формы уроков чередуются с занятиями на спецтренажерах, участием в соревнованиях, хакатонах. За 12-месячный период обучающиеся пополняют свои портфолио 10 проектами.
Стандартные сертификаты online-школы оформляются на русском языке, однако по запросу выпускников документ может быть и англоязычным.
HTML Academy
Сайт www.htmlacademy.ru
На заглавной странице сайта академии содержится мотивирующий призыв учиться программировать современные web-интерфейсы и начинать карьеру в IT, при этом основатели площадки обещают показать уже «протоптанные тропы к успеху». Среди особенностей онлайн-вуза — гибкость в вопросе оплаты.
Обучение по базовым модулям не подразумевает денежных трат — подобный вопрос возникает, если у пользователя присутствует желание максимально глубоко погрузиться в направление. Так, бесплатно можно пройти 160 из 1400 интерактивных заданий подробного курса «три в одном»: по HTML, CSS, javascript. А освоение одного лишь начального блока уже позволит разработать собственный интернет-сайт.
Среди типовых заданий — создание (посредством написания кода) цифрового продукта, идентичного предложенному образцу. Качество выполнения задач проверяется встроенным сервисом. Академией разработаны и долгосрочные курсы для посетителей, решивших сменить профессию: за 6-10 месяцев предлагается стать Frontend- или React-разработчиком.
Смотреть все программы HTML Academy на сайте
Экзотика и минимализм: Raspberry Pi
Raspberry Pi — это одноплатный компьютер: на платке размером с кредитную карту стоят порты, процессор и память. Подключаете к этому клавиатуру, мышь и монитор — и у вас есть компьютер. Стоит такая плата 30–100 долларов.
Особенность в том, что в нём будет операционная система «Линукс». Но для неё есть программы для разработки на любом языке, а также необходимый минимум браузеров и офисных приложений.
На Raspberry Pi будет сложно писать приложения для Айфонов или код для Windows, но всё остальное — вполне реально. Заодно прокачаетесь в настройке «Линукса».
На Pi можно сделать не слишком мощный, но рабочий сервер.
На момент написания статьи самое последнее поколение Raspberry Pi — четвёртое. Поддерживает два экрана!
Базовые требования к профессионалу
- Критическое мышление — умение выделять главное в требованиях, подходить к своему и чужому коду с точки зрения постоянной оптимизации и улучшения; навыки поиска лучших путей решения задач.
- Ориентированность на работу с деталями — в программировании не бывает мелочей. Даже если вы не написали ни строчки кода, вы наверняка слышали шутки про то, как отступ или потерянная точка с запятой отнимают часы в поисках бага и причин ошибок при компиляции. Невнимательный программист — нонсенс.
- Сосредоточенность, усилие, терпение — нередко приходится писать большие фрагменты кода, глубоко погружаться в поиск решения задачи. Любой отвлекающий момент растянет эти процессы надолго, поэтому программист должен иметь явно выраженный навык «свинцовой задницы», позволяющей дотошно разобраться в проблеме.
- Склонность к переработкам — вас сейчас возмутит этот пункт, особенно если вы выпускник или студент. Как так, переработка?! Только платно, по ТК РФ и вообще! Но нет, поработав немного, особенно на удалёнке, вы заметите, что с радостью отдаёте работе гораздо больше часов жизни, чем ей положено. Кстати, не замечал, чтобы кто-то активно боролся с этим явлением. Например, я пишу эту статью, на моих часах 00:09, а впереди ещё много текста и размышлений + основная работа 😉
- Навыки активного слушания и общения — вам придётся понимать, что вам хочет объяснить внешний или внутренний заказчик. Да, иногда их ТЗ звучат как описания товаров с Алиэкспресс, и вам придётся вытягивать детали в процессе тесного диалога и длительного обсуждения.
- Умение работать в команде — программист никогда не работает один и нужно уметь вписаться как в команду, так и в правила управления разработкой, методологии и code style вашей компании.
- Потребность в самообучении — именно потребность. Вы должны непрерывно и осознанно изучать новые фреймворки, библиотеки, SDK, API, языки программирования и прочие инструкции и материалы. Остановитесь — через 6-12 месяцев отстанете от поезда.
- Ответственность — программист всегда отвечает за качество кода, который он создал, за работу программы, за её стабильность и быстродействие. Если вы склонны валить вину на тестировщика, заказчика или коллегу-разработчика, вам лучше пойти в менеджеры проекта (очень злая шутка, простите). А если серьёзно, программист отвечает за программу не меньше, чем хирург за операцию или строитель за мост или здание.
Contented
Сайт www.contented.ru
Амбициозными можно назвать и заверения основателей online-школы цифрового дизайна Contented — они подчеркивают, что обучают своих подопечных для работы в лучших IT-компаниях мира. Впрочем, такие заверения не безосновательны: карьерному успеху отдельных выпускников Контентед можно по-доброму позавидовать, а компания-организатор школы неоднократно лидировала в рейтингах площадок дополнительного IT-образования.
Комплексное обучение с нуля до уровня, позволяющего рассчитывать на быстрое трудоустройство, длится 3-12 месяцев. За этот срок реально получить профессии графического и UX/UI-дизайнера, разработчика интерактивных медиа, дизайнера интерьеров, motion-аниматора, коммерческого фотографа, web-мастера. Есть выбор и из курсов-интенсивов с наставником продолжительностью 5-8 недель.
Преподавание в Контентед считается довольно «эффективным», но в этой требовательности наставников есть свой плюс: выпускникам выдается не просто документ о завершении online-курса — в нем присутствует оценка уровня знаний обучившегося специалиста. Для тех же, кто не готов к дедлайнам и постоянному преподавательскому контролю, предлагаются видеокурсы, материал которых можно усваивать в индивидуальном ритме. Процесс трудоустройства курсантов координирует отдел карьерного консультирования. Его представители информируют обучающихся о вакансиях, помогают с составлением резюме и рассылкой CV нанимателям.
Смотреть все курсы Contented на сайте
Пробный период: программирование мое или не мое?
С чего начать? Некоторые профессии можно освоить быстро. Программирование не из их числа. Даже если вам хочется освоить это быстро, так не получится. Чтобы стать программистом, вам придется учиться как минимум несколько месяцев. В том числе, самостоятельно. С чего начать: мы советуем сначала попробовать понять, подходит вам профессия программиста или нет. Для этого можно использовать самые простые технологии из мира разработки и программирования, которые можно быстро освоить: HTML и CSS.
HTML и CSS — это еще не полноценные языки программирования. Скорее, это набор специальных команд. Они «показывают» браузеру, как должны выглядеть объекты на странице.
Объясняем:
Вот как выглядит обычный текст, если его открыть в браузере:
Вот как выглядит тот же самый текст, если его немного причесать при помощи HTML:
В данном примере мы использовали несколько тегов:
< h1> — тег, который обозначает заголовок страницы.< b> — тег, который делает шрифт жирным.
Вот так выглядит эта страница, если открыть ее в блокноте, чтобы посмотреть, какие мы использовали теги:
Прежде чем стать начинающим программистом, попробуйте начать свое самостоятельное погружение в программирование с изучения HTML и CSS. По этим инструментам в интернете много бесплатных курсов. Освоить их сможет каждый. HTML и CSS можно изучить за несколько дней. Это поможет вам ответить на вопрос: «Подходит ли мне программирование?».
Дизайнер (UI/UX)
Чем занимается: Создаёт интуитивно понятный интерфейс для сайтов, приложений и других продуктов: собирает информацию о проекте и его аудитории, проектирует пользовательские сценарии, разрабатывает визуальный стиль и гайды к нему, создаёт макеты и прототипы.
Типичный рабочий день: Обсуждение новых брифов и правок по текущих проектам с коллегами, непосредственно дизайнерская подготовка/верстка макетов, прототипов, ключевых визуалов, презентаций и т.п.
Кому подойдёт: Творческим натурам с образным мышлением, усидчивостью и здоровой дотошностью. Эстетам с тонким чувством прекрасного, способным, тем не менее, взывать к музе по брифу.
Что нужно знать дизайнеру в IT:
- Пакет графических редакторов (Photoshop, Illustrator, Figma, Sketch).
- Основы HTML верстки, CSS и JavaScript
Базовый уровень знаний для старта:
- Знание теории дизайна: композиции, типографики, теории цвета
- Чувство стиля, широкий кругозор и насмотренность по трендам
- Английский не ниже Intermediate
Недостатки:
- Новичкам сложнее бороться за место под солнцем, зато опытные дизайнеры в IT нарасхват
- Нужно учиться и отслеживать тренды 24/7: дизайнеру в IT нельзя получить заветную “корочку” и расслабиться, всего за несколько месяцев могут измениться не только визуальные тенденции, но и технологии.
Достоинства:
- Востребованность на рынке и широкие горизонты для профессионального развития
- Результаты работы видны сразу, проще составлять портфолио (не то что программисту)
15 лучших IT-школ онлайн, где обучат современным специальностям
При составлении рейтингов востребованных профессий в топе самых перспективных и высокооплачиваемых в последнее десятилетие неизменно оказываются IT-направления. Их спектр обширен, но большинство специальностей, подпадают под одну из следующих категорий: программная инженерия/разработка ПО, системное администрирование, разработка мобильных приложений iOS/Android, QA-инженерия (обеспечение качества программной продукции), web-разработка, информационная безопасность.
Лучшие онлайн it школы и университеты по версии Все Курсы Онлайн, где дистанционно обучат современным и востребованным специальностям.
Front-end веб-разработчик
Если мы заходим на сайт и там есть кнопочки, которые меняют местоположение и цвет при наведении на них мышкой, то это дело рук front-end разработчика. Он пишет весь код на JavaScript, который выполняется без перезагрузки страницы на стороне клиента.
Где работает?
В серьезных фирмах, занятых созданием сайтов и веб-приложений. Разделение фронтенда и бекенда один из признаков наличия в компании определенного уровня культуры разработки.
Что делает?
Разрабатывает динамику пользовательского интерфейса. Если в компании нет верстальщика, то еще и переводит PSD-шаблоны в HTML-код.
Технологии
- HTML и UI фреймворки (Bootstrap, Foundation, Pure);
- CSS и препроцессоры (SASS/LESS);
- JavaScript + фреймворки/библиотеки на этом языке (Jquery, ReactJS, AngularJS, BackboneJS);
- Утилиты для сборки проектов (Grunt, Gulp, Bower).
Заменит ли AI разработчиков?
Изначально мне показалось, что с таким прогрессом ответ на этот вопрос строго положительный. Более того, это дело ближайшего будущего. Виделось это так: достаточно писать комментарии, а потом выбирать наиболее подходящий кусочек кода. Определенные навыки для этого нужны, но явно не сеньорские. Этакий Comment Driven Development, и главный профит такого подхода — мечта любого разработчика — сразу документированный код.
Однако, буквально сразу вы начинаете замечать, что все предложенные кусочки кода как-то старомодны и не используют даже let и const. В этот момент тревоги за будущее своей зарплаты начинают отступать :).
Кто хочет погрузиться в глубину этого вопроса, очень рекомендую послушать мысли Тагира Валеева (), с которыми я полностью солидарен: https://habr.com/ru/company/jugru/blog/534866/.
Бизнес-аналитик
Чем занимается:
- Анализирует проблемы клиента и предлагает, как можно их решить
- Находит возможности для оптимизации бизнеса заказчика
- Работает с требованиями на всех этапах жизненного цикла разработки ПО
- Является “мостиком” между клиентом и разработчиками
Типичный рабочий день: Большая часть рабочего времени бизнес-аналитика посвящена коммуникации (встречи и звонки с командой, заказчиком, менеджерами для получения и уточнения требований, консультации, демонстрация результатов командной работы и т.п.). Оставшееся время примерно в равной пропорции распределяется между анализом и документацией.
Кому подойдёт: Людям с развитыми коммуникативными навыками, аналитическим складом ума, склонностью к критическому мышлению и фокусировкой на достижение результата.
Что нужно знать бизнес-аналитику в IT:
- Документация для бизнес-анализа (видение проекта, план требований, истории пользователей, варианты использования, спецификация требований к ПО и функциональных требований, журнал рисков, матрица заинтересованных лиц)
- Представление об архитектуре и жизненном цикле ПО
- Знание Scrum-методологии разработки ПО
Базовый уровень знаний для старта:
- Уметь выявлять, анализировать, документировать и согласовывать требования.
- Уметь определять границы решения, приоритезировать требования и контролировать изменения
- Иметь хорошие коммуникативные навыки
- Знать английский на уровне Upper-Intermediate и выше
- Желательно разбираться в предметной области, которую предстоит анализировать
Недостатки:
- Высокий уровень стресса в силу ответственности и сжатых сроков работы
- Возможна усиленная конкуренция на уровне джуниоров
- Чаще всего бизнес-аналитики востребованы в средних и крупных компаниях (может сужаться круг работодателей)
- Относительный недостаток – необходимость продвинутого знания английского (стартовый уровень, достаточный для разработчика или QA, для бизнес-аналитика неприемлемо низкий)
Достоинства:
- Постоянный нетворкинг, который не бывает лишним
- Отсутствие монотонности в работе и постоянное изучение чего-то нового — на позиции бизнес-аналитика не заскучаешь
- Возможность строить карьеру в различных областях экономики
Что еще влияет на зарплату программистов
В отчете Майка Лукидеса сказано, что одним из факторов, влияющих на уровень зарплат, является местоположение работника. В ходе исследования выяснилось, что зарплаты разработчиков были самыми высокими в Калифорнии, где средняя зарплата составляла $176 тыс. Тем временем в Нью-Йорке и Массачусетсе она находилась на отметке в пределах $150 тыс.
Карьерный рост был назван ключевой проблемой, с которой столкнулись разработчики, опрошенные O’Reilly. Многие из них сообщили, что в 2020 г. они проходили обучение или курс повышения квалификации в надежде добиться повышения заработной платы или продвижения по службе. Исследование показало, что почти две трети (64%) респондентов заявили, что они прошли обучение или получили новые сертификаты за последние месяцы.
В то же время исследование показало, что зарплаты специалистов в области обработки данных и искусственного интеллекта за последние три года росли в среднем лишь на 2,25% в год. 18% респондентов сообщили, что их зарплата не росла, а 8% пожаловались на снижение ее размеров.
К слову, в июле 2021 г. всемирно известный топ-менеджер в ИТ-сфере Ави Голан (Avi Golan) потребовал как можно скорее остановить рост зарплат ИТ-специалистов. По его мнению, это «вредит всей отрасли». За свой призыв Голан получил шквал критики от сотрудников ИТ-компаний, в том числе и Microsoft.