Search This Blog

Wednesday, January 5, 2022

Becoming a Full-Stack Java Developer!

Below is an answer to a student's question on what needs to be done for becoming a Full-stack Java Developer upon completing this course. The answer includes the technologies that needs to be learnt along with broad timelines that may be needed to learn them. --------------------------------------------------------------------------------------------------------- If you want to become a full-stack Web developer in the Java space, then you need to learn all those technologies (SQL, Hibernate, Spring, HTML+CSS, XML) that you mentioned. However, the critical thing is to learn core Java well, which is what we do in this course. Once your core Java concepts are strong, those technologies are fairly easy to learn and to simply get started you can even pick up from someone who is willing to help you introduce you to some of that stuff. Here is my recommendation about how you should proceed and as a rough guidance I also included time you can dedicate to learn each of them: 1. SQL: I definitely would suggest to do the 'Database Implementation & JDBC API' in this course. It will give you a good start to SQL (& MySQL), database design and also JDBC (interacting with database from Java programs). I see that even some proper SQL courses are not covering database design (aka normalization). As soon as you are done with the above section, try to learn more about SQL either via any online courses or a good book. Especially, you MUST learn about left/right join, indexes, and more complex queries (e.g., nested queries). Typically, in professional environment, you will be writing complex SQL queries where you join several tables (even more than 10-15) and write lot of conditions. Initially, it may be a bit overwhelming, but it is not difficult and you just need little bit of practice and write few complex queries successfully. Duration: 2-3 weeks after doing the database section in this course 2. HTML, CSS, JSP, Servlets, Java Script: After finishing this course, you can learn these technologies. You don't have to master them right away, but get a good understanding and you can can get back to them later too. We already covered Servlets & JSP to some extent and that's a very good start. You can further explore by checking out the following Udemy course by Chad Darby. I haven't done this course, but you can check it out. Head First JSP & Servlets is also a good book. JSP and Servlets for Beginners: Build a Database Web App Duration: 1 month 3. Spring, Hibernate, more Java Script & Jquery Next, learn these well. So, here you can put some more effort on Java Script and also learn JQuery. Below is another course of Chad Darby. Again I have not done it, but recommending it based on high rating and as it is including both spring & hibernate in same course Spring and Hibernate for Beginners: Learn Step-By-Step Duration: 1 month 4. Others: Learn how to process XML documents & JSON from Java programs, which is pretty easy. After that you can also learn how to work with REST API, but this can wait for a later time too. Spring courses can cover some of the REST stuff too Duration: 2 weeks for XML & JSON and 2 weeks for REST API. 5. Tools: Maven (build tool) & SVN/GIT (version control). These you can learn in the work environment too. You should learn to use them from within eclipse environment (or any other IDE that you are using). Duration: 2 weeks After doing this course, it would take around 3 months or so to learn the above technologies well and with that you should be in a pretty good position. After that it is more about getting some experience by working on one or two good projects. With just one project, you will feel lot better in terms of confidence. Just don't hurry and learn them well in a systematic way even if it takes a little more time than expected. At some point, do learn design patterns. But, when you do that, see if you can take off 2-3 weeks from work to learn them really well. Learning them over weekends can be a bit challenging and so dedicating it separate time can be very helpful. Unfortunately, due to my commitment to this course, I could not keep up with few other technologies like Angular JS, Node JS, Micro Services, Docker etc. So, you should talk to few other experienced developers about them and see if there is a need to learn about them. But, I believe the above technologies are kind of core for developing Java EE applications and I can assure you from my personal experience that just with these you can build pretty solid Web applications that can serve few millions of requests every day (with proper hardware support).