Как стать программистом?
Содержание:
- Пошаговое руководство: как стать программистом
- Кто такие программисты и какими они бывают
- Пробный период: программирование мое или не мое?
- Что почитать?
- Узнайте больше о бизнес-стороне
- Как выбрать направление
- А можно еще проще?
- Бесплатные курсы и материалы для самостоятельного обучения
- Необходимость знания иностранных языков
- Курсы по программированию
- Как действовать по шагам — пример
- Колледжи для программистов
- Как стать программистом 1С
- Необходимые профессиональные умения и знания
Пошаговое руководство: как стать программистом
Стоит ли изучать программирование
На каждого программиста, который взял в ипотеку двушку в Бутово, ездит на BMW X5 и отдыхает каждый год на Бали, есть как минимум два копирайтера и три сетевых маркетолога, которые прошли те же курсы, купили те же книги, но не смогли выйти даже на начальный уровень.
Программирование — как занятия в тренажерном зале. Эктоморфы плохо набирают мышечную массу, им лучше сосредоточиться на легкой атлетике, беге, воркауте. Эндоморфы в свою очередь вряд ли преуспеют в беге на длинную дистанцию, но достаточно быстро построят впечатляющий мышечный корсет. Каждый должен заниматься не тем, что сулит хорошую зарплату, а тем что нравится и хорошо получается!
Важный дисклеймер!
Несмотря на то, что некоторые люди обучаются программированию гораздо быстрее, чем другие, тем не менее, мы считаем, что практически каждый человек способен стать хорошим программистом. В данной профессии, как и в других, очень многое зависит от вашего желания и усердия. Возможно, чтобы добиться хороших результатов, вам потребуется потратить больше времени, но если программировать вам действительно нравится, то все в ваших руках и важна лишь ваша мотивация и упорство.
Как же оценить свои навыки и перспективы?
Математический склад ума — это основа
Умеете ли вы играть в шахматы? Если нет, хотели бы научиться? Любили ли вы в детстве собирать головоломки? Можете ли в уме перемножать двузначные цифры? Как насчет кубика Рубика? Пятерку по математике в школьном аттестате работодатель вряд ли будет искать, но если ее там нет, вероятно, программирование будет даваться вам чуть тяжелее, чем коллегам, с математическим складом ума, а это значит, чтобы добиться тех же результатов, вам придется трудиться усерднее и дольше.
Знание английского — это важно. IT-сфера меняется очень динамично, образовательные материалы публикуются в основном на английском
Многие замечают, что переводы книг на русский иногда содержат ошибки, хотя и появляются спустя полгода-год, когда технологии уже активно применяются теми, кто изучил их описание на оригинальном языке. Стандартом сферы уже давно является необходимость предоставить резюме на английском, а также доказать свои знания на собеседовании, даже если вас интересует работа начинающего программиста без опыта. Карьерный рост без знания английского невозможен, ведь даже начинающему программисту часто приходится участвовать в конференциях с заказчиками, которые часто базируются в Европе и США.
Готовность к сложной умственной работе. Думаете, разгружать вагоны сложнее, чем работа программистом 1с? Это так, но качеству сна грузчика позавидует любой программист, потому что его мозг просто не может расслабиться в нерабочее время.
Известное исследование: во время шахматного матча на первенство мира ученые оценили расход калорий чемпионом мира Анатолием Карповым (игра в шахматы весьма схожа с написанием кода) и пришли к выводу, что на партию ему требуется столько же энергии, сколько и футболисту на один футбольный матч.
Мозг программистов на самом деле постоянно напряжен, и такая нагрузка может быть не под силу бывшим бухгалтерам, экономистам, охранникам, школьникам, которые привыкли списывать, а теперь вдохновились высокими зарплатами и радужными перспективами.
Кто такие программисты и какими они бывают
Программист – это специалист, который пишет код для компьютерной программы. Такой программой может быть, к примеру, операционная система, видеоигра, мобильное приложение или даже алгоритм работы хлебопечки.
Программный код пишется на специальном языке программирования. Таких языков насчитывается несколько сотен. Самые популярные – Java, JavaScript, Python, PHP, C#, C, С++, Objective-C, Swift, Ruby и др.
Не стоит путать программистов с IT-специалистами. Программист – это разработчик, который пишет код. Айтишник — это очень широкое понятие, которое включает в себя десятки самых разных профессий – от дизайнера интерфейсов до специалиста техподдержки.
Также у многих есть стереотип, что программист и компьютерщик – это одно и тоже. На самом деле разработчику нужен компьютер только для того, чтобы проверить код в действии.
Писать сам код он может хоть на салфетке. Это просто вопрос удобства.
По специализации программисты делятся на:
- Системных. Создают операционные системы (такие как Android или iOS).
- Прикладных. Пишут программы и приложения.
- Веб-программистов. Занимаются разработкой сайтов и программ, которые поддерживают эти сайты.
Если посмотреть на сайте вакансий, то можно увидеть, что программисты разделяются по языкам, на которых они работают. Например:
- PHP-программист;
- Java-разработчик;
- Программист Delphi и т.д.
Кроме того, разделение идет и по типам задач, которые они выполняют:
- Программист баз данных;
- Фронтенд/бекенд разработчик;
- Геймдев;
- Программист 1С;
- Мобильный / десктоп разработчик и др.
Еще одна классификация разработчиков – по ступеням:
- Junior. Это уровень новичка, который только пришел на работу. В «джунах» ходят обычно полгода-год. Бывает дольше. Все будет зависеть от скорости освоения профессии и успехов.
- Middle. Более «старший» уровень. Его можно достигнуть через 1-3 года работы.
- Senior. Продвинутая ступень программистов с опытом от 4-6 лет и выше.
Пробный период: программирование мое или не мое?
С чего начать? Некоторые профессии можно освоить быстро. Программирование не из их числа. Даже если вам хочется освоить это быстро, так не получится. Чтобы стать программистом, вам придется учиться как минимум несколько месяцев. В том числе, самостоятельно. С чего начать: мы советуем сначала попробовать понять, подходит вам профессия программиста или нет. Для этого можно использовать самые простые технологии из мира разработки и программирования, которые можно быстро освоить: HTML и CSS.
HTML и CSS — это еще не полноценные языки программирования. Скорее, это набор специальных команд. Они «показывают» браузеру, как должны выглядеть объекты на странице.
Объясняем:
Вот как выглядит обычный текст, если его открыть в браузере:
Вот как выглядит тот же самый текст, если его немного причесать при помощи HTML:
В данном примере мы использовали несколько тегов:
< h1> — тег, который обозначает заголовок страницы.< b> — тег, который делает шрифт жирным.
Вот так выглядит эта страница, если открыть ее в блокноте, чтобы посмотреть, какие мы использовали теги:
Прежде чем стать начинающим программистом, попробуйте начать свое самостоятельное погружение в программирование с изучения HTML и CSS. По этим инструментам в интернете много бесплатных курсов. Освоить их сможет каждый. HTML и CSS можно изучить за несколько дней. Это поможет вам ответить на вопрос: «Подходит ли мне программирование?».
Что почитать?
Онлайн-медиа — здесь обсуждаются нишевые события и более узкие темы.
- Google Developers — надежный первоисточник, из которого можно узнавать актуальные новости о продуктах компании.
- I Programmer — портал для программистов. Новости обо всех направлениях от UX до робототехники и всех языках программирования.
- Smashing Magazine — статьи о веб-дизайне: разбор кода, свежие кейсы, советы по трудоустройству и общению с клиентами.
- Хабр — универсальный русскоязычный ресурс, где можно найти гайды, обсуждения, код-ревью и кейсы от разработчиков разных компаний от IT-гигантов до небольших digital-агентств.
- Вастрик — авторский инди-блог про IT и выживание в мире технологий. Тексты про машинное обучение, блокчейн, VR, вычислительную фотографию, машинный перевод и многое другое.
- For Web — блог в Twitter с полезными материалами для фронтендеров: свежие статьи, доклады и инструменты от сибирского разработчика Андрея Романова.
Искать решение своей проблемы и задавать вопросы стоит на англоязычных форумах, как специализированных, так и не очень. Есть два популярных варианта:
- Reddit — популярный форум на все темы подряд, на котором часто сидят опытные разработчики, выкладывают свои кейсы и комментируют другие публикации. Найти их можно по тегу «programming».
- Stack Overflow — закрытый клуб для программистов без рецептов и котиков. Здесь можно запросить у опытных коллег code review, комментировать публикации и давать им оценку.
- CyberForum — форум программистов, системных администраторов, где помогают в решении задач по программированию.
- Game Dev — форум, на котором разбирают создание игр и все, что с ним связано.
Узнайте больше о бизнес-стороне
Независимо от того, являетесь ли вы частью коммерческой или некоммерческой организации, ваше программное обеспечение расширяет возможности бизнес-цели.
Изучение того, как ваша компания зарабатывает деньги и обслуживает клиентов, а также основных компетенций, которыми она обладает по сравнению с конкурентами, может помочь вам раскрыть новые подходы и улучшения, которые будут поддерживать бизнес.
«Поговорите со своими коллегами в бизнес-отделах и задайте жесткие деловые вопросы своим руководителям», — сказал Слоян.
«Например, если вы работаете на платформе онлайн-рекламы, основной технологией которой является персонализация рекламы, определение и внедрение инноваций в алгоритм релевантности рекламы сделает или сломает ваш бизнес».
Вы также можете получить предвидение, чтобы разработать систему, которая может быстро масштабироваться вместе с вашим бизнесом, и определить возможности, которые могут быть не очевидны для нетехнических менеджеров.
Как выбрать направление
Тем кто хочет стать программистом, важно выбрать направление, которые подходит характеру, мышлению и навыкам, считает Кирилл Коломбет. Одним, у кого развито визуальное мышление, подходит разработка интерфейсов, графики и анимаций
Другим, кто любит линукс и консоль, может быть интересна разработка серверов.
Специалистам в математике и физике, интереснее разрабатывать AI, игровые движки или работать с большими данными. Задачи различаются по сложности, от простых веб сайтов и интернет магазинов, до высоконагруженных сервисов и профессиональных приложений.
Программисты разные нужны, как и на рутинную типовую работу, так и на творческое решение сложных задач. Новичку необходимо выработать привычку постоянно учиться и справляться с задачами выше своих способностей
Очень важно быть трудолюбивым, иметь усидчивость и стремление к достижению цели, не уставать от работы за компьютером
На каждой работе программисту придется изучать свой набор технологий из самых разных отраслей.
Даже на одном и том же технологическом стэке подходы к разработке могут отличаться. Рекомендую найти подходящий способ обучения: читать статьи, смотреть видео, проходить курсы, решать задачки или делать прототипы, главное заниматься этим регулярно. Одним из важнейших навыков начинающего программиста это знание английского языка, хотя бы на уровне чтения веб сайтов и документации, потому что большинство полезных материалов по программированию можно найти только на английском языке.
К тому времени когда материал переводится на русский, он устаревает. Многие статьи, как и документация вообще не переводятся. Рекомендую в начале браться за любую работу, даже малооплачиваемую, чтобы получить опыт разработки настоящих проектов в портфолио.
Обычно самый сложный этап, который тяжело преодолеть новичкам — получение первой работы в качестве джуниора или стажера, и в этом случае желательно иметь не только знания о технологии, но и любой проект, который можно показать.
А можно еще проще?
- фронтенд — всё, что браузер выводит на экран: контент, дизайн элементов, набор цветов и анимаций, реакции на действия пользователя. Нередко это направление выбирают те, кому нравится дизайн;
- бэкенд — всё, что работает на стороне сервера: функции сайта, обработка запросов пользователей и работа с базами данных. Направление, как правило, выбирают те, кому дизайн и графика не близки.
Другое явное преимущество веб-разработки — оно востребовано всегда. Скажем, захотел сайт-каталог расшириться и добавить онлайн-торговлю — вот и вакансия для бэкенд-разработчика на фриланс-бирже. Или надумала фирма обновить свой дизайн — начинаются поиски фронтенд-разработчика. Регулярно нужно делать и новые сайты, что будет по силам со знаниями фулстек-разработчика.
Кто-то может возразить, мол, веб-технологии динамично развиваются, ежегодно появляются «технологии завтрашнего дня», быстро замещающие актуальные. И не получится ли так, что учишься год-два, а когда выходишь на рынок, это направление устарело и надо учиться заново?
Бесплатные курсы и материалы для самостоятельного обучения
На площадке Coursera можно найти бесплатные программы по разным направлениям в IT на русском и английском языках:
- Crash Course on Python, разработанный в партнерстве с Google;
- Java Programming and Software Engineering Fundamentals от Duke University (США);
- HTML, CSS, and Javascript for Web Developers от Johns Hopkins University (США);
- iOS-разработка: Swift, UI и многопоточность от Московского физико-технического института;
- Введение в язык Kotlin, курс Санкт-Петербургского политеха.
На площадке edX собраны бесплатные курсы Гарварда, Массачусетского университета, Беркли, Бостонского университета и других именитых учебных заведений. Например:
- Python Basics for Data Science;
- Programming for the Web with JavaScript;
- Introduction to C++.
В подборках для новичков чаще всего встречается несколько книг, с которыми полезно познакомиться:
- «Чистый код» Роберта Мартина;
- «Совершенный код. Мастер-класс» Стива Макконнелла;
- «Искусство программирования» Дональда Кнута;
- «Паттерны проектирования» Эрика и Элизабет Фримен;
- «Алгоритмы: построение и анализ» Томаса Кормена и Чарльза Лейзерсона.
Советы выпускницы SkillFactory:
В IT нужно постоянно учиться. Регулярно выходят новые версии рабочих инструментов или появляются более сложные. Если вы взяли курс, решайте все задачи сами, даже если они кажутся слишком трудными. На реальной работе никто не будет приносить все «на блюдечке»: нужно уметь искать информацию, разбираться в ней и применять на практике.Ищите компании с возможностями для роста. Менять работу не страшно, но внутри привычной компании это делать комфортнее. Теперь я работаю в компании, где могу пробовать новые специальности.Лариса Петрова, бывший инженер-программист второй категории, стала fullstack-разработчиком. Читайте ее историю
Необходимость знания иностранных языков
- Возможность удалённой работы в международных командах и зарубежных проектах. Кроме престижа и интересных задач, это ещё и заработная плата в долларах или евро (при нашем курсе неплохая история).
- Возможность работы в международных заказных проектах.
- Доступность всех материалов по разработке, записей лекций, конференций, курсов и т.д. Фактически у вас исчезают ограничения в самообразовании, все ключевые материалы мира программирования становятся доступны.
- Возможность эмиграции при наличии такого желания.
- Возможность стажировок в крупнейших ИТ-компаниях.
- Дополнительный фактор карьерного роста.
Курсы по программированию
Здесь оставлю для вас небольшую подборку обучающих курсов от известных онлайн-университетов и образовательных платформ:
- Курсы по программированию от GeekBrains (gb.ru/courses/programming).
- Старт в программировании от Нетологии (netology.ru/programs/startdevelopment).
- Факультет веб-разработки с дипломом и гарантией трудоустройства (gb.ru/geek_university/web).
- Веб-разработчик с нуля – Нетология (netology.ru/programs/web-developer).
- Веб-разработчик с нуля до PRO от Skillbox (skillbox.ru/course/webdev).
- ВЕБ-разработчик 2021 — с нуля до результата (beonmax.com/courses/web-razrabotchik).
Бесплатные обучающие программы:
- Курсы по программированию на Хекслет (ru.hexlet.io/courses/free).
- JavaScript для начинающих (stepik.org/course/2223/promo).
- Программирование на Python (stepik.org/course/67/promo).
- Базовый курс (stepik.org/course/187/promo).
- Введение в программирование (C++) (stepik.org/course/363/promo).
- PHP базовый курс (smotriuchis.ru/it-kursy/yazyki-programmirovaniya/php-bazovyj-kurs).
- Основы SQL для начинающих (loftblog.ru/material/1-vvedenie).
- Тренажеры на Html Academy (htmlacademy.ru/courses).
Как действовать по шагам — пример
Чтобы стать программистом, нужно определиться, к какому виду Вы будете относится, говорит Никита Смирнов. Программист — это разнонаправленная профессия, в которой дорогу выбирает сам программист. Вот несколько видов программистов:
- Front-end веб-разработчик
- Разработчик игр
- Android разработчик
У каждого вида программистов есть свои языки программирования. К примеру, мы определились с видом, теперь надо узнать какой же язык начать учить? Всё зависит от выбора направленности, например, мы выбрали вид: Front-end веб-разработчик. Для данного специалиста нужно знать языки программирования:
- HTML
- CSS
- JavaScript
Это только малый список языков, ведь к данным есть дополнения, их называют библиотеки и фреймворки. Мы выбрали первый язык программирования, что же теперь делать? Для этого нужно познакомится с ним понять, что это за язык. Самые рекомендованные способы изучения:
- Видеоуроки
- Книги
- Платные уроки/курсы
Колледжи для программистов
Выпускники колледжей, которые готовят специалистов в области IT, получают квалификацию «Техник-программист». Это позволяет им заниматься разработкой, настройкой и сопровождением программного обеспечения. Как правило, после колледжа программисты начинают работу с должности помощника разработчика или специалиста технической поддержки. Нередко студенты еще во время обучения осваивают смежные специализации: системную аналитику, системное администрирование, веб-дизайн.
На первых курсах в программе обучения много математических дисциплин: здесь можно найти матанализ, линейную алгебру, теорию вероятности, дифференциальные уравнения. В рамках цикла профессиональных дисциплин студенты изучают безопасность информационных систем, техническое обслуживание и ремонт компьютеров, администрирование сетей, программирование, веб-дизайн и графическое моделирование объектов. Большинство выпускников колледжей продолжают обучение в вузах и получают квалификацию бакалавра информатики и вычислительной техники по ускоренной программе.
Университетский колледж информационных технологий
Один из самых известных и уважаемых IT-колледжей — Московский государственный колледж информационных технологий — сейчас имеет новое название и входит в структуру Московского государственного университета технологий и управления им. Разумовского. Колледж готовит программистов, системных администраторов, системотехников, специалистов по информационной безопасности. Бесплатно здесь учатся только выпускники 9 класса, а для абитуриентов после 11 класса обучение платное. Во время учёбы студенты активно занимаются разработкой программного обеспечения. Ежегодно здесь проводятся выставки технического творчества, научно-практические конференции. Среди работ студентов — программные продукты: игровые и обучающие, выполненные в объектных средах, веб-разработки с использованием XML и Flash, радиотехнические модели.
Колледж информатики и программирования Финансового университета при Правительстве РФ
Флагманская специальность колледжа — «Программирование в компьютерных системах». Ежегодно сюда принимают 50 выпускников на базе 9 класса. После присоединения к Финуниверситету студенты колледжа получили возможность пользоваться всеми его ресурсами — от образовательных технологий до библиотечного фонда. Они также принимают участие в насыщенной студенческой и творческой жизни вуза. В колледже активно развивается студенческое самоуправление, проектная деятельность, студенты принимают участие в профессиональных конкурсах «World skills Russia», «IT-планета», организуют кампании по борьбе с курением и поздравительные концерты. Выпускники колледжа могут продолжить обучение в Финуниверситете по ускоренным программам, в том числе на бюджетной основе.
Колледж связи № 54
Ведущее учебное заведение в области телекоммуникаций — Колледж связи № 54 — приглашает абитуриентов после 9 и 11 классов поступить на специальность «Программирование». Почти все учебные классы колледжа оборудованы компьютерами и другими IT-устройствами; здесь работает практическая зона «Лаборатория Samsung», где студенты на практике закрепляют полученные навыки. Отдел содействия в трудоустройстве проводит консультации выпускников, ведет базу данных резюме студентов колледжа, организует ярмарки вакансий, дни карьеры, формирует банк вакансий. Все учащиеся проходят производственную практику в компаниях-партнерах колледжа с последующим трудоустройством. Среди партнеров — МГТС, Мослифт, Московский метрополитен, Почта России, мировые корпорации Siemens и Samsung, компании National Instruments и Huawei.
Колледж приборостроения и информационных технологий МИРЭА
Колледж является структурным подразделением профильного IT-вуза — МИРЭА. Здесь готовят техников-программистов и системотехников. На бюджетное отделение принимаются выпускники 9 класса, для них открыто 50 мест. По вступительному конкурсу колледж может посоперничать с самим МИРЭА — в 2015 году на каждое место претендовали 6,7 абитуриентов. Зачисленные продемонстрировали средний балл аттестата не ниже 4,1. Колледж сотрудничает с заводами «Салют», «Прибор», «Сапфир» и другими предприятиями оборонной промышленности, где студенты проходят практику и приходят на работу по окончании обучения. Большинство выпускников колледжа продолжают обучение в МИРЭА.
Как стать программистом 1С
1С — это программа, которая широко используется в странах СНГ, для упрощения ведения документации предприятия и бизнеса.
Среда разработки 1С подразумевает под собой наполовину визуальное программирование, то есть разработчики уже позаботились о некоторых базовых объектах (такие как справочники, документы, регистры и т. д.), которые можно создать в 2 клика и добавить туда необходимые атрибуты. После того, как вы создали базовые объекты (с помощью графического интерфейса), вы можете собрать frontend часть вашей конфигурации — то, как увидит систему пользователь. Остается только запрограммировать между собой взаимодействие всех элементов. Синтаксис крайне прост, и если уже есть базовые знание программирования, то разобраться не сложно.
Как правило, при приобретении данной программы, разработчик предоставляет всю подробную документацию, необходимую для изучения. Особенностью программирования в этом случае является то, что можно программировать на русском языке. Если вы имеете хорошие навыки владения компьютером, и базовое понимание программирования, о котором мы говорили в предыдущем вопросе, то разобраться в этом можно в течение месяца. На моем личном опыте, это заняло как раз 1 месяц (но у меня есть базовые знания программирования после университета).
Чем дальше развивается 1С программист, тем больше программирование выходит на задний план, так как все достаточно тривиально. На передний план выходит построение и понимание бизнес логики процесса. Огромным плюсом является то, что для 1С уже написано множество готовых решений для ведения бизнеса в разных отраслях, и всегда можно подсмотреть, как такую задачу уже решают.
Необходимые профессиональные умения и знания
Всему перечисленному можно научиться. Да, развиваться нужно постоянно, но базовый навык кодирования можно развить до совершенства всего за несколько лет учебы по качественно проработанной образовательной программе.
Другой вопрос, что нужно знать чтобы поступить на программиста. Здесь невозможно за 2−5 лет вырасти в профессионала, если подойти к профильному образованию с минимальным набором школьных знаний. Желая опередить соперников, со старта карьеры получить преимущество, каждый программист (будущий) должен приступать к освоению профессии с отличной базой:
- по математике (здесь же — логика, теория вероятности);
- физике;
- информатике;
- английскому, русскому.
Что должен знать программист для работы на перспективу (карьера, зарплата, репутация)? Нужно глубокое понимание архитектуры программной среды, где предстоит работать, принципов кодирования, знание простейших методов создания программ.
Знать нужно очень много: стандарты программирования, концепцию проектирования задач, методологию тестирования ресурсов. Чем глубже студент погружается в основы математики (анализ, графы), тем сильнее его позиции, шире арсенал применяемых инструментов.