产品实现是否达到设计要求在公司内部需要测试验证,严格的测试对于保证软件产品的质量是必须的,而出
于时间、资金等缘故,很多软件产品并没有经过严格的测试就已交付给用户使用,程序员们总是善于
"自我安慰":
应该没问题吧。
"想当然"
不能消除缺陷,只有测试再测试才是科学的精神。
七宗罪:敝帚自珍
“
”
技术总是向前发展的,不要过于 敝帚自珍 ,抱着原有的东西不肯放弃,软件产品也有生命周期,该终结时
要毫不犹豫。
程序员的七种武器
信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。程序
员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。
信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。本人在工
作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量
的时间,十分不可取。而另外一种情况是,
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