How To Master Java - Java for Beginners Roadmap

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
what's going on guys assalamualaikum welcome to amigos code in this video i want to go over with you how are you going to master java this video was requested by a lot of you guys so i decided just to uh basically just bring it all and you know have like a road map for you so that you know exactly what to focus when learning java so if you're new to my channel go ahead and subscribe give me a thumbs up so i can keep on recording these videos and if you're not part of the amigo squad community go ahead and join the community has over 30 000 people combined and i hope to see you there so this is for someone that wants to master java and maybe just starting out your career and you want to basically have like a breakdown of some of the things that you should be focusing on then this video is for you so i'm not going to waste too much time in detail because this you know could be in you know hours and hours of content but at glance um in here so let's just start with uh this purple line here so i feel like it was really necessary for me to include git because git is essential for any programming language right so whether you want to learn how to work within a team or collaborate with others then git is a must for every single engineer depending on the language so i have a course on git and github essentials and if you've missed that course go ahead and enroll absolutely for free so then moving on to core so core this is where i've mentioned like interfaces op variables classes loops inheritance and other things right but this is the core of java now if you're not confident on how to work with interfaces classes and all these things then i definitely recommend you to check my course on java where i teach all of the basics but for example you should be able to understand for example what is the final keyword how to put all these classes together packages for example what are they used for so before you move on you need to understand exactly how all of this works then for the advanced section in here so this is stuff like dependence injection how the garbage collection works design patterns how the jvm works best practices and basic of threads so in here i feel like you probably don't have to master everything because the goal here is for you to understand like how the language works because once you know how the language works internally then when writing code you will take all of these things into consideration so also here you see that i said basics of threads so these days resources is not limitation as before where we had like limited resources and yeah so today we run most of our software in the cloud using kubernetes so you know just know exactly for example the basics and you know writing multi-threaded applications it's very hard and usually people get it wrong so you're not going to be writing lots of multi-threading applications these days because of the cloud you can scale if your um application has a lot more traffic and basically if you need more resources kubernetes for example can autoscale for you right or whatever cloud technology that you that you are using that should be taken care by the cloud itself right and not you having to you know have for example one map and then make sure that it's concurrent on and so forth so don't do that also for design patterns i would say like don't learn every single design pattern because so again here you're not going to use everything so my recommendation is learn what you need right and learn for example the most used ones for example singleton for example right then dependence injection it's very important i understand why we have dependence injection the benefits so i've got a course on on that as well then moving on to build tools so here i would say maven or gradle so maven basically allows you to manage your dependencies and also you can package up your application you can run tests and a bunch of things so maven has and this is a separate topic and if you want to learn more about maven i'm actually planning a course on maven so please let me know whether you want to see or not and i can i can make it happen as soon as possible but i would say like pick maven instead of gradle because uh gradle the learning curve is uh much higher for gradle and you'll find more examples uh out there with maven then moving on to databases so the way you're going to master java is for the back inside of things if you don't know how to work with databases then it's going to be really difficult for you so what i would say is so here you need to learn jdbc so this is raw um you know jdbc so how to connect to a database how to execute queries you using pure java then obviously like once you know like the basics then you should adapt to a framework so for example jdbi or jdbc template for spring and others but if you know for example how it works behind the scenes then moving to a framework shouldn't be that difficult then sql so you need to know sql so relational databases database constraints transactions indexes joins queries database administration so you need to know or you need to be aware of everything and i would say like you need to kind of have a good understanding about everything apart from database administration right so for example if you have an application and you know the main screen for example takes a while to load maybe you are missing an index right so if you had an index then the query becomes faster and then you have happy users so also like joins how to you know join one or more or two or more tables together uh queries so you know making sure that you use the right queries so that they are fast so i've got a complete course on postgres and sql ready for you absolutely for free as well then orm so object relational mapping so this is where you have your java classes mapping directly to your database now in here you see jpa so this is the interface so the specification and then you have implementation such as hibernate which is quite popular and spring data jpa in here so these are one of the two most popular ones that you're going to be using then moving on to logging so in here so just have an understanding how logging works and also log enough so just imagine the scenario where you deployed an application to an environment and basically have no logs you have no visibility of what is happening and you have a bunch of errors right so if you don't have the logs then it's very difficult for you to debug and usually um you know if you have logs and then along with correlation ids then you can you know trace the request that goes through your system and it's much easier for you to debug that way and to be honest i've never worked in a place where there isn't logging to be honest so logging it's very critical for your application as well as for the operational side of things right so it's really important uh so here just have the basics so uh you know logging to standard out or file and then appenders um you know the differences of logging frameworks such as sla for j and others then in here i would say like testing so before i just move to frameworks i'll say testing it's very important so never write a single line of code without testing it like you know there are lines of codes that it doesn't really make sense for example getters and setters you shouldn't be testing those but business logic make sure to test it business logic make sure to test it so here with testing you have unit testing then you need to learn about assertion libraries so for example a server j which provides you an extensive api um for example you can say assert that an object dot and then equals to and then whatever right then mocking so understand why you need mocking so you shouldn't really be testing two services so you test one in isolation and then the other one uh if has a dependency then you actually mark it so i also have a course on testing ready for you that covers all of this then you also have integration testing so this is where the application comes up as a whole and then you test for example your end points like for example you get requests your post requests your delete requests and then you see like the request how it flows through the system and then you have contract testing as well which is really really important but i would say um you know as you start then focus more on integration testing unit testing and debugging so these are skills really important to um you know help you to write solid software and basically testing is here to help you write better software that's that's really the the the purpose of testing so test test test your code and then finally i would say like frameworks so here uh it's good that you learn java without a framework but in the long run like don't write everything yourself because you know this is why you have frameworks right so the same with javascript people wouldn't use jquery they would mainly use like react or vue or angular so these are frameworks so the same in the java world you have a framework so here you have springbook which is one of the most popular ones and you also have play framework so it's not so popular as springboat you've got quarkus and others and to be honest i think this is it so let me know what you thought about this video whether i've missed something or if you wanna you know just improve on this just let me know i'm gonna leave a link where you can find all of this diagram and also the blog post and if you need to my channel go ahead and subscribe give me a thumbs up so i can keep on recording these videos if you're not part of the amigo squad community join over 30 000 people combined and i would love to see you there this is all for now i'll catch you on the next one you
Info
Channel: Amigoscode
Views: 187,091
Rating: undefined out of 5
Keywords: amigoscode, how to code, java tutorial, learn java, java programming for beginners, java programming tutorial, amigoscode java, amigoscode spring boot, learn how to code, spring boot tutorial amigoscode, java full course
Id: TE3LyYW-AHQ
Channel Id: undefined
Length: 12min 4sec (724 seconds)
Published: Mon Aug 02 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.