Хочу заняться программированием с чего начать
Перейти к содержимому

Хочу заняться программированием с чего начать

  • автор:

Как учиться программировать: 6 вещей, которые я понял, учась на Хекслете

Как учиться программировать: 6 вещей, которые я понял, учась на Хекслете главное изображение

Когда я только начинал изучать программирование, у меня голова была забита кучей неверных представлений о профессии программиста и о том, как и что нужно учить. Со временем я понял несколько важных вещей, которые, если б я узнал это раньше, очень сильно упростили и ускорили бы мое обучение.

  • Какой язык программирования изучать первым? Неважно!
  • Про первую работу
  • Учиться программировать сложно
  • Про code kata
  • Не нужно зубрить названия функций
  • Тупить — это нормально. (с) Елена Малышева

Большинство этих вещей до меня дошли именно в процессе обучения и общения с ребятами-программистами на Хекслете. Для кого-то это явно будут откровения Капитана Очевидность, но, возможно, кому-то оно и принесет пользу.

Какой язык программирования изучать первым? Неважно!

Не нужно тратить сильно много времени на выбор и мучаться этим. Берите Ruby, Python, JavaScript, PHP, Java, Lisp, да хоть паскаль — не ошибетесь. Для начала вам все равно нужно будет освоить базовые вещи, такие как циклы, условия, переменные, функции, объекты, рекурсию и т.п. Я когда-то в школе немного программировал на всяких бейсиках и C++, но к тому времени, как решил стать программистом, все это успешно забыл.

Начал изучение с Java, и не жалею, после этого было легче изучать менее строгие языки, вроде JS и PHP. Минус Java в том, что, если вы живете не в милионнике, вам будет весьма сложно найти на нем работу джуниора и получается, что обучение какое-то бесцельное, ради обучения, что сильно снижает мотивацию. В то время, как изучая PHP, например, уже очень быстро можно брать какие-то первые заказы на фрилансе, устроиться на первую работу в веб-студию и т.п., т.е. начать на своем хобби зарабатывать первые деньги, что очень сильно поднимает мотивацию.

Новички так серьезно подходят к вопросу «Какой же язык программирования выбрать», будто им предстоит подписать договор с дьяволом, и всю жизнь писать только на этом единожды выбранном языке. Лично для меня просветлением стало, когда я увидел профили высокооплачиваемых программистов на бирже Upwork, почему-то очень во многих из них было написано примерно следующее — могу Django, могу Rails, а еще Meteor и Angular, да и Spring тоже. И Joomla само собой.

Потом я спрашивал некоторых знакомых (и малознакомых) программистов об их карьере, и увидел некий паттерн, которого раньше не понимал. Человек может, например, год работать с PHP, потом уйти на Java, потом плюнуть и выучить руби, стать RoR разработчиком, и в итоге заняться Node.js или Clojure. Любой нормальный программист знает несколько языков хорошо и десяток поверхностно. Поэтому не ломайте голову, не пытайтесь выбрать Самый Лучший Язык и строчить для этого тысяча первый вопрос на тостере. Просто берите любой язык и прочитайте по нему хотя бы одну книгу/пройдите курс. Попытки выбрать Самый Лучший Фреймворк из той же серии.

Про первую работу

Очень многие программисты начинают свою работу с весьма непрестижных компаний и крошечных зарплат. И это нормально. Но это сложно принять, особенно тем, кто решает «войти в айти» уже не в юном возрасте, имея семью и детей. Мифам об огромных зарплатах программистов зачастую способствуют школы программирования, которым нужно продавать свои курсы и в итоге на своих лендингах они крупным шрифтом пишут какие-то заоблачные цифры, вроде «средняя зарплата JavaScript программиста 150 000 рублей», при этом часто забывают сказать, что такую зарплату получают люди с опытом в несколько лет (или даже десяток лет), которые могут решать реальные сложные задачи, а вам после их курсов на старте светит тысяч 30 на испытательный срок, и это в Москве. А то и вообще попросят бесплатно поработать. За опыт и еду. Не нужно бояться идти на непрестижную и малооплачиваемую работу, потому что как только вы официально начнете работать программистом, даже за 20 тысяч в месяц, ваша привлекательность в глазах других работодателей и HRов сильно вырастет. На старте работу никто не мешает менять хоть каждые 3-6 месяцев, каждый раз уходя на бОльшую зарплату и более интересные задачи.

Но я, конечно же, не говорю, что нужно идти работать за еду, может конкретно вы найдете первую работу и за 100 000 в месяц. Просто нужно понять, что карьера тоже требует немалых усилий, и необходимо активно изучать рынок труда, время от времени общаться с рекрутерами и ходить на собеседования, чтобы адекватно себя оценивать в каждый момент времени. А первая работа — это не навсегда.

Учиться программировать сложно

В процессе учебы должны быть моменты, когда мозг напрягается, и вам кажется, что вы ничего не понимаете. Если все получается легко и без напряга, значит вы учитесь не программировать, а повторять за диктором. Если привести грубую аналогию, вас учат не плавать, а шевелить ногами, лежа на песочке. Конечно, возможно, что вы гений и вам просто все легко дается. Чтобы реально оценить свои способности, сходите на пару-тройку собеседований по изучаемому языку программирования и попытайтесь выполнить тестовые задания, которые вам дадут.

Лично я долго (слишком долго) учился на всяких курсах из серии «посмотри на меня, делай как я». Когда начал учиться на Хекслете, у меня от некоторых заданий просто мозг кипел, да и сейчас кипит. Одно задание я пытался сделать 3 дня. Но в итоге я прокачался, и теперь могу решать более сложные задания, чем раньше. Мне кажется, именно в этом должна быть цель хороших курсов программирования. Не в том, чтобы натренировать вашу память на запоминание 1000 функций из какой-то библиотеки. А в том, чтобы заставить мозг напрягаться и с каждым днем решать все более сложные задачи.

Про code kata

На определенном этапе (почти сразу после изучения основного синтаксиса одного из языков программирования), нужно набить руку в решении простых (хотя бы простых, для начала), алгоритмических задачек. Есть десятки разных сервисов, где это можно делать — codewars.com, exercism.io, hackerrank.com и т.п. Проскочить этот этап не получится. Если вы зашли на codewars и просто не понимаете, что от вас хотят, и как решать даже самые простые задачи первых уровней, срочно вливайтесь в какое-то сообщество, где есть программисты и единомышленники, изучающие программирование, и где можно будет задавать вопросы и получать помощь. Одно из таких мест — чат Хекслета. Если вы не научитесь решать эти простые задания, вероятность резиста того, что вы сможете решать какие-то реальные рабочие задачи, крайне мала.

Не нужно зубрить названия функций

Смысл вообще не в этом. Это дошло до меня как-то внезапно и совсем недавно. Вообще не надо пытаться насильно их запомнить. Я пытаюсь понять смысл, построить какую-то абстракцию, грубо говоря, сформулировать для себя общую концепцию того, что изучил.

К примеру, если я знаю, что обычно в языках программирования есть возможность привести строку к нижнему регистру. C этим знанием общей концепции, если я захочу например, писать на COBOL, просто загуглю — tolowercase in Cobol. И вуаля Lower-case(Item-1) . Если я буду много писать на каком-то определенном языке, я загуглю основные функции по 100 раз, и на каком-то этапе уже их запомню.

Кстати, это очень полезная штука и для изучения иностранных языков, я лично просто ненавижу делать какие-то списки, карточки и зубрить слова. Особенно у меня вызывают желание ругаться матом наборы слов, вырванные из контекста, типа «100 прилагательных на тему Погода». Это просто нереально запомнить, а даже если и зазубрил сегодня, через месяц 80 процентов забудешь. Гораздо эффективнее просто читать/смотреть интересный тебе контент на языке и искать незнакомые слова в словаре каждый раз, таким образом через какое-то время самые употребительные слова запоминаются естественным образом.

В общем, при изучении очередной фишки языка программирования достаточно понять в целом, что оно делает, и знать, как это загуглить.

Начните изучать разработку с бесплатного курса «Основы современной вёрстки». Вы научитесь создавать статические веб-страницы, стилизовать элементы, использовать редакторы кода с полезными расширениями. В конце курса вы опубликуете свой первый сайт на GitHub Pages.

Тупить — это нормально. (с) Елена Малышева

Особенно это важно понимать тем, кто изначально далек от IT, но пытается сменить профессию и освоить программирование. Я увидел много примеров, когда очень опытные разработчики спрашивают совета касательно какой-то новой технологии, хотя, казалось бы, им с одного взгляда на документацию все должно быть понятно и все проблемы у них решаются одной левой. Опытные программисты порой говорят что-то вроде — ну его нафиг эту штуку, вообще не понимаю, как тут все работает, не мое это. Или, долго занимаясь одной технологией, просто не могут заставить себя разобраться в новой, построенной на других принципах.

То есть люди, которые занимались программированием много лет, иногда тоже не могут самостоятельно разобраться в какой-то новой фиче, и совершенно не стесняются просить совета и помощи. Однако, с вероятностью 99% предварительно они пытались сами решить эту проблему, обратились к Google и Stackoverflow, но безуспешно.

Поэтому если вы пытаетесь стать программистом с нуля, вообще не парьтесь о том, что что-то непонятно и не ставьте на себе крест, вам должно быть очень многое непонятно! Не стесняйтесь задавать много вопросов, ну и гугл ваш лучший друг. Сперва всегда пытайтесь решить свои вопросы самостоятельно, а потом просите помощи, при этом желательно расписать, что вы уже пробовали для решения проблемы.

Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях

С чего начать изучать программирование?

В голове почти любого человека, начиная с 2018-2019 года, появляются мысли о том, чтобы поменять профессию на что-то около IT. Эти мысли сразу разбиваются о скалы нескольких больших мифов.

  • Рынок переполнен специалистами и сквозь огромную конкуренцию прорваться просто невозможно. У меня тоже были такие мысли, когда я уже нашел первую работу. Меня это очень бесило до тех пор, пока я не увидел, какое большое количество людей боится сложностей, связанных с обучением. ОЧЕНЬ много новичков забрасывают курсы или свое личное обучение по многим причинам. Я общаюсь с людьми из этой сферы и могу уверенно сказать, что очень часто слышна цитата «Мы не можем найти хорошего разработчика». Учитывая то, что последние 3 года реклама курсов звучит из каждого утюга, потребности в специалистах вообще не должно быть, но она есть) Также аргумент против мифа о перенасыщении рынка -это то, что сама сфера развивается очень быстро, появляются новые компании, появляются рабочие места.
  • Обучиться профессии в IT очень сложно. На это можно сказать и да, и нет. Курсы, которые говорят: «ПОСЛЕ ПОЛУГОДА КУРСОВ ГАРАНТИЯ ТРУДОУСТРОЙСТВА» лгут, никто не будет искать вам работу) Суть в том, что обучение любой новой профессии, с которой ранее вы не были знакомы, будет тяжелым, но это только сначала. Информации, которую надо будет выучить, действительно много, но с каждым месяцем обучения будет становиться все проще и проще. А когда найдется первая работа с хорошим тимлидом, который будет указывать на ошибки прямо в проекте, вы получите буст в скорости обучения который сложно осознать.
  • Кто-то уже впереди и мне его не догнать. Я не психолог, но мне кажется, что этот загон появляется у всех людей в самых разных жизненных ситуациях. Лично у меня такие мысли были во время обучения в универе. Ребята с макбуками и в костюмах, которые зачем-то писали код, пока сидели в столовой и на перерывах между парами, рассказывали что у них новый ПРОЕКТ, или разговаривали о простых вещах сложным языком, заставляли думать, что я позади шагов на 10. Но по факту все это отставание было только у меня в голове. Тут могу только посоветовать почитать несколько притч про черепаху и зайца, не обращать на это внимания и спокойно учиться в том темпе, в котором вам комфортнее.
  • Очень забавно, но почти все люди которые при мне хотели начать что-то делать в программировании, думают, что для обучения нужен мощный ПК, знание Линукса или вообще надо покупать мак. Это абсолютно не так! Для обучения и даже для каких-то личных проектов хватит старенького ноута на винде. Главное чтобы он не лагал до такого состояния, что им просто пользоваться невозможно.
  • Работа разработчиком для очень умных ребят. Вранье, я троечник, чуть не вылетел после 9 класса в техникум, поступил в Бауманку на платку, никогда на учебу не забивал, но и звезд с неба не хватал. Много списывал. Все, что знаю, получил не с пар, а из гугла. Всем этим совсем не горжусь, но это прямое доказательство того, что даже не самый «Умный» паренек может чему-то научиться, главное быть усердным и не забивать на развитие. Данных заблуждений в голове может быть огромное множество, поэтому их все расписать невозможно, но мне кажется, что эти — самые популярные. Если вы твердо решили чему-то учиться, двигаемся дальше к основной теме этой статьи. С чего же все-таки начать изучать программирование?
  1. Что из себя представляет разработка? Для людей которые совсем не представляют, что делает программист на работе, постараюсь объяснить простыми словами. Есть проект, например какой-то сайт. Пусть будет ВК. У ВК есть группа людей, которые разбираются в том, какие новые функциональности хотят видеть пользователи. Они заметили, что многим не нравится слушать голосовые сообщения. Было решено добавить возможность распознавания речи, чтобы пользователь нажал кнопку и увидел текст голосового сообщения. Дальше эта идея подробно расписывается на бумаге: как и что должно работать. После этого в игру вступают дизайнеры. Это ребята которые по описанию фичи рисуют то как она будет выглядеть на сайте. И вот на следующем этапе начинают работу разработчики. У них на рабочих ноутбуках есть самая обычная папка, в которой лежит много текстовых файлов. Вот в этих текстовых файлах находится код на разных языках программирования. Задача разработчика добавить в нужные места такой код, чтобы все выглядело и работало согласно дизайнам и описанию фичи. Если все работает, дальше работу программистов проверяют тестировщики, и, если все хорошо, отправляют пользователю.
  2. Как выбрать язык программирования для обучения? Когда человек начинает гуглить что-то про изучение программированию, голова идет кругом от огромного количества разных языков. На эту тему можно рассуждать очень долго, но суть видео и статей сведется к тому, что люди защищают тот язык, на котором пишут. Ищут в нем плюсы, знают как обойти его минусы или просто закрывают на них глаза. Тем не менее есть несколько критериев по которым можно сделать +- объективный выбор.
    1. Популярность языка (Статья на тему). Это важно, поскольку у популярного языка большее комьюнити, больше обучающих материалов.
    2. Количество вакансий (Статья на тему). Тут все понятно. Больше вакансий — больше работы.
    3. Средняя зарплата разработчиков (Статья на тему). Это не должно быть самым важным пунктом среди трех перечисленных, тк. зарплаты очень сильно зависят от компании. Но для общего представления стоит это знать.

    Когда я смотрел на эти графики 4 года назад, я в первую очередь обратил внимание на JavaScript, и не пожалел о своем выборе. В любом случае важно понимать, что когда выучен 1 язык программирования, второй учится в разы легче.

    1. САМОЕ важное, что должен уметь делать программист — правильно формулировать вопрос в Гугл. В работе приходится обращаться к гуглу почти каждый день, во время обучения нужно гуглить целый день.
    2. youtube.com — Главный друг человека, который только начал обучение. Вбиваете например «JavaScript уроки» и вам попадается пара-тройка плейлистов с названиями наподобие «JavaScript с нуля». Найдите того, кто объясняет понятнее, и смотрите его. Если что-то не поняли в объяснении, сформулируйте запрос в Гугл и ищите до тех пор, пока не сможете объяснить своими словами. Это идеальный вариант.
    3. habr.com, medium.com и прочие сайты со статьями — Скорее всего вам будут часто попадаться на сайты со статьями. Иногда они будут на английском, это нормально, пугаться не стоит. Переводите в переводчике, делайте все как там написано, и все будет работать. Если не работает — формулируете вопрос и пишите в поисковой строке гугла.
    4. stackoverflow.com — Это лучший источник информации когда попадется незнакомая ошибка. Просто вставляете в поисковую строку Гугла текст ошибки, с вероятностью 99% в первых ссылках будет этот сайт. В основном там пишут на английском, но переводчик поможет разобраться что к чему.
    5. learn.javascript.ru — Замечательный учебник по JS который охватывает весь синтаксис. В конце каждого урока есть задание и решение к нему с объяснением.

    Подытожим. Для того, чтобы начать изучать любой язык программирования, нужно:

    1. Выделить первые шаги, изучив несколько дорожных карт того языка, который вы выбрали.
    2. По выделенным темам искать обучающие видео в YouTube, статьи в интернете, электронные учебники или курсы.
    3. Я бы посоветовал долго не штудировать синтаксис на маленьких задачках и поставить перед собой цель сделать стандартный «Список дел». Обычное приложение которое может создавать, отображать, изменять и удалять текстовые заметки. Такие приложения называют CRUD приложениями (Create Read Update Delete) и очень часто их дают в качестве тестового задания на позиции джуна. В процессе его создания вы изучите синтаксис языка, столкнетесь с кучей проблем и будете искать их решение в гугле. Никто не мешает поискать гайды в YouTube «Как сделать список дел на JavaScript» к примеру. Делаете все как на видео, набираетесь опыта. Далее к этому приложению можно будет прикрутить базу данных, написать для него сервер и, если вам хочется запариться, развернуть в интернете, чтобы кто-то мог зайти туда по ссылке.
    4. Если в процессе обучения в статье или обучающем видео вы заметите незнакомый символ или слово в коде (такое будет происходить очень часто), лучше поставить на паузу, погуглить это слово и разобраться что оно означает, где применяется и зачем.

    В заключение хочется сказать, что, прилагая усилия, занимаясь 2-3 часа в день на протяжении полу года, вы сможете выйти на уровень, с которым можно ходить на собеседования. Поиск первой работы является самым сложным этапом, но это тема для другой статьи.

    • с чего начать
    • с чего начать новичку
    • программирование
    • javascript
    • мотивация
    • мотивация на обучение
    • программирование с нуля
    • JavaScript
    • Программирование

    10 бесплатных способов войти в IT: от самых очевидных к нестандартным

    Лайфхак: как получить финансовую помощь и учиться бесплатно на Coursera edX и Udacity Как правильно усваивать техническую литературу: лайфхаки курсы и книга

    Есть компании, которые готовы сами обучать новичков программированию и платить им за это зарплату. Эти предложения редкие, но все–таки встречаются на рекрутинговых сайтах. Вам дают знания, трудоустраивают на junior-позицию с обещанием карьерного роста. Это вариант для тех, кто предпочитает обучение программированию с нуля на практике и в коллективе. Осваивая программирование «в бою», вы быстрее изучите необходимый минимум теории и быстрее перейдете к практике. А если с чем-то возникнут проблемы — вам сразу объяснят, как с этим справиться. Однако не всё так просто. Новичков набирают не во всех городах, чтобы воспользоваться предложением — будьте готовы к переезду. Также учтите, что ученикам и стажерам платят немного. Если у вас сложные финансовые обстоятельства, подумайте, стоит ли ради обучения терять заработок. Примеры вакансий с бесплатным обучением на программиста и оплачиваемой стажировкой в IT-компаниях. Скриншоты: сайт hh.ru IT-компаниям нужны люди, которые быстро пройдут курс и начнут работать. Поэтому чем лучше вы подкованы, тем больше шансов на оффер. Для этого постарайтесь освоить побольше базовых навыков и начните со следующего: Главные soft skills для айтишников: подборка гибких навыков от разработчиц

    • Пройдите курс по тайм-менеджменту от 4brain. На стажировке вы столкнетесь с большим количеством обязанностей, которые нужно своевременно выполнить. Для этого нужно уметь расставлять приоритеты, планировать процесс и работать без отвлекающих факторов. На курсе вы познакомитесь с основными техниками тайм-менеджмента, пройдете тест на закрепление теории и получите дополнительные материалы для самостоятельного погружения в тему.
    • Посмотрите бесплатные лекции по soft skills от Нетологии. На сайте много видеоуроков, которые научат ладить с коллегами по команде. Вы узнаете, как себя вести в конфликтных ситуациях, предотвратить выгорание и перестать сомневаться в своих навыках.
    • Выполните все упражнение из курса «Введение в Git» от Хекслет. Git — популярная технология, которую разработчики используют для отслеживания изменений в коде. Он позволяет видеть, когда кто-то что-то добавляет, удаляет или меняет в проекте. В большинстве вакансий знание Git указано в качестве обязательного инструмента, которым должен владеть каждый стажер.

    Еще несколько сайтов для поиска единомышленников: IT-Events, All-Events, DOU. Это обновляемые календари платных и бесплатных онлайн-встреч, интенсивов, хакатонов, конференций для стран СНГ и ближнего зарубежья.

    Зачем разработчику Twitter и как им правильно пользоваться Расти в IT

    Вот несколько сайтов, на которых вы можете выбрать дорожную карту для обучения:

    • Roadmap.sh — проект, где собраны роадмапы по десяти направлениям: Frontend, Backend, DevOps, React, Angular, Android, Python, Go и Java-разработка, а также руководство для администраторов баз данных PostgreSQL. На очереди: план по изучению облачной экосистемы AWS и набор навыков для современного QA-инженера.

    • Матрица компетенций программиста: Hexlet-версия. Это Excel-таблица, в которой знания поделены на общие и прикладные с градацией по сложности: от «хотя бы» до уровня «бог».
    • Матрица компетенций программиста: версия JavaScript.Ninja. Ещё одна Excel-таблица, подготовленная с упором на фронтенд-разработку.
    • Интерактивная платформа Grow от EPAM — инструмент для самообучения и достижения карьерных целей. После регистрации вы можете выбрать направление обучения, текущий уровень подготовки и посмотреть подробную матрицу навыков для дальнейшего роста.

    Куда вложить деньги чтобы они работали: главные инвестиционные тренды 2022 года

    Геймификация — способ превратить скучные лекции в залипательную игру. Представьте, что вам нужно освоить слепую печать для быстрого набора текста на клавиатуре.

    • Стандартный вариант: распечатать плакат и постепенно выучить, где находится каждая клавиша.
    • Альтернативный путь: пройти интерактивный тренажёр, а затем нарабатывать навык в «клавагонках» с другими участниками.

    Оба подхода ведут к одинаковому результату, но второй намного веселее.

    Обучение с помощью геймификации подходит тем, кто уже пробовал что-то выучить или чувствует, что не сможете довести начатое до конца из-за скуки.

    Есть множество сервисов, которые позволяют изучить программировании в виде игры. Рассмотрим несколько популярных:

    • CodinGame — веб-сайт с играми для кодинга на 25+ языках программирования. После регистрации вы попадете в интерактивную IDE, где сможете выполнять задания и постепенно писать видеоигру.

    • Check iO — браузерная приключенческая игра для изучения Python и TypeScript. Вы будете отправляться в экспедиции и выполнять миссии. Каждая миссия — практическое задание, которое во многом похоже на реальные задачи с собеседований. Есть разные уровни сложности и форум участников, где можно обсудить проблемы и варианты решения.
    • Git Game — терминальная игра для изучения системы контроля версий Git. После десяти уровней вы запомните все ключевые команды и сможете применять эти знания на практике.

    Примеры простых фриланс-заказов для новичков. Скриншоты: fl.ru

    После тестового проекта закрепите успех:

    • Найдите реального заказчика, выполните работу и получите оплату. Так вы будете знать, что правильно усвоили материал, а ваши знания уже чего-то стоят.
    • Возьмите задачу посложнее, повторите цикл. И так пока не изучите основные технологии выбранной сферы.

    Первые заказы старайтесь искать на крупных площадках, где ежедневно добавляются новые проекты. Например, попробуйте биржи fl.ru и fiverr.com.

    Как создать робота-котенка: 9 курсов по Arduino и Raspberry Pi

    Пока нет своих идей, попробуйте учебные проекты для разных языков программирования. Например, начинающему Python-разработчику часто рекомендуют написать генератор паролей, будильник, Pomodoro-таймер или бота.

    Ещё вариант — поработать над pet-проектами на специальных образовательных курсах. Например, в JetBrains Academy вы можете разработать головоломку «Висельница», «Кредитный калькулятор» или игру «Простые крестики-нолики». У новых участников будет двухмесячный бесплатный доступ, возможность пройти несколько треков и опубликовать код нескольких приложений на GitHub.

    А если хочется чего-то простого, популярного и более фундаментального — попробуйте пройти курс «Чат-бот на Python» от EPAM. Примерно через два часа обучения вы сможете создать первого бота, даже если никогда раньше не писали код.

    Что такое UX/UI-дизайн и как быстро освоить профессию

    Прежде чем начать

    Если хотите стать программистом, но слабо представляете, чем вам предстоит заниматься и какие технологии предстоит освоить, можно пройти бесплатный курс от Skillbox.

    Введение в профессию рассчитано всего на три с половиной часа и заканчивается интересным тестом по профориентации. На миникурсе вы познакомитесь с работой компьютерных программ и выберете свою специализацию.

    Независимо от выбранного способа, для обучения программированию с нуля вам наверняка потребуется профессиональная литература. Однако покупать кучу дорогих книжек пока рановато — вы еще точно не знаете, какие именно понадобятся. Да и необязательно все их иметь — одни быстро устаревают, а другие могут быть узкоспециальными и не раскрывать тему полностью. Поэтому проще оформить подписку на цифровую библиотеку.

    Чуть позже, когда вы определитесь со специализацией и будете готовы читать специальную литературу на английском, можно посмотреть в сторону O’Reilly Learning. На платформе представлено множество издательств, в том числе Manning, O’Reilly, No Starch, Pragmatic Bookshelf, Addison-Wesley, Packt, Cisco Press и другие.

    Если вместо подписки вы все же предпочитаете покупать книги — вот несколько сайтов, где литературу по программированию можно найти в бумажном, электронном и аудио формате: «Читай город», «Альпина Паблишер», «Лабиринт».

    А еще программисту полезно знать английский язык. Всё-таки самые новые вещи в IT приходят из англоязычных источников. Почти 1,5 миллиарда человек в мире говорят по-английски — это 20% всех людей на Земле.

    Самостоятельное изучение программирования можно сочетать с занятиями разговорным английским, если найти носителей языка для общения. Тут поможет, к примеру, приложение Memrise. Оно позволяет учиться по видео с носителями языка и привыкать к живой разговорной речи. Сервис работает по подписке, но многие функции можно попробовать бесплатно.

    Материал может содержать партнерские ссылки. Это не отражается на стоимости сервисов или товаров. Партнеры не влияют на наши рекомендации и содержание текста.

    article widget img

    «‎‎Главная ошибка собеса — подгонять ответы»‎. Рекрутеры рассказали о найме в IT

    Откуда берутся IT-рекрутеры, с какими трудностями они сталкиваются в попытках закрыть позиции и какие ошибки сами совершают на интервью — полезно знать перед тем, как искать работу.

    Изображения: looch.studio

    Нашли ошибку в тексте — выделите её и нажмите Ctrl+Enter. Нашли ошибку в тексте — выделите её и нажмите кнопку «Сообщить об ошибке».

    Как самостоятельно стать программистом с нуля: советы и реальные истории

    Как самостоятельно стать программистом с нуля: советы и реальные истории

    Попробуем разобраться, действительно ли так просто попасть в IT, можно ли стать программистом с нуля и устроиться на первую работу без опыта. Читайте внимательно: в этом тексте вы найдете несколько советов и реальных историй выпускников SkillFactory, ставших программистами, а также список бесплатных курсов и материалов для самостоятельного обучения.

    Освойте профессию
    «Fullstack-разработчик на Python»

    Чем занимаются программисты?

    Чем занимаются программисты

    Благодаря поп-культуре у большинства далеких от IT людей сформировался стереотип о программистах как о бородатых мужиках в футболках с супергероями, нелюдимых и замкнутых. При этом считается, что они умеют все: от взлома баз данных до починки холодильника, — но на деле в IT-индустрии более узкие специальности.

    Профессия / 12 месяцев
    Fullstack-разработчик на Python
    Создавайте веб-проекты самостоятельно
    4 116 ₽/мес 7 483 ₽/мес

    dffsdd (3)

    Пройдите наш тест и узнайте, какой язык программирования вам подойдет. Ссылка в конце статьи.

    Но чем конкретно занимаются программисты?

    • Разработка мобильных приложений — одна из топовых специальностей в программировании, в которой ежедневно открываются сотни вакансий. Всего есть три вида мобильной разработки:
      • iOS-разработка подразумевает создание приложений для iPhone. Чтобы работать с этой системой, нужен MacBook или компьютера Mac.
      • Android-разработка — для старта подойдет любой ноутбук на Windows. Выбор устройств для разработки гораздо шире: флагманские, средние и бюджетные линейки Samsung, Xiaomi, Honor и еще десятка производителей.
      • Кроссплатформенная разработка для двух операционных систем одновременно.

      Обычно для разных типов систем крупные компании нанимают двух разных разработчиков, но иногда ищут специалистов-универсалов.

      • Frontend — программирование видимой части сервиса, с которой пользователь взаимодействует в браузере. Сюда входят, например, внешний вид сайта, выпадающее меню, взаимодействие с кнопками, формы обратной связи и многое другое.
      • Backend — работа с внутренней частью сайта или веб-приложения, невидимой для пользователя. Backend-разработчики отвечают за то, чтобы информация после заполнения формы на сайте попадала в базу данных, а при необходимости данные быстро подгружались из базы и передавались на фронтенд, видимую часть сайта. Например, когда вы просматриваете новости, код, написанный на бэкенде, извлекает из хранилища свежие публикации, передает их на фронтенд, и пользователь уже видит привычную ленту.
      • Fullstack — это работа со всем сразу. Термин придумали для программистов, знающих несколько языков и совмещающих навыки фронтенда и бэкенда. Некоторые fullstack-специалисты берут на себя мобильную разработку, работу с сервером или UX-дизайн. Их многофункциональность может стремиться к бесконечности.
      • Разработка игр или геймдев — игровые разработчики участвуют в создании компьютерных и мобильных игр разной сложности, от простых платформеров в 2D до крупных AAA-проектов уровня GTA, «Ведьмак» и Cyberpunk 2077.
      • Системное программирование — это создание программного обеспечения для операционных систем. Не самое популярное направление разработки, зато в нем меньше конкурентов. Например, системный программист занимается разработкой драйверов, которые помогают системе взаимодействовать с другими устройствами: подключить колонки к ноутбуку с помощью аудиодрайвера или принтер с помощью драйвера, разработанного под конкретную модель.

      Какой язык программирования выбрать?

      Это зависит от того, чем вы хотите заниматься:

      Схема какой язык программирования выбрать

      Для тех, кто никогда не имел дела с кодом, лучше всего подходит Python. Его используют и в Data Science и машинном обучении, для создания скриптов в 3D-редакторах и, разумеется, в веб-разработке.

      Google использует Python для ранжирования поисковой выдачи, также на нем работают YouTube, Dropbox и Reddit. Еще на этом языке написан фреймворк Django — универсальный инструмент для веб-разработчиков, который отвечает за создание внешнего интерфейса и работу на сервере.

      Чтобы стать программистом в веб-разработке, определитесь, что вам больше интересно: backend или frontend. Вот, что нужно освоить для каждой специальности:

      Frontend
      Backend
      HTML и CSS — это языки разметки, с помощью которых элементы сайта в браузере встают на нужные места.

      Go — язык для backend с простым синтаксисом. Подходит для крупных проектов и высоконагруженных приложений, таких как YouTube или Ozon.

      Javascript — язык, который добавляет сайту динамику: анимацию нажатия кнопок, движение карточек продуктов, отправку уведомления.

      PHP — простой в освоении язык, подходит только для backend, но специалисты советуют обратить внимание на более современные инструменты.

      Python — универсальный язык, который подходит для frontend-разработки, а также backend и других интересных задач.

      Java — универсальный язык, который используется уже более 20 лет. Код, написанный на Java, работает одинаково на разных устройствах, что является его базовым преимуществом.

      Кроме этого, понадобится базовое знание основ веб-технологий. Например, нужно знать, как работает протокол http или зачем необходимо шифрование данных.

      Начинающим разработчикам мобильных приложений стоит определиться, с какой операционной системой они будут работать, потому что код для iOS и Android пишется на разных языках.

      iOS
      Android

      Objective-C — язык программирования Apple, который используется в первую очередь для MacOS. Приложения для iOS раньше тоже писали на нем, но теперь мобильные разработчики используют в основном Swift.

      Java — кроссплатформенный язык для создания мобильных и серверных приложений. На нем также можно писать backend для сайтов.

      Swift — понятный и логичный язык, который отражает главные качества iOS — функциональность и производительность.

      Kotlin — язык, альтернативный Java, большую часть нового кода сейчас стараются писать именно на нем. Но Java стоит знать для того, чтобы ориентироваться в уже написанном коде, а благодаря совместимости языков код на Kotlin и Java можно миксовать в одном проекте.

      В геймдеве выбор языка зависит от уровня проектов и платформ, с которыми вы хотите работать:

      C++ — потребуется, если вы планируете создавать крупные AAA-проекты с фотореалистичной графикой для PlayStation и Xbox. В этом случае обойтись простыми в изучении базовыми языками точно не получится. Подробная статья о С++.

      C# (Си-шарп) язык для движка Unity, разработанный компанией Microsoft. Он особенно популярен в России и считается более простым в освоении, чем C++. Изначально на нем создавались проекты эксклюзивно для ПК, но сейчас код, написанный на C#, можно портировать на Android, iOS, Xbox и другие платформы.

      Как стать Junior-программистом?

      Junior, или коротко джун, — это специалист начального уровня. Джуниор — уже не стажер, а начинающий разработчик: ему не поручают сложных задач и не привлекают к помощи новичкам. Со временем джуниоры «вырастают» до мидл- и сеньор-специалистов.

      Если человек только начинает свой путь в разработке, он может претендовать на вакансии джуниора. Или, если знаний не хватает, — стажера либо ученика, так называемого trainee.

      Какие знания нужны. Если на позицию стажера или trainee можно прийти без особенных знаний, то от джунов обычно уже просят каких-то результатов. Например, понадобится иметь портфолио, пусть даже состоящее из собственных пет-проектов: это выделит соискателя среди десятков других кандидатов. Джуниоров много, больше, чем джуниорских вакансий, поэтому конкуренция тут большая — надо уметь выделяться среди других.

      • синтаксис и особенности выбранного языка программирования;
      • основные фреймворки и библиотеки, с которыми придется работать;
      • стиль кода, принятый в выбранном языке;
      • направление разработки в целом — например, веб-разработчик должен иметь хотя бы примерное представление об устройстве сайтов в целом.

      Что еще понадобится. Будет плюсом, если джун окажется знаком со вспомогательными инструментами разработчика: IDE, системами контроля версий, сборщиками или шаблонизаторами. Для каждого направления свой набор must have инструментов, так что не стоит учить все сразу.

      Хорошее понимание сложных алгоритмов и паттернов проектирования на этом этапе еще не обязательно, но если джун окажется с ними хотя бы приблизительно знаком — будет хорошо. А вот простые алгоритмы, как, скажем, основные виды сортировки, знать надо.

      Что нужно делать. Для начала стоит изучить синтаксис и особенности языка, потренироваться работать со вспомогательными инструментами, чтобы они не стали для вас сюрпризом на собеседовании.

      Еще понадобится теоретическая база и портфолио. У джунов обычно нет или мало опыта, поэтому работодатели смотрят на проекты, которые человек реализовал сам. Например, фронтендер может сделать дашборд или таск-трекер, а ML-специалист — обучить несложную нейросеть.

      Как набрать опыт. Нарабатывать портфолио можно в ходе обучения — самостоятельно или на курсах. На каком-то этапе тренировочные учебные проекты достигнут уровня, на котором их уже можно добавлять в портфолио.

      Если нет уверенности в своих силах, можно записаться на стажировку. Некоторые из них оплачиваемые, а еще стажировка — отличный способ попробовать свои силы в настоящей рабочей обстановке. Более того: успешных стажеров могут пригласить в штат.

      Что еще нужно знать, чтобы стать программистом?

      • Знаниеязыкапрограммирования это hard skill или базовый навык разработчика. Сюда же можно отнести:
      • знание алгоритмов (для поиска, сортировки или сжатия данных);
      • работу с библиотеками и фреймворками (для упрощения многих вычислительных задач);
      • работу с системами управления версиями (позволяют возвращаться к более ранним версиям проекта);
      • навык чтения чужого кода;
      • чтение технической документации.

      Владение английским языком — важный навык для тех, кто хочет стать программистом с нуля самостоятельно. Во-первых, знание английского нужно, чтобы лучше понимать код, написанный на языке программирования. Важно прокачивать технический английский, чтобы ориентироваться в англоязычной документации. Во-вторых, комьюнити разработчиков, говорящих на английском, гораздо шире русскоязычного, поэтому стоит быть в курсе мировых трендов, общаться и получать информацию на этом языке.

      Как найти первую работу в IT?

      Устройство на работу можно условно разделить на три этапа:

      • поиск вакансий и отклики на них;
      • прохождение собеседований;
      • получение оффера и онбординг.

      Искать работу можно по разным каналам. Вот несколько вариантов — мы рекомендуем пользоваться ими одновременно, поиск по многим направлениям сразу обычно дает лучший результат.

      На специализированных сайтах. Речь о сервисах вроде HH, где размещают вакансии. Плюс в том, что на таких сайтах собрано огромное количество вакансий, есть удобные фильтры для поиска, а искать можно по всей России и за ее пределами. Минус — не все компании пользуются подобными сервисами, потому что размещение на них платное. А если организация небольшая и ищет молодого специалиста или стажера, то ей не всегда выгодно размещаться на HH.

      На агрегаторах стажировок. Кроме hh.ru, есть тематические агрегаторы для джунов — сайты, где публикуют актуальные стажировки от разных компаний и стартовые вакансии для молодых специалистов. Как пример — FutureToday или Changellenge.

      В телеграм-каналах. Есть специальные каналы для поиска работы в разных направлениях, в том числе в IT. Некоторые компании вместо HH сразу идут туда: там дешевле размещение и выше шанс найти профильного специалиста. Бывают в таких каналах и вакансии джуниоров. Более того: есть каналы, которые специализируются на стартовых вакансиях, например, Remote Junior. Часто каналы работают как тематические агрегаторы и собирают вакансии из разных источников.

      На сайтах компаний. Некоторые крупные компании, такие как ВК или Сбер, развивают собственные направления для обучения и онбординга молодых специалистов. На сайтах этих проектов регулярно размещают вакансии джунов и стажеров.

      Что нужно помнить при поиске работы?

      • Резюме и сопроводительное письмо важны. Можете воспользоваться советами по их написанию, например от Максима Ильяхова. Красивое и подробное резюме и нешаблонное сопроводительное письмо оставят о вас более хорошее впечатление. Это способ выделиться среди множества других откликов.
      • Скорее всего, на большинство откликов вы не получите ответа. Так часто бывает, особенно с джуниорскими позициями. Не стоит расстраиваться и падать духом: даже если вы получите десяток отказов подряд, это еще ни о чем не говорит.
      • Будьте готовы к тому, что первое собеседование может оказаться провальным. Это, опять же, частая ситуация. Человек нервничает, он трудоустраивается в новую область, поэтому может ошибиться — а еще всегда высока вероятность, что вы просто не сойдетесь с работодателем. Настройтесь на то, что первые собеседования — это тренировка того, как вы ведете себя на собеседованиях. Со временем станет проще, и вы начнете лучше ориентироваться в разговорах с работодателем.

      Главное — не отчаиваться. Первую работу в новой сфере можно искать несколько недель или даже месяцев, и это нормально, причем не только для IT. Запаситесь терпением и не позволяйте отказам вас демотивировать.

      Что спрашивают у джунов на собеседовании?

      Конкретные вопросы зависят от сферы: фронтендера и системного аналитика будут спрашивать о разных вещах. Но общие принципы и структура собеседования обычно одни и те же.

      Тестовое задание. Оно бывает не всегда: иногда, чтобы отсеять неподходящих кандидатов на раннем этапе, работодатель предлагает выполнить тестовое по теме. Например, верстальщику могут предложить сверстать страницу по макету, фронтендеру — «оживить» страницу, бэкендеру — настроить связь с сервером. Это обычно задачи, выполнение которых занимает не больше часа. При выполнении советуем сразу пользоваться «хорошими практиками»: писать чистый и понятный код. Еще работодатели иногда просят замерять, сколько времени ушло на выполнение задачи — это помогает им понять, с какой скоростью работает человек. Тут лучше отвечать честно — если ваши темпы не совпадают, вы все равно вряд ли сработаетесь, так что завышение или занижение срока ничего не даст.

      Техническое интервью. Это своего рода «экзамен»: интервьюер задает вопросы и иногда дает задачи, нужные, чтобы понять уровень знаний претендента. Вот какие это могут быть вопросы:

      • теория: как устроена та или иная структура данных, что означает какое-то понятие, в чем разница между двумя типами и так далее;
      • особенности языка: какие значения у переменных разных типов по умолчанию, как в языке реализован тот или иной принцип, каким образом можно решить такую-то задачу с учетом специфики языка;
      • особенности фреймворка: какие у него есть возможности, что означает то или иное понятие, как пользоваться тем или иным инструментом и так далее;
      • принципы и алгоритмы: что означает то или иное понятие из ООП, как устроена такая-то парадигма программирования, какие алгоритмы для решения задачи вы знаете, как решить ее эффективнее;
      • практика: решить какую-нибудь несложную задачу, например, написать SQL-запрос с определенными условиями, реализовать алгоритм или найти решение математической задачки.

      Популярные вопросы меняются из года в год вместе со стеками технологий. Поэтому перед поиском работы стоит поискать актуальные списки частых вопросов для вашей сферы и стека — и проверить свои знания по ним. Не факт, что у вас спросят именно это, но освежить знания перед собеседованием не помешает.

      Общее интервью. Оно может идти до или после технического. Это стандартное собеседование, какие есть в любой сфере: рекрутер спрашивает об ожиданиях, планах, интересах, причинах выбрать именно эту вакансию. Тут же могут рассказать о компании, ее миссии и требованиях, о спектре основных задач. На этапе общего интервью не только рекрутер выбирает сотрудника — соискатель тоже выбирает работодателя. Так что советуем отнестись к собеседованию внимательно, чтобы понять, сработаетесь вы с этой компанией или нет. Лучше не согласиться на неподходящую для вас вакансию, чем трудоустроиться «не туда», выгореть и потерять время.

      Что почитать?

      Онлайн-медиа — здесь обсуждаются нишевые события и более узкие темы.

      • Google Developers — надежный первоисточник, из которого можно узнавать актуальные новости о продуктах компании.
      • I Programmer — портал для программистов. Новости обо всех направлениях от UX до робототехники и всех языках программирования.
      • Smashing Magazine — статьи о веб-дизайне: разбор кода, свежие кейсы, советы по трудоустройству и общению с клиентами.
      • Хабр — универсальный русскоязычный ресурс, где можно найти гайды, обсуждения, код-ревью и кейсы от разработчиков разных компаний от IT-гигантов до небольших digital-агентств.
      • Вастрик — авторский инди-блог про IT и выживание в мире технологий. Тексты про машинное обучение, блокчейн, VR, вычислительную фотографию, машинный перевод и многое другое.
      • Reddit — популярный форум на все темы подряд, на котором часто сидят опытные разработчики, выкладывают свои кейсы и комментируют другие публикации. Найти их можно по тегу «programming».
      • Stack Overflow — закрытый клуб для программистов без рецептов и котиков. Здесь можно запросить у опытных коллег code review, комментировать публикации и давать им оценку.
      • CyberForum — форум программистов, системных администраторов, где помогают в решении задач по программированию.
      • Game Dev — форум, на котором разбирают создание игр и все, что с ним связано.
      • 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 и многопоточность от Московского физико-технического института;
      • Python Basics for Data Science;
      • Programming for the Web with JavaScript;
      • Introduction to C++.
      • «Чистый код» Роберта Мартина;
      • «Совершенный код. Мастер-класс» Стива Макконнелла;
      • «Искусство программирования» Дональда Кнута;
      • «Паттерны проектирования» Эрика и Элизабет Фримен;
      • «Алгоритмы: построение и анализ» Томаса Кормена и Чарльза Лейзерсона.

      Как стать программистом с нуля самостоятельно?

      Чтобы самостоятельно стать программистом с нуля, нужно иметь базовое понимание компьютерных наук и языков программирования. Важно выбрать конкретный язык программирования, который будет использоваться, и начать изучать его. Также необходимо практиковаться, создавая свои собственные проекты и участвуя в сообществах программистов.

      Что нужно знать, чтобы стать программистом?

      Для того чтобы стать программистом, нужно иметь понимание языков программирования, компьютерных наук, алгоритмов и структур данных. Также важно быть готовым к постоянной самообразованию и обновлению своих знаний.

      Как выучиться на программиста?

      Для того чтобы выучиться на программиста, нужно выбрать конкретный язык программирования и начать изучать его. Для этого можно воспользоваться онлайн-курсами, учебниками и другими ресурсами. Важно также практиковаться и создавать свои проекты.

      Fullstack-разработчик на Python

      Fullstack-разработчики могут в одиночку сделать IT-проект от архитектуры до интерфейса. Их навыки востребованы у работодателей, особенно в стартапах. Научитесь программировать на Python и JavaScript и создавайте сервисы с нуля.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *