10 Things Every Programmer Should Know

Learn more about what you should know and learn as a new or exploring programmer, and where you can learn these skills

The Startup


If you have been programming for some time and looking to learn to program then you might be thinking about what makes a good programmer.

What can a computer science graduate do to prepare for a career in software development and programming?

What is 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 structures, algorithms and computer networking basics, essential tools like Git, Microsoft Word and Excel, skills like SQL and UNIX, editors like Eclipse or Visual Studio, and text editors.

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 that 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 these skills in terms of time, money, and effort will help you to reap rewards throughout your career.

1. Data Structures and Algorithms

If you want to become a programmer then you ought to know data structure and algorithms well; there’s no way around it.

This is one of the important topics 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 structures and algorithms during their computer science course.

Even If you are a self-taught programmer, then also you must know data structures and algorithms; in fact, many programming bootcamp will teach you data structures and algorithms as the first thing.

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

2. Source Control or Version Control System

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% of organizations use Git, so you can probably get away by just learning Git.

By the way, you should put some effort into learning Git well, and you should be comfortable with advanced version control concepts like branching and merging as well as the tool itself using both the command line and GUI.

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

3. Text Editors

There is not a single day when I have not used a text editor while working as programmer. 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 you have a lot of choices available in terms of advanced editors like Sublime and NotePad++, which provide IDE-like functionalities.

I suggest you spend some time learning your favorite editor and keyboard shortcuts, productivity tips are something you can learn. If you like Sublime then Sublime Text for Rapid Web Development is a good course to learn such things.

4. IDEs

The modern IDE is the single most important tool for any programmer. For C, C++, and C# programmers, the choice is clear: Visual Studio. And for Python developers, Jupiter Notebook is getting better and better every day.

For Java programmers, there are three major IDEs to choose from: Eclipse, NetBeans, and IntelliJ IDEA.

While Eclipse is my favorite, IntelliJ IDEA is probably the most powerful 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.

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

Knowledge of advanced concepts like joining an aggregate function is a big bonus and if you want to get that then The Complete SQL BootCamp is a great place to start with.

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 be there for many more coming years.

Since most programmers have to work in Linux machines at some point, good knowledge of the Linux 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 tasks.

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

7. Microsoft Excel

Excel is one of the king tools for programmers, software developers, project managers, 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 project planning.

It has several uses and that’s why I urge every programmer to learn Excel in depth. Instead of just copying and pasting data, you should know basic functions like searching, sorting, filtering, and VLOOKUP to compare stuff.

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.

8. Programming Languages

As a programmer, you must know a programming language: 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 do virtually anything.

It has got libraries from doing basic stuff like web development to more complex tasks with Big Data and so on. If you decide to learn Java then The Complete Java MasterClass is probably the best place to start with.

The Complete Java MasterClass

9. Networking Basics

Today’s world is an interconnected world and anywhere you go, you will find computer networks, starting from your home, where you are using Wi-Fi across many devices, to schools, colleges, and offices which use Local Area Network (LAN) to the Internet.

Most of the applications you will write will also not be standalone but a 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.

The bottom line is that you must understand the networking basics to understand, develop, and support your application. If you want to learn more then I suggest you join The Complete Networking Fundamentals course on Udemy. It’s a good starting point for beginners.

The Complete Networking Fundamentals

10. Scripting Languages

In point #8 I asked you to learn a programming language, and yet 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 are certainly some languages that are 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.

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

The Complete Python Bootcamp

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 like Python then you can automate mundane stuff easily.

Once again, I suggest you learn Python to kill two birds in one stone, and if you need some more resources, this list of free Python courses are also very helpful

11. Cloud Technologies

Every programmer should learn cloud technologies nowadays for several compelling reasons. Cloud computing offers scalable infrastructure, enabling developers to deploy, manage, and scale applications more efficiently.

With cloud services, developers can leverage resources on-demand, reducing infrastructure costs and improving flexibility.

Additionally, cloud platforms provide a variety of managed services, such as databases, storage, and machine learning, simplifying development tasks and accelerating time-to-market.

Integration with cloud services allows developers to build resilient, distributed systems and facilitates the adoption of microservices architecture.

Furthermore, understanding cloud technologies aligns with industry trends and positions developers to stay competitive in a landscape increasingly focused on cloud-based solutions.

One of the best way to learn Cloud is to prepare for cloud certifications like AWS Solution Architect associate which will help you to learn AWS and cloud technologies in depth. If you need a resource, I also recommend joining Ultimate AWS Certified Solutions Architect Associate SAA-C03 course by Stephane Maarek, an AWS Guru.

12. Prompt Engineering and Generative AI

Programmers can greatly benefit from learning prompt engineering now, especially given the growing importance of generative AI like ChatGPT. Prompt engineering involves crafting specific instructions or queries to guide the responses of large language models, enhancing their usefulness.

Java developers can leverage prompt engineering to interact effectively with ChatGPT for various tasks, such as generating code snippets, solving programming challenges, or obtaining insights into complex problems.

By mastering prompt engineering, Java developers can optimize their interactions with ChatGPT, ensuring more accurate and tailored responses to their queries. To delve into prompt engineering, developers can explore the Coursera course “Prompt Engineering for ChatGPT.”

This course provides practical insights into creating effective prompts, understanding the principles of prompting, and employing advanced strategies for improved interactions with generative AI models like ChatGPT.

It’s a valuable resource for any programmer seeking to enhance their skills in leveraging generative AI technologies for diverse applications.

There is also a Coursera project called ChatGPT Prompt Engineering for Developers by Andrew Ng, one of Coursera founder and AI expert. You can also combine join this course to learn Prompt Engineer for developer productivity.

By the way, instead of joining these courses and specialization individually, you can also join the Coursera Plus, a subscription plan from Coursera which gives you unlimited access to their most popular courses, specialization, professional certificate, and guided projects.

That’s all about the 10 things every programmer should learn and know. Computer science graduates and people who aspire to become programmers can use this list to find out about things, tools, and skills to become a successful programmers.

By the way, if you are interested to learn more about things programmers should know, there is a lot of guidance available in terms of important things for programmers and you can find great advice on the Internet as 97 Things Programmers should know, a must-read for every serious programmer.

Other Medium Articles you may like:

This story is published in The Startup, Medium’s largest entrepreneurship publication followed by +423,678 people.

Subscribe to receive our top stories here.



The Startup

I am Java programmer, blogger, working on Java, J2EE, UNIX, FIX Protocol. I share Java tips on http://javarevisited.blogspot.com and http://java67.com