If you have been programming experience for a while, or are about to learn programming, then you may consider: How can you become a good programmer? How do computer graduates prepare for a career in software development and programming? What are the expectations of junior developers in the workplace? This is a question that novice programmers who are approaching graduation or entering the workplace are paying close attention to.
The following ten skills are not required, but they provide a good starting point for what programmers should know for reference by novice programmers. These are all basic skills as a programmer, and will accompany your programmer's career for a long time. If your goal is to engage in software development and programming, then these are things that can be learned and improved to remain competitive.
Data structure and algorithm
If you want to become a qualified programmer, you must understand and master data structures and algorithms. This is one of the important topics of any programming job interview. If you don't know the basic data structures (such as arrays, linked lists, mappings, collections), it is impossible to write real-world applications. Data structure and algorithms are the aspects that best reflect the basic skills of programmers. Regardless of computer majors or training courses, data structures and algorithms are the first content to be taught.
Students who have already participated in the work but have poor knowledge of data structures and algorithms, take some time to learn. Don't just be satisfied with learning tools and frameworks. Basic knowledge is beneficial and harmless.
Source code management
Source code management is used to store code, and programmers must understand version control tools such as Git and SVN. Source code management can reduce the dependence on specific personnel, facilitate code review, and improve the overall level of the team.
From the perspective of major social development trends, distributed is a major trend, and Git has just adapted to this trend. The previous mainstream code management solutions such as CVS and SVN are centralized. Due to the distributed characteristics, it creates higher flexibility and can adapt to more scenarios. So Git simplifies the market to a certain extent. For beginners, GitHub Ultimate Edition: MasterGit and GitHub are a good start. You also need to be proficient in advanced version control concepts such as branching and merging, as well as tools using the command line and GUI. .
text editor
When working as a programmer, there is no day without using a text editor. Even for non-programmers and anyone dealing with computers, it is one of the essential tools.
Generally, NotePad is mainly used on Windows and VIM is used on Linux, but there are many options for advanced editors, such as Sublime and NotePad++, the latter provides IDE-like functions. Take the time to learn your favorite editor and keyboard shortcuts, and learn some tips for improving efficiency.
IDE
For any programmer, a modern IDE is a very important tool. For C, C++ and C language programmers, the choice is very 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 who use "the best language in the world" PHP, PHPStorm and Sublime Text are both good choices.
Database and SQL
SQL allows users to access a large amount of data at a time. With one statement, SQL commands can retrieve or update thousands of records in multiple tables. This avoids a lot of complexity. When you want to process each record, the computer program no longer needs to read one record at a time in a specific order. A task that used to require hundreds of lines of program code to complete, now only requires a few lines of code to complete. SQL is a classic, and databases are ubiquitous. Programmers should be familiar with some basic database concepts, such as normalization and table design, and 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 data, and an understanding of advanced concepts such as join aggregate functions will also make sense.
Unix or Linux
Like SQL, UNIX has withstood the test of time and has existed for more than 30 years. Since most programmers have to work on UNIX machines at some point, a good understanding of the Linx command line is very helpful.
It allows programmers to work with higher efficiency, can search for files, understand the status of the system by checking the system's CPU and memory usage, and perform basic and advanced tasks. There is an introductory & advanced guide on GitHub, called "The Art of Command Line". It has received 50,000 stars on GitHub. This resource can not only help newcomers who are new to the command line, but also benefit experienced people. . The portal is here: https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md
Excel
Excel is one of the best tools for programmers, software developers, project managers, traders and business people. It is not only spreadsheet software, but also provides many useful features and functions to perform complex data analysis.
Programmers can use Excel to track progress, coordinate data, data analysis, data quality check and project planning. This is why every programmer is urged to learn Excel deeply. It is not only copy and paste data, but also some basic functions, such as search, sort, filter and VLOOKUP to compare data.
Programming language
As a programmer, you must go deep into programming languages: C++, Java, PHP, Python, JavaScript... Choose according to your hobbies and specific circumstances.
PHP is a simple back-end technical programming language. It has the closest relationship with HTML. When you learn HTML and then learn PHP, you will find that you will start quickly. The most popular thing about PHP for new students is that it can be directly embedded in HTML and run, so there is no Considering many issues, it is the first choice for choosing a back-end programming language.
Network foundation
Today’s world is an interconnected world. No matter where you go, computer networks are ubiquitous. Starting at home, Wi-Fi is used on many devices, to schools, companies, and shopping malls that use local area networks (LAN) to connect everything. .
Most applications written by programmers are not independent, but client-server type applications. In this type of application, the request will be passed to the server through the network, and the client will access the application from anywhere in the world. Therefore, programmers must understand the basics of the network in order to better understand, develop and support their own applications.
Scripting language
I have already talked about programming languages, so can't the same programming language be used as a scripting language?
Of course, some languages are suitable for both object-oriented programming and scripting, such as Python. But if you happen to be learning C/C++ or Java, you can’t accomplish something 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. If you have a good grasp of scripting languages like Python, you can easily automate your daily work.
The above ten skills cover the necessary skills for every programmer to enter the industry. I hope to provide a reference for every programmer who reads this article, as well as new ideas for career planning. Seniors in the industry are also welcome to share their own experiences and pits that have been stepped on to escort novice programmers.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。