In this article, there are 8 concepts to understand if you want to become an advanced programmer faster. The list is not complete, but it can be a good starting point for self-education in development. Learning programming languages is implied by default.
DATA STRUCTURES AND ALGORITHMS
Without knowledge of basic data structures (arrays, linked lists, hash tables, etc.) it is difficult to write a real application. This is one of the important topics in an interview. Many boot camps of programmers teach you data structures and algorithms in the first place.
VERSION CONTROL SYSTEM — GIT
Git helps to store and modify code, makes team development convenient. When several developers write a single project, the version control system helps them make changes in parallel without overwriting each other or creating conflicts.
Git is not the only version control system, but most companies and projects use it, so we recommend that you give it your preference. Git has both graphical interfaces and a command line to work with. The choice is yours.
TEXT EDITORS AND IDE
The text editor is an important assistant for any IT user.
NotePad on Windows and Vim on Linux are popular tools for tasks in development. There is also a wide range of editors with advanced features (e.g. Sublime and NotePad ++) which provide a feature set similar to the real IDE.
Development in editors requires a lot of independent actions: it is necessary to save files, compile, build, etc. separately. This is useful for a better understanding of the computer but slows down the development process a lot. The approach to programming has changed completely with the IDE — integrated development environments. They combine and automate most of the necessary processes from the first line of code to the project release.
It will be useful to spend time on learning the hotkeys.
DATABASES AND SQL
SQL is a classic and very valuable tool. It has existed for over 30 years and will be popular among developers for a long time to come. A wide range of database applications implies that the programmer will be expected to have basic knowledge in this area.
There are many databases: Oracle, Microsoft SQL Server, MySQL, PostgreSQL, and others. But for starters, it will be enough to know only the key points: insert/update/delete data and write SQL queries.
Nowadays, in large-scale distributed projects NoSQL solutions are becoming more and more popular, where data storage and access are arranged differently. If you’re just beginning to study the database, we recommend you to first deal with the relational approach, and then study NoSQL.
COMMAND-LINE
There are many operating systems and even more graphical shells to work with. UI is a convenient way to interact with the system, but good command-line knowledge will allow to interact effectively with the computer at a lower level and thus have more control. You will be able to monitor the system more closely, as well as perform all basic or only auxiliary tasks.
MICROSOFT EXCEL
Excel in this list is not accidental. It is used by programmers, developers, managers, traders, and businessmen. It is more than just spreadsheet software.
Excel provides many useful functions for data reconciliation and analysis, tracking project progress, and planning. It allows not only to copy and paste data but also to perform basic data manipulations (search, sorting, filtering, etc.).
BASICS OF COMPUTER NETWORKS
Many of the existing mobile or web applications are not standalone, but client-server applications. Users access the service from anywhere in the world. In order to develop and support such applications, it is necessary to understand the basics of working with networks.
SCRIPTING LANGUAGES
You can, of course, use the same language for both OOP and scripting. But any language is not suitable for it. If you have to work with C/C++ or Java, you can’t get as fast a result as Python developers can.
The scripting language makes it easy to create tools and scripts to solve typical problems. If you know this language well, you can easily automate routine things.