Hello everyone. Allow me to introduce myself. I'm Eugene. And I've been working as a Java developer for half a year :-) My entire path from Level 0 to employment took me approximately 3 months, and here I am.
I participated in about 50 job interviews even when I was already employed and I managed to pass the Java OCA (now Java Programmer) certification exam, so I have stories to tell.
This short article is here for those who apparently "learned" Core Java and understand some basics, but don't know what to put on GitHub (well, you don't want to post CodeGym tasks, right?) and don't know where to look next.
This describes me when I reached Level 18. Of course, if you know "Core" (I don't like this term), you can get a job, make forms in Swing, or write logic for some microcontrollers for bakers or a factory, but the heart of Java application is, of course, found in web development. And here's the catch... uh... where do we begin?
I'll tell you about my short journey that led me to my first job. This is my path alone :-) You can share yours.
The basics of network architecture
First, watch a couple of videos about network architecture. My advice to you, save yourself a lot of time by understanding the future material. Data transfer protocols, how this data travels over the network. At least what HTTP is, what a server-client architecture is, and the like. It will take you a day or two, but the foundation will be there. This is a diversion.
A small digression: Spring is required for 90% of job openings, but I recommend starting from the very basics. Then you will understand what is under the hood, and you will be able to swim better. That's just what I did.
SQL and databases
To begin with, I recommend studying SQL and databases. There is an excellent book from Head First, there are videos, and there is plenty of web content about SQL. What do you need to understand? In my view, you need to know what a database is, how data is stored there, how to get it, how to create it, i.e. simple SQL queries up to the level of join clauses, how to create a couple of databases and manipulate them.
What to choose here? Well, MySql and MySql Workbench are somehow prettier and simpler, but I still encountered PostgreSQL at 80% of interviews and it's better to get used to it right away.
Connection between Java and databases
After that, we will delve into JDBC. This is a library that lets us connect our beloved Java and a database, and also has a set of (readymade) interfaces for working with databases. Your task here will be to create a database and then write code to connect to it and work with it :-) A simple console application that adds and fetches data. After that, I would supplement this with Hibernate.
This is optional, but my opinion is that there is no better time than the present to understand how ORM works. Rewrite the code to work with this framework.
Upgrade your resume
Then add the following lines to your resume: SQL, Hibernate, JDBC, JPA, well, and Maven/Gradle (most likely "Maven", because all the examples use it), without which you won't be able to proceed (I mean when it comes time to connect dependencies).
And also GIT!
Be sure to take the courses. You need to understand it at least at a rudimentary level. It will make your work convenient :) And you will understand commits, change history, and more. Oh, and your first deliberate project can be flaunted on your GitHub account. Let's add Git to your resume.
Delve deeper in web development
After that, start getting down to brass tacks with web development. I would still recommend starting with servlets, with an understanding of the principles of a REST architecture (this is not difficult).
In the process, I would write a simple application (more than one, of course) that uses servlets to do CRUD operations with a database. In doing this, you will understand even deeper how everything trembles and twitches, how data is sent to a client, in what form (JSON, for example), how to receive it, and send it back to the client.
Then add servlets, JSON, and possibly a couple additional related technologies to your resume.
Now you are fully armed, and you can move on to Spring. Start with Spring Core and Spring Data. This is actually a difficult topic for many, because the framework itself includes a lot of magic, black boxes, and various templates, but you will already have a good foundation.
In fact, I actually encountered a bunch of job vacancies where you can start working without knowing Spring. For example, one company offered me a large salary for knowing the technologies of this particular "bloody enterprise".
And there are actually a lot of job openings like that, so start interviewing and gain experience! Never be satisfied, LOL. I once interviewed for a senior developer position and survived to tell the tale :D Of course, it is better not to do that, but ultimately I learned a lot.
Now, get back to learning, okay? I got a job in 3 months only because I spent up to 5 hours a day working towards it. And most importantly, don't drown in theory. Read it and then try it! Don't be afraid to write code! Good luck to all!
GO TO FULL VERSION