审视专业方面的我——从回顾历史到认知不足

http://download1.csdn.net/down3/20070607/07014826520.jpg

        在网上看了一篇名为《让程序员立于不败之地的七种武器 》 的文章,写的精粹。本人即将踏入社会,不出以外的话会和程序脱不了干系。在此就对着这篇文章审视一下自己,以便及时发现不足,不断进步。

原文如下:

程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任…… 

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

  信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取。而另外一种情况是,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 

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

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

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

 

第一武器:开发工具

       说实话把编程语言和开发工具真正区分开来还是前两年的事情。记得上高一的时候,去参加学校的奥林匹克信息学竞赛,认识了Basic语言,用的还是QBASIC,当开始学Pascal语言的时候,我以耽误功课为由退出奥赛班了,现在想想还后悔不已,谁让当时对编程不感冒呢。当时还接触了logo语言,就是海龟语言,只是觉得好玩,并没太多注意。知道上大学,开了C和C++的课程,才认识到C/C++这两种语言的博大精深,但是大一的C没有好好学~编译C还是勉强使用了TC2.0,后来学习面向对象语言C++才尝试着用VC,但是只是会建个console控制台程序和一些简单的windows界面程序。对于BCB(Boland C++ Builder),压根没用过,DELPHI据说是Pascal的进化,也没用过。而powerbuild接触过,因为同学的毕业设计用到了,有时也会跟着看看。因为钟情C++,一直没有把心思花在JAVA和.net上,MS和SUN怎么竞争不关我的事~以后要学习脚本编程了,据说perl特别别致,希望可以领略到。

第二武器 :数据库

        以前总是把编程和做数据库区分开来,觉得做数据库就类似于财务上面的会计,现在想想当初还真幼稚。随着网络的发展,数据做为信息的载体,越来越多的出现在我们眼前,而随着急剧增长的网民,网站,软件,大规模的管理数据就显得尤为重要了。用过access,vfp,至于MS SQL Server没怎么系统的学过,只是了解。Oracle碰都没有碰过,像IBM和sysbase的产品就更不用提了,没机会用到。基本的SQL语法还是系统的学过,只是长久不用,生疏许多。几范式几范式还是比较清楚的。我想以后接触的机会会很多的。

第三武器 :操作系统

      曾几何时,我理解的操作系统就是用的windows,点点鼠标,敲敲键盘。而大三那年,学完了《操作系统概念》,我才深深体会到,真正的操作系统里面包含了很多,内存的管理,分页,事务处理,互斥,信号量,线程,进程,死锁,银行家算法等等。从那以后我觉得真正从事编程行业,不深深的研究OS是肯定不可以的,一般操作系统都是C/C++写的,里面的奥妙远不是一天两天就能参透的。记得谁说过,不了解操作系统的这些原理,谁敢碰C++呢。linux的风行也让开源家喻户晓。这将是一个趋势。

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

   网络一直是我兴趣的一部分,大三时候整天看关于网络原理的书都把编程给扔下了,去报了网络工程师,而不是程序设计师。OSI七层模型,TCP/IP协议族,三次握手,一个又一个神秘的东西出现在我的世界里,让我为只兴奋,为什么会这么样呢,我总是想这想那。大四上学期读完了CCNA的课程,没参加考试,一直太忙,没时间复习。做一名CCIE一直是心中神圣不可攀越的目标,很难,很难。毕业设计选题的时候,我毫不由于的选择了,网络监听程序的设计,将网络和编程完美的结合一起了。本来监听可以说是一种黑客手段,当时高中时代,对黑客技术很是崇拜,唯有羡慕的份。从毕业设计的资料收集到程序的开发测试运行等等都是自己做的,不能不说对网络和编程都有了深一步的认识。有机会一定把网络界那几本圣经级的书拿来看一遍。

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

仅仅知道名词而已,中间件也好,XML也好,都是最近才流行起来,当初只知道学习HTML语法,后来经历了几次扩展和改进,自己的视线渐渐从WEB上移开,因为当时一度放弃了网页制作等电脑基本技巧。

第六武器 : 软件工程和CMM

纯粹是大学里最后一门专业课上接触的理论,仅仅是理论,看似空洞,虚无飘渺,实际的话还需要我在以后的工作中去体验。

第七武器 : 强烈的好奇心

这才是杀手锏,一些技术动力源泉。不仅要有好奇心,还应当有持之以恒的毅力。而后者正是我所缺乏的。

仅已以上文字自勉~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值