Новости

Як вчитися Java-розробці? Досвід студента GeekUniversity Микити Чернецова

  1. Онлайн-курси
  2. Практика
  3. Чужий код на GitHub
  4. паперові книги

Вища освіта я отримував в МГТУ, вивчав ядерні реактори і енергетичні установки

Вища освіта я отримував в МГТУ, вивчав ядерні реактори і енергетичні установки. Однак незважаючи на позитивне враження від навчання і в цілому непогані перспективи, після вузу я вирішив стати розробником. І вийшло! Ось уже три роки я працюю в Java-розробником, ні на секунду не перериваючи своє навчання професії. Я розповім про те, які методи навчання виявилися для мене найефективнішими. Не факт, що вони зайдуть всім і кожному. Сподіваюся, хтось почерпнете для себе що-небудь корисне.


Онлайн-курси


Але повернемося до початку. В ВУЗі я не вивчав програмування, мій факультет називався «Ядерні реактори і енергетичні установки». Однак саме там я заклав найважливіший базис для моєї нинішньої професії: після «Бауманки» засвоїти будь-які матеріали, незалежно від формату, неймовірно легко. Тому я не дотримуюся думки, що вищу освіту знецінюється. Людина з якісним вищою освітою, нехай навіть з іншої сфери, завжди трохи краще мислить і трохи швидше схоплює.


Енергетика мене не зачепила, бо десь в середині навчання я зрозумів - моє майбутнє в IT. Java завжди був одним з передових мов, тому особливих коливань з вибором не було. Як не було їх з форматом - коли є онлайн-курси, навіщо ускладнювати собі життя? Я швидко записався на кілька IT-курсів, осягав нову професію з неймовірним завзяттям, але головне - із задоволенням. Бувало, що єдиний з групи виконував складні домашні завдання.


Курсів я переглянув багато, ось ті, що сподобалися мені найбільше:


  • Java Rush - зручно і наочно.
  • Stepik - річна програма з курсами по Java, Python, Haskell, С ++, функціональному програмуванню, матаналізу, матстатистику.
  • Otus - курс по Java, Spring і Machine Learning просунутого рівня.
  • факультет Java-розробки в GeekUniversity (GeekBrains) - тут я зараз закінчую останню чверть.

Пройти відразу кілька курсів Java цілком має сенс, тому що програми відрізняються і за часом, і за наповненням. Короткі практичні курси гарні тим, що ти відразу починаєш робити те, що потрібно в реальній роботі. Більш розгорнуті програми, як в GeekUniversity, дають додаткові знання по базах даних, алгоритмам, фреймворк. Не обов'язково все вивчати одночасно, на це просто може не вистачити часу і сил, але я рекомендую хоча б поступово спробувати все, що в топі. І ніколи не зупинятися.


Практика


Структура всіх книг з програмування, у всякому разі, хороших, одна - пояснення теми, потім вправи. Останні треба не просто читати, а обов'язково робити руками, без копипаста. Ще крутіше - якщо ви працюєте програмістом і поєднуєте це навчанням. Це допомагає швидше рости і задавати собі правильні питання. Мені допомогло те, що я досить швидко після початку навчання приступив до роботи в різних проектах.


У компанії «глоса» я робив систему транспортного моніторингу. Там були намішано різні мови, на самому верхньому рівні прийому даних працював Erlang, далі системна шина на Kafka, і вже за нею - суцільна Java. Особисто я писав потокові обробники. У стартапі iVoice займався розробкою автоматизованого колл-центру, активно використовував Kafka. Нещодавно став розробником в Luxoft, там багато нового для мене - ми робимо інформаційно-довідкову систему для групи банків ВТБ, я в проекті займаюся розробкою мікросервісной архітектури на модулі Spring Cloud.


Проектуючи роботу на навчання краще розумієш, які курси зараз бажано вибрати, в якому місці стоїть трохи краще розпитати викладача, благо в «довгих» курсах така можливість є.


Чужий код на GitHub


Останнім часом я став дивитися багато чужого коду на GitHub, вивчаю бібліотеки і фреймворки, розбираю, як круті розробники вирішують свої завдання, беру на озброєння їхні методи.


Відбувається це приблизно так. Коли бачу якийсь складний момент, беру листочок, ручку і малюю схему класів, змінних і зв'язків. Без папірця на GitHub це дивитися не дуже зручно, так як для кожного класу потрібно відкривати свою вкладку. Для спрощення, підключаю IDE і дивлюся в дебаге виконання коду по кроках.


Зрозуміло, більша частина «підглядати» коду написана західними розробниками, просто в силу популярності GitHub. Вони все люди відкриті, тому якщо не виходить десь розібратися самостійно, можна їм написати і запитати про якісь моменти, з задоволенням дадуть відповідь.


Коли я працював в «глоса», то використовував бібліотеку GraphHopper. Я часто заходив на форум, де в окремій гілці засновник продукту відповідав на питання інших програмістів.


Коли вдається попрацювати з крутими розробниками, теж звертаю увагу, як пишуть вони. Іноді на курсах помічаю, що у викладача стильний красивий код. У підсумку обов'язково все «препарую», уважно вивчаю, подчёрпиваю для себе нове.


паперові книги


Формат матеріалів повинен бути максимально різноманітний, тому від паперових книг відмовлятися ні в якому разі не слід. У мене, наприклад, велика окрема полиця з виданнями з програмування. І я завжди беру щось з собою, щоб читати в електричці або метро. Для такого читання не потрібно виділяти багато часу, головне, робити це регулярно.


Якщо ви початківець Java-розробник, ось мій особистий топ must-read книг:


  • Харольд Абельсон, Джеральд Джей Сассман «Структура та інтерпретація комп'ютерних програм» - відмінний підручник для тих, хто починає програмувати. Всі приклади наведені на функціональній мові Scheme, що особливо круто, так як ти концентруєшся нема на конкретній реалізації, а на ідеї. У майбутньому, з вирішенням складних завдань, це дуже корисно.
  • Стів Макконнелл «Досконалий код», Роберт Мартін «Чистий код. Створення, аналіз і рефакторинг » - класика програмування. Мабуть, будь-яка людина, яка хоче затриматися в професії, повинен її прочитати. Тут більше філософії, ніж коду, але цінність від цього не знижується.
  • Брюс Еккель «Філософія Java» - улюблена книга всіх джавістов. Мова, організація, переваги - в загальному, все те, що треба знати, поки не дійшла справа до підбору конкретних прикладних інструментів.
  • Роберт Лафоре «Структури даних і алгоритми Java» - назва повністю відображає суть. Моя порада: алгоритмам приділити особливу увагу. Повірте, стане в нагоді і допоможе неодноразово.
  • Джошуа Блох «Java. Ефективне програмування » - нагадує Роберта Мартіна, але рефакторинг розбирається саме на Java.

З новинок можу порадити:



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

Як не було їх з форматом - коли є онлайн-курси, навіщо ускладнювати собі життя?

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: