This learning track is for developers who have completed at least one course in Core Java (or are familiar with basic principles of Java, like Syntax, compiling, and running Java programs) and would like to improve their understanding of the Java language and ecosystem.
Why Is This Track Needed?:
A typical Core Java course focuses on the Java syntax and simple exercises to understand Java. These are an important first step, however, usually due to lack of time such a course cannot equip the learner with deeper knowledge of how to develop good software in the Java ecosystem. The Java landscape is very huge and cannot be dealt with in a single course. When dealing with such magnitude, the best way to learn is self learn. This track's focus is to help developers by providing guidance as they get their feet wet, and give them the initial momentum for continuous self learning. The track will provide developers with:
- An understanding of coding and design best practices
- An exposure to the Java ecosystem of open source libraries and frameworks
- An understanding of how to unit test Java code
- An understanding of source control systems and how to use them
- An understanding of how to use development and code analysis tools
- A deeper understanding of some of the topics already learned in a regular Core Java course
For this track we will use the concept of networked collaborative learning. Breifly, this means that everyone is a learner and a mentor. Learning happens by understanding, practicing, and participating. New media technologies (such as blogs, and podcasts) will be used for participation.
The JavaInsights101 track consists of 16 tasks. I recommend that you try and complete them in 16 weeks. Each task is explained in a separate blog post. After completing a task, please write a blog post (describing your solution, problems faced if any, and how you overcame them) on your own blog and leave a comment on the post describing the task (on this blog). Be sure that your comment contains the URL of your post describing your solution for the task.
Participants are encouraged to write blog posts regularly as well as read posts of other participants and leave (constructive) comments on their blogs.
There is a supporting Google Group for this track, which can be used for asking questions, and other discussions related to the track. Participants are also encouraged to go beyond this Google Group and ask questions on public Java forums, such as Java Ranch and Java.net . Participating on these forums will give you a wider perspective and will also help you connect with the Java developer community. For the benefit of other participants, whenever you ask a question on another forum, either write a blog post with the URL of the question, or write a quick mail on the mailing list, describing your question and it's URL. This will help other participants who have similar questions. Moreover if someone already knows the answer, they can post it on the question thread.
To register for this track leave a comment on this post with your blog URL and go to Task 1. If you do not already have a blog, do Task1 first and then leave a comment on this post.
This is a pay-it-forward course, which means you do not have to pay any fees monetarily. However, you are strongly urged to volunteer after completing this track by helping new participants, by either answering their questions on the forum, or by reviewing their code.
Frequently Asked Questions
- Create a blog
- Create a working environment for Java
- Hello World
- Task: Check-in code into a source control system
- Refactor HelloWorld to use JSAP
- First Steps Into Test Driven Development
- An exercise with Collections
- An exercise with Threads
- An exercise with Swing
- Unit testing the Swing GUI
- Unit test code coverage
- Using Log4J for logging
- Code review
- Using ANT for compiling your project
- Ensuring code quality with FindBugs
- Your journey begins now