Как написать плохое резюме

Вот правда, иногда бывают такие резюме, после которых задумчиво куришь в окно. Хочет боец работу? Не хочет? Знает ли, чем занимается? Различает ли вообще буквы?
Если вы хотите, чтобы вас обязательно пригласили на собеседование, делайте так же.
Во-первых, пишите текст так, словно только что начали, а через пять минут сдавать. У вас нет даже недели на вдумчивую проработку текста. Набросайте абы как. Тут чёт делал, там чёт чинил, знает какие-то технологии, в идеале ничего не уточнять — сойдёт даже “писал на языках программирования”. И так норм. Я телепат и всё угадаю без лишних слов.
Во-вторых, нет ничего странного в том, что бойцы 30+ лет возраста и 5+ лет работы не знают русской языке. И про spell checker не знают. Всю жизнь отдали любимой профессии, потому смело отправляйте резюме с фразами типа “больши года пас карову в силе опытный пастун”. В конце концов, нанимают пастуха, а не филолога, да. Я и без того не планирую пускать разработчика к нормальным людям ближе километра, потому краснеть за двоечника не придётся.
В-третьих, ровно так же нет ничего странного, что девопс не может правильно написать слово nginx, питонист Python, а менеджер agile. Подумаешь. Лишь бы человек хороший был. Правда, я в очередной раз буду прятать слёзы в дожде, гадая о том, как сформировался мозг кандидата за 10 лет школы, 5 лет вуза и 5 лет опыта работы таким образом, при котором разворачивается NGiNX, сервис на Peton, а управление agiel. И каким образом осваиваются ключевые слова языков. Ну да кого волнует.
В-четвёртых, работодателя очень интересуют ваши хобби, чувства юморов, улыбчивость, развратность, езда на лыжах и копание в оригами. Посвятите этому минимум треть текста. Нанимают не разработчика, но чувака, умеющего и любящего весело поболтать, выпить пивка с братвой, ну и слабать чё на мандолине. А разработчика потом наймут. Пусть сидит угрюмым сычиком в углу.
В-пятых, весь свой опыт уместите в одну строчку. Желательно смешать тщательнее. Вот так: “умею git, Windows, Python, Python 2, FAR, cvs, Linux, Django, PHP, Win32, Pascal, Excel”. Обожаю разгадывать загадки. На каком уровне умеет? Какие версии (впрочем, нелепый вопрос, ведь все версии всего одинаковы)? Понимает ли кандидат разницу между Windows и PHP? А, да, телепатия со всем справится. Берём. Универсальный терминатор.
В-шестых, форматировать текст не надо. Мне, в общем, пофиг, в каком направлении читать, какими буквами и какой толщины. Даже вот 1-кегельный кирпич на марочке хорошо. В глазах давно титановый протез, он справится. Какую-либо документацию к сервису вы так же писать будете, но… нет, вообще не будете, чего это я. Документация для слабаков и сухарей из мира ынтырпрайза.
В-седьмых, заботиться о стыковке показаний в разных абзацах резюме не надо. Я не умею читать и думать, потому не собираюсь гуглить ни вас, ни ваши места работы, ни подсчитывать годы опыта, ни сверять версии софта, ни выписки из ЕГРЮЛ изучать. Ничего не буду. Читаю с закрытыми глазами, так спокойнее.
Вот. Тот, кто использует все семь советов в одном резюме, работу найдёт на следующий же день. Никак иначе.

Junior vs Senior

Вернусь к старой теме после новой дискуссии.
Мне всё так же кажется очевидным, что разница между junior’ом и senior’ом заключается в знаниях и опыте, без которых (и без постоянного осмысления которых) эволюция разработчика невозможна, но попробую их в некоторой мере выключить. Пойдём делить через “методы решения задач”.
Если кому лень читать простыню, вот краткое: junior сначала делает, потом думает, senior сначала думает, потом делает. Всё, уходите.

Поехали привычным списочком.
Во-первых, senior не совершает действия, причин и последствий которых не осознаёт. Как минимум, до выполнения rm -rf он сначала выполнит man rm. Это достаточно сложное действие для того, чтобы десятки тысяч кандидатов на гордое звание яжыпраграмизта отсеивались путём отстреливания всякого полезного в продакшене. Соответственно, junior мануалы читать не склонен.
Во-вторых, senior постоянно перепроверяет себя. А правильно ли я помню действие rm -rf? А в этой OS? А в этой версии? А в 2017 году? Чем больше опыта ситуаций, в которых излишнее самодовольство в паре с уверенной самоуверенностью приводили к серии бабахов и горящих седалищ, тем больше желания убедиться в правоте ещё раз. И ещё. И ещё разочек. Соответственно, junior к проверкам не склонен.
В-третьих, senior сознательно развивается в профессии. При этом не по нужде (“ой, а чё, мы уже год MongoDB используем? ну, наверное, пора почитать tutorial… я же типа этот… синёр… завтра точно почитаю”), но по другой причине. Даже затрудняюсь сформулировать. По той же причине, по которой стал программистом. Из любопытства. Из чувства перспективы и актуальности. Ради эрудиции. Ради изучения чужого опыта. Чтобы быть профессионалом. Соответственно, junior развивается в режиме “куда пнули, туда и лечу, а если не пнули, не лечу”.
В-четвёртых, senior решает не только текущую задачу. Более того, он зачастую эту текущую задачу изменяет (что тоже отдельное желание и умение) с учётом перспективы. Там, где junior посадит в понедельник чахлое яблоньку, senior озаботится прогнозом погоды (во вторник мороз), экономическими сводками (в среду Аргентина удавит рынок мегатоннами дешёвых яблок), вспомнит о планах концерна Химовнопром залить площадку хлором (четверг), ну и вообще задумается о том, какая задача решается и не лучше ли вагон дров в Мурманск отправить, взамен у той же Аргентины купить яблоки. // что любопытно, привычки типичных junior’ов заставляют их уже во вторник говорить буквально следующее: была поставлена задача посадить яблоню, я посадил, какие ко мне претензии?! и всё с такими искренними эмоциями… никаких, конечно, кроме того, что яблонька сдохла и жрать нам нечего.
В-пятых, senior — это система. Системные решения. Системные знания. А следует из Бэ. Бэ на фундаменте академика Петрова и профессора Сидорова. Интеграция с решениями MBI. Автоматизация. Основание. Аргументация. Ледокол идёт по курсу и каждая заклёпка не просто так. Соответственно, junior — это адепт хаоса. Состоит из отрывочных знаний, сведений, мнений бабушек и однажды прочитанного на Хабре.
В-шестых, senior инициативно желает сделать лучше и делает лучше. Вместо “ну вот, я же говорил Пете, что надо тут false превратить в true, чтобы у нас всё вдвое быстрее заработало” он превращает false в true, делает замеры и всё работает вдвое быстрее. Соответственно, junior сидит на попе ровно. Поступит приказ улучшить? Ну, чёт улучшим. Нет? Продолжаем сидеть.

Вот как-то такой ещё можно использовать угол для оценки происходящего вокруг вас.

О скорости разработки на

Кстати, занятная штука. Я вам ща шаблоном напишу. Вместо переменных вставляйте любимые языки по желанию.
Бытует мнение, что на языке X программы разрабатываются медленнее, чем на языке Y. Мнение это в 2017 году ошибочно по нескольким причинам.
Во-первых, не нанимайте плохих разработчиков, нанимайте хороших. Хорошие разработчики пишут хороший софт быстро. Что на языке X, что на языке Y. Аксиома такая.
Во-вторых, все топовые языки стремятся к тому, чтобы типовые задачи решались быстро. К тому же стремятся сообщества, поставляя библиотеки. Если вы на языке Y можете быстро написать что-либо, скорее всего, ровно так же быстро это напишется на языке X. И наоборот.
В-третьих, быстро вы делаете не продукт, но прототип. Продукты делаются долго и зачастую доля языка в них едва ли не самая малая. То, что затем прототип выкатывается в продакшен после слабого допиливания, да ещё и продуктом называется… ну, совесть у каждого своя. Считающим иначе предлагаю найти и прочитать “биографии” известных продуктов, а не страничек по продаже котов. Познавательно.
В-четвёртых, если разница между языками X и Y в написании кода прям совсем заметная (при прочем равном), скорее всего, вы просто ошиблись с выбором языка под задачу. Глупо писать драйвера на Python’е. Глупо писать веб-магазин на asm’е.
В-пятых, задумайтесь, быть может, вы оперируете слухами и домыслами, но не собственным опытом или наблюдениями. Повторюсь, на дворе 2017 год. PHP уже похож на язык программирования (и даже шустрит местами). Java далеко не медленная. JavaScript обзавёлся серверсайдом (и тоже местами шустреньким). На C++ пишут весьма высокоуровневый код. В Python появился Unicode. А уж с помощью современных IDE можно рутинный код даже не писать, но правым мизинцем лениво подписывать.
В-шестых, стоимость разработчика в 2017 году тоже несколько ровнее относительно стоимости железа. Давайте поправлю вот это красивое “железо становится дешевле” — на самом деле “старое железо стоит дешевле нового железа”. А новое железо как стоило ощутимо, так и стоит. Внезапно. Потому после глубоких и мудрых вычислений на бумажке карандашиком вполне может оказаться, что для вашего продукта (не прототипа в 1К строк!) таки дешевле senior Petia с его языком X, а не горящий глазами энтузиаст с языком Y. Это вот если распространить “медленнее-быстрее” на стратегическую перспективу, в которой вы уже через полугодие будете лихорадочно добавлять сервера, а сервис переписывать.
Как-то так, если кратко.

Почему не Pascal

В школах и вузах России до сих пор много где преподают алгоритмы / программирование на Pascal. Это плохо. До того, как объяснить, почему плохо, объясню, почему до сих пор.
Во-первых, у образования нет денег. Школы и вузы нищие. Потому никакого обновления парка машин, никакой смены программы (как жили на советской, так и живут с лёгкими переделками), никаких новых учителей информатики. Уж тем более никакой массовой закупки лицензий.
Во-вторых, отечественное образование — замкнутый на себя мир, в котором царицами тётки с бигудями из ГорОНО, а богами седовласые дядьки из министерства. В массе своей их волнует вовсе не образование, уж тем более не какой-то там мировой прогресс. Были бы бумажки вовремя заполнены, карманы шелестели, ну и регалии звенели.
В-третьих, много где работает принцип “деды наши на Pascal учились, мы учились, вот и вам сойдёт”. Попробуй объясни ностальгирующему по молодости мужику, почему то, что он задорно делал 25 лет назад на уроках информатики (мечтая о ясноглазой практикантке пединститута), в 2017 году уже олдовенько примерно так же, как пятидюймовые дискетки.
В-четвёртых, система образования готовит не программистов. Это старая проблема, о которой говорят и пишут с 90-х. Опять же, наследие СССР, в котором делали умеющих программировать математиков и физиков, но даже не собирались делать программирующих программистов. Отсюда следующий блок эссе.

Почему плохо? Потому, что…
Программисты не используют Pascal. Если вы пойдёте работать в какой-нибудь ГосЦНИИПрорабПроект, вероятно, будет Delphi, да, но… кхм.
Школьники и студенты России тратят самое горячее для головы время на то, что им никогда нигде не пригодится. А если школьник или студент толковый, он решает узнать чуть больше. Тут его ждёт некоторое разочарование.
Кто тут у нас считает, что Pascal хорош для преподавания алгоритмов? Ну айда в магазин (или на трекер). Стивенс, Скиена, Лафоре, Клейнберг, Тардос, Дасгупта, КЛРШ, Седжвик… ой, не Pascal. Кнут вообще свой язык сделал, потому в сторонке. Вовсю в ходу либо псевдокод (который тоже не на базе Pascal, к слову, давненько уже используется), либо Python/Java/C++.
Может, школьник или студент прикоснётся к новинкам индустрии (да даже старинкам)? Хм… Что у Pascal с парадигмами вроде OOP или FP? Виртуальные машины? Сборка мусора? Асинхронность? Многопоточность? JIT? Подозреваю, что фанаты что-то прикрутили в FreePascal, но почему бы не получить всё это из коробки без костылей?
Хорошо, школьник или студент на ближайшем заборе прочитал о том, что в природе существуют штуки вроде NoSQL. Упс, а драйверов нет даже к MongoDB. Года три-четыре назад вроде как пытались делать, а потом забили. Бяда…
Может, лет до тридцати человек яростный дурак, потому может осилить только Pascal? Ну… На Amazon в топе продаж учебники типа “Python for Kids” и “JavaScript for Kids”. У них вот чёт получается.
Статьи в журналах, конференции, видео на YouTube, бурление на форумах. Могу продолжать бесконечно. Трижополлиард мест, где нет Pascal и уже не будет.

Да и с позиции именно обучения у меня претензии.
Алгоритмы сами по себе нафиг не нужны, если не готовить философов, потрясённых красотою концепций. Если делаете программистов, алгоритмы должны применяться. В идеале к чему-нибудь реальному.
Ассоциативный массив? Отлично. Давайте на нём сваяем примитивное кеширование перед базой данных. Сначала без кеширования, потом с кешированием, обстреляем всё и увидим, как няшно же.
Графы? Тоже неплохо. Давайте загрузим граф связей друзяшек из Twitter или Facebook, проанализируем связи и заодно выгрузим в Excel. Нет, никак? На Pascal это займёт год?
Может, братве и сестртве с горящими глазами подсунуть веселящую задачу написать свой язык программирования (да тот же Lisp)? На базовом уровне это задача для школьников по нынешним временам, да и реально весёлая. На Python или JavaScript решается достаточно легко, заодно можно подсунуть тему автоматов и алгоритмов на строках. Как там у Pascal со сроками решения?

Искренне не понимаю, как можно быть сторонником преподавания чего-либо на базе этого маргинального языка. Он был хорош до 90-х. Потом появились мобильные телефоны, интернеты, языки следующих поколений, автомобили Tesla и даже пиво “Балтика” (дотошным — 1992 год).
Как если бы вас учили вождению на Запорожце. Важны же принципы, да? Запорожец тоже машина. Четыре колеса. Двигатель. Дверцы хлопают. Очень простой. Вон ща из гаража в стотысячный раз выкатим, пыль смахнём и айда на улицы, из трубы попукивая. А на KIA, Daewoo и Hyundai пусть мажоры учатся.
Как-то так. В топку Pascal, короче.