- PVSM.RU - https://www.pvsm.ru -

Высшее образование я получал в МГТУ, изучал ядерные реакторы и энергетические установки. Однако несмотря на позитивное впечатление от учёбы и в целом неплохие перспективы, после вуза я решил стать разработчиком. И получилось! Вот уже три года я работаю в Java-разработчиком, ни на секунду не прерывая своё обучение профессии. Я расскажу о том, какие способы обучения оказались для меня самыми эффективными. Не факт, что они зайдут всем и каждому. Надеюсь, кто-то почерпнёт для себя что-нибудь полезное.
Но вернёмся к началу. В ВУЗе я не изучал программирование, мой факультет назывался «Ядерные реакторы и энергетические установки». Однако именно там я заложил важнейший базис для моей нынешней профессии: после «Бауманки» усвоить любые материалы, независимо от формата, невероятно легко. Поэтому я не придерживаюсь мнения, что высшее образование обесценивается. Человек с качественным высшим образованием, пусть даже из другой сферы, всегда чуть лучше мыслит и чуть быстрее схватывает.
Энергетика меня не зацепила, потому что где-то в середине обучения я понял — моё будущее в IT. Java всегда был одним из передовых языков, поэтому особых колебаний с выбором не было. Как не было их с форматом — когда есть онлайн-курсы, зачем усложнять себе жизнь? Я быстро записался на несколько IT-курсов, постигал новую профессию с невероятным упорством, но главное — с удовольствием. Бывало, что единственный из группы выполнял сложные домашние задания.
Курсов я просмотрел много, вот те, что понравились мне больше всего:
Пройти сразу несколько курсов Java вполне имеет смысл, так как программы отличаются и по времени, и по наполнению. Короткие практические курсы хороши тем, что ты сразу начинаешь делать то, что нужно в реальной работе. Более развернутые программы, как в GeekUniversity, дают дополнительные знания по базам данных, алгоритмам, фреймворкам. Не обязательно всё изучать одновременно, на это просто может не хватить времени и сил, но я рекомендую хотя бы постепенно попробовать всё, что в топе. И никогда не останавливаться.
Структура всех книг по программированию, во всяком случае, хороших, одна — объяснение темы, потом упражнения. Последние надо не просто читать, а обязательно делать руками, без копипаста. Ещё круче — если вы работаете программистом и совмещаете это обучением. Это помогает быстрее расти и задавать себе правильные вопросы. Мне помогло то, что я достаточно быстро после начала обучения приступил к работе в разных проектах.
В компании «Глосав» я делал систему транспортного мониторинга. Там были намешаны разные языки, на самом верхнем уровне приема данных работал Erlang, дальше системная шина на Kafka, и уже за ней — сплошная Java. Лично я писал потоковые обработчики. В стартапе iVoice занимался разработкой автоматизированного колл-центра, активно использовал Kafka. Недавно стал разработчиком в Luxoft, там много нового для меня — мы делаем информационно-справочную систему для группы банков ВТБ, я в проекте занимаюсь разработкой микросервисной архитектуры на модуле Spring Cloud.
Проецируя работу на учёбу лучше понимаешь, какие курсы сейчас желательно выбрать, в каком месте стоит получше расспросить преподавателя, благо в «длинных» курсах такая возможность имеется.
В последнее время я стал смотреть много чужого кода на GitHub, изучаю библиотеки и фреймворки, разбираю, как крутые разработчики решают свои задачи, беру на вооружение их методы.
Происходит это примерно так. Когда вижу какой-то сложный момент, беру листочек, ручку и рисую схему классов, переменных и связей. Без бумажки на GitHub это смотреть не очень удобно, так как для каждого класса нужно открывать свою вкладку. Для упрощения, подключаю IDE и смотрю в дебаге выполнение кода по шагам.
Разумеется, большая часть «подсматриваемого» кода написана западными разработчиками, просто в силу популярности GitHub. Они все люди открытые, поэтому если не получается где-то разобраться самостоятельно, можно им написать и спросить про какие-то моменты, с удовольствием ответят.
Когда я работал в «Глосав», то использовал библиотеку GraphHopper. Я часто заходил на форум, где в отдельной ветке основатель продукта отвечал на вопросы других программистов.
Когда удается поработать с крутыми разработчиками, тоже обращаю внимание, как пишут они. Иногда на курсах замечаю, что у преподавателя стильный красивый код. В итоге обязательно всё «препарирую», внимательно изучаю, подчёрпываю для себя новое.
Формат материалов должен быть максимально разнообразный, поэтому от бумажных книг отказываться ни в коем случае не следует. У меня, например, большая отдельная полка с изданиями по программированию. И я всегда беру что-то с собой, чтобы читать в электричке или метро. Для такого чтения не нужно выделять много времени, главное, делать это регулярно.
Если вы начинающий Java-разработчик, вот мой личный топ must-read книг:
Из новинок могу посоветовать:
Я не заставляю себя проходить все эти курсы или читать книги по программированию — мне просто интересна эта тема и я вижу, что новые знания помогают мне лучше выполнять текущую работу. При этом я прекрасно понимаю, что программирование — это ремесло, в котором нужно набить руку, сохранять минимализм в коде и не выливать туда всю теорию, которую ты изучил. Такая работа мне чем-то напоминает айкидо: много знаешь и понимаешь, но наносишь точечные эффективные удары наиболее подходящими средствами.
Автор: Мария
Источник [11]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/302834
Ссылки в тексте:
[1] Java-разработки: https://geekbrains.ru/geek_university/java/?utm_source=media%7Chabr.com&utm_medium=media&utm_campaign=data_19_12_18
[2] Харольд Абельсон, Джеральд Джей Сассман «Структура и интерпретация компьютерных программ»: https://www.ozon.ru/context/detail/id/5322055/
[3] Стив Макконнелл «Совершенный код», Роберт Мартин «Чистый код. Создание, анализ и рефакторинг»: https://www.labirint.ru/reviews/goods/232091/
[4] Брюс Эккель «Философия Java»: https://www.ozon.ru/context/detail/id/142431463/
[5] Роберт Лафоре «Структуры данных и алгоритмы Java»: https://www.ozon.ru/context/detail/id/23529814/
[6] Джошуа Блох «Java. Эффективное программирование»: https://www.ozon.ru/context/detail/id/21724143/
[7] Гвен Шапайра, Неха Наркхед, и Тодд Палино «Kafka: The Definitive Guide»: http://shop.oreilly.com/product/0636920044123.do
[8] сайт: https://www.safaribooksonline.com/
[9] Лааксонен Антти «Олимпиадное программирование»: https://www.labirint.ru/books/649871/
[10] мозга: http://www.braintools.ru
[11] Источник: https://habr.com/post/433204/?utm_source=habrahabr&utm_medium=rss&utm_campaign=433204
Нажмите здесь для печати.