程序员的七种武器

原创 2004年10月27日 16:06:00

 作者:雷年胜    本文选自:赛迪网  2003年02月11日 
 
信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。

信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取。而另外一种情况是,IT技术的日新月异使很多程序员眼花缭乱,什么都想学,却又不知从何学起,今天看看这个,明天学学那个,贪多不熟。

虽然IT技术发展迅速,但很多技术都是有规律可循,一些基本的概念、原理和方法还很通用,可以举一反三。本人根据自己的体会和经验,向那些刚刚踏入IT行业的新程序员们或正在迷茫的程序员们推荐程序员必须掌握的七种武器,有了这七种武器,虽不敢说笑傲江湖,但将自己立于不败之地还是可以的。


第一种武器:开发工具


至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA One会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C++ Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。


第二种武器:数据库


为什么数据库是如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。


第三种武器:操作系统


当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。


第四种武器:网络协议TCP/IP


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


第五种武器:DCOM/CORBA/XML/WEB Services


随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间件平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。


第六种武器:软件工程与CMM


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


第七种武器:强烈的好奇心


什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在。

一点小小的体会与程序员们分享。

作者简介:

雷年胜 大唐永创科技发展有限责任公司技术总监 大唐永创从事网络安全、网络管理软硬件产品开发

e-mail: lei_niansheng@sina.com

 

旧文重发:程序员的七种武器

这篇文章发表在《程序员》杂志2007.03期的专辑“程序员的武器大家谈”中。 《程序员》:请谈谈您所定位的优秀程序员应该有哪些技能?您是怎样理解程序员七种武器的?==============周爱民:一...
  • aimingoo
  • aimingoo
  • 2008年06月02日 00:29
  • 4634

软件开发的七种武器

信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。 腗?玾I?...
  • lchunli
  • lchunli
  • 2010年09月20日 23:21
  • 2609

学术会议高手速成之七种武器(超长篇)

转载自「http://www.douban.com/note/38794424/」
  • lqhbupt
  • lqhbupt
  • 2014年07月09日 14:53
  • 1846

炼数成金R七种武器之金融数据分析quantmod

炼数成金《数据分析,展现与R语言》课程上线已经有18个月,至今已经培训了近千名学员,对在中国推动开源数据分析软件起到了重要作用。应广大受众的要求,我们在基础课程之上再推出进阶课程,构筑完整的R语言路线...
  • jianyue178826
  • jianyue178826
  • 2014年09月27日 14:51
  • 1528

炼数成金R七种武器之网络爬虫RCurl

RCurl包是R语言中最常用的爬虫工具,广泛用于在互联网上抓取各种数据源,例如金融数据,行情数据,价格数据,体育数据等,用于进行后续建模分析。信息时代,互联网已经毫无置疑地渗透到我们生活工作的各个细节...
  • qq_20698029
  • qq_20698029
  • 2014年09月25日 15:11
  • 1379

GIS就业参考系列之技术篇——七种武器

题记 从2007——2017,职场中第一个十年即将完成。十年足以摧毁一个人的样貌;十年可以见证一个时代的发展;十年你从匆匆那年转变为而立之年;不知道从毕业一直还在从事本专业的人有多少,不知道这是一种幸...
  • chinagissoft
  • chinagissoft
  • 2017年01月05日 09:05
  • 1007

揭密Oracle之 七种武器

揭密Oracle之 七种武器 第一章 搭建测试环境 vage 揭密Oracle之 七种武器  第一章 搭建测试环境 长生剑,碧玉刀,刀剑合璧,天下无敌。 (揭密Oracle之七种武器第二章...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年10月23日 22:22
  • 756

程序员的七种武器

信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。信息技术的更...
  • qsd007
  • qsd007
  • 2007年03月13日 13:39
  • 580

程序员的七种武器

 程序员的七种武器信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和...
  • void1983
  • void1983
  • 2005年11月30日 21:24
  • 324

程序员的七种武器

程序员的七种武器 世界上有两件事情,需要一辈子的努力。第一是学习,第二是锻炼。其实这本是说明一个问题:每个人在提高自己能力这件事情上,需要持续不断地努力。以最典型的例子来看,只有通过学习,程序员才能保...
  • wingfeng19800215
  • wingfeng19800215
  • 2007年03月05日 14:31
  • 485
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序员的七种武器
举报原因:
原因补充:

(最多只允许输入30个字)