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

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

Чем занимаются

Владислав Алеев, активный джуниор: Я начинающий верстальщик, мне 24 года. Верстаю и немного пишу на JavaScript. Много учусь программированию сейчас.

Борис Ванюшин, разработчик-наставник: Сейчас мне 32 года, я пишу на JavaScript для нескольких крупных клиентов CSSSR и параллельно веду интенсивы на онлайн-курсах программирования HTML Academy.

Евгений Вецель, опытный тимлид: Мне 37 лет, до прихода в CSSSR я создал один из самых популярных в России сайтов о гаджетах 4pda. Веду бесплатный курс: мы делаем YouTube-уроки, на которых я подробно объясняю программирование реальных компонентов на React от начала и до конца.

Как учились программировать

Владислав Алеев: Какие-то элементарные вещи я изучал ещё в 14 лет. Потом сделал долгий перерыв и продолжил учиться программированию с третьего курса университета. Учился по книгам, статьям и профильным группам «ВКонтакте». Вместе с учебой делал простенькие странички, пробовал находить первых заказчиков для переделки шаблонов сайтов. В таком формате я учился и работал несколько лет.

После университета пошёл в крупную контору человек на 50 и сразу попал в мясорубку. Из-за кучи дел моему наставнику было постоянно не до меня. Я ушел оттуда почти сразу, потому что ни учиться, ни работать там не получалось.

Борис Ванюшин: Я начинал учиться программированию лет десять назад, ещё в университете. Но вскоре бросил и переквалифицировался в менеджера проектов. Проработав менеджером несколько лет, понял, что это не моё, и снова пошёл в разработку. Поэтому в 30 лет я начал учиться программированию фактически заново.

Евгений Вецель: Моё обучение было адской смесью из всего подряд. Метод научного тыка, книги, коллеги, много собственной практики и успешных проектов, чужой код, интерактивные курсы в интернете. Из этого винегрета самыми полезными были статьи в интернете, Stack Overflow и официальные руководства по новой технологии.

Есть ли польза от онлайн-курсов и интенсивов

Владислав Алеев: Я не верю в эффективность дорогих и быстрых курсов и интенсивов по программированию. После них кажется, что ты можешь всё. Но когда сталкиваешься с реальными задачами, то попадаешь в тупик. Эти задачи не входили в программу, а фундаментальных знаний на интенсивах не дают. Деньги за курсы лучше отдать разработчику, до которого хочешь «дотянуться». Пусть он за эту сумму делает ревью кода и раз в неделю созванивается с тобой по скайпу. Будет в разы эффективнее.

Из курсов я проходил обучение в «Школе Программирования» (ныне — Geekbrains) и HTML Academy. После прохождения курса в Geekbrains могу смело сказать, что только зря потратил на них деньги и время. Чуть больше понравились бесплатные курсы от HTML Academy: у них интерактивный формат и интересная подача, но их материал запоминался с трудом. Через месяц после завершения HTML Academy я открывал их задачи как в первый раз. Совсем другое дело, когда сидишь над задачами сам. Несколько часов можешь убить из-за какой-нибудь глупой ошибки, но зато запомнишь пути решения надолго. С курсами такого нет: преподаватель выдаёт заученную программу без большого внимания к практике и твоим вопросам.

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

Еще одна беда интенсивов в том, что они часто работают по принципу «Бизнес Молодости»: тебя заряжают, говоря, «дожми ещё чуть-чуть, и всё получится!». Но заряд кончается сразу после курса.

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

Борис Ванюшин: Я сам занимаюсь наставничеством в рамках интенсива HTML Academy по JavaScript, поэтому знаю процесс изнутри. Курс проходит так: ученики смотрят лекции и выполняют практические задания. Я отвечаю на вопросы по лекциям и даю обратную связь по коду, допущенным ошибкам и возможным улучшениям. Такой интенсив длится около двух месяцев. Приходят люди совершенно разного уровня. Есть даже бабушки, которым скучно сидеть дома без дела. Но чаще всего на курс по JavaScript идут люди, которые уже изучали вёрстку и CSS. Для них знание JavaScript станет развитием карьеры верстальщика.

На мой взгляд, учиться с онлайн-курсами эффективнее самостоятельной учебы с книгами и вебинарами. Нужно лишь выбирать курсы, где есть обратная связь, — это самое важное в обучении. Стоит ли такой курс затраченных денег? Мне сложно сказать. Если цель — получить базовые знания в JavaScript и в целом понять твоё ли это, то стоит. Если за эти деньги и два месяца хочешь стать профессиональным разработчиком, то не стоит, потому что этого не случится.

Мне не нравится, когда онлайн-курсы заманивают студентов высокими зарплатами программистов. Они любят продвигать темы в духе «заплати сейчас 70 тысяч и через несколько месяцев получишь зарплату в 150 тысяч». Но это нечестный маркетинговый трюк. Такую зарплату можно получать только через несколько лет напряженного труда.

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

За 70 тысяч, потраченных на курс, можно сэкономить три месяца. Тот же объём знаний получишь за два месяца вместо трех-четырех, но только если будешь впахивать. Чтобы получить по итогам курса хорошую работу, нужен некий минимум часов, потраченных на написание кода. Можно ориентироваться на 1000 часов. И тут никак не получится перепрыгнуть.

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

Можно ли научиться программированию только по книгам

Владислав Алеев: Я ни в коем случае не советую начинать обучение только с книг. Простой пример: недавно вышла книга Леа Веру «Секреты CSS. Идеальные решения ежедневных задач». Русское издание настолько ужасно, что цветные градиенты в книге стали черно-белыми, а padding (внутренний отступ) стал «забивкой». Если новичок после учёбы по этой книге придёт в компанию разбирать код, используя слово «забивка» вместо padding, разговор с ним будет коротким. По моему опыту, книги будут полезны только вместе с практикой.

Борис Ванюшин: Если учишься полностью сам, то можешь не придавать внимания важным вещам. Например, качеству кода и работе системы за пределами заданий из книги. Ты можешь считать мешанину в коде чем-то несущественным, но это первое, что бросится в глаза на собеседовании.

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

Евгений Вецель: Книги дают базу и основы, но в них проблемы с примерами. Я бы советовал читать книгу и создавать на её основе «полочки» в голове. Не пытайтесь всё досконально изучить. Когда появится структура, то делать вместе с ментором свой небольшой проект и пробовать на нём все задачи из книги. Зная, куда «положить» информацию, изучаешь её с большей охотой и лучше усваиваешь. В нашей профессии важно знать «почему» и «как», иначе это зубрёжка, которая программировать не поможет.

Куда идти работать новичку

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

Борис Ванюшин: Не советую новичку на старте карьеры идти в небольшую веб-студию, клепающую сайты на коленке. Они часто пишут говнокод, который как-то работает. Это самое плохое, с чем может столкнуться новичок. Крупные компании, наоборот, пишут хороший код, но он подчинен тысяче внутренних правил. Поэтому идеальный вариант для стажировки — компания со штатом до 50 человек. В таком коллективе обычно следят за чистотой кода, но ещё не страдают проблемами корпораций.

Евгений Вецель: Мой главный совет новичку — искать себе ментора. А работу выбирать такую, где есть обучение и время для обсуждений. Ментором может стать любой знакомый, если он знает язык программирования лучше тебя. Даже у меня часто бывают ошибки в коде, решение которых может занять несколько дней. Самому можно вообще никогда не найти эти ошибки, особенно если они связаны с внешней библиотекой. Зато ментор их быстро найдет, и не придется буксовать. Закапываясь в мелочах, рискуешь потерять весь запал и можешь забросить задачу.

Когда приближаешься к среднему уровню, имеет смысл работать в таких компаниях, где проекты сменяют друг друга хотя бы раз в полгода-год. Каждый проект — это разные подходы и технологии предоставления ТЗ. Кто-то использует Jira, кто-то Trello, а кто-то GitHub или Bitbucket. Пока не попробуешь весь этот зоопарк инструментов, не сможешь чувствовать себя уверенно в профессии.

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

Что самое важное в обучении программированию

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

Если говорить об инструментах, то я советую смотреть вопросы и ответы на Stack Overflow. Со временем можно самому пробовать давать там ответы. Для новичка, который только начал работать с JavaScript, важно:

  • Понимать принцип работы и знать синтаксис языка. Без этого простейший код будет вызывать ступор. Пример ключевых слов: IIFE, замыкание (понять, а не заучить), каррирование, всплытие переменных.
  • Нужно научиться читать и понимать чужой код.
  • Важен не код, а мышление. Надо понимать, что язык — всего лишь инструмент. Если ты на позиции младшего разработчика можешь описать хотя бы три популярных алгоритма сортировки и поиска, нарисовать к ним схемку и написать хотя бы один на псевдокод — ты уже выгодно отличаешься от большинства новичков. Также нужно знать структуры данных (List, Array, Map, Set).
  • На практике полезно решать каты из Codewars. На собеседованиях, как правило, дают схожие.

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

Евгений Вецель: Когда изучаешь программирование, получаешь кучу знаний из разных сфер. Если учить это все самому, то просто свалишь все в кучу. Именно ментор помогает раскладывать всё по полочкам. А если у тебя этих самых «полочек» не будет, можно получить кучу информации, запутаться в ней и от испуга уйти из профессии.

Когда делал уроки для своего YouTube-канала, заметил, что гораздо увлекательнее учиться в паре с новичком. Он пишет код, а я подсказываю ему, куда рулить. Ученые уже доказали, что не воспроизведённое хотя бы один раз — изучено зря. Это значит, что практика при изучении программирования нужна обязательно. Я рекомендую всем завести свой небольшой проект, улучшать и усложнять его по мере обучения. Тем, кто учит JavaScript, особенно повезло: это ещё и серверный язык, на котором можно написать цельный продукт.

Почему я сторонник своих, пусть и небольших, проектов? Я считаю, что хорошие программисты — это эндорфиновые наркоманы. Когда пишешь код, то реализуешь всё по маленьким кусочкам. Так получаешь дозу эндорфина (удовольствия) после каждого удачно сделанного куска, и тебя тянет продолжать. Не пытайтесь писать весь код целиком. Реализуйте его маленькими итерациями и небольшими функциями. Каждая из них похвастается, что работает, а вы, получив «дозу», приступите к следующей.

Идеальное движение для изучения того же JavaScript — начать с написания в Codepen простой странички. Начать с HTML, потом перейти к основам CSS, а после создания странички, перейти к JavaScript.

Что читать и смотреть

Владислав Алеев: Если бы я сейчас мог сам себе отправить сообщение в прошлое, то сказал бы так: бегло пройдись по «Современному учебнику JavaScript». Полностью пройди курсы на Hexlet, закрепляя видеокурсом Sorax по основам JavaScript. Решай задачи на Codewars и пробуй писать что-то из реальных проектов — слайдер, валидацию полей формы или калькулятор, тайм-трекер. Периодически проси наставника сделать ревью.

Закрепи всё несколькими крутыми книгами по JavaScript вроде JavaScript: The Definitive Guide, You don't know JavaScript: this and Object prototypes. Можно и всю серию. Не забывай высыпаться и отдыхать — без этого обучение пройдёт гораздо хуже.

Борис Ванюшин: Давайте я что-нибудь нетехническое посоветую. Например, «Программист-прагматик» Эндрю Ханта.

Евгений Вецель: Для изучения JavaScript и React в частности, я бы порекомендовал посмотреть заседания нашего клуба React learning club. В нём уже более 36 уроков.

Виталий Иванов, React-разработчик, CSSSR: Для тех, кто изучает JavaScript, я отобрал следующие книги, которые надо прочитать:

  • JavaScript: The Definitive Guide — читать обязательно. Лучше раза три. А потом держать под рукой как справочник.
  • Eloquent JavaScript — тут есть хорошие задания для начинающих.
  • Exploring ES6 — сложная для новичков, но показывает много важных тонкостей в ES6.
  • Coders At Work — как учатся программированию выдающиеся программисты: реальный опыт.

После изучения основ JavaScript стоит начать обращать внимание и на другие языки программирования. Можно посмотреть на Java. Introduction to Programming in Java: An Interdisciplinary Approach — введение в Java с большим количеством интересных задач по программированию. Книга будет понятна начинающим.

Через какое-то время стоит изучить алгоритмы и структуры данных: Algorithms — книга будет легче читаться после Introduction to Programming in Java. По двум последним книгам есть целый курс на Coursera, но они пригодятся и без него.

0
39 комментариев
Написать комментарий...
Никита Шультайс

HTML и CSS – не программирование. Совсем.

---

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

Интенсивы дают только информацию, которуб без подкрепления практикой вы через пару дней забудете. Такие объемы и для профессионалов даются тяжело. Для новичков - это ад. Мозг просто не может работать в таком режиме.

Вебинары - это перенос всех недостатков классно-урочной системы в интернет:
1. У учеников разная скорость усвоения материала. Для новичков это критично.
2. Скучные непрофессиональные преподаватели. Они может и крутые программисты, но педагоги слабые.
3. Нужно подстраиваться под график удобный преподавателю.

Хотите научиться программировать - не выбирайте вебинары и интенсивы - это самые неэффективные способы.

---

Книги. Книги нужно уметь подбирать. Очевидно, что не стоит начинать путь в CCS с "Секреты CSS. Идеальные решения ежедневных задач". Нужно начинать с лайтовых книг. С азов. Как подключить стили, как изменить цвет бокса, как вывести данные в таблицу.

Есть хорошие авторы, есть хреновые. Как и везде. Читал книгу Харви Дейтела по программированию на C++. Очень толковая. В процессе авторы предлагают создать проект симулятора лифта. Главное когда книги читаете - повторяйте весь код за авторами.

Скопировали, запустили, разобрались как работает, поменяли пару параметров, сломали программу, починили, разорались. Только так. Каждый пример повторяйте. Иначе всё в пустую. Так работает мозг. Повторенье - мать ученья. Это не просто пословица, в ней науки много.

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

---

Ютюб-уроки. Основная проблема - нет хорошей программы обучения. Есть набор роликов без связанной с ними практики. Без практики научиться программировать невозможно. Посмотрел 10 лайтовых уроков и тебе кажется, что ты умеешь программировать. Нихрена ты не умеешь.

Если ролики подкреплены практикой - отлично. Это один из самых эффективных способов обучения.

Смотришь как пишет код учитель. Не больше 10 минут. За это время можно объяснить/понять 1-2 понятия и мозг не устанет.

Повторяешь за учителем (как с книгами, только видео). Повторил, понял, поиграл с кодом, сломал программу, починил, разобрался, знания закрепились. Решил пару задач на эту тему. Перешел к следующему уроку.

Это важно. Ученики ленятся и начинают смотреть всё подряд. Без практики и повторения. Что сводит на нет всё обучение. Поэтому изучайте дозировано. Урок-повторение-задача-урок-повторение-задача.

Плюс можно отмотать и посмотреть урок еще раз, если не понял. Или ускорить видео, если схватываешь налету.

Совсем не разобрался в теме - пиши автору курса или на форуме.

Не успел на вебинаре - сам дурак, вебинар для среднего ученика, как вся школьная и вузовская программа.

Короткие уроки с последующей практикой - это один из самых эффективных способов обучения. Не верите? Посмотрите как учатся дети - смотрят за взрослыми, повторяют, привносят что-то своё, закрепляют. Природа же.

---

Наставник. Это высший пилотаж. Наставника нужно подключать когда зашел в тупик, для ревизии и для сложных тем. Не стоит тратить драгоценное время хорошего человека. Наставник - не учитель. Грамотный спец может многократно ускорить развитие.

---

Учитель. Хороший учитель лучше книги и лучше видео. Но только когда у него один-два ученика. Даже с двумя уже будут проблемы в скорости восприятия.

Если вы совсем новичок, то можете смело учиться паскалю. Учителей паскаля много, учителей js мало. Перескочить с паскаля на другой язык - без проблем. Замыкания и прочее освоите позже. Возможно с наставником.

---

Свой проект. Можно решать небольшие задачи, а можно сразу взяться за большой проект. Сайт школы сделать. Вирус написать (я написал, запустил, словил проблем, больше не писал). В большом проекте учишься быстрее, особенно всему современному, архитектуре, последним новинкам, библиотеке языка.

Я когда HTML и CSS учил - верстал уголовный кодекс. На фреймах. Динозавр.

Когда PHP учил - делал автопортал. 2 месяца программировал через боль. Потом фирму открыл и начали деньги зарабатывать. 2006 год был. Интернет - 3 рубля за мегабайт.

Потом Python и Django - снова свои проекты. Лучший способ научиться.

---

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

Я брал справочники и решал их вдоль и поперек. Все задания. Графы, деревья, комбинаторику, численные методы. Начинал конечно с лайтовых задач на арифметику. Но попробуй остановись.

---

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

Знания - это то, что вы получаете на уроках (видео или офлайн) и то, что у вас остается в мозгу. Самая ненадежная структура. Если не подкреплять, то через пару дней от знаний ничего не останется.

Умения - это когда вы с помощью знаний можете что-то сделать. Можете применить знания. Поэтому практика очень важна.

Навык - это умение, доведенное до автоматизма. На этом этапе вы становитесь программистом. Требует много практики. Очень много.

Пройдете весь путь ЗУН - будет счастье.

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

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

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Revertron

В вашем комменте одно плохо - далеко мотать наверх, чтобы поставиь палец вверх :)

Ответить
Развернуть ветку
Zlobin

Хорошо, что хоть кто-то вслух говорит о том, что все эти курсы, вебенары, хтмлакадеми и пр. - говно. И научиться там чему-нибудь не получится. Только зря потратишь деньги и время.

Ответить
Развернуть ветку
Reb Rending

Этот коммент достоин отдельной статьи

Ответить
Развернуть ветку
Имя ветра

Такое громкое название, куда пойти учиться программисту. А на деле спросили верстальщика и двух мужиков с front-end'а. Очень показательно! В общей сумме они даже не покрывают полный стек веб разработки. А распинаетесь о программировании. Куда более наглядным было бы название "куда пойти, если твой максимум - это верстка и фронтенд"

Ответить
Развернуть ветку
Максим Капралов

Спасибо, посмеялся

Ответить
Развернуть ветку
Matvey Kukuy
Крупные компании, наоборот, пишут хороший код, но он подчинен тысяче внутренних правил.

Очень-очень хороший код.

Ответить
Развернуть ветку
Владимир

Тонко :D

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Alexandr Zuenkov

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

ментор - бывший манагер с 2 годами ЖСа.. ок
опытный тимлид - клепает видео-уроки.. ок
последняя работа в портфолио - август 15го года (оО)
у вас там, кстати, скролл в некоторых работах отваливается =)

новичкам и интересующимся (я 15 лет в разработке, последние года три углубился в архитекторы):

1. начинайте с фундаментальщины: алгоритмика, структуры данных, базы данных, матана немного(теория множеств да булева алгебра) и так далее. а уже потом можно лезть в практику, выбирать более конкретное направление и двигаться по нему, причем выбор того же языка, при достаточной базе, дело десятое, хоть по настроению.

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

3. никогда, т.е. вообще никогда не останавливайте собственное обучение. ИТ развивается очень стремительно, иной раз даже за месяц расслабления можно отстать очень сильно.

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

5. в обучении программированию (в принципе как и любой другой точной науке) просто не бывает лёгких путей и шорткатов - не ищите их, это тупик.

6. писать код не значит программировать. всегда нужно начинать с анализа и декомпозиции задачи. записать кодом своё решение - самая простая и скучная часть работы программиста.

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

извиняюсь за некоторый сумбур, припекло у меня от статьи немного =)

Ответить
Развернуть ветку
Александр Першин

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

Бомбит многих, видимо, от слова "программист", в которое теперь помещаются и простые смертные кодеры и суровые инженеры/архитекторы. И отдельно напрягает то, что до уровня достаточно хорошо оплачиваемого кодера можно дорасти сравнительно быстро (полгода-год), да ещё и без зубрёжки фундаментальных вещей.

Ответить
Развернуть ветку
Alexandr Zuenkov

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

грусть-печаль короче

Ответить
Развернуть ветку
Александр Першин

Типовые в этом контексте нужно понимать как "часто повторяющиеся, решаемые вручную, и не сложные". И многие из них не автоматизируются. Пример:
- вёрстка лендинга
- создание сайтов на Битрикс
- прикручивание галереи или слайдера
- создание ещё одного CRUD-контроллера для нового раздела (работа с какими-нибудь заявками).

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

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

Ответить
Развернуть ветку
Alexandr Zuenkov

верстка тут при чем? это не имеет никакого отношения ни к программированию, ни к программистам.

создание сайтов в конструкторах - это тоже работа программиста? нет, любая домохозяйка при должном упорстве осилит.

прикручивание галереи или слайдера - у нас с этим верстаки справляются, верстаки не программисты.

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

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

и подозрение тоже не верное, не бывает типовых архитектур для не типовых проектов =)

и тоже не из-за требований рынка - много лет назад меня брали на место такого вот "обычного смертного программиста", потому что "да он тупо красиво себя представил, а на деле такую херню нам сделал".
вот, собственно, отличная иллюстрация проблемы - https://medium.freecodecamp.com/5-key-learnings-from-the-post-bootcamp-job-search-9a07468d2331

Ответить
Развернуть ветку
Александр Першин

Все перечисленные задачи типовые для IT, просто взял примеры чуть шире просто программирования.

Называя "обезъянками" других IT-специалистов вы показываете великолепнейший уровень дискусии, достойный только высококласснейших программистов, повелителей логики и алгоритмов.

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

Ответить
Развернуть ветку
Alexandr Zuenkov

у эникейщиков тоже типовые для ИТ задачи - они называют себя программистами? что-то сильно сомневаюсь.
"Оператор ЭВМ" тоже вроде бы в ИТ и делает типовые задачи, но тоже не спешит называть себя программистом.

ИТ-специалист это противоположность обезьянке, не нужно приписывать мне расширенные интерпретации, слово "специалист" как бы уже намекает на противоположность обезьянке. ладно, скажу корректнее и грубее - говнокодеры.
Помните, наверн, фразу "Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте" - мне очень интересно было бы узнать адреса тех, чьи проекты мне доставались на переработку в разное время =)

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

в заключение ещё одну ссылочку дам, кто официально зовётся программистом и как называются другие ИТ-профессии: http://base.garant.ru/70547858/

Ответить
Развернуть ветку
Алексей Кондратьев

Слава яйцам времена компьютеров с комнату 10кв/м прошли, и усатые дядьки в белых халатах вышли из моды. То что есть сейчас, кто бы как ни хотел, последствие развития и расширения IT в целом.

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

Ответить
Развернуть ветку
Alexandr Zuenkov

не настолько древним временам, специально ж сделал ремарку.

и интересно, а выкладывающие приложения в стор называют себя программистами?) или программисты всё же те люди, кто сначала это приложение сделали?)

Ответить
Развернуть ветку
Гала Перидоловна

Почему все статьи про то как стать "программистом" описывают людей которые пришли в профессию из-за денег? Где же вот те самые люди, которые под Спектрум писали на Бейсике по методичке откопанной у родителей на работе?

Ответить
Развернуть ветку
Alexander Shakun

Я видимо упустил, не подскажете где в этой статье упоминание денег?
Ну и на дворе 2016 год, какой Спектрум, какой Бейсик.

Ответить
Развернуть ветку
Гала Перидоловна
Такую зарплату можно получать только через несколько лет напряженного труда.
Красивые обещания зарплаты в 120-150 тысяч по их итогам — тем более миф. Платить такую зарплату человеку, который не может самостоятельно решать задачи, никто не будет.
Ну и на дворе 2016 год, какой Спектрум, какой Бейсик.

Люди начинавшие писать на бейсике под спектрум в 2016 году не пишут на JavaScript и не дают странных советов.

Ответить
Развернуть ветку
Gleb Kudryavtcev
де же вот те самые люди, которые под Спектрум писали на Бейсике по методичке откопанной у родителей на работе

Эти люди уже десяток-другой лет в индустрии и у них все хорошо.

Ответить
Развернуть ветку
Гала Перидоловна
Эти люди уже десяток-другой лет в индустрии и у них все хорошо.

Я в общем к чему придираюсь. Эти саксесс стори о том как люди начали писать на JavaScript и стали программистами - ни о чем. Они не отражают реальность. А реальность такова, что уходит лет 10 чтобы составить общую картину работы ОС от уровня CPU до картинки на дисплее. И это не веселые картинки на видео с YouTube, это дебагер, отрывки из статей и книги(которые порой стоят по 100 евро).

Ответить
Развернуть ветку
Андрей Бушмакин

Как отметили выше, видимо проходят эти времена "программистов от сердца" :) Тем не менее, пару недель назад в Минске проходил DataTalks и я видел много молодых (и не очень) ребят, которые действительно с нуля, с душей идут в программирование. При том, выбрали не самое простое направление: анализ данных, data science, open data.

Я и сам, честно говоря, пришел к этому не из-за денег, а от интереса. И это хобби по чуть-чуть стало работой.

Так что не всё потеряно и будут новые герои :)

Спасибо за ваш правильный вопрос :)

Ответить
Развернуть ветку
Константин Демиас

Я здесь! :) ещё на кассеты сохранял программки. :)

Ответить
Развернуть ветку
Arseny Bortnikov

Какое же огромное спасибо хочется сказать за статью! Мне 19 лет, хочу начать верстать и кодить (не хипстер, а реально еще в 14 клепал на пхп с бесконечными гуглами и копипастой). Решил, что идти в вуз не имеет смысла, и проще и дешевле обучаться самому, расти до джуниора, а дальше сразу в любую компанию, которая возьмет за еду и проезд, и учиться и учиться на опыте.
Собственно, я к чему. Вот сижу на codecademy, прохожу курсы, но чувствую, что реально есть проблемы в прогрессе. Совет про друга-ментора и ревью кода от него действительно очень заинтересовал и придал свежего интереса. Буду искать. Книжечки тоже возьму на учет, но я пока вообще ни бэ ни мэ, еще даже бесплатный курс по HTML & CSS не завершил.

Ответить
Развернуть ветку
Andrew Stoleshnikov

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

Ответить
Развернуть ветку
Arseny Bortnikov

А как понять, что я стал джуниором? Где кончаются вот эти "основы" в резюме?

Ответить
Развернуть ветку
Sakari Sauso

http://javarush.ru/cs50.html

Вот, ознакомься, не html конечно, но для развития очень хорошо)))

Ответить
Развернуть ветку
Vadim Korolyov

"...пошёл в крупную контору человек на 50..."

Дальше можно не читать? Да?

Ответить
Развернуть ветку
Захар Супряга

Спасибо, полезная статья. В особенности из-за советов активного джуниора)

Ответить
Развернуть ветку
Коля Лукьянов

Где найти ментора?

Ответить
Развернуть ветку
Alexey Kot Chernov

Я беру менторов на mkdev.me, сначала брал по фронтэнду, теперь с ментором по бэкэнд/фулстак (Rails+React).

Ответить
Развернуть ветку
Александр Першин

Инструктор Кекс одобряет эту статью!

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

По моим ощущениям, самым плохим форматом остаётся видео, его нужно применять только тогда, когда без него никак. Текст — лучше всего (неважно в каком виде, учебник, курсы, лишь бы была хорошая структура).

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

Ответить
Развернуть ветку
Михаил Пушечников

Для совсем новичков, как вариант, Unity и миллиарды туториалов к нему вполне успешно заменят начальные курсы по js, шарпу и мб джаве :thumbsup_tone1:

Ответить
Развернуть ветку
Юрий Кушниров

Статья веселая.
Считаю самым разумным стартом - устроится куда-то на полставки почти за еду, с условием что тебе будут рассказывать что к чему - т.е. менторство. Лучшие друзья на первом этапе Ctrl+C Ctrl+V кода более опытных людей, заточенный под решение твоей собственной задачи. Ну и дальше саморазвитие. Читать книги - трата времени, может 1-2 для общего развития. А так - только выполнение задач и изучение текстов строго по теме, а не про абстрактных слоников в вакууме.

Ответить
Развернуть ветку
Алексей Кондратьев

"За 70 тысяч, потраченных на курс, можно сэкономить три месяца."
- далеко не каждый на старте профессии и за пол года столько получает, а чтобы начать работать за еду, достаточно просто проявить свой интерес и инициативу, даже с 0 знаниями можно пролезть на стажировку.

Сколько раз сталкивался с какими либо курсами, для себя решил, что более менее действенные для меня оказались - только интерактивные с консолью.

Ответить
Развернуть ветку
Виталий Подольский

Больше всего всего улыбнуло: "...., активный джуниор"! Это как? Бывают еще и "пассивные"?

Даже немного пугающе звучит, из разряда ЛГБТ

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Максим Федоров

Очень тяжело изучать будучи взрослым и образованным.

Думаешь такой изучить программирование, для этого нужно:
- подтянуть математику
- подтянуть логику (математика опять)
- подтянуть английский
- изучить синтаксис первого языка
- изучить железо
- изучить инструменты (IDE, SSH)
- изучить LINUX

В итоге кирпич несъедобным становится. Лучше всю картину не рисовать, а решать по мере поступления проблем.

Только когда сам начал потихоньку свое пилить, стал разбираться и ползти от уровня к уровню. Начал с установки Джумлы, потом что такое css, потом что такое php, потом др ЦМСки, потом js, потом свои парсеры, потом уже к ООП прикоснулся (и убежал от него, от Битрикса тоже убежал), потом Бутстрап и ЛЕСС, сейчас приблизился к фронтенду ;)

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Aleksey Dev

в 37 лет делать свистелки - перделки, мне кажется это провал.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
36 комментариев
Раскрывать всегда