Java-Fundamentals-Checklist
Java-Fundamentals-Checklist copied to clipboard
Here is a r/learnjava driven checklist of basic skills you need to know to be employable as a Java junior developer. I will update more as I continue on my learning process.
Java Checklist:
Basics
Classes
- Constructors
- fields
- Access Modifiers - public, protected, private
- Nested Classes
- Anonymous Classes
- Lambda References
Interfaces
- Creation
Enums
- Creation
Variables
- Fields
- static variables
- constants
Data types
- Predefined objects
- User defined
- Primitive data types
- Arrays
Control Statements
- If, else, else if
- Switch
- While loop
- For loop
- Improved for loop
- Return, Break, Continue
Methods
- Static, instance
- Return
Annotations
- Creation
- Predefined Annotation Types
Inheritance
- Overriding
- Super, subclasses
- Extends vs Implements
Strings
- Formatting
- String methods
Generics
TODO: add...
Packages
- Creating packages
- Compiling classes manually
- CLASSPATH
Exceptions
- Try, catch, finally
- Checked vs unchecked exceptions
I/O
- Streams
- Character streams (Know the difference between byte and character streams)
- Writer/Readers
- Buffers
- Paths - abstract, canonical
- Working with files
Environment
- Java Properties
- System Properties
- Environment Variables
- CLASS and CLASSPATH
- Security Manager
- Storing using YAML
REGEX
- Regular Expressions
Date Time
- Joda
Deployment
- What a jar files is
- How to create a jar file manually
- Manifest Files
Unit Tests
- Test Driven Development Concepts
- JUNIT
Java tuts for most of this info here.
Advanced Stuff
Binary mastery
- Bit shifting
- Encoding standards
Concurrency
- Threads, Runnable Class
- Synchronization, volatile, atomic
- Locks
Data structures - TODO expand
- Lists
- Queues
- Maps
- Sets
- ETC
- Collections
- Difference between the underlying data type and collections library
Algorithms - TODO expand
- Sorting Algorithms
- Search algorithms
- Time algs take
Creating JavaDocs
- How to generate
- Doc comments
- @param
- @throws
- @return
Using external Libraries
- Using *
- Importing libraries
- Using APIS
- Working with maven
Swing
- Components
- Events
- Listeners
- Layout managers
JavaFX
- Listeners
- Buttons
- Styles (CSS, inline)
Networking
- More coming later.
- POST, GET HTTP commands
- Basic networking
- IP addresses, subnet masks, DNS
- OSI model
- Protocols, Transport (UDP/ TCP) vs Application (HTTP)
Build Control
- Building, deployment
- Maven
- Plugins, Goals
- Build lifecycle
- Basic XML
- Maven structure
- Gradle
- No clue.
Source Control
- Git
- GitHub
- Basic Commands
- svn (If your job forces you)
Frameworks / Web Dev
- Java EE concepts
- Servlets
- JSP
- Containers
- Spring (Server Backend)
- REST features
- Dependency injection
- MVC systems
- Freemarker (For view)
- Spark
- Web containers (Tomcat / Jetty)
- REST Concepts
- Jax-RS (RESTEasy)
- SOAP concepts
- XML
Persistency
- SQL
- mySQL
- JDBC
- JPA
- Hibernate
- EclipseLink
- Hibernate
Serialization
- JSON