С чего начать обучение в it сфере с нуля
С чего самостоятельно начать обучение программированию: этапы освоения профессии и советы новичкам
История о том, как стать программистом с нуля
Здравствуйте, уважаемые читатели!
Решили сменить сферу деятельности, и выбор пал на программирование? Прекрасно! В этой области много востребованных, прибыльных, творческих и вдохновляющих профессий.
Но прежде чем начать обучение, подумайте и ответьте на пару вопросов: нравится ли вам программирование, готовы ли вы ежедневно посвящать этому делу время, искренне ли интересуетесь информационными технологиями, нужно ли вам вообще программирование? Если ответ на все вопросы “да”, прошу читать дальше. В противном случае, построить карьеру в IT-сфере будет весьма трудно.
Читайте статью, если хотите узнать с чего начать обучение программированию с нуля, как освоить IT-сферу самостоятельно и с помощью онлайн-курсов, кто такой программист, что надо знать, чтобы им стать.
Кто такой программист
Программист – это человек, который разрабатывает программы и алгоритмы для решения определенных задач. В своей работе он использует математическое моделирование, на основе которого пишет код. Продуктами работы программистов могут быть компьютерные игры и операционные системы, сайты и приложения.
Стать программистом может любой человек, независимо от пола и возраста. Но он должен искренне интересоваться компьютерами и веб-технологиями, ведь они непрерывно развиваются и меняются, поэтому специалисту надо мониторить изменения и постоянно обновлять знания.
Программисты обладают такими качествами, как:
Также у большинства есть высшее, чаще всего техническое, образование. Если же это гений-самоучка, то ему не помешает наработать стаж, чтобы получить должность в известной компании.
Что нужно знать и уметь
Работу программиста не назовешь простой и понятной. Для освоения этой профессии понадобится немаленький багаж знаний и умений. Сотрудник должен иметь способности к многозадачности, уметь находить контакт с коллегами, знать иностранный язык и язык программирования.
В остальном же краткий перечень требований выглядит следующим образом:
И это лишь часть того, что должен уметь делать программист.
Как стать программистом с нуля
Прежде всего надо изучать теорию алгоритмов и структур данных. Они не зависят от конкретного языка, наоборот, языки программирования устроены в соответствии с алгоритмами и структурами.
Язык – это просто инструмент для решения бизнес-задач. Поэтому новичку надо определиться с тем, как решать задачу, разбить это решение на этапы, оптимизировать процесс, чтобы не тратить время и ресурсы впустую.
После освоения алгоритмов и структур данных нужно выбрать направление программирования. Лишь потом можно приступить к изучению веб-технологий и инструментов. Это серверные языки и языки разметки, стили CSS и JavaScript, веб-фреймворки, подходящие к выбранному языку программирования.
И напоследок научиться работать с базой данных.
Подбор направления
Перед изучением языка надо определиться с направлением. У программирования широкий спектр возможностей и вариантов работы. Можно создавать сайты и мобильные приложения, игры, социальные сети, интернет-магазины, разрабатывать операционные системы и программное обеспечение.
По основной классификации программистов делят на прикладных, системных и веб-разработчиков.
Прикладные создают программы и приложения, которые решают конкретную задачу. Примерами прикладных программ могут быть онлайн-переводчики, аудио- и видеоплееры, игры, редакторы‚ мессенджеры и т. п.
Системные занимаются разработкой операционных систем и драйверов, а также условий и инструментов для их слаженной работы. Благодаря программистам сервис может работать как единый механизм. Специалисты предотвращают или устраняют перебои и ошибки в работе целого ряда программ на предприятии.
Веб-программист работает над созданием веб-сервисов и пишет для них программную составляющую. Соцсети, интернет-магазины, информационные сайты, форумы и прочее – все это труды специалистов по работе в сети.
Выбрать направление деятельности можно среди доступных профессий:
И это только часть должностей, которые может занимать программист.
Для каждой работы нужен свой инструмент, который может не подходить для создания чего-то другого. Поэтому направление – решающий фактор при выборе языка программирования для изучения.
Выбор языка программирования
Когда начинающий специалист встает перед выбором языка, ему надо учитывать количество имеющихся на рынке труда вакансий и выбранное направление.
Можно найти предложения о работе, в которых сразу написано, с каким языком надо будет работать, например, PHP-программист или программист Python.
Если же отталкиваться от направления, то надо знать, что веб-разработчик пользуется C++, Python, Java. Системный программист – Assembler, C, C++, Python. Администратор базы данных – SQL.
Ниже приведены самые распространенные и популярные представители языков программирования:
Чтобы изучить язык, сначала надо разобраться с его синтаксисом, т. е. ключевыми словами, операторами, правилами написания кода. А дальше можно перейти к более сложным конструкциям.
Если к этому времени специалист еще не приступал к изучению фреймворков, структур и баз данных, то сейчас эти знания просто необходимы. Не надо бросаться на все сразу, лучше выбрать что-то из основного: Git, SQL, HTML, CSS, XML, JSP, Maven, Spring, ORM, REST, MySQL, PostgreSQL.
Самообразование
Книги хороши тем, что их можно читать и учиться бесплатно, и тем, что они быстро погружают в тему. Рекомендую следующие пособия:
Можно использовать бесплатные обучающие платформы, сайты и приложения, форумы, где делятся своим опытом профессиональные программисты. А можно положиться только на самостоятельное обучение, но такой путь сложен для новичка. Лучше совмещать его с другими методами, например, с онлайн-курсами.
Онлайн-курсы
Новичку предлагаются курсы от онлайн-платформ GeekBrains, Нетологии, Skillbox, Coursera, beONmax. Постигать азы сферы информационных технологий можно в своем темпе и в домашних условиях. Так цена будет ниже, чем обучение в вузе.
Обучение предполагает как теоретическую, так и практическую часть. Нередко выпускники курсов имеют портфолио, диплом или сертификат, подтверждающий их навыки и знания.
Предлагаю ознакомиться со следующими обучающими программами:
Составление резюме и портфолио
Можно начать работать на бирже, чтобы было что написать про свой опыт в резюме и добавить работы в портфолио. Для первого реального опыта подойдут и небольшие проекты. Главное – начать.
Лучше выбирать иностранные биржи, особенно если есть знания английского языка. Там и заказов больше, и доход выше. Подойдут, например, Upwork и YouTeam. Если говорить о русскоязычных биржах, то популярны Kwork, FL.ru и Freelance.ru.
Заполнить портфолио могут помочь и собственные проекты, если есть идеи, возможность и желание.
А дальше можно уже перейти на специализированные сайты с вакансиями только для программистов, например, We Work Remotely и Хабр Карьера. А можно поискать работу на таких ресурсах, как hh.ru или SuperJob.ru.
У специалиста должно быть резюме, когда он откликается на вакансию. В нем надо указать правдивые факты о проектах, в которых он участвовал, и свои достижения на этой работе. Не помешает рассказать и о собственных проектах, если они есть. Это показывает профессиональный уровень и любовь к IT-сфере.
Надо указать свои знания и навыки, но не на несколько страниц, а коротко, четко и лаконично. Нужно писать саму суть, без воды.
В портфолио лучше указывать несколько самых лучших проектов, которыми специалист если не гордится, то хотя бы доволен ими.
Советы новичкам
Создайте план обучения, разбив его на этапы, рядом с которым пропишите, что именно надо выучить и с помощью каких средств. Переход от одного этапа к другому должен быть по мере увеличения сложности.
Не растягивайте обучение на полдесятка лет. Информационные технологии имеют способность быстро развиваться. И пока вы тщательно изучаете какой-то инструмент программирования, он уже может быть заменен на что-то более современное.
При обучении используйте все материалы, сервисы и знания других людей, которые будут доступны. Не пренебрегайте ничем.
При возможности общайтесь с практикующим программистом, у которого есть опыт работы. Если он согласится курировать над новичком, направлять его, указывать на ошибки и давать задания для развития – это будет отличным дополнением ко всему обучению. Особенно если начинающий специалист обучается самостоятельно.
Узнайте больше об архитектуре компьютера.
Учите английский. Большинство обучающих программ представлены на этом языке. Есть и русскоязычные, но их значительно меньше. Без иностранного языка сложно что-то найти в англоязычном интернете. А уже непосредственно при работе программисты сталкиваются с английским во время чтения и написания кодов.
Заключение
Подведем итоги. Чтобы начать обучение программированию, надо следовать поэтапно. Сделайте следующее:
И в качестве общих советов:
С чего начать в IT
Даже если вы абсолютный гуманитарий — выход есть.
В информационных технологиях сейчас происходит всё самое интересное — если не считать квантовую физику и биотех, но даже там очень много IT. В квантовую физику и биотех, может быть, уже поздновато, а вот попасть в отрасль информационных технологий не поздно никогда. Вот что можно делать и где преуспеть.
Что там есть
Многие думают, что айтишники — это такие бородатые мужики в свитерах с оленями, которые сутками пишут код. Но сфера IT намного шире, чем просто программирование. Например, это тоже IT:
У этих направлений есть одно общее свойство — они все работают с алгоритмами. Биологи создают новые лекарства на основе алгоритмических моделей действия разных веществ, робототехники делают искусственные руки, которые управляются как настоящие, а кибербезопасники изучают чужие алгоритмы взлома, чтобы построить эффективную защиту.
5 крутых роботов с искусственным интеллектом внутри:
В 2013 году вышла игра Deus Ex, где у главного героя были механические руки. В 2019 году те же разработчики и ребята из Open Bionics повторили это в жизни:
Что нужно: английский язык
На русском языке выходит лишь малая часть статей, учебников, материалов и новостей из мира IT. Хотите полную картину — учите английский, без него айтишнику будет сложно стать настоящим специалистом.
Вариантов, как это сделать, масса: самостоятельное изучение, платные курсы, бесплатные курсы, занятия с репетитором и чтение статей со словарём. Выбирайте что угодно, главное, чтобы это повышало ваше знание английского и вы могли читать Stack Overflow или любой другой ресурс без перевода.
Первые шаги: собственная программа
Написать собственную программу не составит труда, даже если у вас обычный компьютер без специальных пакетов. Программировать можно даже в вашем браузере на языке JavaScript. Выберите свой первый проект из наших — мы специально их сделали простыми, чтобы можно было начать буквально с нуля:
Любопытство
Встретили интересную технологию — узнайте, как она работает. Посмотрели рекламу про наушники с шумоподавлением — почитайте про алгоритмы шумодавов и чем они отличаются. В мобильниках делают беспроводную зарядку — посмотрите видео, как это устроено внутри и почему телефоны от этого могут сильно нагреваться.
Можно даже не читать, а просто посмотреть:
Как работает шумоподавление — очень наглядно, но на английском:
Тоже про шумоподавление — по-русски, но очень много математики:
А вот так работает беспроводная зарядка чего угодно:
Ради эксперимента попробуйте найти объяснение, как устроены и работают привычные вещи — пульт от телевизора, торренты, почему MP3-файлы так мало весят и как работает Wi-Fi.
Найдите интересное
Нет никаких модных и немодных, правильных и неправильных тем в IT, если они вам интересны. Понравилась мобильная разработка — отлично, хотите проектировать системы управления станками — здорово, вызвала любопытство технология сжатия видео — прекрасно. Во всех этих областях можно найти себе применение.
Если хотите прокачать общее понимание того, как устроены компьютеры и технологии, почитайте наши статьи:
Гид: что изучать, чтобы получить ИТ-профессию
Планы на будущий год.
В этой статье собраны ссылки на основные материалы, которые вам понадобятся, чтобы начать путь в ИТ-профессии: стать программистом, тестировщиком, аналитиком или кем-то ещё. Используйте её как навигатор: можно добавить в закладки, сохранить на стену или просто возвращаться к ней по мере прохождения.
Направления
Сфера ИТ очень большая, и в неё входит не только программирование. Если коротко, то всё ИТ можно разделить на 5 групп:
Если не понимаете, что эти направления значат, начните с ответов на самые популярные вопросы про ИТ — это поможет сориентироваться и погрузиться в тему.
Простые ИТ-профессии для старта
Проще и быстрее всего стать контент-менеджером — человеком, который отвечает за публикацию постов, картинок и статей в компании. Обычно для этого нужно немного разбираться в базовой вёрстке, уметь работать с фотошопом и иметь навык работы в соцсетях. Плюс этой работы — много практики и быстрое погружение в ИТ. Как освоитесь, сможете решить сами, чем вам интересно заниматься дальше.
Ещё на старте можно попробовать профессию тестировщика. Он проверяет качество программ и устраивает для них стрессовые ситуации. Если программа прошла тесты, можно выпускать, если нет — возвращается на доработку. В 2020 году средняя зарплата инженера по тестированию — 55 тысяч.
ИТ-профессии посложнее
Если хорошо изучить HTML, CSS и JavaScript, можно стать фронтенд-разработчиком. Они пишут сайты, разрабатывают интернет-магазины и делают почти всю внешнюю часть интернета. В среднем зарплата фронтенда — 116 тысяч.
Но это видимая часть интернета. За невидимую отвечают бэкенд-разработчики — продумывают логику работы сайта, настраивают базы данных для хранения информации, следят за скоростью загрузки и отвечают за общие возможности сайта. За это они получают примерно 130 тысяч в месяц.
Ещё есть дата-сайентисты. Они занимаются аналитикой больших данных, работают с нейросетями и программируют искусственный интеллект. Звучит сложно, но сейчас это самое перспективное направление в ИТ. Можно начать с аналитики, а если понравится — продолжить уже как полноценный дата-сайентист. По деньгам — как договоритесь, но обычно это 100 тысяч и выше.
Почитайте, как специалисты из разных профессий пришли к тому, что они умеют сейчас, чем они занимались на старте и как вообще пришли в ИТ:
Как стать руководителем ИТ-команды за 5 лет. Александр Штыков: путь от контент-менеджера до тимлида.
Владимир Олохтонов о работе старшего разработчика в Авито. Путь от монтажника локальных сетей до инженера машинного обучения.
«Никто не верил, что я сама пишу код». Анастасия Никулина: о дата-сайнс, ютубе и программировании.
Трудоустройство и собеседования
Если вам понравились эти истории и вы хотите так же — вот что вам поможет с трудоустройством:
Главные языки и технологии для старта
Для разных профессий нужны разные навыки и языки. Но для быстрого старта достаточно этого:
HTML — на нём пишут и верстают все сайты в интернете.
CSS — помогает оформлять красиво то, что уже свёрстано.
JavaScript — для программирования разных возможностей сайта: добавления товара в корзину, формирования персональной ленты или для корпоративного чат-бота.
Python — для тех, кто хочет пойти в бэкенд или в дата-сайенс. Для обычной веб-разработки он не нужен.
Для общего развития
Обычно такое не спрашивают при трудоустройстве, но для общего ИТ-развития это будет полезно. Заодно посмотрите, как ИТ влияет на привычные вещи.
Где учиться
Лучше всего учиться с наставником — он поможет быстро разобраться с тем, что непонятно, и проконтролирует весь процесс погружения в профессию. В Практикуме есть бесплатная часть с обучением — попробуйте, если понравится — продолжите учиться дальше.
С чего начать карьеру ИТ?
Мне 30 лет. Всю свою жизнь работал в сфере автобизнеса. Сейчас загорелся попробовать себя в ИТ сфере. Немного поизучав просторы интернета так и не совсем нашол для себя ответы на следующие вопросы:
— с кого лучше начать в сфере ИТ что понять мое ли это (остановился на программистах и тестировщиках)
— какой язык программирования стоит изучать чтоб на начальном этапе работать параллельно с моей сегодняшней работой (надо кормить семью, но запасы есть чтоб безболезненно сменить профессию). В инете нарыл что вроде РНР или Java
— стоит ли идти на курсы или лучше изучать самому по книгам и интернету
— да и вообще с чего бы вы сейчас начали свою карьеру прийдя впервые в ИТ сферу?
Нашел интересный сайт по JAVA обучают этому языку в игровой форме с практическими занятиями javarush.ru/. Может кто его посещал дайте отзыв, мне пока нравится и понятно все.
А на какой доход и через сколько времени можно рассчитывать?
Тут все ОЧЕНЬ индивидуально. Все зависит от усердия и желания.
Можно грубо прикинуть «скоростное прохождение этого квеста»:
1) материальные вложения: 30-32 т.р. два интенсива(базовый и продвинутый) и помесячная платная подписка на htmlacademy.
2) временные вложения: 5-7 месяцев на курсы и интенсивы от htmlacademy + 2-3 месяца на основы JavaScript и jQuery
После этого вполне можно пойти работать верстальщиком с перспективами карьерного роста с окладом от 15 т.р. или попробовать себя на фрилансерских биржах.
Почему так мало?В моем регионе именно столько получают стажеры-верстальщики в первый месяц, но это уже работа + на реальных проектах прогресс пойдет намного быстрее. А следовательно и вырастет доход.
А не будет ли мне сложно «работать» в молодом коллективе?
Возможно первое время будут какие-то сложности, но как мне кажется в любом случае ценятся базовые человеческие качества + профессионализм. А если учесть, что к 30 уже есть достаточно богатый жизненный опыт, то я не думаю, что возникнут проблемы.
Программирование для начинающих: как стартовать и куда двигаться?
Бывает, что человек, совсем не связанный с IT, проникается интригующей красотой этой сферы и ставит себе задачу постепенно освоить программирование с нуля. И тут он зачастую просто теряется, не понимая, с чего начать, и нуждаясь в хорошем фундаменте и системном подходе.
Я, будучи недавно в такой же ситуации, гуглила, искала мануалов на Хабре (кое-что нашла: Десять советов начинающим программистам, Начинающему программисту про стартапы и не только…), но в итоге всё же была вынуждена обратиться за советом к одному хорошему человеку, который составил для меня вот такой план. С разрешения этого человека размещаю данный план на Хабре – вдруг он пригодится и кому-то ещё. (Тем более, что перечисленные книги относятся к «золотому фонду» литературы в данной сфере и проверены временем.)
UPD: Новичкам советую обратить внимание на комментарии — там активно и аргументированно корректируется этот план.
Нортон «Программно-аппаратная организация IBM PC»
Эта книга, несмотря на свою давность, относятся к тем, что пока отнюдь не устарели. Как новичок подтверждаю – повествование вполне понятно и для почти полного чайника в IT.
Гук «Аппаратные средства IBM PC»
А эту книгу стоит прочитать «поверх» – она расскажет о том, как дела в данной сфере обстоят сейчас.
Морс, Алберт «Архитектура микропроцессора 80286»
Почему тут берётся за основу именно микропроцессор 80286 – станет понятно по изучении трудов первого этапа.
Гук «Аппаратные интерфейсы ПК»
Гук «Интерфейсы устройств хранения»
Этап III. Операционные системы
Таненбаум «Архитектура компьютера»
Колисниченко, Аллен «Linux: полное руководство»
От общей теории переходим к изучению конкретной операционной системы – на примере Linux.
Немет, Снайдер, Хейн «Руководство администратора Linux»
Этап IV. Собственно программирование
Керниган, Ричи «Язык программирования С»
Почему первым для освоения выбран именно язык Си? Как мне рассказали знающие товарищи, он поможет достичь правильного «программистского мышления», чего было бы сложно достичь, начиная изучение, скажем, с Паскаля. Кроме того, язык Си по-прежнему используется в наши дни и подходит как для прикладного, так и для системного программирования.
Кнут «Искусство программирования»:
Том 1. Основные алгоритмы
Том 2. Получисленные алгоритмы
Том 3. Сортировка и поиск
Бентли «Жемчужины программирования»
Зачем осваивать эти труды? Как уже отмечали на Хабре – «наверное, нигде больше, чем в айти, не изобретается такое огромное количество велосипедов». Данные книги помогут этого избежать – и попутно будут прививать умение писать не просто код, а хороший код.
Ну а для затравки можно прочесть небольшой цикл лекций «Культура программирования» (автор – А. Бабий). Он помогает начинающим программистам понять, что их деятельность не будет проходить в вакууме, а неизбежно включит взаимодействие с другими программистами, с заказчиками и пользователями (а также включит необходимость копаться потом в своих собственных или в чужих программах).
Закономерный вопрос новичка: сколько времени займёт изучение всего этого? По прогнозам моего советчика, у человека, который может тратить на изучение программирования только вечера и выходные, на прочтение и осмысление литературы первых трёх этапов уйдёт полгода-год. На четвёртый этап тоже даётся год – чтение должно сопровождаться практикой по самостоятельному составлению программ. Как получится на самом деле – время покажет.
Буду крайне благодарна за ваши советы и уточнения.