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.

Here are those 7 tips that worked for me:
- 1. Learn 2 New Programming Languages
- 2. Gain 20 Stars For Your Open Source Project In Github
- 3. Learn How Your Main Stack Works Under The Hood
- 4. Learn 8 OOP Design Patterns With Real Projects
- 5. Get 150 Points In Stackoverflow
- 6, Create Your Blog Or Youtube Channel
- 7. Get 3 Endorsements Or Recommendations In Linkedin
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:

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.

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.

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.

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.

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.

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.

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.

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.

For example, people may ask in Reddit:
How do I make requests to a Twitter API with a programming language “X”?

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.

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.”

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.

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.

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:

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:

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.

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

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.

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.

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);
}
}

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

Have you ever wondered:
How to become a good programmer?
The answer is simple: start to help others with programming problems!

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.

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.

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.

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.

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.