- PVSM.RU - https://www.pvsm.ru -
Мой предыдущий [1] пост возымел определенный эффект – несколько человек посчитали его очень мотивирующим и попросили меня дать некоторые советы и рекомендации, с чего же начать карьеру разработчика. Очевидно, вопрос слишком широкий и не имеет ответа как такового, поэтому я поставлю его более узко: что должен знать молодой java-разработчик, пишущий back-end?
Этот пост не является курсом молодого бойца, а является лишь:
Цель:
Как я уже говорил, я буду оперировать терминами экосистемы Java, хотя в целом это легко можно спроецировать на любую другую платформу.
Итак, есть человек, понимающий ООП и прочитавший хотя бы одну стоящую книгу по языку от авторитетного автора. Человека в дальнейшем будем называть “падаван”, и если падаван не читал книг – все же стоит это сделать. Это необходимо для того, чтобы понимать возможности языка и его основных библиотек, но закапываться тоже не стоит – для начала одной хорошей книги будет достаточно. Фанатичное чтение без практики никаких особых плюсов не дает, особенно на начальных порах.
Значит, что мы пока что имеем:
Как можно применить имеющиеся пока знания? Никак. Для этого нужно погружаться в экосистему платформы. Для Java, по моему мнению, необходимо понимание следующих инструментов:
Collections Framework. Вообще говоря, это Core Java, то есть не часть экосистемы как таковой. Ориентироваться в структурах данных – обязательно. Необходимо четко понимать разницу между LinkedList [2] и ArrayList [3]. А также понимать, что такое Set и Map (а еще помнить, что Map – это не Collection). Хорошая статья про HashMap, например [4]. Я бы даже рекомендовал еще посмотреть сюда [5].
Иерархия исключений: тут [6]
Иерархию классов кстати тоже неплохо представлять в общих чертах. Хотя бы помнить, что все классы неявно наследуют от Object.
Spring. Это фреймворк, который сильно упрощает жизнь. Фреймворк этот слишком большой, поэтому для начала достаточно просто понимать, зачем он нужен.
Знать, как расшифровывается ORM и для чего это нужно. Я бы дал такую краткую и сильно упрощенную формулировку: ORM (ладно, Object-Relational Mapping) – это такая штука, которая позволяет преобразовывать записи (строки) базы данных в объекты языка. С этими объектами затем можно работать так же, как и с любыми другими – проверять или менять их состояние, вызывая те или иные методы. Соответственно, все изменения объекта отразятся в БД.
JDBC. Это то, что позволяет довольно сложно и непонятно работать с базой данных. Но знать полезно. Сюда же и отнесу базовое знание SQL.
Maven. Определенно необходим, так как эта штука помогает собрать проект из кусочков в один исполняемый файл (грубо говоря). Есть аналоги: Gradle, Ant. Последний, на мой взгляд, довольно сложен для начала, да и популярность его на сегодня довольно мала.
HTML на базовом уровне, то есть уметь красиво верстать ни к чему для начала.
Если я упустил какие-либо важные моменты, прошу меня поправить и дополнить.
Итак, в чем заключается суть тестового проекта: я предлагаю падавану сделать простейшую блог-платформу без регистрации и без красивых форм на bootstrap. Пусть это будет голый уродливый html без какой-либо динамики, а главная форма имеет лишь:
Поле ввода. Просто вбейте туда слова “Hello World”.
Кнопку “создать запись”. Нажимаете на нее, и слова “Hello World” уходят приложению на обработку, сохраняются в БД, а затем появляется на страничке. Динамики не нужно, пусть запись появится только после перезагрузки страницы.
Все! Это правда все. Это очень просто, но если вы только-только начинаете, то вам придется ознакомиться со множеством моментов.
Вроде кто-то когда-то говорил:
Java – это инструмент для преобразования больших xml-файлов в stack-трейсы.
В этом есть доля правды, поэтому я рекомендую сразу же избавиться от всей этой xml-конфигурации, используя Spring Boot – он оперирует аннотациями.
Я уже говорил, что это не курс молодого бойца, а лишь мои рассуждения. Так что ниже я дам лишь рекомендации о порядке выполнения этого проекта:
По поводу пунктов 5-8 можно почитать следующее:
И это все! Я верю, если падаван освоит указанные моменты и сумеет не просто склепать простейшую блог-платформу, но и поймет, для чего он делал каждое из действий, то этого будет достаточно для первого трудоустройства на позицию junior java-developer. Различные рассуждения и дополнения категорически приветствуются.
Автор: tmn4jq
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/193680
Ссылки в тексте:
[1] предыдущий: https://habrahabr.ru/post/310028/
[2] LinkedList: https://habrahabr.ru/post/127864/
[3] ArrayList: https://habrahabr.ru/post/128269/
[4] например: https://habrahabr.ru/post/128017/
[5] сюда: https://habrahabr.ru/post/162017/
[6] тут: http://www.programcreek.com/2009/02/diagram-for-hierarchy-of-exception-classes/
[7] здесь: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
[8] Maven: https://maven.apache.org/install.html
[9] Здесь: http://docs.spring.io/spring-boot/docs/current/reference/html/getting-started-first-application.html
[10] Здесь: https://www.toptal.com/spring/beginners-guide-to-mvc-with-spring-framework
[11] Эта статья: https://stormpath.com/blog/tutorial-crud-spring-boot-20-minutes
[12] Источник: https://habrahabr.ru/post/311272/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.