Отправная точка для изучения Java — что вы должны знать и что я хотел бы знать

Опубликовано: 2020-04-14

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

Когда я поступил в колледж, первым изучаемым языком программирования был C, затем профессора читали нам курс по C++, а позже, при желании, можно было освоить Java, Python и другие языки.

Тем не менее, когда я разговариваю с разработчиками программного обеспечения начального уровня, я не рекомендую отказываться от обучения программированию на C. Вместо этого я обычно предлагаю изучать Java — я объясню почему чуть позже.

Хотя, на мой взгляд, в Java-сообществе полно обучающих материалов, начинающие разработчики часто спрашивают меня: «Итак, с чего мне начать?» или «Должен ли я читать теорию или сразу начинать писать код?».

Судя по всему, научиться программировать самостоятельно непросто. Как опытный разработчик, я решил помочь новичкам и провести их через ловушки кривой обучения Java. В этом посте вы узнаете, какие методы меняют правила игры в изучении Java, где многие Java-разработчики терпят неудачу, и как убедиться, что вы применяете концепции, которые вы осваиваете, на рабочем месте.

Но почему Ява?

Если первым вашим побуждением будет начать со мной дискуссию и объяснить, что Python проще или что C — более традиционный способ изучения разработки программного обеспечения, позвольте мне заверить вас, что я понимаю, откуда вы могли бы прийти.

Я объективно вижу Java такой, какая она есть, признаю ее недостатки (например, скорость и эффективность памяти) — тем не менее, я считаю, что нет лучшего языка для изучения в качестве разработчика начального уровня.

Вот почему я так люблю Java как отправную точку в программировании:

  • Концепции Java используются несколькими языками программирования. Объектно-ориентированное программирование, типизированные переменные или поток управления — все эти концепции вы сможете использовать позже при работе на C или C++. Если разработчик Python знает только, как кодировать на Python, у вас будет мост между Java и другими веб-языками и мобильными языками (Kotlin, например, во многом обязан своей функциональностью Java) языкам. С точки зрения универсальности выбор Java, безусловно, является преимуществом перед любым другим языком.
  • Программирование на Java универсально. Для вашего первого языка разработки вам нужна не просто прибыльная технология, которая даст вам навыки и работу. Наоборот, в ваших же интересах быть уверенным, что вас ждет веселая поездка, и Java — это именно то, что вы ищете. Если вы только начинаете, вас может преследовать ощущение, что C проще, потому что вам нужно меньше печатать (как вы позже поймете, оно вводит в заблуждение). Однако, насколько я помню свои дни изучения языков программирования, никакой другой опыт обучения не может сравниться с вмешательством в Java. Здесь так много места для творчества и создания образцов приложений — текстовые ролевые игры, консольные игры и многое другое. Кроме того, вы можете найти проекты для всех уровней сложности — нет необходимости изучать теоретические концепции месяцами, прежде чем переходить к практическому обучению.
  • Широко используемый язык. Иногда это так просто — вы хотите выучить язык, который позволит вам делать что угодно, и вряд ли найдется что-то лучше, чем Java. Язык отлично подходит для веб-приложений, программного обеспечения, проектов Android и внутренних инструментов. После того, как вы освоите основы Java, у вас появится ощущение, что вы можете делать более или менее все что угодно. Конечно, вмешательство в языки сценариев, такие как JavaScript, по-прежнему будет необходимо, однако это будет не так страшно, как изучение языка программирования с нуля, когда вы хотя бы на среднем уровне владения Java.

Рынок вакансий программистов на Java — есть ли польза?

научитесь разрабатывать код
Изображение: Магазин KnowTechie

Изучать Java может быть весело и все такое, но разве я не буду безработным и голодным, если это единственный язык, который я знаю?

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

Я собрал некоторую статистику по рынку труда Java, чтобы доказать, что для достаточно квалифицированного разработчика есть много работы:

  • Согласно последнему опросу Stack Overflow, Java занимает первое место среди языков программирования.
  • По данным Glassdoor, средняя зарплата Java-разработчика в США составляет 79 137 долларов.
  • Количество вакансий по разработке Java, доступных в настоящее время на Indeed — 27 049.

Если вы примете во внимание общие тенденции в мире технологий, такие как растущий спрос на технические таланты и растущее распространение устройств Android (Java — широко используемый язык разработки Android), становится ясно, что у вас не хватает рабочих мест. в ближайшее время.

Итак, вместо того, чтобы колебаться, стоит ли вам попробовать Java, соберитесь и начните изучать язык уже сегодня.

Вещи, которые я хотел бы знать в процессе изучения Java

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

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

1. Учитесь решать проблемы, а не программировать

веб-разработчик
Изображение: Pexels

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

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

К счастью, по пути я нашел множество ресурсов, которые помогли мне стать более уверенным в реальной Java-разработке:

  • «Думай как программист» — книга, которая поможет вам приобрести мышление разработчика независимо от того, какой язык вы изучаете.
  • Codegym — платформа, специально предназначенная для изучения Java, которая делает акцент на практическом применении теоретических концепций. Благодаря этому я узнал о нескольких полезных лайфхаках, которые помогли мне облегчить разработку проекта.
  • Переполнение стека — я знаю, что вы много слышали о скрытом здесь — хотя я не рекомендую вставлять фрагменты кода из SO, просмотр форумов, безусловно, приблизит вас на один шаг к мышлению разработчика.

2. Я недооценил вспомогательные технологии

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

Если бы мне пришлось возобновить свое путешествие по изучению Java, я был бы значительно более тщательным при выборе набора инструментов для сопряжения языка.

Вот инструменты, которые я бы рекомендовал разработчикам проверить:

  • JUnit — удобный инструмент тестирования для Java-программистов.
  • JRat — профилировщик производительности Java, позволяющий разработчикам отслеживать выполнение своих продуктов;
  • Mockito — фреймворк с открытым исходным кодом, облегчающий имитацию Java;
  • Ehcache — инструмент кэширования, разработанный специально для программирования на Java.

Ниже я перечислю наиболее важные библиотеки, фреймворки и API для изучения Java.

3. У меня не было плана обучения

Доверившись учебным пособиям и онлайн-ресурсам, я начал изучать Java совершенно с пустыми мыслями. У меня не было ни графика своего путешествия, ни представления о том, как я буду использовать свои навыки, ни подробного распорядка дня. Моя мотивация была простой и глупой — Java казалась модной, не знать, что это похоже на упущение, так почему бы мне не выучить ее?

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

Прямо сейчас, если бы мне пришлось изучать Java с нуля, моя дорожная карта была бы примерно такой:

API-интерфейсы JDK:

  • Java ввод/вывод
  • Коллекция Java
  • Параллелизм Java
  • Ява 8

Java-фреймворки:

  • Весна
  • Весенний ботинок
  • Спящий режим
  • Микронавт
  • Микропрофиль Eclipse

Тестовые библиотеки:

  • Cucumber — облегчает тестирование, ориентированное на бизнес
  • Robot Framework — помогает оптимизировать интеграционное тестирование
  • JUnity для модульного тестирования
  • Mockito для тестирования мокапов.

Для более подробного макета обучения разработке Java взгляните на график ниже.

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

Заключение

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

Как и любое обучение, освоение языка программирования — это пот и слезы крови. Однако если вы проявите настойчивость и преодолеете первоначальную громоздкость Java, процесс обучения постепенно станет более приятным и менее утомительным.

Есть какие-нибудь мысли по этому поводу? Дайте нам знать внизу в комментариях или перенесите обсуждение в наш Twitter или Facebook.

Рекомендации редакции:

  • Начните свои навыки JavaScript с этого курса для начинающих за 13 долларов
  • 9 должны выучить колоды, чтобы быть в курсе Java
  • 3 вещи, которые вы должны знать о хостинге Java
  • Почему программирование на Java популярно для бизнеса?