Home » Software Development » 10 Things Every Programmer and Software Engineer should Know

About Javin Paul

Javin Paul
I have been working in Java, FIX Tutorial and Tibco RV messaging technology from past 7 years. I am interested in writing and meeting people, reading and learning about new subjects.

10 Things Every Programmer and Software Engineer should Know

If you have been programming for some time and looking to learn to programme then you might be thinking about what makes a good programmer? What a computer science graduate can do to prepare for a career in software development and programming? What are the things expected of a junior developer are some of the common questions I receive from many students on Facebook and Emails who follows me. These are mostly college students who now have access to a wealth of information thanks to the internet and eager to learn things in advance to prepare for their programming job interviews.

In this article, I’ll share 10 things, which I believe, every programmer should know. This includes a programming language like C++ or Java, essential computer science concepts like Data Structure, Algorithms and Computer Network basics, essential tools like Git, Microsoft Word and Excel, skills like SQL and UNIX, editors like Eclipse or Visual Studio, text editors e.g. sublime and NotePad++ etc.

This list is by no means complete but it provides you a good starting point for things a programmer should know. If you are aiming for a career in software development and looking for a programming job then these are things you can learn and improve to stay ahead of your competition.

Things Every Programmers and Developer should know

Without further ado, here is a list of things which I personally believe, every programmer should know, irrespective of the job he is doing. These are basic skills and will serve you for a long time. Any investment made into this in terms of time, money and effort will help you to reap rewards throughout your career.

1) Data Structure and Algorithm

If you want to become a programmer then you ought to know Data Structure and Algorithms well, there is no escape. This is one of the important topic of any programming job interview and without you knowing basic data structures e.g.
array, linked list, map, set, it’s not possible to write a real-world application.

That’s why every programmer should put serious effort to learn Data structure and Algorithm during their computer science course.

If you are a self-taught programmer, then also you must know Data structure and algorithm, in fact, many programming bootcamp will teach you Data structure and algorithm as the first thing.

good programmer

2) Source control

Source control is used to store code and if you want to become a coder or software developer, you must know version control tools like Git and SVN.

Thankfully Git and Github have streamlined the market and now more than 70% organization uses Git, hence you can get away by just learning Git.

good programmer

3) Text Editors

There is not a single day when I have not used a text editor while working as programmers. It’s one of the essential tools even for non-programmers and anyone who works with computers.

I have mostly used NotePad on Windows and VI in Linux but nowadays you have a lot of choices available in terms of advanced editors like Sublime and NotePad++, which provides IDE like functionalities.

I suggest you to spend some time learning your favorite Editor and keyboard shortcuts, productivity tips are something you can learn.

good programmer

4) IDEs

The modern IDES e.g. Eclipse or Visual Studio is the single most important tool for any programmers. For C, C++ and C# programmer the choice is clear, the Visual Studio and for Python developers, Jupiter Notebook is getting better and better every day.

For Java Programmers, there are three major IDE to choose e.g. Eclipse, NetBeans, and IntelliJ, while Eclipse is my favorite, IntelliJIDEA is not bad at all.

good programmer

5) Database and SQL

SQL is a classic, it’s been around for more than 30 years and I think it will be around for another 30 years. Given the omnipresence of the database, it’s expected from a programmer that he is familiar with essential database concepts like normalization and table design along with SQL.

There are many databases e.g. Oracle, MySQL, SQL Server, PostgreSQL etc but knowing just one is enough. The key point is that you should be familiar with the database. You should know how to insert/update/delete data and write SQL queries to retrieve it.

good programmer

6) UNIX or Linux

Like SQL, UNIX also has withstood the test of time. It’s also been around for more than 30 years and I hope it will there for many more coming years. Since, most of the times programmers have to work in UNIX machine e.g. Linux servers, good knowledge of Linx command line goes a long way.

It allows you to work effectively. You can search files, know what’s going on with the system by checking its CPU and memory usage, and perform basic and advance task.

good programmer

7) Microsoft Excel

Excel is one of the king tools for programmers, software developers, project manager, traders, and business guys. It’s much more than just spreadsheet software. It provides many useful features and functions to perform sophisticated data analysis.

I have used Excel to track progress, reconcile data, data analysis, data quality checks and for project planning.

It has several usages and that’s why I urge every programmer to learn Excel in depth. Instead of just copy pasting data You should know basic functions e.g. searching, sorting, filtering and VLOOKUP to compare stuff.

good programmer

8) Programming languages

As a programmer, you must know a programming language e.g.
C++ or Java or maybe Python or JavaScript. You can choose whatever you want to but my personal suggestion is that you should at least know Java.

It’s very easy to start with and that’s why a good choice for beginners. It’s also immensely powerful and allows you to virtually anything.

It has got libraries from doing basic stuff e.g. web development to Big Data and so on.

good programmer

9) Networking basics

Today’s world is inter-connected world and anywhere you go, you will find computer networks, starting from home where you are using WIFI across many devices to school, college, and offices which uses Local Area Network (LAN) to the Internet.

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

Bottom line is that you must understand the networking basics to understand, develop and support your application.

good programmer

10) Scripting language

In point # 8 I have asked you to learn a Programming language and here I am asking you to learn a scripting language? Why? Can the same programming language not be used as a scripting language?

Well, there is certainly some language which is good for both OOP coding and scripting like Python and that’s why I asked you to learn it at least but if you happen to learn C/C++ or Java then you can’t whip out something as quickly as a Python or Perl developer can do.

good programmer

The scripting language makes it easy to create tools and scripts to solve common problems in the programming world. If you have a good command over a scripting language e.g. Python then you can automate mundane stuff easily.

That’s all about 10 things every Programmer should know. Computer science graduates and people who aspire to become programmers can use this list to find out about things e.g. tools and skill to become a successful programmer

Other Programming articles you may like

10 Algorithm Books Every Programmer Should Read

10 Tips to Improve your Programming Skill

10 OOP Design Principles Every Programmer Should Know

10 Tools Every Software Engineer should know

10 High paying Career Options for Programmers and developers

10 Tips to become a better Java developer

100+ Data Structure and Algorithm Questions for Programmers

10 Unit testing tools for Java Programmers

Thanks for reading this article so far. If you find this article useful then please share with your friends and colleagues. If you have any questions or feedback then please drop a note.

Published on Java Code Geeks with permission by Javin Paul, partner at our JCG program. See the original article here: 10 Things Every Programmer and Software Engineer should Know

Opinions expressed by Java Code Geeks contributors are their own.

(+1 rating, 3 votes)
You need to be a registered member to rate this.
7 Comments Views Tweet it!
Do you want to know how to develop your skillset to become a Java Rockstar?
Subscribe to our newsletter to start Rocking right now!
To get you started we give you our best selling eBooks for FREE!
1. JPA Mini Book
2. JVM Troubleshooting Guide
3. JUnit Tutorial for Unit Testing
4. Java Annotations Tutorial
5. Java Interview Questions
6. Spring Interview Questions
7. Android UI Design
and many more ....
I agree to the Terms and Privacy Policy

Leave a Reply

7 Comment threads
0 Thread replies
Most reacted comment
Hottest comment thread
7 Comment authors
VarnantJoeHxWaqar HussainJesse T HoffmannTeo Recent comment authors

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

newest oldest most voted
Notify of

Why was this written?


Quite in-depth, I suppose I would agree with most of this except for that Java is ‘best’ to learn with. It’s got lots of issues and pitfalls that can trip new people up. I honestly think that the best language you can learn today is C#. At least where I live, it’s making a huge splash in the market to handle almost anything. Cross-device development using Xamarin is only becoming more in demand, for example. Excellent article. Please revise some of your spelling, grammar and sentence structure if you get the chance please. :) I’ll be learning some of the… Read more »


Why to worry about IDEs when so many text editors today can manage it all?

Jesse T Hoffmann
Jesse T Hoffmann

Number 1 should instead be “Know how to fit a web page to screen width on mobile”.

Waqar Hussain
Waqar Hussain

Java is really that necessary to be a programmer, or you prefer it because your site seems about java.


I would also add regex to the list. It’s amazing what you can accomplish with a good regular expression.


very good one.