Шаг 2. Составляем резюме
Если вы задаётесь вопросом, реально ли найти работу программисту без опыта — не переживайте, в арсенале начинающего специалиста есть два инструмента: резюме и портфолио. Ваша задача — грамотно ими воспользоваться.
Качественное резюме заинтересует рекрутёра, даже если у вас нет опыта работы в «Майкрософте» и десятилетий кодинга за плечами.
На сайтах с вакансиями предусмотрены собственные шаблоны резюме — заполните их, чтобы в дальнейшем откликаться на предложения работодателей. Кроме того, можно создать документ в гугл-доке или в одном из бесплатных конструкторов из нашей подборки, чтобы высылать работодателям отдельный файл с резюме.
Подготовили для вас несколько советов по структуре резюме, которые помогут начинающему программисту грамотно презентовать свои знания и навыки.
- Укажите один или несколько языков программирования в названии резюме. Например, «программист Java и Swift» или «программист Python» — чтобы работодатель сразу понимал, на чём именно вы специализируетесь. При необходимости создайте несколько резюме под каждое направление и направляйте работодателю то, что соответствует конкретной вакансии.
- Перечислите основные технологии, которыми владеете. Выделите те, что связаны с вашей специализацией и в которых вы сильны. Только честно, ведь работодатель знает, что вы новичок: если где-то что-то читали про фреймворки PHP или библиотеки Python, а на практике не разбирались — упоминать их в качестве навыков не стоит.
- Напишите про образование. О профильном высшем или среднем специальном образовании, оконченных курсах, хакатонах, митапах и конференциях для программистов, в которых участвовали.
- Прикрепите скриншоты дипломов и цифровые сертификаты. Не стесняйтесь приложить сертификаты о прохождении бесплатных курсов — работодателю важен сам факт завершённого обучения и ваша заинтересованность в развитии скилов.
- Расскажите об опыте работы. Если у вас есть опыт в программировании — делайте упор на него, если же релевантного опыта нет — кратко поясните, чем вы занимались до увлечения кодингом.
- Опишите софт-скилы, которые могут пригодиться в работе. Например, владение английским и навыки командной работы — важные скилы для программиста.
- Оставьте контактные данные. Телефон, почта, телеграм — можно указать приоритетный способ связи, но рекрутёры чаще всего звонят.
- Приложите ссылку на портфолио. Какие проекты добавлять в портфолио и где его размещать — поговорим подробнее в следующем разделе статьи.
Советы по оформлению резюме:
- сократите формулировки, если текст не умещается на одной странице документа;
- проверьте орфографию и пунктуацию — например, через сервис «Орфограммка»;
- выстройте иерархию мест учёбы и работы;
- подберите лаконичный шрифт, к примеру, Proxima Nova или Montserrat;
- добавьте подзаголовки и перечисления, где это уместно;
- настройте отступы и межстрочные интервалы;
- загрузите свою портретную фотографию.
А мы переходим к следующему пункту плана и разбираемся, как найти работу программисту и собрать портфолио, даже если опыта в профессии ещё нет.
Учить и учиться нужно не только цифре, но и софт-скиллам, причём на реальных задачах
Подготовка IT-специалиста и представителя любой цифровой профессии сейчас не может ограничиться только хард-скиллами — нужно сразу развивать и софт-скиллы. Это настолько же важные профессиональные навыки, как и, например, знание определённого языка программирования. Потому что айтишник работает не в вакууме, а в команде, и ему надо уметь с ней взаимодействовать не «как придётся», а эффективно
Это важно и для сроков, и для процессов, и в конечном итоге для качества IT-продукта. Даже очень сильный специалист, если команде крайне трудно найти с ним общий язык, становится для работодателя не ценным приобретением, а проблемой
Именно поэтому на собеседованиях эйчары так много внимания уделяют оценке «софтов».
«Софты, безусловно, нужны как гуманитарные навыки для технарей. Если до этого обсуждали, какие технические навыки нужны всем остальным, то технарям вот точно нужны гуманитарные навыки. Это видно, — рассуждает Сергей Марданов. — Ты должен понимать, что такое эмоциональный интеллект, что люди бывают разные и могут быть разные психологические подходы к ним. <…> Если все разобщены, плохо коммуницируют друг с другом, то, конечно, сложнее делать продукт, на это тратится больше времени и ресурсов. И работодателю это, естественно, невыгодно».
IT-специалист, по мнению Марданова, не должен видеть свою задачу ограниченно, в духе: «Моё дело — просто написать код, и всё». Иначе может получиться как в известном меме: «Как продукт видел дизайнер, как реализовал разработчик и что заказчик хотел на самом деле». Надо, чтобы у всех членов команды была единая картинка итогового продукта
Поэтому IT-специалист должен понимать свою задачу так: «Мне важно сделать этот продукт с пониманием того, как люди будут потом его использовать. И даже если я просто пишу код, этот код потом должны понимать другие люди, мои коллеги».
Сергей Попков поддержал мысль о важности софт-скиллов и привёл пример из мира веб-дизайнеров. Они, как и программисты, часто бывают интровертами
И когда дизайнер, долгое время работавший на фрилансе, вдруг впервые попадает на работу в крупную компанию, где над разработкой и обслуживанием IT-сервиса обычно трудится большая команда, его удивляет и даже возмущает слишком, как ему представляется, большое количество общения в процессе. Возникает реакция: «Вам не кажется, что мы тратим чересчур много времени на коммуникацию? Почему, вместо того, чтобы заниматься своей непосредственной работой, я должен три дня из пяти сидеть на каких-то переговорах, слушать вас, спорить с вами?»
Сергей ПопковКадр: Skillbox
«Бывает так, что это действует на специалиста деструктивно, и он просто отказывается так работать и уходит из компании, не приживается, — продолжает Попков
— Хотя по большому счёту, это как раз и есть тот самый софт-скилл, который очень важно принимать и развивать у себя, если вы занимаетесь подобным направлением, как программирование и цифровой дизайн».. Что всё это значит для сферы обучения? То, что в учебные программы необходимо встраивать развитие софт-скиллов
Вопрос — как это делать.
Что всё это значит для сферы обучения? То, что в учебные программы необходимо встраивать развитие софт-скиллов. Вопрос — как это делать.
По мнению Алексея Дворецкого, просмотр обучающих лекций и чтение книг в этом смысле вряд ли эффективны: «Это всё развивается только в деятельности
И здесь важно решать задачи в команде, уметь распределять роли, договариваться. Как раз вот такие механики мы стараемся реализовать через наши хакатоны».
В поисках знаний
Сотрудники, которым требуется материал для проектов, над которыми они работают, пользуются поиском на iKNOW. Доступ к информации можно получить разными способами: по сектору, теме или контролирующему лицу. Каждая запись имеет список основных контактов, чтобы сотрудники могли взять телефон и более подробно обсудить интересующую их тему со специалистом. Это помогает установить связь между коллегами, работающими над одним и тем же проектом или решающими одни и те же вопросы в европейском и австралийском офисах Laing O’Rourke.
В то время как платформа iKNOW получила положительные отзывы, она только начала использоваться, поэтому всех сотрудников попросили загрузить на нее подходящий контент. Любой сотрудник может создать или изменить любую запись, а все статьи одобряются руководителем проекта или иным специалистом в предметной области, чтобы обеспечить точность содержащейся в них информации. В то же время руководители предлагают поощрение специалистам в своей области. Многие коллеги с радостью воспользовались возможностью эффективно делиться своими знаниями и оказывать положительное влияние на работу всей компании. Существуют идеи о признании сотрудников, которые вносят наибольший вклад, например, посредством определения победителя «страница месяца» или составления списков наиболее часто просматриваемого контента.
По словам Хиндса, учитывая, что деятельность компании основывается на проектах, передача и управление знаниями оказали существенное положительное влияние на Laing O’Rourke. «Такой подход не позволит потерять банк данных, включенных в проекты, – говорит он. – В противном случае сотрудники могут закончить один проект и перейти к другому, в результате чего может быть утрачена важная информация. Также, когда сотрудники покидают компанию или уходят на пенсию, их знания остаются в компании».
Кроме того, сотрудники пользуются внешней сетью Yammer, чтобы делиться информацией или задавать вопросы по проектам. Обеспечение возможности сотрудников получать доступ к подобной специальной или «явной» информации, является всего лишь одним из аспектов проблемы, связанной с управлением информацией. Так как же можно получить ценный опыт или «неявные знания», которыми располагают другие люди? «Когда люди работают в организации, неявные знания могут быть утеряны, – говорит Лун. – Организации, которые осознают это, используют ряд мер по обеспечению сохранности полезных знаний, накопленных за долгие годы. Контроль можно осуществлять лишь тогда, когда такой опыт и неявные знания могут быть преобразованы в явные знания.
Программист — моя любимая профессия
Каждый человек ещё в юности задумывается над тем, кем он хочет стать в будущем. Моя любимая профессия — программист, я приложу все силы, чтобы её успешно освоить.
В работе программиста меня привлекает возможность работать удалённо — не посещать офис работодателя и не тратить личное время на проезд в транспорте. Ведь время — это деньги, то есть ограниченный ресурс, который необходимо расходовать экономно и с пользой. Именно по этой причине я почти перестал играть в компьютерные игры: жаль потраченного впустую времени. Интересуюсь лишь новыми играми, да и то с точки зрения освоения будущей профессии. Ведь чтобы создавать игры самому, надо быть в курсе всех последних тенденций рынка индустрии компьютерных игр.
Уже через несколько лет я планирую создать собственную компьютерную игру. С этой целью уже купил доменное имя сайта. Надеюсь, в перспективе эта идея будет реализована, и мой игровой сайт станет популярным.
В более отдалённом будущем мечтаю создать программный продукт, аналогов которому не существует. Очень хотелось бы стать новатором в сфере инновационных технологий и создания компьютерных программно-технических средств.
А пока продолжаю старательно учиться. Хотя я и определился с приоритетными, то есть нужными мне в будущем, предметами, нельзя пренебрегать и остальными дисциплинами. Поэтому сначала мне предстоит окончить школу, а потом — университет. И лишь после его успешного окончания можно будет сказать, что моя любимая профессия — программист — освоена.
Негативные стороны профессии
Есть какие-то моменты, которые выводят из себя, или это работа мечты?
Это работа мечты.
Такое было только на одной работе, и я оттуда очень быстро ушёл. Ещё несколько таких начальников я видел на собеседованиях. На этих компаниях сразу ставил крест.
На двух последних работах начальники сами сильные программисты и я их очень уважаю. Допускаю, что можно ничего не понимать в предмете и при этом не дурить в роли начальника, но сам такого не видел.
Сам я, к счастью, с клиентами напрямую почти не работал, так что меня это миновало.
Как справляетесь с сидячим образом жизни?
В Москве, до переезда в Германию, я сидел-то как раз мало, очень много бегал по офису, решая вопросы. В Германии я ходил на работу пешком, хотя мог бы как-то и по-другому добираться. Вот сейчас стало посложнее из-за ковида.
Купил себе беговую дорожку, подъёмный стол, поставил одно под другое, и на час в день, пока я за компьютером, включаю дорожку и по ней хожу. Вообще прикольно. Могу рекомендовать.
Сейчас говорят, что нейросети заменят многие профессии, в том числе программистов. Вы не боитесь?
С одной стороны, считаю эти страхи обоснованными. Думаю, что компьютеры наступают на все профессии. Работодатели не хотят возиться с людьми, у которых может быть насморк, плохое настроение и тому подобное. Железяка работает намного лучше.
Но есть прорывные сферы: программисты и учёные на переднем крае науки, которые что-то изобретают.
Поэтому мы умрём последними, и мне-то волноваться надо меньше всех.
Какую ответственность несёт программист за свои ошибки?
На этот случай у меня есть любимая цитата, которая висела над рабочим местом, но, к сожалению, не смог найти автора:
Я бы сравнил с медиками: и они, и мы не в состоянии предсказать на 100%, что получится в результате изменения. Когда вам доктор даёт абсолютно безопасную таблетку, у вас всё равно могут быть любые последствия, вплоть до смерти.
Насколько мне известно, если доктор всё делал по инструкции, нигде не допустил ошибок согласно современным знаниям, то он не несёт никакой ответственности.
Так и у программистов. Мы делаем всё, чтобы ошибок было как можно меньше. Но если всё-таки не повезло, или ты не проспался с утра и по-людски что-то накосячил — пожурят, ну и всё.
#1. IT как оружие. Какие опасности таит в себе развитие высоких технологий
Тип книги: e-book
Дата выхода на ЛитРес: 27 октября 2020
Авторы: Брэд Смит, Кэрол Браун
Описание:
Развитие IT-индустрии за несколько десятилетий трансформировало современную реальность. Теперь мы живем и работаем в цифровом мире, а ведущие IT-компании владеют большим объемом персональных данных, чем любое правительство на планете. Возможность собирать и обрабатывать огромные объемы информации стало мощным инструментом прогресса и грозным оружием одновременно. Но кто им управляет на самом деле?
Авторы этой книги, руководители компании Microsoft, раскрывают перед читателями самые актуальные проблемы, которые стоят перед IT-компаниями, и рассказывают о своем пути их решения. Как в эту новую эру найти правильный баланс общественной безопасности и неприкосновенности частной жизни? Как защититься от злоумышленников, которые используют новые технологии для кибератак на целые страны, корпорации или частную жизнь граждан? Удастся ли нам создать мир, в котором наши дети смогут найти работу? Сможем ли мы вообще контролировать зарождающийся новый мир?
Возможность собирать огромные объемы данных о пользователях – это палка о двух концах. И от того, как IT-компании решают сложнейшие этические проблемы, зависит устройство мира, в котором нам предстоит жить.
Школа поможет в выборе
Влюбленным в информатику школьникам не составит труда написать сочинение про программиста. На уроках преподаватели учат класс языкам программирования, азам графики и анимации, веб-навигации в интернете.
Задатки будущих программистов сразу бросаются в глаза. Они первые бегут сдавать эссе, доклады и рефераты, лучше всех делают проекты, и у каждого уже есть свой любимый язык программирования. Мечта таких талантливых школьников — познакомиться с известными в профессии людьми. О детских шалостях тоже не стоит забывать, почти все будущие программисты мечтают о том, чтобы взломать сложную сервер-систему. Кто-то оставит эти мечты за порогом школы, а кто-то действительно станет известным хакером.
Сочинение «Моя будущая профессия — программист» покажет истинные размышления школьников, выявит сильные и слабые стороны знания о выбираемой специальности. Выбрать профессию недостаточно, это желание нужно взращивать, как молодое дерево. Только тогда оно принесет плоды.
Как стать успешным программистом
Одна из самых востребованных специальностей так же, как и компьютер, нуждается в постоянном «обслуживании» и обновлении. Программирование не стоит на месте, и для того, чтобы быть востребованным сотрудником, нужно постоянно учиться. Для начала стоит разобраться, в чем должен хорошо разбираться будущий программист:
- Математика.
- Технический английский язык, а также русский, белорусский, казахский, китайский (зависит от места проживания и работы).
- Вычислительная техника.
- Принципы кодирования, простейшие методы создания программ.
https://www.youtube.com/watch?v=Ffc86tUDdrY
Я хочу стать программистом. Где учиться?
Можно самостоятельно учиться программированию, записаться на онлайн-курсы и даже учиться очно — плюсы есть у каждого варианта.
Самообразование не требует серьезных затрат, понадобятся только усидчивость и умение добывать нужную информацию. При правильном подходе уже через несколько месяцев после начала обучения получится написать простую программу.
С другой стороны, грамотно составленный курс обучения даст новичку полное представление о профессии и позволит быстро освоить разные инструменты на практике.
Обучение онлайн по сравнению с очным требует меньше времени, а хорошие онлайн-школы сопровождает своих учеников до первого трудоустройства, помогает с составлением резюме и портфолио. Например, в SkillFactory помощью в трудоустройстве занимается специальный карьерный центр.
Самостоятельное обучение: блоги, приложения, книги, бесплатные курсы и видеоуроки
Плюс: дает возможность попробовать себя в новой сфере деятельности без вложений.
Минус: отсутствие опытного наставника и структуры работы. Кроме этого, бесплатные курсы бывают поверхностными, поэтому с их помощью редко получается стать опытным специалистом.
Поступление в вуз или колледж
Плюс: профессиональное образование помогает расширить кругозор. Помимо фундаментальных знаний по специальности, выпускники получают общие знания в других сферах: экономике, культуре, политике и естественных науках.
Минус: IT-индустрия развивается быстро, современные государственные программы не успевают под нее адаптироваться, и выпускники рискуют выйти в большой мир разработки с неактуальными или неполными знаниями.
Онлайн-курсы
Плюс: главный плюс онлайн-обучения на курсах программистов — это поддержка ментора и формирование профессионального сообщества. Все вопросы можно обсудить с коллегами по цеху. Также онлайн-школы предоставляют ученикам доступ к большим методическим базам.
Минус: сам процесс обучения может занимать от полугода до двух лет, потребуется мотивация, чтобы его закончить.
Иные варианты
Выбирать необходимые навыки для технических специалистов не менее просто. Основной задачей, например, для системного администратора является контроль работы всей компьютерной сети. Поэтому он должен обладать такими ключевыми умениями и навыками:
- проводить диагностику профессионального оборудования;
- мониторить возможные риски и планировать пути восстановления функционирования систем в кратчайшие сроки;
- владеть техническим английским;
- работать с крупными объемами информации.
По указанным необходимым умениям для этой должности видно, насколько специфика работы влияет на то, что необходимо указывать в резюме. Отдельно стоит отметить, что в некоторых отраслях профессиональные умения настолько тесно переплетены, что их сложно отделить.
Если вы претендуете на должность специалиста по учету, то вначале лучше ознакомиться с предъявляемыми требованиями. Примеры ключевых навыков в резюме для бухгалтера можно взять прямо из описания требований к кандидатам. Они должны:
- уметь аналитически мыслить;
- организовать работу на закрепленном участке;
- анализировать проблемы, уметь искать пути их разрешения;
- грамотно планировать;
- уделять достаточно внимания мелким нюансам и важным деталям;
- правильно расставлять приоритеты;
- уметь работать с большим количеством документов;
- уметь выделять первостепенные задачи;
- обладать навыками работы с контролирующими органами.
К сотрудникам правового отдела выдвигаются несколько иные требования. Для юриста можно указать:
- знание законодательства, принципов работы судебной системы;
- умение составлять документы, договоры;
- навыки анализа правовых документов;
- возможность работать с разнообразной информацией и быстро ее усваивать;
- знание компьютера, программ MS Office;
- коммуникативные навыки;
- умение использовать правовые базы, представленные в электронном виде;
- многовекторность (умение работать в разных направлениях);
- навыки работы с клиентами и сотрудниками органов контроля;
- способность работать с документами;
- умение организовывать работу и планировать выполнение задач.
В каждой специальности должны быть свои навыки, но вы можете выбрать что-то подходящее для вашей будущей работы из всех представленных перечней.
Дополнительным подспорьем в поиске правильных и уместных характеристик может стать такое размышление: представьте себя руководителем, которому требуются сотрудник на заинтересовавшую Вас должность. Что бы Вы ожидали от кандидата на работу?
«Искусство программирования»
Дональд Кнут
У третьего (актуального) издания на английском языке семь томов. На русский переведено четыре из них: две части первого тома, второй и третий, а также том 4А.
Перевод с английского — И. В. Красиков, С. Г. Тригуб, Ю. Г. Гордиенко
Издательство «Вильямс», 2020 год, 720 + 160 + 832 + 960 с.
Оригинальное название: The Art of Computer Programming by Donald Knuth
Зачем читать: чтобы прокачаться в вычислительной математике и анализе алгоритмов.
Сложность:
Самый классический и самый фундаментальный труд в нашей подборке: многотомник от всемирно признанного гуру в области программирования, автора 19 монографий и более сотни статей.
Труд настолько фундаментален, что в первой книге больше математики, чем программирования: математическая индукция, степени и логарифмы, матрицы и определители — вот это всё. Попадаются задания вроде «докажите утверждение» или «найдите простую замену для сложной формулы» — Кнут считает, что, прежде чем пользоваться готовыми чужими решениями, нужно разобраться в азах.
Далее в этом и последующих томах автор учит анализировать и оценивать алгоритмы, даёт «золотые решения» классических задач (сортировка, поиск, обход деревьев) — и сравнивает, чем хорошо и плохо каждое. Всё это помогает выбирать оптимальные вычислительные стратегии в реальных проектах.
Заметки на полях: читать непросто, но нужно. Тем более что про классику алгоритмизации и вычислительную сложность до сих спрашивают на серьёзных собеседованиях. А первый том «Искусства» даже завершается цитатой Билла Гейтса:
«Если вы смогли дочитать это до конца, то определённо должны отправить мне своё резюме».
Ч. Фаулер “Программист-фанатик”
- Электронный вариант на litres.ru
- Печатный вариант на labirint.ru
- Печатный вариант на ozon.ru
Я советую познакомиться с этой литературной работой тем читателям, которые желают узнать об IT-технологиях, алгоритмах и языках программирования. Книга предназначена для начинающих программистов, которые только-только постигают основы кодирования и разработки.
Автор – практик с многолетним стажем. Он дает полезные рекомендации, которые помогут продвинуться по карьерной лестнице в области разработки ПО. Согласно отзывам читателей, даже специалисты с опытом работы в IT-сфере более 10 лет находят в книге ценную для себя информацию.
В этом руководстве поднимаются такие вопросы: аспекты профессии, выбор языка программирования, отсутствие мотивации у IT-сотрудников, психология кодинга, отношения руководителей и подчиненных и т. д.
Карьера программиста: джун, мидл, сеньор
Карьера программиста имеет три ступени: Junior («джун»), Middle («мидл»), Senior («сеньор»).
Джун, джуниор (Junior), начинающий программист
Джун – это не нулевой уровень программиста, а уровень начинающего программиста после обучения и некоторой практики. На работе джуны выполняют порученные мелкие части проекта, а не проект целиком, не обязательно представляя себе масштабы проекта. Для того чтобы вас взяли джуном, можно выучиться самостоятельно по книгам или закончить хорошие курсы программистов, где вас научат:
- прикладной теоретической базе;
- основам одного из языков программирования;
- работе с XML, JSON;
- основам одного из фреймворков;
- основам среды разработки (программ для написания кода);
- алгоритмам;
- работать с консолью (терминалом);
- основам баз данных;
- некоторым методологиям разработки и взаимодействию с другими участниками проекта;
- основам контроля версий кода.
Примеры задачи для джуна: транслитерировать входящую строку, написать подпрограмму для проверки значений.
Чтобы чувствовать себя увереннее на собеседовании, нужно приобрести кое-какой опыт работы. Прекрасным примером такой работы может быть собственный pet-проект (например, свой сайт или самописная консольная утилита). К собеседованию нужно готовиться тщательно, потому что много и глубоко спрашивают, в том числе могут дать логическую задачу. Старайтесь не быть поверхностным. Это нормально, если пройдёте много собеседований прежде, чем вас возьмут на работу джуном. Начинающих очень много.
Мидл (Middle), программист среднего уровня
Мидл – это вполне самостоятельный программист, который может справиться с любой задачей. Мидл имеет довольно глубокие знания:
- в языке программирования – его особенностях, недостатках, предельных возможностях;
- одном или нескольких фреймворках;
- всех основных методологиях разработки (SOLID, DRY, KISS, YAGNI, DIE, DDD, TD).
Мидл должен понимать цели и задачи продукта, который он разрабатывает, а также хорошо понимать предметную область, в которой он работает, например, финансовую. Перед ним могут поставить такую, например, задачу: разработать приём платежей в программе. Мидл должен самостоятельно выбрать инструментарий, выстроить архитектуру, прописать план и точные сроки выполнения. Таким образом, в его задачи входит и административная работа.
Сеньор (Senior)
Сеньор – это программист высшей квалификации. Он умеет разработать архитектуру новой программы или сайта. Для того чтобы эта программа была создана, требуются и другие люди. Сеньор умеет ставить перед ними задачи и контролировать их выполнение. Таким образом, сеньор должен обладать навыками руководителя: видеть цель, объяснить её подчинённым, вдохновить их, обучить и проконтролировать, провести работу над ошибками.
Сеньор глубочайшим образом понимает структуру проекта, фреймворков и инструментов разработки. Он заранее предвидит, как в будущем будет меняться проект и как его оптимально поддерживать.
Сеньор может стать руководителем группы программистов (тимлидом), менеджером IT-проекта, IT-директором предприятия и т. п.
«Инфраструктура программных проектов. Соглашения, идиомы и шаблоны для многократно используемых библиотек .NET», Кржиштоф Цвалина, Брэд Абрамс
Издание содержит лучшие приёмы разработки библиотек для платформы Microsoft .NET Framework. Книга должна упростить работу любого .NET-специалиста, который пишет код для других разработчиков.
Некоторые ссылки на книги для программистов из списков выше и не только:
Чистый код. Создание, анализ и рефакторинг, Роберт К. Мартин
Кажется, это тот случай, когда даже не совсем правильный перевод названия книги (в оригинале «Clean Code: A Handbook of Agile Software Craftsmanship»), вполне чётко отражает её содержимое. Роберт Мартин в своём творении, опираясь на личный опыт и, что даже важнее, конкретные примеры из своей практики, рассказывает о том, как нужно кодить. Принципиальное отличие от книги Макконелла заключается в том, что здесь очень мало статистических обоснований правильности тех или иных действий, только код (занимающий почти треть книги) и рекомендации автора.
Программист-прагматик. Путь от подмастерья к мастеру, Эндрю Хант, Дэвид Томас
Ещё один представитель программистской литературы, где на трёхстах страницах методично описываются основные принципы создания качественного кода и условия, при которых вы будете получать удовольствие от работы, а клиент от результатов. Написана книга приятным языком, поэтому много времени на её освоение не уйдёт.
Путь программиста, Джон Сонмез
Практически каждого программиста привела в профессию любовь к созиданию, удовольствие от созерцания, как символы превращаются программы. Однако есть в этой работе и обратная сторона: высокая конкуренция, сложные отношения с клиентами, коллегами, руководством, финансовая нестабильность. Именно о тёмной стороне работы программиста и о том, как существовать в ладах со всеми этими заботами, рассказывает в своей книге Джон Сонмез.
Release it! Проектирование и дизайн ПО для тех, кому не все равно, Майкл Нейгард
От серьёзных и фундаментальных принципов построения кода перейдём непосредственно к практической части создания ПО, а именно юзабилити, производительности, масштабированию, администрированию и далее по списку. Здесь вас ждут реальные примеры из жизни автора, несколько типовых кодов на Java (при этом сам язык никакой роли не играет) и профессиональные советы, как общего плана, так и вполне конкретные по созданию кода.
У представителей традиционных профессий растёт спрос на обучение цифровым навыкам
Кроме потребности рынка в IT-специалистах и иных профессионалах, которые непосредственно участвуют в создании цифровых продуктов, у представителей «обычных» нецифровых специальностей растёт и будет расти ещё больше потребность в диджитал-навыках. Потому что программирование алгоритмов, дата-аналитика и в какой-то мере работа с нейросетями коснётся практически всех отраслей. А значит, для своих рабочих задач многим придётся взаимодействовать с системами программного обеспечения и настраивать их под себя за счёт Low-code/No-Code систем.
Проще говоря, традиционные профессии постепенно цифровизируются, трансформируются, а значит, их представителям надо получать новые навыки. «И это будет касаться практически любого: и учителя, и медика, и пожарного, и полицейского, и кто угодно. Они все, так или иначе, сегодня начинают использовать эти системы», — говорит Сергей Марданов.
Спикер напомнил, что всего пять лет назад школьные учителя не знали ни чат-ботов, ни голосовых помощников, ни программных продуктов для геймификации урока. В лучшем случае кто-то показывал на уроках презентации в PowerPoint, да и то с помощью CD-дисков — вот и вся «цифровизация». А сколько цифровых инструментов появилось и вошло в практику за эти годы? Некоторые учителя сейчас уже и сами создают чат-ботов и пишут простые программы. И всё это будет только нарастать, уверен эксперт. Значит, в следующие пять лет мы увидим ещё больший рывок.
Цифровые навыки станут таким же обыденным явлением, в какое постепенно превратилось печатание текстов — ведь ещё относительно недавно существовала отдельная профессия машинисток, а всего десять лет назад считалось нормальным указывать в резюме, что ты опытный пользователь MS Word, но теперь и профессии такой нет, и даже сам навык стал настолько само собой разумеющимся, что в резюме его не пишут.
«Честно говоря, для меня разделения на цифровые и нецифровые профессии не существует. Цифровая трансформация происходит во всех привычных сферах, — согласился с коллегами Алексей Дворецкий. — Это касается образования, медицины, ретейла, банковской сферы, строительства, логистики, сельского хозяйства. Те профессии, которые ранее казались нам абсолютно неоцифрованными, начинают активно в свою деятельность внедрять те или иные инструменты, цифровые технологии».
Всё это влечёт интерес представителей нецифровых профессий к обучению цифровым навыкам — это тоже особый сегмент образовательной аудитории.
Дворецкий рассказал, что в первый набор онлайн-магистратуры университета МИСиС и SkillFactory «Науки о данных» пришли, помимо опытных программистов и бизнес-аналитиков, также люди из совершенно других профессий. В числе студентов оказались, например, врачи, менеджеры по продажам, логисты, специалисты по добыче полезных ископаемых. Не все они собирались менять профессию — кто-то хотел понять, каким образом мог бы применять инструменты анализа данных в своей области.
На другую программу — «Мастер автоматизации и цифровой трансформации» — многие тоже пришли не ради новой профессии, а ради успеха в том, чем они занимаются сейчас. В основном это были люди с хорошим управленческим опытом, от линейных руководителей до топ-менеджеров или основателей бизнеса. Они хотели разобраться, каким образом цифровые технологии помогут им улучшить показатели компании.
Алексей СтепановКадр: Skillbox
Алексей Степанов, в свою очередь, подтвердил этот тренд статистикой двухлетнего опыта участия Университета 2035 в проекте «Цифровые профессии». По его словам, 39% тех, кто приходит учиться в этот проект, не планируют менять профессию, а получают дополнительное образование, чтобы укрепить свои позиции в своей же сфере, которая далеко не всегда имеет отношение к диджиталу. Это оказался самый большой сегмент аудитории. А вот сменить в результате обучения сферу деятельности желают порядка 30%. Остальные идут в основном для личностного развития и последующего принятия решения — менять им сферу или не стоит.
4 место
«Рефакторинг. Улучшение существующего кода», Мартин Фаулер
Подход к улучшению структурной целостности и производительности существующих программ, называемый рефакторингом, получил развитие благодаря усилиям экспертов в области ООП, написавших эту книгу. Каждый шаг рефакторинга прост. Это может быть перемещение поля из одного класса в другой, вынесение фрагмента кода из метода и превращение его в самостоятельный метод или даже перемещение кода по иерархии классов. Каждый отдельный шаг может показаться элементарным, но совокупный эффект таких малых изменений в состоянии радикально улучшить проект или даже предотвратить распад плохо спроектированной программы.
Мартин Фаулер с соавторами пролили свет на процесс рефакторинга, описав принципы и лучшие приемы его осуществления, а также указав, где и когда следует начинать углубленное изучение кода с целью его улучшения. Основу книги составляет подробный перечень более 70 методов рефакторинга, для каждого из которых описываются мотивация и техника испытанного на практике преобразования кода с примерами на Java. Рассмотренные в книге методы позволяют поэтапно модифицировать код, внося каждый раз небольшие изменения, благодаря чему снижается риск, связанный с развитием проекта.