company_banner

Как учиться Java-разработке? Опыт студента GeekUniversity Никиты Чернецова


    Высшее образование я получал в МГТУ, изучал ядерные реакторы и энергетические установки. Однако несмотря на позитивное впечатление от учёбы и в целом неплохие перспективы, после вуза я решил стать разработчиком. И получилось! Вот уже три года я работаю в 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 книг:



    Из новинок могу посоветовать:



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

    Mail.ru Group
    469,00
    Строим Интернет
    Поделиться публикацией

    Комментарии 18

      +2
      Java всегда был одним из передовых языков, поэтому особых колебаний с выбором не было.

      Ну не совсем так,
      но то что работу найти очень легко и порог входа очень низок — это правда.
        +2
        «порог входа очень низок» — вероятно шутка? Чтобы объяснить все слова которые есть в коде:
        package test;
        
        public class Hello {
            
            public static void main(String[] arg) {
                System.out.println("Hello, Java!");
            }
            
        }
        


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

          Это как интеграл, все легко — сумма точек на отрезке. Главное обладать абстрактным мышление.

            0
            Да вы с ума сошли, какие еще пару лекций…

            1 Понял что тут делается (презентация работы)?
            2 Повторить сможешь?
              –1
              Если «программировать» — это копипастить незнакомые слова, то да, «пара лекций» не нужна. А если «программировать» — это понимать что и зачем делаешь, то как минимум пара лекции.
                0
                фу таким быть

                Я вам своего ребенка на ваши лекции по программированию не отдам
              0
              Низок — это же не нулевой) В сравнении с C++ он действительно низок.

              Чтобы объяснить все слова которые есть в коде:[Hello World] Нужно несколько лекций.

              Не все слова играют значимую роль в конкретной программе.
                0
                «Не все слова играют значимую роль в конкретной программе» — может и не все, но по каждому слову и некоторым символам нужны объяснения. В общей сложности набежит на пару лекций (если не вдаваться в детали).
                  0
                  Объяснения нужны тому, что имеет значение. Если возводить в абсолют полноту изложения, то и нескольких лекций не хватит.
                0

                Все легко. Так как Java ООП язык и в нем нет функций в чистом виде, то был придуман костыль в виде статических методов, которым не нужен экземпляр класса для исполнения. Это раз (static).


                Ну public тупо во многих языка, так что тут плакаться глупо.


                Аналогично и void.


                Вообще, батенька, вам бы С++ глянуть, чтобы у вас глаза закравоточили ;)


                Тут все просто и понятно.

                  0
                  Спасибо что пояснили тот код который я привел. Я много лет профессионально занимался обучением программированию, в том числе на Java. Проблему знаю изнутри. Объяснение в стиле: «все легко», «костыль», «тупо», «глупо», «аналогично», «вообще», «тут все просто и понятно» — возможно и позволяет создать у обучаемого кратковременное ощущение что все просто и он уже все знает, но любая попытка самостоятельной работы вгонит его в ступор (достаточно «main» в другом регистре написать)
                0
                но то что работу найти очень легко и порог входа очень низок — это правда.


                Низок по сравнению с чем?
                0
                Джошуа Блох «Java. Эффективное программирование» — напоминает Роберта Мартина, но рефакторинг разбирается именно на Java.


                В продаже уже 3-е издание: www.combook.ru/product/11893493
                  0
                  Мое глубокое убеждение, основанное на собственном опыте: если хочешь чему-нибудь научиться — надо поставить задачу. И решать ее.
                  Будь это автокад, архикад, солид, Ардуино, HTML (личный опыт).
                  Ставьте себе задачу — нарисовать игру с прибамбасом или переписать почтового клиента или еще что и решайте ее.
                    0
                    При таком подходе оптимальные, но зачастую не очевидные решения, в таком образовательном процессе скорей всего будут упускаться
                      0
                      При таком подходе оптимальные, но зачастую не очевидные решения, в таком образовательном процессе скорей всего будут упускаться/

                      Азы — обязательны.
                      А то о чем вы говорите — это вопрос кто учитель и откуда берется информация.
                      Если из надписей на заборе — одно, если грамотный консультант (заметьте в моем примере — не преподаватель, а консультант) то вполне себе работоспособный способ получения спеца.
                    0
                    Почему автора зовут Мария, а он пишет о себе в мужском роде?)
                      0
                      В названии статьи написано почему: «Как учиться Java-разработке? Опыт студента GeekUniversity Никиты Чернецова»

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое