程序员成功之路(二) ——The road ahead for programmer

来源:互联网 发布:西安财经行知学院宿舍 编辑:程序博客网 时间:2024/05/28 04:54
七、如何做一个成功的程序员?
下面是我和一些朋友谈过之后的小结,希望对于各位有所帮助。
1. 培养对软件开发的兴趣。
因为不喜欢,所以才感觉的痛苦,因为痛苦,所以很难有大的发展,因为一直没有大的进步,所以,更加不喜欢。如此恶性循环。而正确的应该是,先做到对于软件开发感兴趣,如何做呢?首先你要产生对于软件本身的好奇心,做这项生活的人,多数有这方面的爱好,也能感受到其中的乐趣,否则就会成天痛苦不堪。
­
2. 第二步,其实更简单,给自己进入软件行业一个理由!
然后,写下来,放在一个适当的地方,不要随便看到,但是,永远不要忘掉。
为什么需要这个理由?原因很简单。当我听一些朋友聊他的苦闷时,总觉得对于自己选择软件行业是一个错误,如何的不好。我就问他,你当初为什么选择软件这一行?想了半天,他才回答我。我说,你在犹豫 ,就证明你已经淡忘了当初你为什么决定入行了。关于选择,应该说人生无处不在抉择,一旦选择了就不会放弃。既然选择了就不要轻易后悔,执著的走下去,因为你一后悔,任何选择和决定都是错误的。永远不要把时间浪费到对往事后悔的追忆上。
如果你一直记得入行的理由,那么,在做软件开发这份寂寞的路上,你永远不会被寂寞击倒。成功就在你坚持的那一刻来临。
3. 一切从dos开始。
也许你觉得奇怪,为什么要从dos开始,因为这里我是说你要成为一个成功的软件程序员,而不是仅仅是一个程序员,既然你要成功,所以,你要厚积薄发,所以,从dos开始是有道理的。因为从dos开始,你就知道,要想删除一个文件不是右键点一下,然后,选择删除菜单,可能还要点一个确定,就一切OK了,你可以要执行一下del指令,然后,还要输入一些参数如文件名,可能还需要路径,知道这两个区别有什么用呢?当然有用,你不会被漂亮的窗口界面(所见即所得的精美画面)所迷惑。 当你现在才开始学习的时候,挡住窗口界面的引诱,或许你会更容易成功。
 你可以猜测出它们大概处理的过程是什么。
4. 开始你选择的工具决定了你将来的发展水平
世界上流行的程序语言有许多种,这种情况将来也不会改变,因为这是由我们所面临的需要解决的计算问题的五彩缤纷所决定的。任何语言都不可能是最完美的工具,不可能在处理任何问题时都是最锐利的宝剑。“为完成目的而不择工具”; 一个计算机工作者需要理解掌握多种程序设计语言,只有这样,在遇到具体问题时才可能做出更合理的选择。
目前流行的:.net; Java; VB; VC等等。
各种开发工具各有千秋,应根据具体应用来采用不同的工具。例如写MIS用PB/VB就很好,界面设计用VB/Delphi很不错,写系统软件,用C是最好的。对于初学者来说,先用一种可视化强的工具(如 VFP/VB/DELPHI)比较好,容易掌握,上手也快。但如果你想做一名真正的程序员,我建议你还是很有必要去精通C。
  单从一个很功利的角度来说说。Delphi/ VB对于一般人来说学上几个月就可以上手了。易学的东西学的人肯定多。而对于C来说,由于它难掌握,学的人不火,但一旦你真正掌握了,你的竞争实力就比其他人强。现实中,C程序员的工资普遍高于其他程序员就是一个证明。
Vb/delphi 写界面的4000元
vc 写通讯DLL的5000到6000元
linux c/c++ 写服务器的7000到9000元
知道C/C++有前途了吧
5. 编译原理
如果你有足够的好奇的话,你现在应该想知道编译工具背后的故事,写代码时,你也许会奇怪,不同的程序语言为什么会有不同的语法,语义,语用;变量名为什么不能数字开头?计算机如何识别这些定义,运算,名字空间等等。这个时候看看《编译原理》多少能够给你一些解释。学习一点理论知识,加强你的理论功底,很多人都说科班出身的程序员比参加社会认证培训出来的程序员强的地方,就是理论功底强,系统思考能力强,时间长了就会体现出其优势。学习编译原理的另一个好处在于将来你学习其它开发工具时, 特别是学习不同底层语言的开发工具时,虽然它们的底层语言相关非常大,但是,除去这些语言的外衣,用编译原理层面来看它们,原来它们是如此相似。
6. 操作系统原理
你要知道,任何你做出来的软件都是运行在操作系统环境中的,操作系统为你的作品提供了什么样的环境呢? 这很重要,如果是DOS,它是以软中断的方式提供的,而Windows则是以一系列的API提供的。然后,你还可以知道,如何判断系统当前路径,内存管理机制、进程/线程调度、信号、内核对象管理、系统调用等,操作系统中如何处理死锁的 。
7. 现在让我们进入windows时代,windows下的开发工具
毕竟在微软统治的时代,大家还是识时务者为俊杰比较好,windows下的开发工具一定要重点掌握。 面向过程编程向面向对象转变,现在流行的开发工具VC,VB都差不多。
8. 数据库原理和开始数据库编程
现在做软件一个最基本的应用类型就是数据库编程,这是可能使你可以胜任很大一部分工作了。也就是说,如果你掌握了数据库之后,你就可以出去找工作了。很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,用SQL server作为起点吧,因为这东西使用起来挺方便的。写一个简单的单表输入程序,简单一点容易掌握。比如写一个客户资料录入程序。
10 英语
统计表明,全世界45个国家的官方语言是英语,1/3的人讲英语,75%的电视节目用英语播出,80%以上的科技信息用英文表达,几乎100%的软件源代码用英文写成。
学习英语真得很重要,且不说它是程序世界的主导语言,且不说它是计算机专业本科毕业生四年的必修课,且不说它是全世界程序高手们互相切磋寻求帮助的主要工具,它还是现在大多数用人单位的敲门砖,在这样一个开放性的社会里,如果你不懂英文,你是不是很难称得上是一个人才啊!
多读英文书。信息技术发展太快,而大部分的技术最先出现的时候都是英文版本的,要几个月以后才有中文版本的书出来,因此要想跟上步伐,一定要努力提高自己的英文水平,这样才能同步跟上信息技术。你可能担心自己的英语水平不行,没关系,刚开始多查字典。
很多东西看中文的译版不如原版的清晰,中文的可能越看越糊涂,可是英文却可以一目了然。再说对于一些最新的技术和动态文章,你哪里有时间去等到别人给你翻译出来再看啊,等你看到了,也快过时了。不懂英语,你真得很难算得上是一个人才!
到了这里,你没有发现你在和别人聊软件开发时,别人对你的态度有变化呢?
八、从现在开始,你要注意和别人交流了,因为从现在开始的很多东西,都是别人一指点就可以,而你自己看需要很久的。可以经常去一些论坛交流,都是很不错的,没有不上网的程序员,也没有不在网上取长补短的程序员。不过在问问题之前,自己一定要先努力尝试过,再给出自己的想法。动不动就问别人,自己水平得不到提高,别人也不再会回答你的问题。
­
­
九、程序员最喜欢的网站:
­
http://www.microsoft.com/china/msdn/default.asp  微软社区
(IBM SUN Borland orACLE BEA CISCO GOOGLE)
­
http://www.csdn.net  中国软件
­
www.china-pub.com互动出版社
­
www.codestudy.net程序员联盟
­
http://www.codeproject.com
­
www.soft.net印度
msdn.microsoft.com/msdnmag
­
十、程序员的七种武器
第一种武器:开发工具
至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中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(object Management group)支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。 (转载)
原创粉丝点击