09063517_5YP9

As a fresh graduate, you step into the workplace with your diploma still bearing the scent of ink, only to be immediately overwhelmed by unwritten rules and a host of tedious daily affairs. Such stories are all too common, and programming work is no exception.

Few students are 100% prepared for their first real job. If you don't want to be one of them, learn the following 10 basic skills that you can master without hands-on guidance:

1. Version Control System (VCS)

VCS is perhaps the biggest oversight in computer science courses. These courses only remember to teach how to write code, but often forget to teach students how to manage code. Every programmer should know how to use Git or Subversion to effectively create repositories, edit and commit code, branch and merge, and understand project workflows.

2. Learn to Write

As a programmer, you don't just write code. You also write project release notes, commit messages for version control, and bug reports in the system. These and many other places require clear and effective written communication—yet this skill is rarely emphasized in computer science.

3. Regular Expressions

Regular expressions are a language in themselves, and every modern programmer should be proficient in them. Every modern language supports regular expressions or has a related standard library. If the code needs to verify whether a string contains 5 characters, 1 dash, and 1 digit, you should be able to immediately write /^[A-Z]{5}-\d$/.

4. Using Libraries

It's already 2014, so no one needs to use regular expressions to extract the hostname from a URL. Every modern programming language has a standard library for performing common functions.

Programmers need to understand that code that has been developed, tested, and debugged is usually better than code you rewrite yourself. More importantly, code that doesn't need to be written is implemented much faster.

5、SQL

Many people learn SQL on the job. How can databases be an elective course? Is there anyone who doesn't use databases?

The era of storing data in flat files is over. Everything goes in and out of a database, and SQL is the language for storing and retrieving data. It is a declarative language, not a procedural one, so solving problems with it requires a new way of thinking. Every programmer should understand the basics of database normalization and be able to execute SELECT (with INNER and OUTER JOIN), INSERT, UPDATE, and DELETE.

6. Know How to Use IDEs, Editors, and CLI Tools

A carpenter who only knows how to use a saw can never become a master, so it's astonishing that computer science graduates only know Notepad or pico. Programming tools help manipulate code and other data, making a programmer's life easier. Therefore, every programmer should know how to use the command line, shell scripts, find, grep, and sed.

7. Debugging

Every programmer should know how to debug programs using an interactive debugger or by sprinkling output statements throughout the code. The ability to track down problems through stepwise refinement is extremely important.

8. Defensive Programming

Errors are always inevitable, even for star programmers. Things getting out of control is the norm in the world, so errors are not surprising. Defensive programming is precisely about understanding this fact. If things never went wrong, we wouldn't check whether files open successfully, wouldn't check whether customer IDs are valid numbers, and wouldn't test whether code runs correctly.

Programmers need to know that compiler warnings are useful tools that make our lives more comfortable, not annoyances to be avoided. Every programmer should know why every PHP program should start like this:

set_error_reporting(E_ALL)

Every Perl program should include these statements:

use strict; use warnings;

9. Team Collaboration

Few programming jobs let you work alone. If you often do so, your intellect will suffer and your performance will weaken. Your code must interact with or mix with others'. No matter how talented a programmer is, if they cannot collaborate with others, they will negatively impact the project and quickly become a burden to the organization.

10. Leveraging Existing Code

In school, every assignment is a new project. But the real world is not like that. For someone new to the job, the first task received is often fixing a bug. Then, you add a small feature to an existing system based on the existing codebase. Designing new code is something for months later, if you're lucky.

[This article was compiled from: blog.newrelic.com]