Как стать программистом?
Содержание:
- Хорошая работа
- Минусы и подводные камни
- Где и как программисту искать работу после стажировки
- Карьера программиста: джун, мидл, сеньор
- Советы и проблемы
- Советы начинающим программистам
- Вторая работа была удалённой
- На пути к профессии программиста
- Разобраться в мотивации
- Шаг 3. Первая программа
- Как изучить Java самостоятельно
- Обучение
- Шаг 2. Выбор направления и языка программирования
Хорошая работа
После 6-12 месяцев работы, можно задуматься над следующими вопросами:
- нравится выбранная область или нет? Возможно, стоит сменить бэкенд на фронтенд или сменить язык, фреймворк. На данном этапе это будет сделать значительно проще.
- устраивает текущее место работы или нужно искать что-то более интересное, высокооплачиваемое или с меньшей нагрузкой?
Имея опыт реальной работы, можно рассматривать вакансии уже не с позиции «лишь бы куда за опытом», а с позиции собственных интересов и приоритетов. Сперва нужно определиться с направлением, специализацией внутри выбранной области. Например, фронт на react, разработка микросервисов на go, машинное обучение или blockchain. Затем выбирать место, в котором помогут развиваться в выбранном направлении и обеспечат достойную оценку труда.
Минусы и подводные камни
В рекламе курсов программирования вам никогда об этом не скажут. Но мы любим своих студентов и считаем своим долгом дать максимально полную картину заранее.
Сильная нагрузка на глаза
Даже многие сисадмины, которые перекатились в программирование, жалуются, что глаза теперь устают гораздо сильнее. Ну, собственно говоря, тут все понятно, кодинг — это много, много, много часов перед монитором. Если у вас и так плохое зрение, стоит сходить к хорошему офтальмологу и проконсультироваться насчет перспективы сидеть перед монитором по 10 часов в день.
Сидячий образ жизни
Очень негативный фактор для здоровья. Ребята сражаются с ним, как могут. В моду входят стоячие столы, но всей проблемы это не решает. В защиту программирования можно сказать, что большинство офисной работы — это то же самое многочасовое сидение перед монитором.
Необходимость учиться всю жизнь
Само собой, это не минус, но это важная особенность, и необходимо это четко понимать. Если в какой-то профессии можно пройти месячное обучение и идти работать, раз в 3 года посещая курсы для галочки и сертификата, то тут вам нужно будет прорабатывать десятки книг, курсов, сертификаций, чтобы оставаться на плаву. При этом вы будете конкурировать с очень умными людьми, которые часто будут моложе вас лет на 10.
Необходимость тратить очень много свободного времени на обучение
Недавно на Хабре была статья про человека, который готовился к марафону Ironman. Так вот, его тренер в числе первых вопросов спросил, как к его решению относится семья. Думаю, и на IT-курсах у семейных людей должны спрашивать то же самое. Потому что в ближайшие год-два, при условии, что вы хотите расти как разработчик, вам нужно будет уделять обучению и работе очень много времени. И забирать это время будете у семьи. А про какие-то хобби и праздные тусовки вообще можете забыть. Если у вас прокачанные навыки тайм-менеджмента, будет проще. Если вы и сейчас как белка в колесе ничего не успеваете, будет очень сложно.
Скромная зарплата на первое время
Уже в нескольких статьях мы писали, что школы программирования осознанно создают миф об огромных зарплатах. Мелькают цифры 100, 120, 150 тысяч рублей. Так вот, на первых порах о таких зарплатах можете забыть, если, конечно, живете не где-нибудь в Калифорнии. В провинции, даже в городе-миллионнике, вам для начала будут платить 20-35 тысяч рублей. В Москве в районе 30 — 70 тысяч рублей.
Сами видите, что разговоры о мега-зарплатах программистов — это полная туфта. Эти цифры вполне сравнимы с любой другой профессией. Конечно, со временем ваша зарплата будет расти. Как и в любой другой профессии. Но если сейчас вы ценный специалист в области, не связанной с IT, и хотите бросить свою работу и стать программистом, хорошо подумайте. Возможно, к текущему уровню дохода вы можете вернуться лишь через пару лет. Быстрых успехов тут не будет, это не спринт, а очень долгий марафон.
Где и как программисту искать работу после стажировки
Даже Junior-разработчики сразу хотят получать большую зарплату. Это разумное и правильное желание. Но если вы пришли в программирование за деньгами, скорее всего, ничего не получится. Конечно, доход играет важную роль, но, кроме него, должна быть еще какая-то мотивация.
Зарплата Junior-специалиста может быть в пределах от 20 до 60 тысяч рублей. Разница в три раза. Поэтому я бы агрессивно подходил к вопросу трудоустройства: откликался на все вакансии, проходил собеседования, предлагал свои услуги компаниям, у которых сейчас нет свободной должности программиста.
Но зарплата не самый главный критерий выбора. Особенно для новичков. Можно найти работу с окладом на 10 тысяч выше, но попасть в компанию с токсичной командой. Или попасть на поток однотипных задач. С такой работой чему-то новому не научишься — свою ценность поднять не получится. Есть риск надолго застрять в позиции Junior и не набраться реального опыта разработки.
Мне повезло сразу устроиться в компанию с интересными проектами и крутой командой. Около двух лет я проработал в WB—Tech. Но потом ребят, на которых равнялся, забрали в Яндекс и другие крупные компании. На тот момент в поисках чего-то нового я тоже ушел с повышением. Но через несколько месяцев принял решение вернуться обратно в WB—Tech.
Уход из компании — это не способ поднять себе цену. Если ты действительно чего-то стоишь на рынке, есть нужная теоретическая база и практические навыки, карьера пойдет вверх.
За знаниями и опытом приходите в школу стажеров WB—Tech. Тем более что это бесплатно и ни к чему не обязывает.
Карьера программиста: джун, мидл, сеньор
Карьера программиста имеет три ступени: Junior («джун»), Middle («мидл»), Senior («сеньор»).
Джун, джуниор (Junior), начинающий программист
Джун — это не нулевой уровень программиста, а уровень начинающего программиста после обучения и некоторой практики. На работе джуны выполняют порученные мелкие части проекта, а не проект целиком, не обязательно представляя себе масштабы проекта. Для того, чтобы вас взяли джуном можно выучиться самостоятельно по книгам или закончить хорошие курсы программистов, где вас научат:
- прикладной теоретической базе
- основам одного из языков программирования
- работе с XML, JSON
- основам одного из фреймворков
- основам среды разработки — программа для написания кода
- алгоритмам
- работать с консолью (терминалом)
- основам баз данных
- некоторым методологиям разработки и взаимодействию с другими участниками проекта
- основам контроля версий кода
Примеры задачи перед джуном: транслитерация входящей строки, написать подпрограмму для проверки значений.
Чтобы чувствовать себя увереннее на собеседовании, нужно приобрести кое-какой опыт работы. Прекрасным примером такой работы может быть собственный pet-проект (например, собственный сайт или самописная консольная утилита). К собеседованию нужно готовиться тщательно, потому что много и глубоко спрашивают, в том числе могут дать логическую задачу. Старайтесь не быть поверхностным. Это нормально, если пройдёте много собеседований прежде, чем вас возьмут на работу джуном. Начинающих очень много.
Мидл (Middle), программист среднего уровня
Мидл — это вполне самостоятельный программист, который может справиться с любой задачей. Мидл имеет довольно глубокие знания в:
- в языке программирования — особенностях, подводных камнях, предельных возможностях языка
- одном или нескольких фреймворках
- всех основных методологиях разработки (SOLID, DRY, KISS, YAGNI, DIE, DDD, TD)
Мидл должен понимать цели и задачи продукта, который он разрабатывает, а также хорошо понимать предметную область, в которой он работает, например, финансовую. Перед ним могут поставить такую, например, задачу: разработать приём платежей в программе. Мидл должен самостоятельно выбрать инструментарий, выстроить архитектуру, прописать план и точные сроки выполнения. Таким образом, в его задачи входит и административная работа.
Сеньор (senior)
Сеньор — это программист высшего порядка. Он умеет разработать архитектуру новой программы или сайта. Для того, чтобы эта программа была создана требуются и другие люди. Сеньор умеет ставить перед ними задачи и контролировать их выполнения. Таким образом, сеньор должен обладать навыками руководителя: видеть цель, объяснить её подчинённым, вдохновить их, обучить и проконтролировать, сделать работу над ошибками.
Сеньор глубочайшим образом понимает структуру проекта, фреймворков и инструментов разработки. Он заранее предвидит как в будущем будет меняться проект и как его оптимально поддерживать в будущем.
Сеньор может стать руководителем группы программистов (тимлидом), менеджером IT-проекта, IT-директором предприятия и т. п.
Советы и проблемы
Кроме самого процесса изучения языка программирования, человек во время его освоения и до момента получения первых положительных результатов (для каждого успех будет своим) столкнётся с огромным количеством преград и сложностей.
- Откладывайте деньги. От момента открытия руководства или книги до дня, когда получите первое предложение или вас выберут исполнителем на бирже фриланса, может пройти 2-3 месяца. На этот период необходимо обеспечить свою семью финансово. Лучше с небольшим запасом. Иначе придётся бросать книги и идти работать.
- Согласуйте и обсудите решение с семьей, взвесьте все плюсы и минусы: изучение ЯП после работы, увольнения с текущего места работы, дополнительные расходы на самообразование. Весь процесс должен быть распланирован как можно подробнее, учтены все возможные последствия (мыслим как программист) и подготовлены альтернативные варианты развития событий (вдруг после месяца труда так и не получилось ничего понять).
- Регулярные занятия. Чтобы добиться успеха, программированию необходимо уделять по пару часов в день без длительных перерывов. В процессе освоения ЯП перерывы нужно делать каждые 15-30 минут и несколько минут отдыхать.
- Долго не мотайтесь от одного языка программирования до другого. Как показывает статистика, немногие разработчики кодят на том языке, который учили первым. Вскоре после обзаведения достаточным для дальнейшего прыжка в развитии опыта вы смените язык программирования на среднеуровневый (C). В процессе проникновения в код программ многое меняется, как и ситуация на рынке.
- Общение и обмен опытом с единомышленниками в различных коммьюнити, чатах и на форумах.
- Смена рода деятельности. Планируйте день таким образом, чтобы в нём находилось место всему, чем занимались до изучения программирования. Особенно спорту и связанными с движением видам деятельности.
- Учите английский язык хотя бы на уровне понимания значения слов операторов. Его знание на высоком уровне будет плюсом при трудоустройстве, понадобится для чтения книг и интернет-ресурсов на английском.
- Обзаведитесь наставником, который даст совет, подучит, подскажет, поделится опытом, подкорректирует «путь» и т.д. Таких людей можно найти через интернет и платить им за консультации (это не всегда), среди знакомых и их знакомых. Лучше всего обратиться к другу-программисту, если такой есть.
- Неудачи и сила воли. Будут в процессе самообучения ситуации, когда после многих часов или даже нескольких дней решение какой-либо задачи так и не приблизится. Появится желание отдохнуть, забросить учебники вместе с программированием, включить игру или фильм и заняться чем-то иным, полегче. Отдых нужен, но не больше. После него с новыми силами возвращаемся к поиску решений. Порой они находятся спонтанно.
- Пишите собственные программы, для себя. Пускай они будут простыми, но это опыт, плюс в портфолио.
Советы начинающим программистам
Для начала есть несколько советов, которые подойдут под любой из перечисленных случаев:
1. Есть как минимум две книги, которые познакомят человека любого уровня с азами программирования. Я их крайне рекомендую прочитать перед началом пути:
- Петцольд Ч. Код: тайный язык информатики.
- Столяров А.В.: Программирование — введение в профессию. Том 1 — азы программирования.
2. Сразу же начинайте общаться и вступать в сообщества, делиться первыми и последующими наработками, спрашивать совета и брать лучшие примеры с других. Здесь, пожалуй, первое, что необходимо сделать любому будущему программисту — это завести аккаунты на профильных ресурсах:
- Заведите аккаунт на платформе GitHub. Это сайт, где программисты хранят историю создания своих программ, делятся исходными кодами, учатся и берут примеры, создают совместные проекты и свои собственные, и где целые компании настраивают полный цикл создания программного обеспечения. По ходу использования аккаунта, так или иначе, вам придётся вникнуть в азы технологии GIT, которая используется по всему миру. Книга «Pro Git» от Скотта Шакона поможет вам разобраться во всём необходимом.
- Заведите аккаунт на LinkedIn. Это ресурс, где весь западный мир ищет специалистов, и где можно найти топовых людей из IT-индустрии, спросить совета или просто узнать новости. Тут есть авторы языков программирования и фреймворков, технологий и алгоритмов, книг и журналов.
- Заведите аккаунт и читайте Twitter — там огромное количество технических специалистов всех областей, которые регулярно постят что-то интересное.
- Для мотивации и выбора направления подписывайтесь и читайте тематические рассылки Habr.com, VC.ru, xakep.ru, Telegram-каналы профессионалов индустрии (https://t.me/addmeto, https://t.me/techsparks, https://t.me/g33ks, https://t.me/denissexy и т.д.) и целых компаний (https://t.me/avitotech, https://t.me/luxoftrussia и т.д.), слушайте подкасты про разработку, а также листайте профильные англоязычные ресурсы вроде Hacker News и прочих.
Имея всё это, позднее, при составлении резюме, вам будет что написать и на что сослаться.
3. В своём развитии найдите баланс между тем, что вас действительно интересует и увлекает (создание сайтов, программ, решение задач и т.д.) и изучением всей необходимой теории. Я советую 50% времени тратить на полезную практику и остальные 50% на теорию.
Например, всё ещё поверхностно зная язык программирования, можно уже начать создавать простые утилиты и выкладывать их на GitHub (попутно изучая как пользоваться системой контроля версий Git, или черпая хорошие примеры других похожих программ).
Создание чего-то работающего и полезного будет вас мотивировать и не даст бросить дело, а примеры ваших работ на GitHub дадут будущему работодателю понимания пути вашего развития.
Не стоит сразу и на 100% углубляться в языки, технологии или теорию без практического подкрепления, ведь теория сложна и часто не сразу можно её понять. Да и не вся она применима в жизни.
4. Используйте технику параллельного чтения. Я советую читать параллельно сразу несколько книг по одной и той же теме: языку программирования, алгоритмам, фреймворкам или технологиям. Как правило, главы и темы в них пересекаются. При этом разные авторы дают материал по-разному, и далеко не всегда их ментальная модель совпадает с вашей. К некоторым книгам нужна предварительная подготовка или опыт, а другие «разжёвывают» всё так, как вам нужно.
Я советую читать каждую главу так, чтобы вы максимально понимали прочитанное. И если вы что-то не поняли в какой-то главе, то смело открывайте другую книгу и читайте главу по той же теме. Чаще всего, лишь одна из трёх-четырёх книг объясняет всё подходящим для вас образом. Кстати, далеко не всегда вам подойдут те же книги, которые советуют опытные профессионалы. Найдите своё!
5. Английский язык обязателен. Вам нужно практиковаться в чтении и письме.
К сожалению, перевод книг зачастую искажает написанное и гораздо легче понять автора на английском языке. Если вы не готовы читать книги на английском, тогда хотя бы начинайте читать новостные сайты: вы увидите много новых точек зрения и начнёте постепенно обогащать свой словарный запас.
6. Без работы в компании над реальными жизненными задачами вы не станете программистом. Поэтому целью любого начального изучения программирования является поступление на работу в компанию.
Вторая работа была удалённой
Позже мне снова написали в Telegram — компания из Кисловодска нашла мой аккаунт на GitHub, где сказано, что меня не пугают сдвиг часового пояса и удалёнка, у меня нет игровой приставки, а на ноутбуке стоит Linux.
Человек спросил, сколько лет я работаю с Vue.js (нисколько), знаю ли Vuex (нет). Я скинул ему тестовое, которое делал для магазина техники, и меня взяли. На всё ушёл один телефонный звонок.
Я сказал, что сперва должен уволиться из агентства, и он предложил первое время совмещать обе работы. В тот же вечер мне дали доступы и сказали изучать документацию.
В агентстве я пообщался с начальником и сказал, что мне не нравится команда и процессы и я точно ухожу. В ответ услышал, что это «плевок в лицо» и я обязан отработать две недели, хотя договор мы ещё не подписывали. Я боялся, что не получу зарплату, и потому согласился.
Дальше я работал в агентстве до 19:00, час добирался домой, а потом до 2:00 делал задачи для новой компании. Спать по четыре часа было трудно, так что я постоянно пилил начальника, чтобы он быстрее искал замену. В итоге меня отпустили на неделю раньше и даже выдали всю зарплату.
На новой работе тоже были странности — например, перед выходными старший фронтендер сказал разбираться с Vuex и BootstrapVue, а в понедельник уже уволился. Целую неделю я учил документацию, на дейли писал, что жду задач. В итоге пришёл новый человек и меня отдали ему.
На пути к профессии программиста
Стоит сразу оговориться, что путь этот очень разный для студентов и уже состоявшихся специалистов. И я бы хотел рассказать отдельно про каждый случай:
- Если вы только заканчиваете школу, то очевидно, самым правильным было бы поступить на профильный факультет любого ВУЗа. Даже если ВУЗ не будет самым топовым учебным заведением страны, в течение учёбы вам так или иначе придётся изучить теорию и получить практику программирования, которой будет вполне достаточно (если действительно учиться), чтобы впоследствии пройти собеседование в IT компании и там набраться опыта. Уйма книг и онлайн курсов, доступных в интернете, позволят получить высокий уровень знаний в независимости от названия ВУЗа или красноты диплома.
- Если вы уже студент непрофильного ВУЗа или факультета, то вам придётся свыкнуться с тем, что нужно будет «попотеть» вдвойне. Но стать сильным программистом всё также возможно, так как времени у вас достаточно.
- В случае, если у вас за плечами несколько лет учёбы и работы не по профилю, студенческая жизнь позади, но вы всё же решились сменить профессию, то я не советую брать за основу путь студентов — ваш путь, совершенно иной, однако не менее перспективный.
Разобраться в мотивации
Перед началом обучения задайтесь вопросом, для чего вам это нужно. Если вы собираетесь программировать только потому, что у разработчиков высокие зарплаты, из этого ничего хорошего не выйдет.
В этой сфере нет никакой романтики, как опрометчиво полагают многие. Здесь нужно ежедневно много думать и читать, и человеку без математического склада ума будет просто тяжело работать. Это означает в том числе, что вы десять часов можете провести за решением одной задачи, пробуя различные варианты.
У программистов рутинная и механическая работа, и к этому нужно быть готовым. Правда, некоторые разработчики почему-то обижаются, когда их занятие не ассоциируют с творчеством. Тогда они находят красоту в коде: «О, вот эта реализация очень красивая». Странно это слышать, поскольку реализация либо работает, либо нет, а красота кода — от лукавого.
Приводим два экспертных мнения насчет того, является программирование творчеством или нет. Директор центра по подбору специалистов SymbioWay Даниил Пилипенко полагает, что это зависит от задачи:
— Программирование может быть и творчеством, и рутиной. Первым оно становится тогда, когда программист создает что-то новое: реализует алгоритм для задачи, проектирует архитектуру и даже просто придумывает имена переменным, методам и классам в своем коде. Но бывает и малотворческое программирование: например, исправить уже готовое приложение или баги своих коллег. Такие задачи программисты традиционно любят меньше.
Шаг 3. Первая программа
Когда выбор сделан и принципы алгоритмизации освоены, пришло время написать первую программу, не учитывая эксперименты с кодом в примерах.
Для этого придётся изучить синтаксис выбранного языка программирования – правила его использования.
Код, написанный с их применением, интерпретатор правильно поймёт и выполнит.
Рис. 6 – Написание исходного кода
Интерпретатор – программа, способная выполнять исходный код программы.
В синтаксис входят:
- слова – операторы, которые укажут интерпретатору, что следует делать с информацией;
- функции – вызываемые «единицы» — микропрограммы, которые в готовом виде встроены в язык программирования;
- процедуры – макросы, то же, что и функция, только она не возвращает в тело программы результат своей работы, минимизируют код;
- переменные и их типы – это единица, в которой хранится информация, которая может редактироваться; понимание разницы между всеми поддерживаемыми языком типами данных обязательно;
- условные конструкции или выражения: нужно освоить различные виды циклов (многократная обработка информации) и конструкций с условиями, например, «если-то»;
- методы ввода и вывода данных – перед обработкой информация в программу должна откуда-то браться, а конечный результат её работы – передаваться (по сети, иной программе) или сохраняться (в файл).
Вся эта информация есть в книгах по алгоритмизации (в первую очередь) и посвящённых выбранному ЯП.
Параллельно с освоением материалов учебников необходимо практиковаться – писать миниатюрные программы, экспериментировать с различными командами и типами данных, чтобы понимать их суть, различия между ними, учиться писать код, соответствующий синтаксису выбранного ЯП.
Как изучить Java самостоятельно
Шаг 1
Лучше всего начать изучение с синтаксиса, а уже потом освоить основы объектно-ориентированного программирования, не обязательно в контексте Java. Разберитесь в типах данных и операторах. Попробуйте создать простые Java-объекты с разными вариантами поведения.
Шаг 2
Разобравшись с основными понятиями, установите программное обеспечение для кодинга и запуска программ — JDK (Java Development Kit).
Исходный код пишется в текстовом формате. Скачайте и установите одну из IDE (Integrated Development Environment) — это среда для разработки программного обеспечения (интерфейс, в котором пишут код).
Самая популярная среда — . Это удобный инструмент с подсказками, возможностью проверки и отладки кода, удобной интеграцией с базой данных и серверами. Подробная документация о классах и инструментах языка доступна на сайте Oracle.
Шаг 3
Научитесь работать с базами данных. Для этого нужно освоить систему управления базами данных (СУБД), например SQL. Посмотрите, как действуют операторы и функции, научитесь манипулировать структурой таблиц и писать сложные запросы.
Шаг 4
Спроектируйте первое приложение. Разберитесь в принципах построения архитектуры, научитесь проектировать. Освойте фреймворки (готовые программные продукты, которые упрощают создание и поддержку проектов) для создания веб-проектов, например Spring.
Обучение
С самого начала стоит отметить, что обучение программированию — дело непростое и небыстрое. Чтобы стать разработчиком, вам придется вложить много труда и времени. Но то, что учиться нелегко, не означает, что это не весело!
Если вы чувствуете, что хотите стать разработчиком, и вам нравится программирование, время, которое вы потратите на обучение, будет для вас очень интересным и приятным. Насколько быстро вы научитесь программировать, во многом зависит от вашей мотивации и приверженности, а также от выбранного вами метода обучения. Стать младшим разработчиком можно даже за 6 месяцев!
Шаг 2. Выбор направления и языка программирования
В индустрии условно выделяется несколько направлений в программировании:
- Веб-разработка – создание сайтов и веб-приложений – актуальными являются языки PHP, JavaScript, SQL, Python. По умолчанию к списку обязательно прибавляются знание CSS и HTML.
- Пользовательские приложения – все C-подобные ЯП: C, C++, C#. Многие компании создают собственные модификации C для личных нужд, например, Nvidia.
- Мобильные приложения – Java для Android и Swift для платформы iOS. В 2017 был презентован новый язык программирования – Kotlin, который стал вторым официальным для разработчиков под Android после Java.
- Микроконтроллеры – низкоуровневое машинное программирование – для желающих подчинять машины человеку стоит заняться изучением низкоуровневого языка Assembler. Хотя большинство современных микроконтрроллеров и «дружат» с C, знание Ассемблера при работе с «железом» (робототехника, умные дома) обязательно.
Список актуальных в начале 2019 года языков программирования.
Рис. 3 – Перечень наиболее популярных языков программирования в мире в 2018 году
Сначала выбираете платформу – операционную систему, под которую собираетесь писать. В последние годы новички чаще всего выбирают Android, реже – Windows, а потом все остальные.
Опытные же разработчики переходят из этих сфер, веб-разработки и иных платформ в программирование под Linux.
Перед окончательным выбором обязательно изучите тенденции рынка за последние годы (какие языки набирают популярность, какие разработчики становятся менее востребованными).
Список популярных платформ на начало 2019 года. Всё больше компаний отдают предпочтение UNIX-подобным операционным системам, «отворачиваясь» от Windows (в первую очередь – последней её версии).
Программисты под Windows вместе с серверными версиями ОС занимают чуть более трети рынка. Среди мобильных платформ лидерство принадлежит Android.
Рис. 4 – Доля рынка разработчиков в операционных системах
А вот такие специалисты на рынке труда в 2018 году были в дефиците, естественно, опытные и со стажем работы.
Но они приходят со временем и упорным трудом. Веб-разработчиков, как видим, на рынке труда очень много, и конкуренцию они составляют отличную, особенно новичкам.
Рис. 5 – Самые востребованные направления в области в 2018 году
Кроме разработчиков на новом Kotlin, нужны специалисты по Go – многопоточный мультиплатформенный язык программирования – и распространённым средам для написания программного кода.
Python – язык многоцелевого назначения, нередко изучаемый в ВУЗах в качестве первого ЯП. Универсал, владеющий Питоном, сможет работать почти в любой сфере, кроме программирования контроллеров и микроконтроллеров, а также тех отраслях промышленности, где нужны знания C-подобных языков.
Применяется:
- для аналитики, анализа информации, создания отчётов и статистик;
- в веб-разработке – создание современных динамических сайтов и веб-приложений практически любой сложности;
- в образовательной сфере – из-за простоты применяется в ВУЗах, а многие их студенты заказывают практические работы у фрилансеров;
- при создании трёхмерных игр;
- для написания плагинов, библиотек и расширений для приложений.
Для Python существует огромная масса пакетов, библиотек и фреймворков, заточенных под определённые проекты: математические функции, анализ данных.
JavaScript – соперник Python, хотя более популярен для написания серверных и мобильных приложений. Также имеет множество фреймворков, адаптированных для различных случаев.
Go – имеет открытый код и создан для написания программного кода, оптимизированного под выполнение многоядерными процессорами.
C++ и C# — универсальные, но сложные в освоении новичками.
Pascal – во многих учебных заведениях до сих пор применяется в качестве первого языка программирования с целью обучения студентов и учеников алгоритмизации, написанию кода.
Какой бы язык и направление не выбрали, всегда начинайте из языка программирования высокого уровня – JavaScript, Python. Это скриптовые языки, где управление памятью осуществляется автоматически, а работа с указателями для новичка находится в недрах. После понимания каждой строчки кода, освоения работы с памятью и адресацией можно переходить на ЯП среднего уровня.