Pull to refresh

Comments 32

Наверное самое главное надо упомянуть: «Будьте любопытны».

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

Как минимум профильный ВУЗ в этом году хорошо помог тем, кому нужна была Blue Card. Дальнейшие выводы у всех свои.

Меня больше волнует другое. Развелось пекарен, а качество обычного хлеба очень низкое. Потому более актуальны вопросы качества элементарных вещей. И это почему-то мало кого волнует. Покупаешь булку белого хлеба, а у ней запах и вкус пасхального кулича. А на другой день (очевидно после другой смены) более менее норамальный белый хлеб. И как бы вот...

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

Качество в ущерб количеству и наоборот. Мастерство требует времени. А если и так берут...

Насчет ВУЗа - вопрос спорный. С одной стороны - да. "Куча бесполезных знаний и потраченного времени". И да, "на курсах вас быстро научат используя пару-тройку модных фреймворков лепить стандартные приложения". Но стоит вам попасть в какие-то действительно сложные области разработки (нейросети, ИИ, распознавание образов, или, не дай бог какая-то обработка сигналов), как вы столкнетесь с алгоритмами, более сложными нежели сортировка пузырьком. И очень возможно, что вам придется эти алгоритмы адаптировать под свою конкретную задачу для получения максимальной эффективности.

И опять да - все это есть в сети. Но. Во-первых, в сети очень много чего есть и далеко не все достоверно. Во-вторых, если вы найдете действительно серьезную статью по интересующему вас алгоритму, то написана она будет серьезными людьми с хорошим образованием и серьезным языком. Который для вас будет выглядеть китайской грамотой (все эти "непонятные математические закорючки") - на курсах вас всему этому не учили ведь?

Так что ВУЗ - это все-таки какая-никакая база. Понятно, что Усть-Пердыщенская СельхозАкадемия нужной базы вам не даст. Но приличный профильный, да даже просто технический ВУЗ вам может очень помочь в жизни.
Не говоря уже про последние события. Брони-отсрочки только тем, у кого есть высшее образование (а специальностей там много в списке и не только профильные).

Запасать знания впрок я бы не рекомендовал. Изучать стоит то что действительно интересно лично вам.

Сколько каждый из нас сможет назвать людей которые пошли в ВУЗ и, благодаря этому, сегодня читают статьи со сложной терминологией? Гораздо меньше чем просто людей которые пошли в ВУЗ. А если в этому добавить что существуют люди, которые формально не имеют высшего образования, но читают, и даже пишут такие статьи, станет понятно что ВУЗ здесь просто сопутствующий фактор, а не определяющий.

Я в институте изучал нейронные сети применительно к обработке сигналов, но эти знания мне пока не пригодились. Лет шесть назад я пытался послушать современный курс по нейронным сетям, но не смог вспомнить всю ту математическую базу, которую в меня заложили в ВУЗе. Знания забываются, этот факт редко кто учитывает.

Запасать знания впрок я бы не рекомендовал.

Я не говорю о запасании впрок. Но база должна быть крепкой и основтельной.

Я давно живу ("в разаработке" профессионально с 91-го года) и приходилось много чем заниматься. И могу сказать, что на различных этапах мне пригождались знания в таких областях как численные методы, линейная и нелинейная оптимизация, регрессионный и статистический анализ данных, теория групп, нечеткая логика, фильтрация данных (фильтры Калмана в различных модификациях, Дугласа-Пеккера, Хеджвика-Прескотта и тривиальные типа мединанного, в т.ч. и многомерного, НЧ, ДЭС и т.п.), теория автоматического управления. Однажды пригодилась даже такая специфика, как методы молекулярной динамики, потенциалы взаимодействия (твердых сфер, 6-12ЛД и т.п...), понятия микро- и макроканонических ансамблей...

Далеко не все из этого было в институте, но хорошая физмат база позволяла быстро разобраться в конкретике и тонкостях интересующего вопроса.

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

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

А формирование базы требует не только времени, но и системного подхода. Это не то, что можно прочитать в виду 2-3 статей из википедии.

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

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

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

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

Вот не встречал. Т.е. встречал людей без образования, пишущих статьи, но... Я начинал свою трудовую деятельность (еще до того, как ушел в разработку) в академическом институте и сам писал статьи (в том числе и в зарубежные журналы типа Phys.Rev.Lett). А в разработке "вырос" на статьях из Computer Science (в том числе).

Так что что такое научная статья знаю не понаслышке. И статья типа "Банки и страховые в одном смартфоне. Рецепт приготовления удобного финтех-приложения" - это не научная статья. А вот описание алгоритмов типа "Метод заполнения объектов пузырями, Метод мультилиний, Фильтрация по эталону для движущейся камеры, Построение 3D карты поверхности по видеозаписи/видеотрансляции поведения лазерной линии, Вырезка объекта по найденным граням объекта с видеозаписи/видеотрансляции и передача для последующего анализа в детектор" уже требуют некоторых фундаментальных знаний.

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

Конечный результат "я учился в ВУЗе и получил хорошую физмат базу, которая затем пригодилась мне в карьере разработчика" это прекрасно. Но, это частный случай. На практике могут встречаться также случаи "я учился в ВУЗе, но не получил хорошей физмат базы, и это помешало мне стать разработчиком" или "я учился в ВУЗе, не получил хорошей физмат базы, но это не помешало мне стать востребованным разработчиком". Первый вариант мог бы служить доказательством вашей правоты, но как быть со вторым? А есть еще и такой: "я учился в ВУЗе, получил хорошую физмат базу, но не стал востребованным разработчиком". Такие примеры мне тоже известны.

Нет прямой связи между ВУЗом, физматподготовкой и разработкой. Есть традиция думать что такая связь есть. Но разработчик это не обязательно математик, также как не обязательно разработчик-не-математик занимается исключительно клепанием кнопочек и формочек. Между этими двумя полюсами бесконечное поле для деятельности, и оно не обязательно требует обучения в ВУЗе. Хотя и не противоречит ему в 100% случаев.

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

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

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

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

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

Абсолютно верно. Точно также как и разнорабочему или нянечке в больнице по большому счету образование не требуется. Медсестре или квалифицированному рабочему требуется среднее специальное образование. Врачу, инженеру - уже необходимо высшее.

Разработка уже вышла на точно такой же "индустриальный" уровень. И вопрос в том - кем вы себя в ней видите - разнорабочим или инженером.

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

И опять выбор за вами или вы себя ограничиваете (хотя бы потенциально) или нет.

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

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

Но это опять же личное дело каждого - для кого-то "не знаю и фиг с ним - буду делать что знаю, зато время в ВУЗе не тратил".

Да, так понятнее, и похоже мы с вами одно и то же говорим. ВУЗ не нужен если не дает базы. Таких сейчас, к сожалению, очень много. Поэтому если идти, то осознанно, а не потому что "все идут". И туда где учат, а не просто деньги на студентах зарабатывают. Чтобы увеличить вероятность попасть именно в такое место, я бы рекомендовал стремиться на бесплатное обучение. В ВУЗ где есть вступительные экзамены, а не зачисление по результатам ЕГЭ.

Меня интересует, честно говоря, мотивация бросить ВУЗ на стадии написания диплома. Нет, у нас тоже несколько человек ушли после 4-го курса с бакалавром, но они и не планировали идти на диплом. Но вот уйди с диплома..?

Не смог ответить себе на вопрос "Зачем?". Работа над дипломным проектом требует серьезных усилий (спроектировать устройство), а я уже понимал что буду работать совсем не по специальности.

все кто хотел получить отсрочку от мобилизации без высшего образования - "ну ну, ВУЗ не нужен, ага". + в гос.секторе или в какой - нить "консервативной" ИТ компании в принципе не рассматривают программистов без вышки, хоть у тебя опыт работы 15 лет

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

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

Не согласен:

  • ВУЗ. Дело даже не в том, что я лично не согласен, а скорее в том, что для разных людей и карьер подходят разные пути. Кто-то становится прекрасным разработчиком и без ВУЗа, другим фундаментальные знания приносят пользу всю жизнь.

  • первый язык Java — категорически нет. Плохое обращение с памятью — это именно то, почему современные программы большие и медленные. Алгоритм JIT-компилятор соптимизирует, но тысячи ненужных объектов никто никуда не уберёт. По-этому, только языки с ручным выделением, только хардкор

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

Согласен:

  • TDD. Прямо согласен в квадрате. Кроме "Если тесты сломаны, надо их починить, даже если это не ваши тесты. Лучший вариант — разобраться, кто сломал, и его попросить починить." Лучший вариант, разобраться что сломалось и починить самому. Так повышается знание системы и одним ненужным взаимодействием становится меньше.

  • Борьба с переключениями контекста. Тут не добавить не прибавить

Спасибо, дельно написано.

Про ВУЗы отвечу только что не угадаешь. Об этом и пытаюсь сказать, слухи об их полезности сильно преувеличены. Я не столько за то чтобы совсем в них не учиться, сколько за то чтобы учиться в них только ошущая в себе такую потребность, а не потому что "здесь так принято".

Про Java уточню: я не призываю писать всю жизнь на Java. Идея в том чтобы первый язык выбирать не сильно заморачиваясь и не сильно сложный. Но не надо останавливаться на одном, уже на продвинутый курс можно выбрать (чуть лучше осознавая какие бывают языки) более востребованный на рынке, или более интересный для себя. То есть сначала получить базовые знания о том как выглядит процесс программирования на несложном языке, далее выбирать язык осмысленно под конкретное направление.

Тот же фронтендер вряд ли будет изучать язык с ручным выделением, возьмет NodeJS и будет писать на Javascript. Помешает ли ему при этом знание Java? Вряд ли. Можно ли начать сразу с Javascript если решил пойти во frontend? Можно. Но мне кажется, что контраст между разными языками помогает лучше понять нюансы. То есть, зная немножко Java перейти в Javascript несколько эффективнее для процесса обучения.

Про git тоже жалею. Радует только то, что сегодня почти в любой курс входит изучение git как необходимого инструмента (это удобно для проверки домашних заданий). То есть маловероятно что разработчик останется без этих знаний. Впрочем, я не оставляю надежды написать отдельный материал про процесс разработки в терминале, там будет и про git, vim, tmux, bash и make. Пока что пусть они поживут здесь в виде списка, который можно загуглить и отдельно разобраться. Осиливший не пожалеет :-)

Не пишите пожалуйста про vim. В консоли есть и нормальные редакторы: emacs, nano и pico. Чем меньше мы будет распространять знания про vim, тем быстрее он попадёт на небесный компьютер с бесконечными ресурсами

Хорошая статья

Курсы на самом деле сложно отличить какие хорошие какие плохие

Свои курсы я бросил на третьем( из четырех ) спринтов, на Ютюбе был материал намного качественнее и актуальнее))

Понял что самообразование гораздо лучше, если есть мотивация конечно

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

Если рассуждать глобальнее (об этом много говорят сторонники agile), разработчик не создает материальных объектов. Строители, наоборот, создают то что сложно поменять. Поэтому в области материальных объектов важно длительное, детальное проектирование. Это долго, дорого, неэффективно, но цена ошибки настолько высока что оптимальнее способа нет. В разработке обычно проще сделать что-то, посмотреть как работает, и выкинуть если не нравится. Сервер в облаке перекатить это не здание построить. Дальше взять другую идею, повторить цикл. И с обучением можно делать так же. Много маленьких ошибок в таких областях обходятся совокупно дешевле чем одна или две больших.

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

По поводу ВУЗа закину свои 5 копеек. Условная половина компаний на рынке на наличие ВО не смотрит, вторая половина - смотрит, даже если явно в требованиях это не указывает, и можно понять почему: сейчас только ленивый не расписывает на тему того, что "программирование в современных реалиях это не столько про написание кода, сколько про софт-скиллы", так вот, наличие ВО - это что-то вроде удостоверения о том, что у тебя добрая половина из них хоть в каком-то виде присутствует, добавляет тебе автоматически много очков в глазах работодателя. И как человек, проводивший много времени по ту сторону набору, скажу, что это не просто формальность, безотносительно того, как ты в целом учился (крайние случаи, когда диплом банально куплен, я здесь не имею в виду).

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

Конечно, для тех, кому уже к 40 или вроде того идти в ВУЗ по понятным причинам, возможно, смысла нет, но я часто встречаю и молодых ребят, которые как бы стоят перед выбором, и я всегда однозначно отвечаю, что лучше туда сходить.

Спасибо, надеюсь тем кому скинете пойдет на пользу.

ВУЗ не имеет ничего общего с развитием soft skills. Он так же в общем случае не сильно развивает фундаментальные компетенции, такие как ответственность, нацеленность на результат. Я считаю очень странными компании в которых такую связь считают реальной и требуют наличия вышки. Достойный соискатель без формального образования просто уйдет к конкуренту в таком случае, а конкуренция на рынке высокая. Но, как сказал президент совсем по другому поводу, "это их выбор".

Возвращаясь к своему примеру, скажу, что все связанное с soft skills я постигал уже в Mail.Ru Group на соответствующих внутренних тренингах. Там были курсы по таймменеджменту, переговорам, управлению проектами и т.д. Про таймменеджмент, кстати, больше всего зашла адаптация GTD от Максима Дорофеева. По этому курсу он потом выпустил книгу https://www.litres.ru/maksim-dorofeev/dzhedayskie-tehniki/, хотя вживую несравненно лучше усваивается. Это, кстати, пример удачного оффлайнового курса, за который не жалко деньги отдать. Не про языки программирования, конечно, но, надеюсь, кому-то будет полезно. Все что я узнал от Дорофеева было мне полезно.

Насчет ВУЗа в 40 добавлю, кстати, на примере своего отца. Он учился в том же ВУЗе что и я (вернее я пошел по его стопам в тот же ВУЗ), потом работал программистом на C++. В какой-то момент ушел в строительную сферу, а там профильное образование было "необходимо" в виде корочки. Уже работая по новой специальности он вполне себе поступил заочно на вторую вышку и получил диплом. Не помню точно в каком возрасте это было, но больше 40. Возраст как раз не помеха. Если есть потребность в дипломе, его всегда можно получить. Опять же, прошу заметить последовательность. Сначала пошел работать, потом получил диплом. То есть востребованный специалист получит работу даже если диплом вписан в требования по вакансии, а диплома нет.

"Он так же в общем случае не сильно развивает фундаментальные компетенции, такие как ответственность, нацеленность на результат" - может, развивает и не так сильно, как курсы М. Дорофеева, но как минимум отсеивает тех, у кого они присутствуют. Как и усидчивость, упорство, умение работать с большим количеством информации и масса других качеств. И статья вроде про начинающих, которые в глазах работодателя одинаково плохи - и преимущество такового с ВО не иллюзорно, как я убеждался лично и на собеседованиях, и вне офисных стен.

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

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

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

Искренне благодарю за эту статью, она как никогда для меня актуальна.

По образованию я очень далёк от IT-сферы, и когда заинтересовался, два года ещё потратил на указанные выше отговорки: "Я уже слишком взрослый", "Надо строить карьеру, там, где уже умеешь, и даже вроде получается. Зачем менять?", "Вокруг много молодых, кто шарит, а ты будешь ковыряться как перечница". Два года я откладывал, и только когда ситуация окончательно припёрла, стало ясно, что всё дело то во мне, и не важно буду ли я менять профессию, но мне интересно получить навык и знания в разработке.

После опроса товарищей, как раз выбрал озвученный здесь путь. Начал самостоятельно на бесплатных открытых курсах, и дополнительно пошёл на общедоступные, которые делают от Центра Занятости. Информации много, иногда под конец учебного вечера, от конспекта и выполнения задач дымиться голова, но мой интерес только растёт. Хотя результаты пока не очень и часто напоминают битьё об стену.

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

Благодарю за статью, очень информативно. Должен заметить что вы резковато отозвались о ВУЗах, но с другой стороны у меня нет современной информации о них.

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

Если можете предложить готовый материал подобного рода, это тоже мне сильно поможет.

Заранее спасибо.

Спасибо. Про ВУЗы как раз у меня актуальная информация, у меня ребенок в этом году закончил школу и пошел на вышку. Там просто открытым текстом рассказывают что "вот этот предмет вам не нужен, но без него государственную аккредитацию не давали". Это нормальное основание для преподавателя не приходить на собственный предмет. Сейчас, кстати, ребенок подумывает отчислиться, потому что, как и я в свое время, не может себе ответить на вопрос "Зачем?".

Материал про TDD давно хочется сделать. Пока не знаю в каком формате. Мечтаю сделать видео с livecoding-ом, но это может быть только затравкой, в идеале должна быть серия видео или статей, потому что TDD показывает себя во всей красе именно в долгосрочной перспективе в условиях меняющихся задач, требований. Проблемы, которые решаются тестами в проекте без TDD возникают не сразу, а в результате серии изменений. Чаще всего разработчик не дурак, и четко поставленную задачу даже без тестов может сделать качественно. Косяки начинают вылезать когда кто-то потом (в ходе разработки, через полгода, или через год) придумал новую фичу и решил переиграть уже действующий функционал, но не учел особенностей реализации, не проверил все случаи которые проверял руками автор. Не знал что надо, или не у кого спросить (автор уже уволился, новый разработчик еще не вкатился), и т.д. Как эту реальность уложить в упрощенный обучающий материал, на который студенту не пришлось бы тратить несколько недель, я пока не придумал. Но не оставляю надежды сделать.

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

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

Согласен почти полностью.

20 лет почти в разработке (привет, Perl!) 3 года назад пошёл учиться в маи ради "корочки". Знаний там дают 0, лишнего половина. Ну, а теперь опять не судьба доучиться.

Про курсы не соглашусь. Для смены языка - нормально. Для нулевого уровня - сомневаюсь. Пример - перекатывался в Go. Мне курсы заходят - яндекс, степик. Жена (техписатель) ничего не понимает.

TDD в Го - песня! И вообще тестирование классно продумано.

Ну и оффтоп. В VK вообще можно работать не из России? Пытался на разных сайтах откликается на вакансии - 0 ответов.

Если конкретный курс не заходит (для человека с нулевыми знаниями), можно попробовать другой. На худой конец (условно худой, я сам так и учился) можно взять книжку. Тот же Learning Perl прекрасно подойдет для начала. Тут, конечно, важно потратить время на начальное изучение любого языка, не важно каким способом. Может даже специально взять язык на котором никогда не доведется писать и выучить в отрыве от современных задач. На уровне "что такое переменная", "как работает цикл". И не просто выучить, а попробовать на практике что-то очень простое писать с намерением понять как это работает, выкинуть и забыть. Важно выбирать способ изучения по принципу "можно легко поменять если качество не устроило". Поэтому бесплатный курс, книга, рассказ друга - хороший вариант, а платное обучение не очень.

По оффтоп части: работать в VK можно из любой точки мира где есть интернет. В 2020-м году это было еще не так, но сейчас существенно прокачали удаленную работу благодаря известным событиям. Это перестало считаться дикостью, стало привычным, нормальным. Даже удивляешься если в какой-то компании нет удалёнки.

Другой вопрос что в VK очень высокий порог входа. Для тех кто читает статью и думает "вот я на курсы бесплатные запишусь, освою язык, научусь тесты писать и через полгода меня в VK возьмут" у меня плохие новости. Скорее всего не возьмут. Но есть и хорошие новости. Можно поработать год-два-три в компании попроще. Или даже в нескольких. Набраться опыта в реальной разработке. Причём лучше чтобы это был highload, то есть не любая разработка, а близкая к тому чем занимаются в VK. Очень важно не останавливаться в развитии, даже если кажется что все необходимое уже освоил.

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

Sign up to leave a comment.