DEV Community

Cover image for Fastest way to become a Software Developer
Job Ready Programmer
Job Ready Programmer

Posted on • Originally published at jobreadyprogrammer.com

Fastest way to become a Software Developer

So, what is the fastest way to become a Software Developer?

Fastest way to become a software developer - Two paths

Now, there are two tracks that I will recommend to you which are the Data Analyst path and the Software Developer path. It's hard to focus on both of these areas in one go. So, keep that in mind and choose any one of the paths.

About data analyst path and careers

I recommend you start with the Data analyst path. Software development could be your eventual destination and your end goal but if you are not a computer science major, I recommend starting with the Data Analyst path.

Because here’s what happened to me. I started as a Database developer then I transitioned into Software development over time. Now you can do the same thing. Why so? Because I have seen so many examples of people from a wide range of backgrounds succeeding the same way. So, this is a proven strategy that has worked from time to time. Now, let’s dig into the importance of learning Data Analytics.

The data analyst path is a focused area in technology where data is the key. Data is one of the valuable assets of every company. Especially companies like Facebook, Amazon, Netflix, or Google because they generate huge amounts of data. And databases are the place where they store this data. So, what you can do is become a database expert.

Technologies to learn in data analyst path

In this path, you will have to learn the language called SQL. SQL is the primary language used to interact with databases. Later you can also learn Python, one of the most popular and easiest programming languages to learn. Next up, you have Tableau, one of the in-demand reporting tools in the industry. There are also so many popular libraries in python you can learn for data analytics and visualization which will come in handy with your Tableau skills.

And finally, you can wrap up the data analyst path with the big data technology called ElasticSearch. It’s a level up from the SQL databases and you can learn this technology from scratch with ease. Check out the upcoming chapter for a complete breakdown of what you need to learn on this track and how you should approach it.

Time to spend on data analyst path

So, how long does this track take? If you can invest six hours per day, it will take about four to five months. I would recommend spending two months on SQL and mastering that technology. And then invest one month each in learning Python, Tableau, and ElasticSearch. Now, you're employable!

Database track is the fastest and the most lucrative career because that is the most direct way to get your foot in the door in tech. So, as soon as you graduate college, four to five months of hard work in this area could land you a well-paying job. So, I’m saying that focus on Data only as it has the lowest barrier of entry. Because guess what you're still a developer. You could be developing reports using SQL, Python, and Tableau.

Software development path and careers

The next path is the first elephant in the room, the Software Developer path. Okay, the software developer path is a challenging journey. You will learn the overall landscape of technology.

Technologies to learn in the Software development path

So, this means you need to gain knowledge of back-end technologies like Java, and Spring framework, learn software design principles, and also knowledge of front-end technologies like HTML, CSS, and JavaScript. All right, so the breadth of knowledge for this path is pretty wide. Again check out the upcoming chapter for a complete breakdown of what you need to learn on this path.

Time to spend on the Software development path

Learning software development on your own will take about a year of hard work. And then hopefully be in a position to land a job. Software development takes time! So, don't just graduate from college and sit for one year trying to learn Software Development. Get your foot in the door after four to five months of practice. Get your foot in the door as the database developer. You can learn software development on the weekends when you're employed as a database developer. And after two to three years, you can slowly transition into Software Development roles.

The future of the world lies in technology, so I encourage everyone to pursue a career in it. And, I want you to go into Tech because that’s where the world is headed.

Data Analyst Track Breakdown

Importance of data in the industry

Today, data has become the hottest topic in technology. Why is that? Well, users of the internet around the world generate huge amounts of data and this data has become a company's biggest asset. So, you may think “What do these companies even do with this data?” You see, companies can understand how they can optimize their product pages, their app design, or even social media ads by understanding their user activity. And they do this by hiring talented professionals to convert data into profitable business insights.

Now, I’m here to tell you that you can become one of those talented Data Analysts by learning the right skills which will help any such companies deliver valuable business decisions.

In this chapter, you will learn the necessary skills required to become a job-ready Data Analyst.

SQL – Oracle & Postgres

Now, if you are a complete beginner or have some idea about data, you need to start with databases. A Database is the one place where we store and handle all this data. And to interact with such databases you need to master the SQL language.

Why SQL? Well, any popular database that you take requires the language SQL to interact with this data. You need to learn SQL from scratch with one of the most popular databases like Oracle. You should also be preparing yourself with plenty of progressive real-world challenges which are available online. So, within just one month of study and practice, you are a job-ready Oracle SQL Master!

Next up, you are going to turn yourself into a SQL query wizard! What? Yes, you should start learning Postgres, another popular and widely database software in the open-source community. Why so? Postgres offers a wider variety of features compared to other databases. So, you need to get the opportunity to dive deep into Postgres by practicing puzzles available online with solutions that will make you extract critical insights from the databases. After learning Postgres Database, you’ll never be afraid to look at a large SQL query again.

Python + Data Visualization

Followed by this, you must start learning Python, one of the most in-demand programming languages in the world right now! Whether you want to work on web applications, machine learning, data science, automation and so much more. Python language is very easy to learn and requires no prerequisites, and it is perfect for anyone who is looking to land a job as an entry-level developer.

You can start by learning the fundamental programming concepts such as variables and datatypes then expand on to learn more comprehensive topics such as functions, control flow and master Object Oriented Programming thoroughly. Then finish off by covering classes, inheritance, python script files, file IO and more. At the end of each topic, make sure you give yourself the chance to practice everything you had covered with programming challenges with are available online. Then, whether you get these challenges right or wrong, check for in-depth solutions to understand WHY we solve things a certain way. So by doing all this you won’t just sit back and watch a bunch of videos, rather you get your hands dirty and practice writing code.

You may think there are tons of Python resources out there. But most of them expect you to learn by just watching or just reading. Well, that is not an effective way to learn! So, make sure you find the right resource that works for you.

Now, follow up with a level-up of your python skills by learning Data Analytics and Data Visualization which are critical and used in companies like Apple, Amazon, Facebook, and more with large amounts of raw, unorganized data. In the next few years, trillion gigabytes of data will need to be managed and processed by these companies and they are willing to pay top dollar to get skilled developers who can analyze and get insights from this data.

The Python libraries that you should be learning in this track can be broken down into two large categories- Data Analytics and Visualization. The Data Analytics side will include NumPy, SciPy, and Pandas. On the Visualization side, you should learn Matplotlib, Seaborn, and Ploty. Even I’m excited for you to list these libraries on your resume because you’ll see an instant jump in recruiters willing to interview you. These skills will get you to the point where you can use these libraries confidently and effectively in the workplace.

Not only that, mastering Data Analytics and Visualization skills will set you up to learn more advanced topics such as Machine Learning. So, skills to digest vast amounts of data and identify the important elements are very important. Once analyzed, data visualization is needed to tell a story and present the insights in a form where more people can understand the key points and make better decisions faster.

Tableau

By now, you are already a SQL wizard and python geek! So, what next?! Do you want to learn a super-hot industry skill that’s in demand more and more everywhere? I bet you do!

Let me introduce you to Tableau. With this technology, you will be able to present cool-looking visual dashboards and impress your teams with them. So if you want to learn a new technical skill, or if you are brand new to the world of data, then Tableau is the go-to technology to master!

In Tableau, you need to learn all of the features from scratch and learn how you can discover data patterns such as customer purchase behavior, pricing, and sales trends as well as customer demographics and geolocation analysis. You’ll become confident by upskilling yourself with Tableau because you will be the master of the art of turning data into critical information for key decision-making!

Elasticsearch

Finally, by the end of this learning track, take time and master the hottest big data technology on the market Elasticsearch! Elasticsearch is a powerful distributed, RESTful search and analytics engine capable of solving a growing number of use cases. Elasticsearch is one of the biggest players in the Big Data space since Hadoop. By adding Elasticsearch to your Resume or LinkedIn profile you’ll gain the attention of various companies investing in the technology. That is Awesome.

By the end of this track, you must learn everything there is to know about how to build an Elasticsearch engine and how to perform real-time analytics using accompanying tools: Logstash and Kibana, which make up the elastic search ecosystem.

All right, let’s sum up. When you complete this learning track you will have the skills such as SQL with knowledge of Oracle and Postgres databases, Python with Data Analytics and Visualization skills, Tableau for analyzing data patterns and decision making, and ElasticSearch for performing real-time analytics.

Time required to spend on data analyst path

Let me share the time frame that’s required to go through the track. Now it varies for different students as you may be a beginner or have intermediate knowledge in tech. So, don’t worry about it, focus on building your employable skills and you will land a good job.

So, I will recommend that you spend two to three months on the SQL language, one or two months on the Python language, and one month each on Tableau and ElasticSearch, that means that after five to six months of hard work and dedication you will be ready to help solve real-world problems using data and become a professional Data Analyst who is job ready!

So there you go. That’s the complete breakdown of the Data Analyst learning track with the time frame required to complete it. Go on and start learning with this newfound knowledge.

Software Developer Track Breakdown

Now, I will break down the skills from the Software Developer learning track you must focus on.

Java Programming Language

In this track, you should start off learning the Java Programming language. Here, you will need to learn about the basic building blocks of a programming language such as loops, control flow, and data types, and understand how to implement them with the help of Java. Java is special because of the fundamental concepts it includes such as Classes, Objects, and Interfaces. So learning these concepts and understanding the principles behind them is very important.

Java is also famous for the support of critical features like file processing and exception handling, which you will require in almost every software development project. Make sure you get a good grasp of these concepts by learning them thoroughly and building projects using them. Because this practical approach to Java will help you master programming in an easy and fun way. Believe it or not, once you cover the topics we have discussed till now, you will become so much more confident with Java.

Next up, you need to master practical Java development. Now, what do I mean by that? Well, you need to learn the unique selling points of the Java language itself like the collections, generics, multithreading, JDBC, and lambda expressions. And again the best way to master these topics are by building more projects which involve real-world problem. These types of projects where you build a practical application that lets you handle data, for example, will make you understand the real power of the Java language.

Databases + SQL

By now you will become strong in Java language, its syntax, and programming concepts. Well, next you need to learn databases and the SQL language. Remember that every application needs a database to store data persistently. That’s why databases are a must to learn a skill for software developers. SQL is also critical because it is the data interaction language through which you handle the application’s data.

Now, there are two popular options for choosing database software which is Oracle and Postgres. So, pick a database software of your choice, and learn how to set them up on your computer. Then you can start off learning how you can use SQL to create tables, and perform the CRUD operations where CRUD stands for Create, Read, Update, and Delete. Once you do that, you will understand the real benefits of databases.

Object-oriented design principle

Okay, once you learn databases and SQL, what next? Next, you need to learn about Object-oriented design. This is a very nerdy concept that is required for developing software with an object-oriented language like Java. Why “nerdy”? Well, the real craftsmanship of a software developer is in software design skills. Here’s where you will evolve from being just a programmer to a software developer.

In Object-oriented design, you need to learn the five core design principles popularly known by the acronym “SOLID”. They are:

  • Single Responsibility Principle
  • Open-Closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle

Once you learn these design principles, you can apply these concepts to understand some practical design problems you can find online and that will make you a “SOLID” software developer.

Spring framework with Linux and Docker

Now we will move on to the exciting part of this learning track. You get to use the combined knowledge of Java, and SQL, to learn the Spring framework. Spring is the most popular framework in the Java ecosystem with over 90% of enterprise Java applications built using Spring. So, you can’t call yourself a complete Java Developer without having experience developing using the Spring framework.

You will need to cover concepts like Spring MVC, Spring AOP, Spring Security, Thymleaf, and Hibernate. Not only that, I will recommend you to go beyond this and learn how to design and build an industry-ready application, and learn how to deploy a project on a production-grade AWS server containerized using Docker.

Now, Docker is a very popular tool nowadays to containerize your applications so that you can officially write once and run everywhere. With Docker, you can create a virtual image of all the necessary components that your application needs to run on any operating system and you can just send that package off to anyone and they'll be able to run it.

And you also need to learn about the basics of Linux commands. Now you don't need to be a Linux expert or anything. Learn the 20% of the most important Linux commands that gets you 80% of the job done. And by the time learn Linux and Docker, you'll know just enough knowledge about production to be very proficient in the industry setting.

You may be curious about what type of project you should be building, right?

Well, I will recommend you build a project that solves a problem statement. One such example can be to build a project management tool where managers can assign employees various projects, and track the stages of the project with an infographic to know how many projects are present in the pipeline. Trust me, projects like this where you solve a real-world problem statement are far better than building to-do apps, Twitter clones, and so on.

Front-end knowledge

Moving on, now, I will recommend you learn a little bit of HTML, CSS, and JavaScript for the front-end knowledge but that’s a cakewalk. You can learn these technologies in a week, trust me. After this, you can learn any front-end frameworks like React, Angular, or Vue JS of your choice. These libraries and frameworks are very useful to handle the front-end components. But, the front end is not as crucial as the back end in my opinion.

You see, the Spring framework completes you as a professional Software developer in Java. You will become so strong with the back-end concepts and learn how you can solve real-world problems with software development knowledge. So, keep that in mind while you learn these front-end technologies by yourself. Because there are a lot of templates and website builders that are readily available for you to play around with.

Apache Spark

Next up, you can wrap up this learning track by learning a hot and trending big data skill like the Apache Spark technology. You see, from my industry knowledge of deploying various clusters in a distributed production environment using a variety of technologies like Hadoop, Cassandra, and ElasticSearch, Apache Spark is my favorite one to work with, why is that? It is the next-generation batch and stream processing engine because it is proven to be the fastest big data technology.

Ever heard about Netflix? They use Apache spark extensively to build out their Machine Learning pipelines which recommend users with binge-worthy content every second. So, the demand for Apache Spark has skyrocketed in recent years, and having this technology in your resume is truly a game-changer.

So, Apache Spark comes with various Java dataset APIs to slice and dice data, and also you can apply them to various data transformation techniques. You will need to learn how to configure Spark jobs to run on the cloud and learn about performance tuning to scale out your clusters with big data. You can also get your hands dirty by learning Machine learning algorithms with Apache Spark to perform data clustering and classification. Once you learn the key concepts I will now recommend you build several practical Spark applications to gain practical knowledge.

All right, I hope you are now pumped up about the Software developer learning track.

Time Required for learning track

Let me share the time frame that’s required to go through this learning track. Now it varies for different people as you may be a beginner or have intermediate knowledge of tech.

So, I will recommend that you spend three to four months learning the Java language. Dedicate two to three months to learning SQL and databases. Spend one month covering the software design concepts. Work on Spring and cool projects for two to three months. Then, two to three weeks learning front-end technologies. And finally, one more month to learn Apache Spark. Okay, that sums up one year of dedication and hard work to become a professional software developer in Java who is equipped to solve real-world software problems.

So there you go. That’s the complete breakdown of the Software Developer learning track with the time frame required to complete it. Go on and start learning with this newfound knowledge. 

YouTube Video

Resources

About the Author

Imtiaz Ahmad is an award-winning Udemy Instructor who is highly experienced in big data technologies and enterprise software architectures. Imtiaz has spent a considerable amount of time building financial software on Wall St. and worked with companies like S&P, Goldman Sachs, AOL and JP Morgan along with helping various startups solve mission-critical software problems. In his 13+ years of experience, Imtiaz has also taught software development in programming languages like Java, C++, Python, PL/SQL, Ruby and JavaScript. He's the founder of Job Ready Programmer - an online programming school that prepares students of all backgrounds to become professional job-ready software developers through real-world programming courses.

Top comments (0)