10 things every programmer should know

If you've had your fair share of programming, you've most definitely tried to find a way to get better. And to do that, you have to know what makes a good programmer.

After all, what can a computer science graduate do to prepare you for a long and successful career in programming, right?

In these articles, I'll share 10 things I believe every programmer should know or learn as soon as possible.

This article will include

  • Programming languages like C++ or Java
  • Essential computer science concepts (data structures, algorithms)
  • Essential tools like Git, Microsoft Word or Excel
  • Skills you'll need such as SQL or UNIX
  • Editors such as Eclipse or VS

This goes without saying, but this list is nowhere near being complete, but you'll grasp a good starting point for the best things every programmer should know.

Without further ado, here's the list I personally believe every programmer should know – irrelevant of the job he's currently doing. These basic skills will serve you for a very long time.

And you should keep in mind that every investment you make into learning these skills will help you reap rewards throughout your career.

Or you could focus on learning how to use blockchain and get into the cryptocurrency world. We highly suggest Ivanontech.com for this. For those who don't know him, Ivan is an international speaker, blockchain educator, software developer, and data scientist.

My personal top 10 list every programmer should know is:

  1. Data structures and Algorithms
  2. Source Control
  3. Text editors
  4. IDEs
  5. Database and SQL
  6. UNIX
  7. Microsoft Excel (don't judge me)
  8. Programming languages
  9. Networking basics
  10. Scripting languages

Data structures and algorithms

If you're willing to succeed as a programmer, you have to know data structures and algorithms. There's no way around it.

It's really no wonder I've put it as the first of the list. It is one of the most important topics of any programming job interview you'll ever go to. And without proper knowledge of (at least) basic data structures such as arrays, linked lists, map etc, it's kind of impossible to write real-world applications.

That's why every programmer should put some serious effort to learn data structures during their computer science courses.

This goes for self-taught programmers, even if you are one you must know data structures and algorithms. Actually, most of the Bootcamps teach you data structure before anything else.

If you want to learn it for yourself then Data Structures and Algorithms: Deep Dive Using Java is a good place to start.

data structure and algorithms
Data structure and Algorithms

Source control

Putting it simply, source control is used to store the code you've been working on. And if your goal is to become a professional programmer, you've got to learn version control tools such as Git or SVN.

Personally, I prefer Git – and Git has already streamlined the market and now more than 70% of organizations use Git. So it's safe to say that it's okay to start with Git.

Additionally, you should put some effort into learning Git pretty well, and you're going to have to be comfortable with advanced versions controls such as branching and merging.

For beginners, The GitHub Ultimate: Master Git and GitHub is a good place to start with.

Source control
Source control

Text editors

There is not a single day you will go by that you will not use a text editor while working as a programmer. I know I haven't.

It's one of the most essential tools for anyone who works as a programmer.

Most people start out with NotePad on Windows, but as you'll find out there are a lot of choices in terms of advanced editors such as Sublime and Visual Studio, which provides IDE-like functionalities.

I highly suggest you spend more time learning your favorite editor and find out about their keyboard shortcuts and your productivity will sky-rocket.

If you like Sublime then Sublime Text for Rapid Web Development is a good course to learn such things.

The sublime text editor
The sublime text editor


The modern IDE is one of the most important tools for any programmer.

For languages like C, C++, and C# the choice is pretty obvious: Visual Studio. And for Python developers, the Jupiter Notebook is getting better every day.

For Java, on the other hand, there are three major IDEs you can choose from:

  • Eclipse
  • NetBeans
  • IntelliJ IDEA

While a lot of people lean more towards Eclipse, one must admit that IntelliJ IDEA is the most powerful out of them.

If you happen to be an IntelliJ IDEA fan, then I suggest you go through IntelliJ IDEA Tricks to Boost Productivity for Java Devs to learn your IDE better.

What an IDE looks like
What an IDE looks like

Database and SQL

SQL is a classic and will remain so for a long time.

It's been around for more than 30 years and it will probably be around for 30 more. Given the omnipresence of the database, it's actually expected from a programmer that he should be familiar with essential database concepts such as normalization and table design along with SQL.

There are a lot of options to know databases, but knowing just one is enough (for now). The moral of this section is that you have to be familiar with the database. You should know how to insert/update/delete data from the database – or write SQL queries to retrieve it.

A huge bonus is if you know advanced concepts such as aggregate functions – and if you want to get that then The Complete SQL BootCamp is a great place to start with.

What an SQL query looks like
What an SQL query looks like


Same as SQL, UNIX also withstood the test of time. It's been around for approximately 30 years, and I sure hope it's around for 30 more.

Since every programmer has to work on a Linux machine at some point in their career, good knowledge of Linux Commands Line should be a top priority.

It allows you to work efficiently and effectively. You can search for files, know what's going on with your system by checking the CPU and memory usage and other tasks.

If you want to learn Linux commands I suggest to go through Learn Linux in 5 Days and Level Up Your Career course on Udemy.

What a Linux desktop looks like
What a Linux desktop looks like

Microsoft Excel

Microsoft Excel is very underrated in my opinion.

Excel is one of the best tools for programmers, software developers, project managers and so much more. It's more than just a simple spreadsheet software as it's often dubbed.

It provides a lot of useful features and functionalities in order to perform a sophisticated data analysis.

Personally I've used excel for tracking progress, reconciling data, analyzing the data and so much more.

It has a lot of other uses and that's why I added it to the top 10 best things every programmer should know. Instead of just manipulating with data, you should know basic functions such as searching, filtering and VLOOKUP to compare cells.

If you want to learn Excel from scratch or want to improve your knowledge, Microsoft Excel — Excel from Beginner to Advanced is a great course to start with.

Microsoft Excel
Microsoft Excel

Programming languages

As a programmer, it's pretty important for you to have at least basic knowledge of “famous” programming languages, such as:

  • C++
  • Java
  • Python
  • JavaScript

You can choose whichever one you want more, but my personal suggestions are to go with Java.

It's very easy to start with and this is probably why it's a good choice for beginners. It's also tremendously powerful and allows you to virtually do anything.

It has a lot of useful libraries from doing the most basic stuff up to the more complex and complicated tasks with Big Data.

If you decide to learn Java then The Complete Java MasterClass is probably the best place to start with.

Some of the most famous programming languages
Some of the most famous programming languages

Networking basics

The world as we know it is interconnected, and anywhere you go you can find network access – starting with your home where you use your personal WiFi, up to all the places you visit on a daily basis (school, work, college, etc.).

Most of the applications you will write will also not be standalone but client-server kind of application where the call will go through the network to a server. Clients will access your application from anywhere in the world.

Bottom line, you have to understand the basics of how the network works in order to be a good programmer. If you want to learn more, I suggest you join The Complete Networking Fundamentals course on Udemy. It’s a good starting point for beginners.

How a basic network works
How a basic network works

Scripting languages

Above, I've suggested you learn a programming language – but here I tell you to learn a scripting language? Does it make sense? Can the same programming language also be used as a scripting language?

Scripting languages definitely deserve a place in the “10 things every programmer should know” list.

Well, there are a couple of languages that are good for both OOP coding and scripting, and that's why I suggested you learn both.

But, if you happen to learn C/C++ or Java, then you can't just simply whip out something as quickly as, say a Python or Perl developer might.

If you want to learn Python and need a course, The Complete Python Bootcamp is a great course to start with.


Difference Between Programming, Scripting, and Markup languages
Difference Between Programming, Scripting, and Markup languages

Care to add something to the “10 things every programmer should know” list? Contact us and let us know what you think!