If you’ve been programming for a while, or are about to learn to program, then one thing you might be thinking about is: What makes a good programmer? How do computer science graduates prepare for careers in software development and programming? What does the workplace expect of a junior developer? This is a concern of novice programmers near graduation or just entering the workforce.

The following 10 skills are not required, but they provide a good starting point for what programmers should know for the novice programmer. These are the basic skills of being a programmer that will stay with you throughout your career as a programmer. If your goal is to work in software development and programming, these are all things you can learn and improve to stay competitive.

Data structures and algorithms

If you want to be a competent programmer, you must understand data structures and algorithms. This is one of the key themes of any programming job interview, and it is impossible to write real-world applications without knowing basic data structures (such as arrays, linked lists, maps, collections). Data structure and algorithm are the aspects that can best reflect the basic skills of programmers. No matter in computer majors or training courses, data structure and algorithm are the first content to be taught.

For those of you who are already working but don’t know enough about data structures and algorithms, take the time to learn. Don’t just settle for tools and frameworks. The basics are good.

Source code management

Source code control is used to store code, and programmers must understand version-control tools like Git and SVN. Source code management can reduce the dependence on individual people, facilitate code review, and improve the overall level of the team.



In terms of the trend of social development, distributed is the trend, Git just adapted to this trend, the previous mainstream code management schemes such as CVS, SVN are centralized. Due to the distributed characteristics, it creates higher flexibility and can adapt to more scenarios. So Git simplifies the market to some degree. For beginners, GitHub Ultimate: MasterGit and GitHub are a good place to start. You also need to be familiar with advanced version control concepts such as branching and merging, as well as tools that use the command line and GUI.

Text editor

Not a day goes by when you don’t work as a programmer without using a text editor. It is one of the essential tools even for non-programmers and anyone who works with computers.

Typically Notepad is used primarily on Windows and Vim on Linux, but there are many options for advanced editors such as Sublime and Notepad ++, which provide IDE-like functionality. Spend some time learning about your favorite editors, keyboard shortcuts and productivity tips.

IDE

A modern IDE is a very important tool for any programmer. For C, C++, and C programmers, the choice is clear: Visual Studio. For Python developers, Jupiter Notebook is getting better and better every day. For Java programmers, there are three main IDEs to choose from: Eclipse, Netbeans, and IntelliJ. For programmers working with PHP, the “best language in the world”, PHPStorm and Sublime Text are good choices.

Databases and SQL

SQL allows users to access a large amount of data at a time. With a single statement, the SQL command can retrieve or update thousands of records in multiple tables. This avoids a lot of complexity. When a computer program wants to process each record, it no longer needs to read one record at a time in a particular order. Tasks that used to take hundreds of lines of program code can now be done in a few lines. SQL is a classic, databases are ubiquitous, and programmers should be familiar with basic database concepts such as canonicalization and table design, as well as SQL.

The key is to be familiar with the database, know how to insert/update/delete data, and how to write SQL queries to retrieve the data. An understanding of advanced concepts such as join aggregate functions will also be useful.

Unix or Linux

Like SQL, UNIX has stood the test of time and has been around for more than 30 years. Since most programmers will have to work on a UNIX machine at some point, a good knowledge of the LINX command line is helpful.



It allows programmers to work more efficiently, search files, learn about a system’s health by checking its CPU and memory usage, and perform both basic and advanced tasks. There’s a beginner & advanced guide on GitHub called “The Art of the Command Line,” which has over 50,000 stars on GitHub. This resource is great for both beginner and experienced command line users. The portal is here:https://github.com/jlevy/the-…

Excel

Excel is one of the best tools for programmers, software developers, project managers, traders, and business people. It is more than just spreadsheet software and provides many useful features and functions to perform complex data analysis.

Programmers can use Excel to track progress, coordinate data, analyze data, check data quality, and plan projects. This is why every programmer is urged to learn Excel in depth. It’s not just about copying and pasting data, it should also have basic features like searching, sorting, filtering, and Vlookup to compare data.

A programming language

As a programmer, you must go deep into programming languages: C++, Java, PHP, Python, JavaScript… Choose according to your interests and specific circumstances.

PHP is a simple back-end technical programming language, which has the closest relationship with HTML. When you learn HTML and then learn PHP, you will find that you can start very quickly. What freshmen like most about PHP is that it can be run directly embedded in HTML, so it is the first choice to choose a back-end programming language without considering many problems.

Network based

Today’s world is a connected world, computer networks are ubiquitous wherever you go, starting at home, using Wi-Fi on many devices, to using local area networks (LANs) to connecting everything to schools, companies and stores.

Most applications written by programmers are also not standalone, but client-server type applications, in which requests are routed to the server over the network and the application is accessed by the client from anywhere in the world. So programmers must understand the basics of the network in order to better understand, develop, and support their applications.

Scripting language

Now that we’ve talked about programming languages, can’t the same programming language be used as a scripting language?

Of course, there are languages that are good for both object-oriented programming and scripting, such as Python. But if you happen to learn C/C++ or Java, you won’t be able to get things done as quickly as a Python or Perl developer.

Scripting languages make it easy to create tools and scripts to solve common problems in the programming world, and if you have a good grasp of a scripting language like Python, you can easily automate your daily work.

The above 10 skills cover the essential skills that every programmer needs to get started in the industry. I hope it can provide a reference for every programmer reading this article, as well as a new way of thinking about career planning. We also welcome seniors in the industry to share their experience and experience, to protect the novice programmers.