程序员速成的五条“真经”

一、掌握核心——以“不变”应“万变”

软件技术的发展可谓日新月异,曾几何时笔者还在拿着Turbo C闯荡天下,但眨眼间已经是Java.NET的天下;2002年微软首次推出.NET架构、VisualStudio.NET2009的那一刻,仿佛就在昨日,而如今程序员都在使用VisualStudio.net2008做开发了……

曾经有人说,程序员是淘汰最快的职业,很多人对此不置可否。的确,作为一个程序员,要一直站在技术的前沿,那需要很大的毅力和挑战。我们该如何应对这种挑战呢?

其实,细心的程序员分析一下,可以看到:在如此快速的技术变化后面,有一些东西变革缓慢或者基本保持不变——这就是软件开发的流程和项目相关技术!原来困扰我们的只是一个开发工具、一门编程语言而已。真正的武学大师,何必在意手中的武器到底是刀还是剑呢?

所以,笔者认为,了解软件开发的过程,把握各个阶段需要掌握的基本知识,熟悉各个阶段所涉及的工具,这才是“以不变应万变之道”!这些才是真正的“九阳真经”!

掌握了这些,所有的编程语言和开发工具,任君选择。是用Java这个“倚天剑”,还是用C#这把“屠龙刀”,就由我们的个人爱好和开发需要来定了!

变的是版本,不变的是流程。只有以“不变”应对“万变”,我们才能在程序员这条路上走的更远。

因此,在《软件开发这点事》这本书中,笔者特别讲解了软件开发过程中所涉及的相关技术、工具,希望大家能够快速掌握这些知识,真正踏入软件开发的殿堂!

二、软件开发中的二八原理

在软件编程中,同样有二八原理的存在。

首先,在编程环境提供的所有类库中,常用的类只占20%

无论是VC++,还是Java.NET,都提供了大量的类库,这是现代编程技术发展的趋势。通过这些类的调用,可以使得程序员编程效率大幅提高,同时能够编出更加功能强大的程序。这些类库的重要性是无容置疑的。不信,你用Turbo C编写一个邮件发送程序试试?呵呵,很难,几乎不可能;而用Java.NET类库呢,几行代码而已。

有的学员,曾经来信问到,面对类库中动辄成百上千个类,我们该如何学习呢?难道要去死记硬背这些类的每个属性和方法吗?

对于此问题,笔者的回答是:熟记、掌握最常用的类就可以了,而对于其他类,我们要做到的是:遇到相关问题时,能记起类库中有相应的类,然后去查询帮助使用即可。

然而,到底哪些是常用的类呢?大家不妨比较一下MFC类库、JDK类库、.NET类库,可以发现它们的类库分类有很多相似之处,也有很多功能类似的类。笔者认为,不论那种语言,以下一些类都是需要掌握的,比如界面基础控件类、文件IO类、图像处理类、多线程类、数据库类等。

其次,每个开发工具如Visual Studio.NETEclipse,常用的功能只占20%

 

当今社会,各种编程工具如同照相机等数码产品一样,功能变得越来越强大,同时操作上越来越傻瓜化。在开发工具繁多的功能中,实际上常用的功能不足20%。因此,对于每种开发工具,我们仅仅重点掌握这些常用功能就足够我们进行日常开发了。

典型的常用功能有项目文件的操作功能、与编程相关的各种文件、数据库的添加功能、调试功能、项目属性设置功能、开发环境个性化设置功能等。

三、基于问题的学习方式

在笔者近十年的教学生涯中,最喜欢的是PBLproblem based learning)学习方法。该方法强调以问题作为学习的起点,所有的问题来自于实际的应用。实际上,软件本质上也是用来解决用户问题的一种工具和手段,每种知识点也是也源于实际的应用,没有实际应用的知识在编程中是毫无用处的。

因此,强烈大家带着问题去学习。

同时,要培养自己的解决问题能力。正如在前文所述,什么是编程高手?是熟悉所有.NET类库或JDK类库?显然不是。现实中可能有这样的“高手”,但寥寥无几。真正的高手是在遇到各种问题后能很快地找到解决问题的方法,即解决问题的高手

也许有的读者要问,我什么都不了解呢,问题从哪里来?当然是从实践来,这也是我们接下来要讨论的话题。

四、实践是最好的老师

经常有学员来信问,“我是一个.NET初学者,请问我该如何学习.NET呢?”。这个问题涉及到了编程语言的学习方法。

笔者认为有两种学习路线:

其一:理论学习路径法。这种方法是大多数院校采用的教学方式,把编程语言当作一门学科来学习,学习的目的更多的是为了考试。笔者曾经在招聘市场上遇到很多刚毕业的计算机专业的大学生,问“学过.NET吗”,答“学过,不仅学过.NET,还学过Java呢!”,又问“用.NET做过实际的项目吗?”,答案往往是“没有”。这一算是一种悲哀吧。怪不得所有招聘人员都希望要有工作经验的人呢。但,请注意,他们要的实际不是“工作经验”,而是“项目经验”,白话讲是“干过活没有”。如果大家能够在大学期间就抽空积累一些项目经验,何愁找不到好的工作呢?

其二:实用导向路径法。即面向实用。就如同一个痴心学武的人,学再多的招式,不去实际找人演练,永远成不了武林高手一样;要想真正掌握一门编程语言,必须和实际应用结合。在应用中,产生问题,带着问题去学习,学习后应用,这是一个不断进步的循环过程。

显然第二种方法更适合软件编程的学习。1997年笔者开始接触VC++的学习,看了很多的书、学了很多的理论知识,但一直觉得编程水平没有进展。后来有机会接手一个学籍管理系统的项目,直到系统开发完成后,才觉得自己真正迈入了VC++的门槛。

五、经验的积累和技巧的总结

真正的程序员是善于总结的。随着项目经验、编程经验的增加,每个程序员都会积累很多的编程技巧和心得。记得一定要把这些技巧和心得用文件的形式保存下来,这是你个人的财富!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值