Первая чашка крепкого Java. Какая она на вкус? У каждого она своя, кому-то она может показаться горькой, приторной, я расскажу в этом "руководстве" (сильное слово, для коротенькой статьи) какой была моя первая чашка, и что бы я изменил, выпивая эту чашку снова…
image


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


От того как ты стартанешь будет зависеть твоя мотивация, если ты сможешь практически сразу увидеть и оценить свой прогресс — мотивация будет расти. Человеческому мозгу нужен результат, ты сразу захочешь увидеть свой успех, понять, что ты сделал. Поэтому я рекомендую НИ в коем случае не начинать писать программы в блокноте, прутиком на песке, читать огромные и толстые книги с отрывом от практики, с моей точки зрения от этого занятия не будет много прока. Язык — это инструмент — инструмент, который необходимо применять на практике изо дня в день, чтобы оттачивать мастерство владения им. Без практики теоретические знания полезны, но бессмысленны. Ознакомившись с одним или другим аспектом языка, фреймворка, среды разработки, обязательно примените полученные знания на практике, это позволит мозгу качественно усваивать информацию. Любой человек по своей природе ленив, лень — это защитный механизм мозга, для того чтобы не тратить силы на бесполезные дела. Всегда "обманывайте" мозг, ищите реальное применение своим знаниям, занимайтесь соим тестовым проектом (халтура или хобби) на котором можно всласть понабивать шишки и закрепить различные подходы и тем самым натренировать свой мозг.


а) Качай IntelliJ IDEA для работы. Есть специальная Community версия, которая абсолютно бесплатна и прекрасно подойдет для быстрого старта. Для скачивания и установки есть специальная платформа-независимая программа.




б) Ты скачал, открыл и застыл в изумлении… что дальше? Из шагов могу выделить следующие: общий синтаксис языка: что такое класс, переменная и т.д., структуры данных — тут я могу сразу тебе рекомендовать не читать старые книжки, чтобы не погружаться в дебри былого, читай актуальную информацию про Java 8, где введены лямбда-выражения, улучшены коллекции и появились стримы, для легкой манипуляции над объектами, также можно почитать "Java 8 & 9 in Action".


в) Если ты еще не написал ни строчки кода на java, то может быть стоит пройти несколько уроков на javarush.ru. У ребят есть также плагин для IntelliJ IDEA, который облегчит процесс изучения языка.




г) Старайся день ото дня читать всевозможные паблики и блоги, которые будут двигать тебя вперёд, например про IDEA или блог компании Zeroturnaround. У них есть отличные шпаргалки, для того чтобы не забыть аспекты языка и инструменты связанные с ним.


д) Здесь стоит отметить тот факт, что если ты всерьез решил заниматься программированием, необходимо уделять время английскому языку. Знание английского позволит получать самую актуальную информацию, двигаться по карьерной лестнице, даст отличный шанс поработать за границей и, возможно, спасёт тебя от Альцгеймера.


Учить язык стоит на курсах, можно, читая книги, каждый день понемногу, из личного опыта могу порекомендовать серии книг Oxford Bookworms Library или Macmillan.

е) Полезно также скачать специальный плагин для ознакомления с горячими клавишами в IntelliJ IDEA, IDE Features Trainer и почитать про него.




ё) Из фреймворков без которых сейчас вообще никуда — я могу отметить Spring. Также на спринге есть много гайдов, которые довольно актуальны,
и там есть программный код, чтобы сразу скачать и запустить программу. Для начала лучше сразу запустить несколько примеров.




ж) Заведи себе аккаунт на GitHub, если ты этого еще не сделал. Создавай там свои тестовые проекты, форкай уже существующие, изучай что делают другие люди.

Немного про четыре столпа, которые необходимы всегда: это собственно IDE для разработки (априори это всегда IntelliJ IDEA), есть еще конечно eclipse или netbeans =) Я не хочу устраивать здесь холивар на тему какая IDE лучше, для этого уже существуют отдельные топики на habrahabr, я очень комфортно чувствую себя используя для работы IntelliJ IDEA.


Второй столп — это система контроля версий. Любой проект имеет смысл хранить в системе контроля версий. Есть еще много других, например svn, но git — дефолтный.


Третий столп — это система сборки проекта. На сегодняшний день это либо Maven [шпаргалка], либо Gradle, ну и конечно же сама java — так называемая JDК, которая ставится отдельно на машину для компиляции и запуска java-программ — качай последнюю версию.


Быстрый старт для ленивых:


1) Качаем JDK для запуска java-программ (в IDEA есть предустановленная по умолчанию)
2) Качаем тулу для установки IDEA
3) Качаем через тулу Идею
4) Устанавливаем git для работы с репозиторием
5) Устанавливаем Maven для сборки проектов
6) Ты готов начать писать шедевры!


И только после этих 6 шагов можно начинать читать про java, если по каким-то причинам шаги, описанные выше, ты выполнить не смог, хмм… может и не стоит тогда заниматься программированием. Ну а если ты уже продвинутый проггер, советую почитать статью про HotSwap. Спасибо за ваши комментарии.

Поделиться с друзьями
-->

Комментарии (38)


  1. lukdiman
    30.06.2017 07:51
    +4

    Коллекции появились только в Java 8 оказывается. А чем я пользовался до этого? :)


    1. hibissscus
      30.06.2017 09:40

      Спасибо вам за сарказм, поправил. Это абзац не призывает к холивару, это просто совет читать свежую информацию по Java.


    1. newpy
      30.06.2017 09:51

      Справедливости ради автор статьи не говорил что коллекции появились в Java 8. Это вы невнимательно читаете.

      улучшены коллекции


      1. lukdiman
        30.06.2017 11:53
        +6

        Я читаю как раз внимательно. Если Вы прочитаете комментарий выше от автора, то увидите, что он поменял текст статьи.


        1. newpy
          30.06.2017 15:23

          Извините, в момент когда я писал, автор уже поправил статью, а его комментария выше еще не было. Правда. Поэтому прошу прощения.


          1. asm0dey
            30.06.2017 22:39
            +1

            Вот она, одна из самых сложных проблем в Java — многопоточность. У вас вот race condition случился…


            1. newpy
              01.07.2017 00:03
              +1

              Читаете мои мысли, думал именно про гонку в тот момент :). Лично я во избежание этой сложной проблемы в Java — выбрал Clojure. Счастлив как никогда.


  1. Akdmeh
    30.06.2017 08:55
    -3

    Расскажите, что такого есть для новичка в продуктах JetBrains (которые немало стоят, вы ведь не поощряете пиратство?), чего нет в NetBeans? Я бы вообще советовал для начала попользоваться Notepad++ и консольными командами, чтобы лучше понимать, что происходит в IDE под капотом. А уже когда будет идти речь об огромном проекте и денежной прибыли — думать о IDE


    1. AlexPadalka
      30.06.2017 09:34
      +3

      Есть еще бесплатная Community Edition


      1. Akdmeh
        30.06.2017 09:40
        -1

        Да, я понимаю, но у нее есть ограничения по применению (только студентам или для Open Source), если я не ошибаюсь.
        Разговор только о том, что начинать изучение языка с довольно полновесной IDE — излишне.


        1. poxvuibr
          30.06.2017 09:47
          +6

          Да, я понимаю, но у нее есть ограничения по применению (только студентам или для Open Source)

          Нет, на Community Edition таких ограничений нет. Бери программируй, открывай стартап, зарабатывай миллионы, единственное что сделает Jet Brains, так это будет ставить тебя всем в пример.


          Разговор только о том, что начинать изучение языка с довольно полновесной IDE — излишне.

          Только так и можно начинать. Непосредсвенно с того, чтобы писать код, а не с того, чтобы ковыряться в консоли.


          1. nonnenmacher
            30.06.2017 12:15

            Насколько помню, с Community Edition нельзя в Java EE


            1. senia
              30.06.2017 12:48
              +1

              Можно. Просто поддержки Java EE там нет, так что всё сам.
              Еще там нет поддержки баз данных. И вообще много чего. Но работать вполне можно.


        1. AstarothAst
          30.06.2017 10:14
          +2

          Начинать с консоли и блокнота — лучший способ угробить весь интерес еще на старте.


          1. Free_ze
            30.06.2017 15:26

            Набрасывать контролы на формы — лучший способ понять через пару месяцев насколько это не твое, борясь с тем, что туториалы заточены под конкретные IDE. Если еще раньше не наскучит вездесущий ClassNotFoundException, конечно.


          1. Maccimo
            30.06.2017 16:52

            Ерунда.
            Если консоль и редактор могут угоробить интерес, то этого интереса на самом деле и не было.
            Лично начинал с Far Manager, Colorer и javac, с интересом всё замечательно.
            А вот перспектива разбираться с GUI, придуманным сумрачным гением, действительно демотивирует.


            1. poxvuibr
              30.06.2017 17:03

              Если консоль и редактор могут угоробить интерес, то этого интереса на самом деле и не было.

              Интереса к редактору и консоли, то есть :).


              Лично начинал с Far Manager, Colorer и javac, с интересом всё замечательно.

              Я с вима и линуксовой консоли, но я смотрю на окружающих и понимаю, что, если интереса к консоли нет, то это лучший способ убить любовь. Кроме того, IDE всё равно нужен, так зачем откладывать?


    1. Inine
      30.06.2017 11:26
      +2

      Частично соглашусь. На хабре есть отличная статья про то, как писать на Java в блокноте. ИМХО, каждому новичку надо обязательно прочитать эту статью и сделать все примеры. Но потом надо сразу поставить IDE и не выделываться.
      Что касается других инструментов, о которых говорит автор, то git чем раньше освоишь, тем лучше, т.к. он простой и полезный. А вот зачем новичку maven… ну разве что зависимости выкачивать, да и то перебор.


      1. poxvuibr
        30.06.2017 11:57

        ИМХО, каждому новичку надо обязательно прочитать эту статью и сделать все примеры.

        Только после того, как он полгода в IDE проведёт.


        1. Inine
          30.06.2017 12:01
          +1

          Может и так. Например, в этой статье есть такие понятия как дебаг и тесты, а они легче воспринимаются, если впервые сталкиваешься с ними в IDE.


      1. grossws
        30.06.2017 15:57

        Maven таки полезен, хотя новичку, скорее, будет проще с gradle. И пользоваться нормальной системой сборки со старта куда лучше, чем размножать непереносимые ide-зависимые проекты, плодить Ant'овские build.xml или того хуже криво написанные Makefile.


        1. poxvuibr
          30.06.2017 16:04

          Тысячу раз да! Я тем, кто раньше джаву не видел, сначала рассказываю про Идею, а потом про мавен. Наличие системы сборки сразу решает кучу проблем.


          1. Inine
            30.06.2017 16:20

            Статья то явно не мигрантов с других языков/платформ рассчитана, а на новичков. Допустим, человек писал код на уровне лаб в вузе, и решил таки изучить что-то серьезное: взялся за java. Для начала изучает core, жует Эккеля какого-нибудь. Какие проблемы ему поможет решить система сборки на данном этапе?


            1. poxvuibr
              30.06.2017 17:00

              Для начала изучает core, жует Эккеля какого-нибудь. Какие проблемы ему поможет решить система сборки на данном этапе?

              Я считаю, то лучше организовывать обучение по другому. В первую очередь определить область, в которой хочешь работать. Допустим, веб-разработка.


              Тогда нужен spring boot, pom.xml для которого делается на start.spring.io. Но чтобы воспользоваться этим файлом неплохо бы вкратце знать что такое мавен. Не сильно много. Так, чуть-чуть.


              Надо показать человеку, как вывести текст в браузере и потом грузить его упражнениями. Core пусть изучает на них, Эккеля пусть читает, после упражнений будет понятно что Эккель вообще хочет сказать.


  1. Eldhenn
    30.06.2017 10:13
    +4

    Почему вы тыкаете читателю?


  1. hibissscus
    30.06.2017 10:30
    -3

    Это сделано для того, чтобы убрать лишние рамки и сосредоточиться на изложении


    1. hibissscus
      30.06.2017 21:45

      Прошу прощения, если кого-то этим обидел.


  1. nonnenmacher
    30.06.2017 10:58
    +1

    Старт по спринга и т.д. — ИМХО путь в программисты-фреймворкщики. Сегодня спринг, а завтра что-то ещё. Чтение «толстой скучной книги», как раз, позволяет более глубоко вникнуть в основы. А иначе будете потом хапать проблемы в неожиданных местах.
    На спрингбуте можно за полчаса CRUD-сервис наваять, а толку-то.


    1. poxvuibr
      30.06.2017 11:04

      На спрингбуте можно за полчаса CRUD-сервис наваять, а толку-то.

      Устроиться на работу, получать за неё деньги, иметь возможность расти дальше, тесно общаться с другими программистами?


      Да не, фигня какая-то :)


      1. nonnenmacher
        30.06.2017 11:14

        В том-то и дело, что на работу с этими знаниями будет не устроиться.


        1. poxvuibr
          30.06.2017 11:44
          +3

          Нет, работу человеку, который может собрать CRUD на спринге найти можно. Низкооплачиваемую, но тем не менее. Путь в тысячу ли начинается с первого шага.


  1. b0tanic
    30.06.2017 12:43
    +1

    Я бы больше акцентировал внимание на курсах JavaRush, так как данная статья нацелена именно на новичка. Неплохо бы ещё добавить разновидности в некоторые пункты: а) IDE, ё) фреймворки для изучения.


  1. Maccimo
    30.06.2017 17:04

    Быстрый старт для ленивых:

    1) Качаем тулу для установки IDEA
    2) Качаем через тулу Идею

    И только после этих 6 шагов можно начинать читать про java

    А потом на StackOverflow пачками появляются вопросы а-ля «как мне сделать в эклипсе/идее ...».
    Смотришь, а там элементарнейшие вопросы по Java, ни к какой IDE вообще никак не привязанные.


  1. Pycz
    30.06.2017 19:07

    А что делать, если собираешься на Java заниматься Android-разработкой?


    1. hibissscus
      30.06.2017 19:11

      Для этой цели отлично подойдет Android Studio, которая базируется на сурскоде IntelliJ IDEA.


  1. Andronas
    30.06.2017 19:14
    -2

    Почему всюду манн и градле? Чем плох старый добрый ант?


    1. hibissscus
      30.06.2017 19:46
      +3

      Он ничем не плох, просто на большинстве работ придется столкнуться именно с Maven.


    1. poxvuibr
      30.06.2017 22:06
      +2

      Тем, что для разруливания зависимостей туда надо втыкать ivy.