Pogorelovs

Navigate back to the homepage

How to become a software developer?

Sergey Pogorelov
October 19th, 2018 · 3 min read

Nowadays a lot of people are interested in becoming a software developer. Some of them love computers and technologies and some of them just want to switch their job to a better paid one. The amount of software development courses and boot camps are instantly growing and there are more and more developers.

Nevertheless, the demand for developers is pretty high. IT companies are constantly looking for new developers. But they’re looking for professionals who passionate about their job.

There are developers who work just for a paycheck and care only about the number of monitors they can have. Usually, they stuck somewhere in low positions doing stuff that they don’t like and with fear to be fired.

I want you to ask yourself ”Why am I want to be a software developer?”. Stop reading, take a few minutes, write-down answer for this question.

If the answer is “just money” you may be surprised but there are a lot of other opportunities that might be much more lucrative.

Becoming a developer is a long way, hence I suggest you to proceed only if you are curious about it or have passion. That’s the things that’ll help you to go through the long path of learning (which might never end and that’s good).

You still here? Let’s go to the learning process!

Creating your learning plan

Have you ever played RPG games?

They have a system of quests and rewards. Everything seems simple, you know exactly what to do in order to reach what you want.

Also, they have skill trees, the same you have with software development.

Barbarian skill trees from Diablo II

In our life we have tons of options and possibilities. We just need to find a plan to reach them.

The hardest thing is to begin.

Areas of software development

You might be wondering: “What programming language should I learn?

In order to figure it out, we’ll need to take a look at different software development areas.

Here’s a short table of software development areas and technologies used there:

AreaTechnologies
Data sciencePython, R
Web - Front endHTML, CSS, JavaScript
Web - Back endJava, C#, Python, Node.js
Mobile - AndroidJava, Kotlin
Mobile - iOSObjective-C, Swift
Desktop - WindowsC#, C++, Qt, Java
Desktop - LinuxC++, Qt, Python, Java
Desktop - OS XObjective-C, Swift, C++, Qt, Java
EmbeddedC++, C, Assembly
Game developmentC++, Unreal engine, Unity

To begin just choose one area which seems most interesting to you. You can go to job posting sites and look at what jobs are trending now and pick technologies from there. It’ll help you to choose what technologies you should learn.

You can find a lot of books for programming languages and technologies. The topic is so wide so it’s impossible to cover all technologies in one blog post.

But I can give you some resources that might be helpful no matter what technology you’ll choose.

As a first step, you can jump-in to learning a programming language or to start from basics.

The good scenario is to combine practical and theoretical knowledge, so try to find books or courses that’ll learn you not just how to write code but also how to think as a developer.

Know the basics

No matter what technology you’ll choose you’ll need to know the basics. Most of the programming languages are C-like languages, hence if you know one programming language you’ll be comfortable working with other languages.

If you have the time it’ll be good to start from CS50 course. You can watch lectures on their YouTube channel.

Also as a faculty reading, I’d suggest Code: The Hidden Language of Computer Hardware and Software by Charles Petzold. It won’t teach you how to write code but that’s a good book that may give you some intel on how computers and programming languages were created.

No matter what you choose - just start to learn it.

A programming language is just a tool

I’ve taken a long path from learning C++ and C# and currently I work with Java and JavaScript but I benefited from that knowledge that might seem unused.

If you want to be a good developer you should understand that programming language is just a tool and it should solve problems.

If needed you can always switch to other programming languages, so don’t be afraid to learn new things :)

Join my email list and get notified about new content

Be the first to receive my latest content with the ability to opt-out at anytime. I promise not to spam your inbox or share your email with any third parties.

More articles from Pogorelovs

Installation and configuration of NX server on remote host

Installation and configuration of NX server on remote host...

April 13th, 2020 · 1 min read

Sbt assembly without tests

Sometimes it might be useful to run the `sbt assembly` without tests...

February 7th, 2020 · 1 min read
© 2018–2020 Pogorelovs
Link to $https://github.com/sergeioffLink to $https://www.linkedin.com/in/sergeioff