{Path to software designer} basic skills required by programmers

Source: Internet
Author: User

Http://bbs.yingjiesheng.com/forum.php? MoD = viewthread & tid = 1572987 & reltid = 315994 & pre_thread_id = 0 & pre_pos = 3 & ext =

Software development is a huge technical work. In terms of language, there are C, C ++, Java, Ruby, and so on. In terms of environment, it is also divided into embedded, desktop systems, enterprise level, web, basic system, or scientific research. However, no matter what the situation is, there are always some general basic vocational skills.

These basic professional skills usually determine the level of a programmer. Whether these skills can be used is directly related to the programmer's career. Many new programmers lack, cannot reach, or are unfamiliar with these basic skills, so they need to have old hands and work hard to complete these skills. Senior programmers should be very familiar with these basic skills and be competent to lead other experienced programmers.

The following basic professional skills can be used to evaluate a programmer. Obviously, the following skills can be used for interviews. Although there are still many non-technical factors, it should be sufficient to evaluate the technical capabilities of a programmer.

The following are the basic professional skills that programmers should possess:


Basic Skills Skill description
Read code This skill requires the programmer to be able to understand the existing Code. This ability allows the programmer to analyze the program behavior and understand the program so that he can work with the development team, inherit to maintain or improve existing programs.
Program writing Programming does not include programming. Do not think that programming is a very simple thing. Many Programmers think that programming only needs to understand the syntax of the programming language and implement the design. However, this is far from enough for programming. What encoding style should be used has become the basic skills required by programmers. Whether a very good programming style can be used directly determines the programmer level.
Software Design This capability directly determines what kind of code technology should be used to achieve the functions, and the system architecture design directly determines the quality, performance, and maintainability of the software. Not all programs are excellent in this aspect, but every programmer needs to understand and master this basic skill more or less.
Familiar with Software Engineering Every programmer should understand what software engineering is and should know the stages of requirement analysis, design, coding, testing, release and maintenance. Of course, almost everyone knows these things, but not everyone knows them. Nowadays, many senior programmers confuse "requirement specification FS" and "Outline Design HLD ". In addition, programmers also need to know some software development methodologies, such as agile development or waterfall models.
Use libraries or frameworks A programmer needs to learn to use the existing Code, whether it is a library of standards, a third party, or internal company. For example, in C ++, you must learn to use STL, MFC, ATL, boost, Ace, cppunit, and so on. By using these things, you can get twice the result with half the effort.
Program debugging Program debugging is the most direct capability for analyzing bugs and solving problems. No one can ensure that the program can run normally without debugging, and no one can ensure that the program will never produce bugs. Therefore, skilled use of the debugger is a basic skill required by a programmer.
Use ide Learning to use ide tools will also help you get twice the result with half the effort. For example, VC ++, emacs, eclipse, and so on, and you need to know the strengths and weaknesses of these ides.
Use Version Control Be sure to use version control tools, mainline/trunk, Tag, branch, patch, merge code, and reverse, how to Use version control tools to maintain different versions of software. This is the most important part of Software Configuration Management that programmers need to understand.
Unit Test Unit testing is required for every program. Many unit tests also require encoding. You must learn to perform unit tests in the xunit framework. For example, JUnit, nunit, cppunit, and so on.
Code Reconstruction Every programmer needs the most basic ability to refactor the existing code so that the code can be optimal, but it cannot affect any existing functions. There is a book called software refactoring. Every programmer should read it.
Automated Compilation Programmers need to use a script to automatically program all the projects and Code. In this way, the entire development team can continuously integrate code, automated testing, and automated deployment, and use some tools for static code analysis or automated testing.

Of course, there are also a lot of basic technologies that are also very important, such as the ability to communicate with people, the ability to express the language, the ability to write, the ability to work together, the ability to adapt to changes, time management capabilities, multi-task processing capabilities, self-learning capabilities, troubleshooting capabilities, and so on. Here we only list the capabilities related to technology. These are the most basic capabilities of a program, as long as you are a programmer, you must have the required capabilities.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.