What skills should programmers possess and what skills should they possess?

Source: Internet
Author: User

What skills should programmers possess and what skills should they possess?


1. skilled development tools
As a programmer, he is at least familiar with the use of two or three development tools, which is the foundation of the programmer. C/C ++ and JAVA are the key recommended development tools, c/C ++ has become a powerful tool in development tools with high efficiency and flexibility. Many system-level software is still written in C/C ++. JAVA's good combination of cross-platform and WEB is the advantage of JAVA, and JAVA, its related technology set JAVAOne, may become one of the mainstream development tools in the future. Secondly, it is better to master a simple visual development tool, such as VB, PowerBuilder, Delphi, and CBuilder, which reduces the development difficulty, it can also enhance the concept of the programmer object model. In addition, you need to master basic scripting languages, such as shell and perl, to be able to understand these script codes at least.
2. Familiar with databases
Why is database so important? As programmers, they naturally have their own reasons: many applications are centered on database data, and there are many database products, among which relational databases are still mainstream, therefore, programmers must be familiar with at least one or two types of databases, have a clear understanding of the key elements of relational databases, and master the basic syntax of SQL. Although many database products provide visual database management tools, SQL is the foundation and a common database operation method. If you do not have the opportunity to access commercial database systems, you can use free database products, such as mySQL and S.
3. Understand the Operating System
Currently, the mainstream operating systems are Windows, Linux/Unix. It is necessary to use these operating systems skillfully, but these are far from enough. To become a true programmer, you need to have a deep understanding of the operating system, its memory management mechanism, process/thread scheduling, signals, kernel objects, system calls, and protocol stack implementation. Linux, as an operating system for source code development, is a good learning platform. Linux has almost all the features of modern operating systems. Although there is little information about the kernel implementation mechanism of Windows systems, there is still a lot of information available through the Internet. Understand the network protocol TCP/IP.
Today, when the Internet is so popular, if you do not have a good grasp of the Internet support protocol TCP/IP protocol stack, You need to quickly complete this lesson, the network technology has changed the software running mode, from the earliest Client/Server structure to today's WEBServices, to the future of grid computing, all of this is inseparable from the network protocol support based on the TCP/IP protocol stack. It is necessary to have an in-depth understanding of the TCP/IP protocol. At least, you need to understand the ISO layer-7 protocol model, the principles of common protocols such as IP, UDP, TCP, and HTTP, and the three-way handshake mechanism.
4. understand the significance of the existence of DCOM/CORBA/XML/WEBServices
With the development of technology, the seamless integration of software and network is an inevitable trend. The location independence of software systems is one of the important features of the future computing model, DCOM/CORBA is currently two mainstream distributed computing intermediate platforms. DCOM is an extension of Microsoft COM (Component Object Model), while CORBA is a standard supported by OMG. XML/WebServices are important. XML is hailed as a "World Language" on the Internet based on its structured representation and powerful expression capabilities. It is one of the cornerstones of distributed computing.
5. Do not separate software engineering from CMM
In the development of large-scale software systems, engineering development control replaces personal heroism and ensures the success of software systems. A programmer is not necessarily a good programmer, A good programmer combines excellent programming skills and development skills with strict software engineering ideas. Programming is only one part of the software life cycle, excellent programmers should master the basic skills in various stages of software development, such as market analysis, feasibility analysis, demand analysis, structural design, detailed design, and software testing.
6. Requirement understanding
Programmers must be able to correctly understand the requirements described in the task list. It should be clear here that programmers should not only pay attention to the functional requirements of the software, but also the performance requirements of the Software. They should be able to correctly assess the impact of their modules on the entire project and potential threats, if a skilled programmer with two to three years of project experience does not understand this, it only means that he may have worked hard but did not work hard.
VII. modular Thinking Ability
As a good programmer, his mind cannot be confined to the current task. You should think about whether the module you write can be detached from the current system, it is directly used in other systems or other modules through simple encapsulation. In this way, the code can be reused to reduce repetitive work and make the system structure more reasonable. The improvement of modular thinking ability is an important indicator of a programmer's technical level improvement.

Document Source: required skills for programmers

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.