What are qualities of a good programmer should have?

As the saying goes, "Master, self-cultivation by individuals," With the rapid development of the Internet, more and more people chose the IT industry, joined the ranks of programmers. Well, for a White joined the line in terms of how to be a good programmer it? What qualities a good programmer needs it?

 
In learning C / C ++ or want to learn C / C ++ can join our learning exchange QQ group: 954 607 083, to receive learning materials

Solid technical

Skilled Development Tools

As a programmer familiar with at least two development tools to use three, which is the conduct of the programmer, in which C / C ++ and JAVA is a key recommendation of the development tools, C / C ++ with its high efficiency and a high degree of flexibility become tools in the tool, many system-level software is written in C / C.

The cross-platform and JAVA and JAVA WEB is a good combination of advantages, and its related technologies JAVA that is set JAVAOne is likely to become the future mainstream development tools.

Secondly, can master a simple visual development tools such as VB, PowerBuilder, Delphi, CBuilder, even better, these development tools reduce the difficulty of developing and be able to strengthen the concept of object model programmers.

In addition, the need to master basic scripting languages ​​such as shell, perl, etc., can at least read these script code.

 
In learning C / C ++ or want to learn C / C ++ can join our learning exchange QQ group: 954 607 083, to receive learning materials

Familiar with database

Why the database is so important? As a programmer, they naturally have their own reasons: Many applications are data-centric database, and database products, there are many which relational database is still the mainstream form, so programmers to master at least twelve kinds of database , the key elements of a relational database to be very clear, to master the basic syntax of SQL.

Although many database products provide a visual database management tool, but SQL is the foundation, it is a common method of database operations. If no access to commercial database systems, you can use the free database product is a good choice, such as mySQL, Postgres and so on.

 
In learning C / C ++ or want to learn C / C ++ can join our learning exchange QQ group: 954 607 083, to receive learning materials

Understand the operating system

Current mainstream operating system is Windows, Linux / Unix, skilled use of these operating systems are necessary, but only these are not enough.

To become a true master of programming, need to understand the operating system, understand its memory management, process / thread scheduling, signal, kernel objects, system calls, such as protocol stack.

Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。

 
在学习C/C++或者想要学习C/C++可以加入我们的学习交流QQ群: 954607083,领取学习资料

懂得网络协议TCP/IP

在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。

明白DCOM/CORBA/XML/WEBServices存在的意义

随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。

XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。

不要将软件工程与CMM分开

大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。

 
在学习C/C++或者想要学习C/C++可以加入我们的学习交流QQ群: 954607083,领取学习资料

素质要求

需求理解能力

程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。

模块化思维能力

作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。

这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。

 
在学习C/C++或者想要学习C/C++可以加入我们的学习交流QQ群: 954607083,领取学习资料

团队精神和协作能力

团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。

独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。

文档习惯

文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。

规范化的代码编写习惯

知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。

 
在学习C/C++或者想要学习C/C++可以加入我们的学习交流QQ群: 954607083,领取学习资料

测试习惯

测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。

学习和总结的能力

程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员。

Guess you like

Origin www.cnblogs.com/junzi11/p/11013216.html