How to become a Java developer in 1.5 years

    My name is Sergey, I am 40 years old and now I am working as a Java developer in a German company. We are developing software forbreweriesfinancial and credit risk assessments. This is my first job as a developer. Before that, I worked in the field of IT-support and system integration. On February 1, 2019, my six-month probationary period ended, and I have an indefinite contract in my hands. I want to share my experience on how to independently learn Java in order to get a job.



    This is my desktop. We are allowed to drink beer during working hours, we are in Germany.


    My first article: “ IT emigration with the family. And the features of finding a job in a small town in Germany, when you're already there.


    My second article: " Getting a job in Germany will become easier ."


    Disclaimer


    I will say at once that any options “learn Java for 10 days” (21 days, 30 days, etc.) are utopia. There is no red pill to quickly get into the matrix. But for a year or two in parallel with the main place of work is quite real.


    What I had in the asset before I started learning Java


    At first, I wanted to name the article “How to become a Java developer in 1.5 years from scratch, ” but changed my mind. I, after all, came to programming not from a completely different field, but from IT. But I worked not in development, but in support. Probably the trucker will not be so easy to repeat my steps to become a programmer. Although, if my wife succeeds in her 34th to retrain from a pure humanitarian to a developer (or tester), I will write another article.


    It is worth saying that I already knew how when I decided to become a developer.
    At university for 2 semesters, we studied C and C ++ programming. Nothing special or deep knowledge. Passed - forgotten. Further, as a student, I wrote some simple programs on Delphi for myself. And that's all. That was over 20 years ago.


    Then my career looked like this:


    1. System Administrator
    2. System engineer
    3. Deputy department head
    4. Head
    5. Engineer those. support

    I didn’t do programming directly at all.


    My way


    Online courses.


    I started with the following coursera.org specializations :


    Java Programming and Software Engineering Fundamentals - 4 months

    I have completed the following online courses:



    After this specialization, I already more or less understood the language, but writing the program itself was still unreal. I did not make the last capstone project. It was hard for me. And I, frankly, lost enthusiasm. I took a break.


    Object Oriented Java Programming: Data Structures and Beyond– 5 months

    After a month, I decided to return to classes again. I went to the specialization of five courses:



    I also did not master the last capstone project. But the penultimate course on the Mastering the Software Engineering Interview list helped me prepare well for the subsequent interviews. And I was able to write my first simple parser of a simple site on pure HTML. It was already nice, but not impressive.


    How to Code - 3 months

    The next step was these two strange courses on edx.org :



    I wrote “weird” because there isn’t any Java about it. Course authors use a special programming language Beginning Student Language (BSL). I read somewhere that they are mega-useful. Probably, these two courses have helped me to better understand some of the techniques of writing programs and have become a good help for writing Unit tests in real work. But to be honest, you can skip them.


    Data Structures and Algorithms - 2 months

    Then I returned to coursera.org again and started a new specialization consisting of the following four courses:



    But mastered only the first two. I did not even write to the others. In parallel with these courses, I began to read the book OCA, which will be discussed further.


    Marking time

    At that moment I realized that I was marking time. The passage of new courses did not give such a tangible amount of new knowledge, as the first gave. Those. knowledge seems to be added, but it does not bring me closer to getting a job. I did not understand how with such knowledge you can even find a job. I still could not write anything that would be harder to parser. Well, how is that?!?!? I even tried to write my own service of parsing sites with blackjack and confused, but after a week of development my project turned into a mess of classes. And I myself could not figure out what I had written there. In addition, I still did not understand some aspects of the functioning of the language. And this is after I have spent about a year on all these courses !!! Twelve online courses and a whole year of time, Karl, you just think about it. In fact, it was a failure. I was sure that in a year I would be able to become a developer thanks to these courses. I was mistaken. I needed a plan B.


    Alternative

    I began to look for courses that would help me to get some practical skills needed in real work. But there was nothing sensible, or it was worth decent money. The same courses of otusa cost 50,000 in six months and the responses to them are contradictory. I was not prepared for such expenses. I was ready to plow on my own and was looking for how this can be done for free or quite inexpensively. As a result, all the online courses that I came across were divided into two categories:


    • The first is designed for beginners or people with zero training. With their help, you reach the level of "three with a minus". It's me! This is about me!
    • The second is for “horoshist” with experience who want to become “honors”. Like these: "How to write microservices in Java for high-load projects using WildFly Swarm." What is it all about ???

    And between them is a gaping emptiness. Well, where am I and where are all these microservices ??? It turned out that for troechnik there is nothing at all. Or there is, but for good money. And how to become “good” for free, without registration and SMS, is generally incomprehensible.


    Oracle Certification


    Then I decided to become a certified Java developer. Because the phrase "I am a professional Java programmer" sounds very cool and should slay the future employer completely !!! In any case, then I thought so naively.


    OCA: Oracle Certified Associate Java SE 8 Programmer - 2 Months

    For this, I bought a book:


    OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808

    It took me about 2 months to master this book. She really opened my eyes to many aspects and made me understand how the language works in detail. It was a good move forward. But not in job search, but in understanding the Java language. I went to the exam with confidence that I would pass it well, and I passed it. I scored 84% with the required 65%. I was immensely proud of myself.


    The cost of the exam is $ 245. In Russia, it is a bit cheaper.


    Estimate the cost of official Oracle training to prepare for this exam.


    OCP: Oracle Certified Professional Java SE 8 Programmer - 4 months

    I enthusiastically set about the second book of the same authors:


    OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide: Exam 1Z0-809

    I spent 4 months on mastering the second book. And it turned out really difficult. Two times I took breaks of one week, because it was really not easy for me to understand lambda expressions or multithreading. I was also killed by an abundance of classes for input and output. All these NIO and NIO2, which are so similar and that you need to know. What is the base class that derived from? It was a real nightmare. In the end, I set the date of the exam for the month, then I moved it for two weeks, then another two. I was under pressure for deadlines, an interview loomed on the horizon. And I needed this certificate. I did not pass the exam for the third time and went with what I had. Unlike the first exam, I was not sure about a good result. I was not at all sure that I could pass it. Not a trace remains from former pride. The amount of information for understanding and memorization in the second book is five times more than in the first. But I passed this exam. Fortunately, the tests in the books were more difficult than those that were on the exam. But it was a breakthrough ... for me. A breakthrough in terms of knowledge and understanding of how the language works and what tools it offers.


    The cost of the exam is also $ 245.


    I can say that these two books gave me more than all the online courses that I had completed before. But I don’t know if I could have passed these exams at all if I hadn’t completed the preliminary courses. With the help of these exams, I moved to the level of “three plus”. And it was already something. But I still was not able to independently implement some interesting project. WTF ????


    I realized that I had reached the maximum from what I could get myself, and it was pointless to learn the language further. Moreover, I understood that my knowledge, which I had learned so hard, very quickly disappears without practice. It was impossible to pull, and I began to prepare for the interview and the acquisition of skills that may be required when applying for a job.


    What you need to get a job?


    You need to pass an interview and technical interview! I will not write about the preparation for the interview. This is a topic for a separate article. I will write only about the knowledge that is needed to pass a technical interview.


    Preparing for the interview - 1 month

    I bought the following book:


    Cracking the Coding Interview, 6th Edition: 189 Programming Questions and Solutions

    I highly recommend it. It will help prepare for the technical part of the interview. I spent about a month on it. Many tasks were incomprehensible, so I found another copy in Russian, and when I was completely incomprehensible, I looked into it.


    Extra skills

    At this point, I was already actively monitoring the job market in my city and I chose the company I would like to work for. They had a Java Developer job. The vacancies among the desired skills were knowledge of Oracle SQL, GWT, Eclipse, SVN, Maven, Jenkins. I did not need deep knowledge of all these technologies, I needed a simple understanding of what it is and how it works. So that during the interview you can say, they say yes, I am familiar, but not deeply.


    Oracle SQL - 1 week

    I already knew SQL quite well, as on duty I had to do a lot of arbitrary reports for management. But it was T-SQL from Microsoft, but it required SQL from Oracle. I had to buy a book to remember the main points and understand the difference.


    OCA Oracle Database SQL Exam Guide (Exam 1Z0-071)

    I ran this book quickly in a week. And I realized that I am 70% ready to pass another exam. But I was no longer up to it.


    SVN - 1 week

    SVN distributed version control system. GIT or SVN is used in most software development companies. I did not find courses on SVN, so I decided to take a short course on GIT: “ Version Control with Git ” in order to keep abreast of the topic. I even thought that if they asked about SVN, I would say that I had to deal with GIT. And then I navigate on the spot. If suddenly there is something incomprehensible, then you can always say that in GIT it is a little different. And this, by the way, worked.


    GWT - 3 days

    The next technology from the list is GWT. Having spent several days searching for information, I realized that I simply couldn’t figure it out with this Google Framework. If simplistic, then you can write complex websites in Java, and this Framework translates your code into HTML + JavaScript and displays it in a browser without any add-ons or add-ons. Everything is too cool. GWT I decided to skip.


    Eclipse - 3 days

    Eclipse is a development environment, the main developer tool that I deal with every day. I did not take any special courses. I watched a few videos on youtube, understood the basic techniques. I tried everything myself with my hands.


    Maven, Jenkins - 15 minutes.

    There is no time left for these two things. The interview was already in the morning, so I just read 2 articles on Wikipedia and went to bed.


    Total


    Time


    I spent about 18 months, 2 weeks, 6 days and 15 minutes to gain the knowledge and skills needed to get a developer’s place. I did this in the evenings, spending 1-3 hours on weekdays. And about 5-6 hours on the weekend.


    Money


    I was ready to waste my time and was not ready to spend money. But they still had to spend.


    Courses:


    • All the online courses I took for free . How to do this at coursera.org I wrote here .

    Books:



    Examinations:



    Additional expenses:


    • Travel to another city for exams, because in my there are no certification centers - 120 €.

    Total: 702 €


    Completely free, unfortunately, did not work. I bought books in English, because The exam is also in English.


    Result


    This knowledge was enough to pass an interview and sign a contract in a sufficiently cool German company. I would even say that they were enough with a margin.


    They were also enough to pass a six-month trial period and get a permanent place in the staff of developers.


    During these 6 months of work as a developer, I have closed over 200 applications for the development, improvement and correction of errors in the code of completely different subsystems and modules. And I did not refuse from one application “because I could not”. Yes, I had to and now have to understand new things, look for information, delve into the details. I do something slowly, but I find it interesting and the process goes on. And they pay well for it !!!


    But do not think that I am very clever. I am the easiest guy who just decided to change his life for the better. I am the same as you. And if I could, then you can!


    Express - the way


    In fact, to become a developer, it took me not 1.5 years, but two. But this is by my own stupidity (read about it in my telegram channel ). Immediately in real life, I spent 1.5 years. But it is not necessary to repeat my mistakes. I think that it is possible to achieve the same result in a shorter period. We throw out all unnecessary and get something like this:


    Part One - 5 months


    We take the following courses in Object Oriented Java Programming: Data Structures and Beyond on the course:



    In parallel, we read the book:



    By results we pass the exam.



    Part Two - 2 months


    We take the following courses in Data Structures and Algorithms specialization :



    In parallel, we read a book:



    Part Three - 4 months


    We read the book:



    By results we pass the exam.



    Part Four - 1 month


    We look at what exactly the employer wants from applicants, and spend one week on each of the 4 most necessary technologies, programs or frameworks (Git, Eclipse, Maven, Spring, etc.). Plus, we study the subject area in which the employer works, its products, if any, etc.


    Total year For the year - quite real.


    Keep in touch


    I write in my telegram channel @LiveAndWorkInGermany about how I changed my life at 40 and moved with my wife and three children to Germany . I write about how it was, what is good and what is bad in Germany, about plans for the future. Short and to the point. Join - it will be interesting.


    Also popular now: