Java Roadmap

Java Roadmap

YAJC become Java programmer

The world of programming is big, even gigantic. Despite Java world is a piece of that world it touches a lot of areas and could be applied for many many tasks.

You could want to know more about our journey in the beginning. So let's take a quick look at what we could see in the following posts.

Java SE☕

First of all you need to get familiar with core tools Java platform provides for you

  • Data types and operations(algorithms) on them - blocks of data and how you man manipulate them
  • Collections - data containers.
    For instance for a book library you could need store information about books and authors in containers like a list.
  • Input/Output (IO) - how you can communicate with external world. Sending requests to servers, writing/reading files, etc.
  • Concurrency - parallelize your program to perform multiple simultaneous actions.

Git

In these days software development is a work of many people. Usually you work together on the same project and it's hardly possible that you don't change the same piece of code. Even when you work alone or you could avoid any concurrent modification you still need a tool to track the history of your application's evolution.

This is named Source code management (SCM). SCM allows you to create a snapshot of your code and save it or to share with somebody.

Libraries📚

During application development you can face tasks which are common for many people. Instead of repeating themselves people package solutions for such the tasks into libraries. Java has an extremely rich set of libraries. It's a rare case when you need to solve a common issue on your own.

Building tools🧰

After you have created a program you may want to build it for many reasons.

Building tools take a massive role in software development. Let's cover this topic with details in the following posts 📝

Frameworks

Again, people don't like routine and repetitive tasks. Frameworks allow you to write less code to achieve more.

It is like a base for a building - you decide what you will have inside. But it should be used carefully as you cannot live in a building which was supposed to be an office.
As an example, if you take a framework designed for desktop applications, you would be hardly able to create a web server.

Testing tools🐞

Yes, testing associates with bugs. It is an old story. You can read about this following https://www.globalapptesting.com/blog/the-worlds-first-computer-bug-global-app-testing

We believe each program should be properly tested, even home pet projects. Expect we spend some time covering this significant topic.

Log frameworks

In order to know what your program did or doing at any time, you need to use and configure logging frameworks properly. They allow you to have messages the application produces while working.

Databases

Programs could manage a large amount of data. The data could not be stored in PC memory and should be located on disks.

Databases provide interfaces to use/store the data. Another use case is persisting your data when your program should exit. Of course you can store the data in files but databases do it better. We also will have a look at this topic with more details as a few applications can exist without databases.

Linux

We've told that knowledge of Linux is crucial. You will see it when

Patterns

This is similar to libraries. Developing a book library or a store system you need to solve analogous tasks. This topic will tell you how to make you code flexible, avoid redundant changes and please the eye.

Report Page