This is my guide to increasing your salary by 230% or more and boosting your programmer career in 2021.

First, let me say one thing:

This is not just another article with tips like “read more books” or “write more code”.

I will show you practical steps from my experience that helped me increase my salary as a programmer by 230% for 2 years.

programmer career salary

Here are those 7 tips that worked for me:

Learn 2 New Programming Languages

“A language that doesn’t affect the way you think about programming is not worth knowing.” ― Alan J. Perlis

The knowledge of 2-3 languages is a great plus if you want to advance in your programmer career.

Here are the requirements of a python developer vacancy from indeed.com:

programmer vacancy requirements from indeed.com

To apply for this job you are supposed to know Python + Javascript (for frontend) + Node.js (for backend).

There are vacancies that sometimes require 3 and more programming languages.

programming languages worth learning

Learning a new programming language is not just about getting to know its syntax.

Every language has unique concepts that will make you a better programmer.

Below you can see the list of modern languages with their unique features.

Pick one of the languages from this list that have features you would like to learn.

programming languages to advance your skills

It is important to say, that you don’t have to master each of the languages you pick:

Just learn the basics and important concepts you need for your programmer career.

Golang

Golang is known for its interesting concurrency model.

golang logo

Instead of using an operating system’s threads, golang utilizes goroutines.

This concept will advance your skills and knowledge if you are not acquainted with them.

goroutines vs threads

Unlike threads, goroutines:

  • are managed by golang runtime, not by OS
  • are independent to hardware
  • start up faster
  • communicate by channels

Javascript

Event loop is a really interesting concept Javascript can boast of.

Though being single-threaded, JS can run asynchronous tasks thanks to event loop.

event loop will advance your programming skills

In my opinion, it is the most interesting concept in Javascript.

Clojure

“Lisp is the greatest single programming language ever designed.” ― Alan Kay

Clojure is a modern dialect of LISP.

This language just breaks your brains.

code

Maybe you will never use Clojure in production, but it will make you look at software design at a different angle.

Gain 20 Stars For Your Open Source Project In Github

“I was definitely not expecting people to help me with the project, but I was hoping for some feedback about what I’d done, and looking for ideas of what else people would think was a good idea.” ~ Linus Torvalds About Linux

Software engineering is unique for one reason:

You can get experience as a programmer without even working in this position.

github stars for programmer career

Besides, you may advance your skills by contributing to open-source software.

You can either contribute to existing projects in github, or start your own one.

Create a project from scratch

Search Reddit, Stackoferflow, Quora, or any other Q&A site and find some problems that are not solved yet.

Create a piece of software that solves this problem.

problem solving in a coding career

For example, people may ask in Reddit:

How do I make requests to a Twitter API with a programming language “X”?

programmer career advice - find open source project idea in reddit

If there is no library for a language “X” or the quality of existing libraries for that is poor, start a project that helps people with that.

Here are some ideas for an open-source project:

  • a static site generator
  • a telegram bot
  • a PDF invoice generator

Fork an existing project

There are lots of repositories in Github that are not maintained by their creators anymore.

abandoned github repository

You can just fork such a project and continue to maintain it.

Moreover, you can create a message in the community of the project you are forking from which says:

“Guys, I’ve forked a library “ABC” and will maintain it. Here is the link to the new repository.”

forking a github repository for an open source project

Thus, you get the support of people from the old community and your project may get some stars pretty soon.

There is a repository in github with a list of abandoned projects.

You can either become a lead maintainer of that project or use the advice above and fork it.

Here is the list of projects you can start from:

Promoting your project

Promote your project in Reddit, Quora, Stackoferflow, or any other service you like.

It is important not to spam everywhere with your link!

The right way to promote it to answer relevant questions and help people solve their problems by providing a link to your repo.

open source project promotion

Try to get at least 20 stars on GitHub for your project.

This number shows there is activity in your repo and people are interested in your project.

Learn How Your Main Stack Works Under The Hood

“You can never understand everything. But, you should push yourself to understand the system.” ~ Ryan Dahl (Creator of Node JS)

Besides knowing so-called classic computer science (algorithms, data structures), it’s very important  to know the internals of your main technology.

the internals of programming languages

You might never use a bubble sort algorithm in your daily work but you will have to know how V8 engine or JVM works under the hood depending on your main language and technology.

Here is the list of what you should know depending on your main language:

skills needed to become a better programmer

Learn 8 OOP Design Patterns With Real Projects

“A design that doesn’t take change into account risks major redesign in the future.” ~ Erich Gamma

16 of 25 Most paid technologies are object-oriented languages  according to  StackOverflow survey of 2020:

top paid programming languages

So knowing how to design object-oriented code properly is an extremely important skill for boosting your career.

If you never used design patterns in production, it’s easy to handle.

Create an open-source project where at least 8 design patterns are applied.

why use software design patterns

Employers often want to see your projects in GitHub to make sure you design code properly.

show me your code

An open-source project  where you used at least 8 design patterns is a great advantage when they decide whether to hire you or not.

Actually, it doesn’t matter what  kind of project you are going to create.

coding skills and open source software

It may be a pretty simple project like a blogging system  or a simple CMS,  but it is supposed to use object-oriented design patterns  in its code.

Let me give you a few examples of design patterns you can use if you decide to develop a blogging system to show your object design skills.

Designing a blogging platform to advance your programmer career

Every blog is supposed to have an email notification system.

notification

So, you need to use the adapter design pattern to make your email provider easy to replace.

interface EmailAdapter
{
    public function send(string $message): bool;
}

class MailChimpAdapter implements EmailAdapter
{
    private $mailChimp;

    public function __construct(MailChimp $mailChimp)
    {
        $this->mailChimp = $mailChimp;
    }

    public function send(string $message): bool
    {
        return $this->mailChimp->send($message);
    }
}
email

To organize complex logic (like registering a user and sending them an email), a facade pattern is really useful:

class RegisterFacade
{
    private string UserStorageInterface $userStorageInterface;
    private EmailAdapter $emailAdapter;

    public function __construct(
        UserStorageInterface $userStorageInterface,
        EmailAdapter $emailAdapter
    )
    {
        $this->userStorageInterface = $userStorageInterface;
        $this->emailAdapter = $emailAdapter;
    }

    public function register(User $user): bool
    {
        $this->userStorageInterface->store($user);
        return $this->emailAdapter->notify($user);
    }
}

Think of other design patterns you could use in your project following this link.

Get 150 Points In Stackoverflow

stackoverflow for career

Have you ever wondered:

How to become a good programmer?

The answer is simple: start to help others with programming problems!

programmer career tip: help other programmers

Stackoverflow is a good starting point for that.

Gain at least 150 points by answering questions and solving other developers’ problems.

This number is enough to impress HR and raise your salary.

Create Your Blog Or Youtube Channel

Running a blog or youtube channel is incredibly important to boost your career and salary.

It is one of the best programmer career advice you may get.

programming youtube channel for career

This shows your interest in programming, your ability to deliver your thoughts to other people.

Besides, it gives you one more valuable thing:

A blog creates your community which is helpful to find a better job or get promoted in your current job.

programming community

Even you are a beginner developer, you still have a lot to say to the world.

For example, make a few articles or videos on youtube about the start of your career, especially if you are a self-taught programmer.

If you have some experience, write a few words about interesting solutions you applied in your daily work.

ideas

Here are some ideas for blog posts and videos for your coding blog:

  • How I Became a Programmer within Half A Year
  • How to learn JavaScript For Beginners
  • Why Most People Fail to Learn How To Program

Get 3 Endorsements Or Recommendations In Linkedin

It makes a huge difference for your career to get at least 2 endorsements and 1 recommendation in Linkedin.

linkedin recommendation

Recommendations are more valuable for your profile than endorsements, but it is better to have both of them.

How To Get Endorsements And Recommendations In Linkedin

The first way to do that is by endorsing your colleagues.

You know each other’s skills best of all as you worked with these people.

They are likely to return the favor if you endorse them.

Getting recommendations is trickier but still possible.

Instead of asking directly for writing a recommendation for you do the following:

Make your request personalized and remember your accomplishments and contributions to a project you worked on together.

“Dear John, we worked with you for an ABCDE company 2 years ago. It was a great time and we worked really hard on our backend services. Could you please write a recommendation for me?”

Conclusion

I hope these tips will be helpful for your programmer career.

Now I’d like to hear what you think about them:

What is the most valuable tip for you?

What other tips can you share that helped you boost your career?

Please leave a comment below.

author image

About Stas Yankovskiy

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.