--必备技能--
熟练开发工具
做 为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的 灵活性成为开发工具中的利器,很多系统级的软件还是用C/C编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技 术集JAVAOne很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如 VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌 握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
熟知数据库
为 什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形 式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管 理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如 mySQL,Postgres等
了解操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,
但 只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现 等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资 料较少,但通过互联网还是能获取不少资料。
懂得网络协议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分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和
开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
--素质要求--
需求理解能力
程 序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项 目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
模块化思维能力
作 为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直 接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
团队精神和协作能力
团 队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序 也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之 本。
文档习惯
文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。
规范化的代码编写习惯
知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
测试习惯
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。
学习和总结的能力
程序员是很容易被淘汰的职业,所以要善于学习总结。
推荐阅读:
相关推荐
【优秀程序员的十个习惯】 1. 持续学习与跟进新技术:作为优秀程序员,保持对新知识的渴望至关重要。不断学习新的编程语言、框架和工具,关注行业动态,参与专业社区讨论,如CSDN、ITPUB、CHINAUNIX、digg.com等,...
《程序员的羊皮书——程序员必备》是一本旨在帮助程序员提升个人素养与专业技能的书籍。这本书不仅仅关注编程技术本身,而是将重点放在了程序员如何更好地融入职场、提高工作效率和团队协作能力上。"做人"在这里指的...
作为软件开发人员的必备工具书,它涵盖了编程实践的多个重要方面。 在书中,作者深入浅出地讲解了代码质量的重要性,强调了良好的编程习惯和规范对于项目长期成功的关键作用。首先,书中介绍了代码的可读性,这是...
【优秀程序员45个习惯】是一本旨在提升程序员专业素养的书籍,由敏捷开发领域的权威Venkat Subramaniam和Andy Hunt共同撰写。...通过实践这些习惯,程序员可以不断提升自身技能,从而在IT界取得成功。
成为优秀的程序员不仅在于编写高质量的代码,更重要的是养成一系列有益的习惯,这些习惯能够提升个人技能,促进团队协作,以及保持对技术的敏锐度。以下是对标题和描述中提到的十个程序员习惯的详细解释: 1. **...
以下是一些程序员必备的面试攻策: 1. **了解面试流程**:面试通常包括简历筛选、笔试、初次面试、技术面试和用人部门面试等阶段。了解这一流程有助于求职者提前做好准备,明确每个阶段的目标。 2. **定位自我**:...
总结起来,"C语言的各种帮助手册(程序员必备)"是程序员提高效率和技能的重要工具。它们不仅提供了全面的C语言参考,也涵盖了C语言的实践经验和常见问题解决方案。通过深入研究这些文档,开发者不仅可以掌握C语言的...
《编程高手箴言》这本书是程序员提升技能的重要资源,它深入探讨了编程实践中的一些关键细节,旨在帮助程序员在日常工作中实现代码质量的显著提升。书中的知识点广泛且实用,涵盖了编程思维、代码优化、错误处理、...
在IT行业中,程序设计思想是每个程序员不可或缺的技能,它涉及到如何有效地解决问题、编写可维护的代码以及优化软件设计。本压缩包中的书籍资源恰好涵盖了这个主题的重要方面,旨在帮助程序员提升自己的编程素养。 ...
- 多线程是Java开发的关键技能,面试中通常会涉及Thread与Runnable的区别、线程状态、线程安全等问题。面试官可能会给出具体场景,如如何管理多个线程协同工作,这需要你熟悉java.util.concurrent包下的工具类和...
以下十项必备技能对于任何想要在编程领域取得成功的人都至关重要。 1. 基本逻辑技巧:编程的核心是逻辑控制,如do-while和if-then-else结构。程序员需要熟练掌握这些基本逻辑,以便根据各种条件执行相应的操作,...
这些技能不仅包括对语言特性的深入理解,还包括良好的编程习惯与实践。以下是对给定内容中提到的一些关键知识点进行详细解析。 #### 一、类型与比较操作 在C/C++中,不同类型的数据需要正确地处理才能避免程序运行...
清晰的思考能力是每个程序员必备的技能,它帮助个体从复杂的问题中抽丝剥茧,找到最有效的解决方案。培养清晰思考的能力,需要持续的练习和反思,以及良好的信息筛选和整合能力。 #### 不可替代性和核心竞争力 每个...
5. **解决问题的策略**:面对复杂的技术问题,如何保持冷静并采用有效的解决方法是程序员必备技能。书中可能分享了分析问题、调试代码、利用在线资源(如softhy.net,可能是一个技术问答网站)的技巧。 6. **项目...
其次,终身学习是程序员必备的软技能之一。技术日新月异,只有不断更新知识,才能适应快速变化的行业需求。这包括阅读专业书籍、参加在线课程、关注行业动态,甚至自学新的编程语言和技术框架。同时,良好的学习方法...
根据编对器的报错信息,我们能快速修改代码中的语法错误,这是一位程序员必备技能之一。 很多初学者编程时,苦于无法看懂编绎器的报错信息,会走不少弯路,浪费很多时间。 该文档旨在引起初学者对编绎器报错信息的...
了解并遵循编程规范,学会使用调试工具,是成为优秀程序员的必备技能。 通过对以上各个知识点的深入学习和实践,考生不仅可以应对程序员资格认证考试,还能在实际工作中提升自己的编程能力。解答详尽的试题集是检验...
同时,了解如何使用调试工具进行问题定位也是初级程序员必备技能。 6. **版本控制**:在现代软件开发中,版本控制工具如Git是必不可少的。试题可能涉及Git的基本操作,如提交、拉取、合并分支等。 7. **软件工程...
此外,持续学习和适应新技术也是程序员必备的素质。随着技术的快速发展,程序员需要保持敏锐的洞察力,不断提升自己的技能,以应对不断变化的市场需求。同时,良好的沟通能力、问题解决能力和自我管理能力同样重要,...