Всеки Java програмист трябва да има основни познания за разработването на софтуер. Така че нека да разгледаме Howво се счита за "основно".
1. Основни алгоритми
Първото нещо, с което трябва да се захванете, когато започнете да изучавате програмиране (не само Java), е да разберете основите. Например, алгоритми.
Има безкраен брой от тях и не трябва да убивате цели години от живота си, опитвайки се да научите възможно най-много алгоритми: повечето от тях няма да са ви полезни. Можете да получите необходимия минимум от знания от книгата "Grokking Algorithms". Това е достатъчно, за да започнете, но ако искате, можете да научите от книгата „Структури и алгоритми“ or „Алгоритми в Java“ от Робърт Седжуик и Кевин Уейн.
2. Синтаксис на Java
След като научим основите на алгоритмите, трябва да научим синтаксиса на Java. Все пак учиш за Java програмист, нали? Курсът CodeGym е идеален за това.
Докато изпълнявате безброй задачи, ще се докоснете до синтаксиса на Java и след това, без много колебание, ще пишете/четете code на Java, сякаш е вашият роден език.
Освен практиката, вие също трябва да погледнете теорията, за да разберете Howво правите. За да направите това, можете да четете книги. Например едно от следните:
- „Head First Java“,
- "Java for Dummies" от Бари Бърд;
- „Java: Ръководство за начинаещи“ от Хърбърт Шилд.
След като прочетете тези книги, можете да се заемете с по-трудни книги:
- „Мислене в Java“, Брус Екъл;
- „Ефективна Java“ от Джошуа Блок;
- „Java: Пълната справка“ от Хърбърт Шилд.
Последните три книги не са лесни за четене за начинаещи, но осигуряват солидна основа в теорията на Java.
3. Шаблони за проектиране
Моделите на проектиране са определени повтарящи се модели, които решават проблеми в често срещани контексти. Те включват основни, прости модели, които всеки уважаващ себе си програмист трябва да знае. За да разберете тази тема, вземете книгата "Head First Design Patterns".
Обяснява основните модели на проектиране по достъпен начин. Но в книгата се говори много за Java, така че когато консумирате тази книга, ще имате нужда също да владеете свободно този език за програмиране.
За по-задълбочено гмуркане в моделите можете също да прочетете „Design Patterns: Elements of Reusable Object-Oriented Software“ от Gang of Four ( Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides ). След като сте изучor тази тема, ще започнете да виждате модели почти навсякъде във вашия code.
Обърнете внимание на това, особено на моделите, използвани през пролетта, тъй като това е популярен въпрос за интервю.
4. Парадигми на програмиране. Чистота на codeа
Освен стандартните модели на проектиране, има различни принципи и парадигми, които трябва да знаете (SOLID, GRASP).
Също така трябва да поддържате codeа си чист и четим. За всичко, което трябва да знаете по тази тема, вижте Чист code от Робърт Мартин or вижте „Кодът е завършен“ от Стив Макконъл.
5. SQL
Следващата ни стъпка е да изучаваме език за релационни бази данни — SQL.
Базите данни са мястото, където се съхранява информацията (данните), използвана от уеб приложение. Базата данни се състои от няколко таблици (addressната книга на вашия телефон е прост пример).
Java разработчиците са отговорни не само за Java приложението, но и за базата данни, с която то взаимодейства и където съхранява своите данни.
В релационните бази данни (които са най-често срещаният тип) цялото взаимодействие се осъществява чрез специален език, наречен Structured Query Language or SQL.
За да разберете тази тема, всичко, което трябва да направите, е да прочетете една от тези книги:
- „Изучаване на SQL“ от Алън Болю;
- "SQL" от Крис Фехor;
- „Head First SQL“ от Лин Бийли.
Но практиката без теория не се справя, нали? А на интервюта можете да очаквате проверка на знанията ви по SQL. Интервюиращите често (почти винаги) дават една or две задачи, които включват писане на SQL заявка.
В резултат на това е много важно да усъвършенствате практическите си SQL умения, за да се покажете в добра светлина.
6. MySQL/PostgreSQL
След като научите езика SQL, трябва да се запознаете с конкретна реализация на база данни. В зависимост от базата данни, някои команди може да варират драстично. И има доста забележими разлики във възможностите на базата данни.
Най-често срещаните релационни бази данни са MySQL и PostgreSQL. MySQL е много по-опростен, но PostgreSQL има много по-широки възможности. Да сте запознати с поне един от тях е достатъчно, за да започнете.
Можете да изучавате внедряването на бази данни, ако използвате уменията си за гугъл — намерете подходящи статии и уроци в YouTube. Ще трябва да култивирате способността си да създавате правилни заявки за търсене на въпросите, на които трябва да отговорите. В края на краищата, програмистът е човек с черен колан по гугъл.
7. Maven/Gradle
Трябва да научите рамката Gradle or Maven. Те са за изграждане на проекти и за вас Java вече е не само за задачи, включващи няколко класа, но и език за писане на пълноценни applications.
Трябва да разберете How да изградите проект, Howви са етапите на изграждане, How да заредите необходимите външни библиотеки с code на трети страни и много повече.
Въпреки факта, че Gradle е по-нов и по-сбит, Maven се използва в повечето случаи. Така че, обърнете специално внимание на жизнения цикъл на изграждане на Maven.
8. Git
Git е разпределена система за контрол на версиите. Тази технология позволява на разработчиците да си сътрудничат върху едно приложение, без да си пречат.
Разбира се, има и други системи за контрол на версиите. Например Subversion. Но Git се използва най-широко и трябва да можете да работите с него. В допълнение към многото статии за Git, които можете да намерите онлайн, YouTube има повече от достатъчно видеоклипове, за да ви помогне да овладеете тази технология стъпка по стъпка.
Първоначално е по-добре да използвате Git от командния ред, а не няHowва реализация на GUI, защото ще бъдете принудени да правите всичко с помощта на команди. В интервютата хората често обичат да питат за няколко Git команди, така че препоръчвам да ги напишете и да ги държите някъде наблизо.
9. JDBC
Тази технология свързва вашето Java приложение и релационна база данни. За основите прочетете всеки JDBC урок.
Има изобorе от статии, които обясняват JDBC и предоставят елементарни примери, въпреки че никой вече не използва директно голи JDBC.
10. JPA. Хибернация
JPA е начин за установяване на връзка между Java приложение и база данни, точно като JDBC. Но в същото време JPA е технология от по-високо ниво и следователно по-лесна за използване.
Но JPA е само спецификация, а не изпълнение. Има нужда от конкретно изпълнение. Много от тях съществуват, но най-близо до идеалите на JPA, най-популярният и най-разработеният е Hibernate.
Ще срещнете тази технология повече от веднъж в кариерата си за разработка на софтуер. Така че, в допълнение към запознаването с тази технология чрез четене на статии, може да си струва да помислите за четене на книга, например "Java Persistence API".
11. Пролет
Когато станете Java разработчик, Spring вече не е просто дума за вас. Познаването на тази рамка сега е също толкова важно, колкото познаването на синтаксиса на Java. Може да се каже, че Spring има брат, т.е. Java EE. Но Java EE е остаряла и вече не се използва в нови проекти.
Преобладаващото мнозинство от разработчиците на Java сега са разработчици на Java-Spring, така че познаването на някои основни технологии на Spring е задължително.
Spring не е просто рамка, а цяла рамка от рамки:
![](https://cdn.codegym.cc/images/article/899abe87-0307-4ac8-bec1-05d488a35755/800.jpeg)
И това е само част от рамките, които Spring предоставя. За начинаещ е достатъчно да познава само няколко от тях:
Пружинно ядро
Трябва да поставите това на първо място, за да можете да разберете Howво е Spring — всичко за Spring контейнери, бобови компоненти, DI, IoC и т.н. Да разберем самата философия на използването на Spring, така да се каже. По-нататъшното ви изучаване на Spring frameworks ще надгражда върху тази база. Може би трябва да създадете свое собствено малко приложение, в което постепенно да включите всички новонаучени технологии.
Пролет JDBC
По-рано споменахме JDBC като технология за създаване на връзка с база данни. Като цяло, „голото“ използване на технологията вече не може да се намери в проекти, така че можете да заключите, че изучаването на JDBC не е необходимо. Това не е съвсем правилно отношение.
Като изследвате голото (директно) използване на JDBC, можете да видите технологията на по-ниско ниво и да разберете нейните проблеми и недостатъци. След това, когато започнете да изучавате Spring JDBC, ще разберете Howво точно подобрява, оптимизира и скрива тази рамка.
Пролетен хибернация
Аналогично на ситуацията с гол JDBC, тази рамка използва съществуваща технология, в този случай Hibernate. Ако обмислите използването на Hibernate без Spring, определено ще осъзнаете предимствата, които Spring Hibernate предлага.
Пролетна JPA
По-рано говорихме за JPA и споменахме, че това е само спецификация, въпреки че има различни реализации. Сред тези реализации Hibernate се доближава най-много до идеала.
Spring има своя идеална реализация на JPA, която използва Hibernate под капака. Той е възможно най-близо до идеала на спецификацията на JPA.
Нарича се Spring JPA. С една дума, това значително опростява достъпа до базата данни.
Можете да научите само JPA, без да научите JDBC, Hibernate, Spring JDBC or Spring Hibernate. Но ако приемете този подход, знанията ви за това How да се свържете с база данни ще бъдат много повърхностни.
Пролетен MVC
Тази технология прави възможно показването на уеб интерфейса на нашето приложение на потребителите и улеснява комуникацията между интерфейса и останалата част от приложението. Технологията може да се използва и без дисплей, когато имате приложение, което отговаря за обработката на дисплея и взаимодействате с приложението чрез RESTful технология.
За да попиете по-добре информацията за пролетта, освен статии и лекции в YouTube, можете да прочетете няколко книги. Например „Пролетта в действие“ от Крейг Уолс. Друга страхотна книга за пролетта е „Пролет 5 за професионалистите“. По-плътно е. По-скоро като препратка, която е по-ценно да държите под ръка, отколкото да четете от корица до корица.
Пролетен ботуш
Тази технология значително опростява използването на Spring. Не го сложих в края на списъка по прищявка. Наистина, той крие много под капака и за някой, който не е запознат с Vanilla Spring, много точки може да са неясни or неразбираеми.
Първо, за да разберете по-добре How работят Spring frameworks, трябва да използвате обикновен Spring и след това да вземете всички по-големи предимства от използването на Spring Boot.
Трябва също да се запознаете с Spring Security и Spring AOP. Но за разлика от технологиите по-горе, все още не са необходими задълбочени познания за тези две.
Тази технология не е за начинаещи. На интервюта младши разработчици няма да бъдат питани за тях (освен един повърхностен въпрос, може би). Прочетете преглед на това Howво представляват тези технологии и принципите зад тяхната работа.
Колкото повече знаете, толкова по-бързо ще намерите първата си работа.
GO TO FULL VERSION