Want to be a Java developer?
Java is one of the top 3 programming languages in the world. It can be used to develop both web applications and desktop applications and more importantly it is cross platform--write once, run everywhere. Also, it's easy to pick up. If you want to be a Java developer, please get to ask yourself whether you know below listed topics.
This list is summarized by Vivek Vermani, a Senior Java Developer:
For a Core Java Developer , Ffollowing topics should be good.
- OOPs Concepts
- Abstract Classes and Interfaces
- Constructors and initialization order
- File IO and Serialization
- Collections - List , Map , Set
- Access Specifiers
- Exceptions - Checked , Unchecked
- Java Keywords - Static , Final , volatile, synchronized , transient, this super etc.
- JVM and Memory Management
- Multithreading and Synchronization
- Design Patterns
- Lambda Expressions
Here is a list of 200+ questions on Core Java -
If you want to focus on Network / Distributed Application, Following topics can be asked
- Communication Protocols like IP, HTTP, TCP, FTP,UDP (Reading some RFCs is necessary)
- Synchronous vs Asynchronus Communication
- Technologies like RMI, RCP
- Message Queues
- Interface APIs - JMS, JDBC , ORM , Hibernate
If you want to work Java based web application then following topics should be learned -
- JSP / Servlets
- Web Frameworks like Struts / Spring
- Service Oriented Architecture / Web Services - SOAP / Rest
- Markup Languages like XML and JSON.
- Application and Web Servers (Tomcat)
- Web application servers (WebLogic, WebSphere)
- Some cloud service (AWS, SoftLayer, BlueMix)
- Some libraries (Java mail, log4j, Jackson JSON)
If you want to work on Java UI, then following topics can be learned -
- Frameworks like Swing, SWT, AWT
- Advanced Framewroks like JavaFX, JMF
Every Java Developer is expected to have Database Knowledge
- SQL Queries - Inner Outer Joins, Group By , Having
- Stored Procedures
- Database drivers (JDBC)
Moreover questions around Tools, Methodologies, Processes can be asked -
- Development Tools - Eclipse / RAD / IntelliJ IDEA
- Design Tools and Diagrams
- Configuration Management Tools like SVN, Clearcase etc
- Defect Management
- Build Tools like Maven, Ant etc
- Testing - Unit Testing, JUnit , Black box , White Box
- Development Methodologies - Agile / Waterfall / Iterative
- Requirement Analysis
- Release Management
- Reverse engineering -- JadClipse(A Java decompiler)
- OpenJDK source code --(Mercurial on Eclipse)
Here are few links that might help.
If Internet Explorer is brave enough to ask you to be your default browser, you're brave enough to ask that girl out. Do we have to be so cruel to IE?