Below is a roadmap of topics to learn for absolute beginners to become proficient in general programming in Java.
The prerequisites
Before starting programming with Java, there are some concepts to understand:
- Object Oriented Programming concepts - without trying to write any code.
- Abstraction,
- Inheritance,
- Polymorphism,
- Encapsulation,
- Classes and Objects.
- How is Java Write once, run anywhere? - the role of
- Java Virtual Machine
- Java Runtime Environment
- Java Development Kit
You can also refer to my post to learn principles of OOP.
Principles of Object-oriented programming
Abhinav Pandey ・ Oct 16 '21
First steps into Java programming
- Install Java - Get the latest JDK from Oracle
- Download and install an IDE for Java - Eclipse or IntelliJ Community.
- Write a traditional Hello World program in Java.
- Run the program using the IDE as well as a command line.
Learn more about the language
- Primitive Data types
- Variables and Constants
- Operators
- Blocks and variable scope.
- Flow control - if, else, switch, for, while, do-while, break, continue, return.
- Arrays and Strings.
Get more object oriented
- Classes and Objects
- Constructors, methods, and fields.
- Method overloading and Constructor overloading - why and how.
-
this
andsuper
. - Access modifiers - public, private, protected and default. (contd.)
-
static
andfinal
keywords - how they apply to classes, methods, and fields. - Inheritance, Interfaces and Abstract classes
- Method overriding and method hiding.
- Ways to implement polymorphism.
- Packages and Imports.
- Reading from standard input
More programming concepts
- How objects are stored in memory - concept of references and mutability.
- String pooling, manipulating strings, StringBuilder and StringBuffer.
- Garbage collection
- how it works and how to control it.
- finalize() method and its use.
A little more complex stuff
- Annotations - start using @ Override, @ SuppressWarnings, @ Deprecated and those used in documentation.
- Type casting - Implicit/ Explicit and how each of them works
- Enums.
- Inner and Anonymous classes.
- Math and BigInteger classes.
- Exceptions
- Error vs Exception.
- Checked vs Unchecked exceptions.
- try-catch-finally,
- throw/throws.
- try-with-resources.
- User defined exceptions.
- Documentation.
- Varargs.
- Date/Time APIs
- Functional interfaces, Streams and Lambdas.
Data structures
- Understand each method of Object class.
- equals() and hashCode() - the need for them and how to implement them.
- Generics
- what they are and why they are useful.
- define a generic class. E.g. implement a linked list using generics.
- Collections package
- List, Set, Map
- Their use cases.
- Their implementations and the differences between them.
- When to use which implementation.
- Comparator and Comparable.
Concurrency
- Threads and Thread pools.
- Synchronization and locks.
- Thread safety and concurrency.
- Defining and using your own thread classes.
Bonus: How to learn all this?
Websites to practice Java
- https://www.w3resource.com/java-exercises/
- https://www.hackerrank.com/domains/java
- https://www.codecademy.com/learn/learn-java
Online resources to learn Java
- https://www.geeksforgeeks.org/java/
- https://www.programiz.com/java-programming
- https://docs.oracle.com/javase/tutorial/java/index.html
- https://dev.java/learn/
Books to learn Java
- Thinking in Java
- Head First Java
- Core Java Volume 1
Thanks for reading.
While learning any programming language, it is best to follow a roadmap and learn each topic from multiple resources.
If you want to connect with me, you can find me on Twitter @abh1navv.
Top comments (1)
This the book am using now thoug a *newbie
David J. Barnes & Michael Kölling
Objects First with Java
A Practical Introduction using BlueJ