李刚突破java__程序开发-扎实的开发基本功

思想 == 程序
程序开发
    “老师,每次你给我们布置一个项目后,你总要告诉我们项目开发的思路,那以后我们毕业了怎么办?难道还要回来找你吗?.实训过程中,有学生热切地询问老师。
    “你们想要学一种项目开发的总纲思路,就像武侠小说中独孤九剑那样的,对吗?”
    “是的,没错!”,“就是,我们想学一种总纲算法’,“我觉得软件算法,甚至比编程语法更重要呢!’学生们反应很热烈,七嘴八舌地说着。
    “你们说得很对,软件算法比语法重要多了,也复杂得多!”老师同惫了学生的看法.接着他话锋一转:“但你们想学的总纲算法,我也不会!所以教不了你们。.
    “啊?"
    “软件算法是属于业务逻辑领域的,广义地来说,算法是客观世界里所有事物的运行规律,远非一个程序员所能掌握的!比如你要开发一套股票行情预测软件,那你就需要了解股票行情的运行规律,但这些规律的复杂度,远远超出了程序员可以掌握的范围。.
    “那为什么每次你给我们布置一个项目之后,你总可以告诉我们开发思路呢?’学生们依然不死心。
    “两个理由:1.这些项目很早以前我就做过了2.因为我掌握了一些程序开发的通用方法。"
    “通用方法?"学生们有些疑惑:“程序开发不是掌握编程语言的语法就够了吗?.’
“其实软件开发总有一些比较通用的方法,或者说是规律,按这种通用的方式进行开发,程序开发往往会更顺畅。当然前提是你要知道实现软件的算法一一算法往往不是来自于程序员,而是来自于业务专家。,老师微微点下头:“程序员要关心的是,如何将已有的算法用程序实现出来。接下来我给大家讲一下程序开发的基本方法……"
13.,扎实的基本功
    在笔者的教学过程中,经常有学生询问:写程序的时候,总感觉找不到思路,感觉无从下手,这种情况怎样才能改变呢?每次笔者都是苦口婆心地说:首先要端正心态,不要太浮躁.然后多花时间写一些简单的程序.把基本功打扎实了才会慢慢获得思路。
    的确,如果连最基本的基本功都不扎实,怎么通过这些基本功来启发思维,打开思路?
    编程并不难,但也并不简单。经常看到有些书籍、资料上写着"21天精通XXX", "10天精通XXX",这种书籍、资料不过是满足了一部分人浮躁的心态:希望找到一种“武林秘籍”,能在短时间内精通某种技能。但实际上,这种“武林秘籍”本身并不存在。
13.1.1快速的输入能力
    关于快速的输人能力,很多程序员可能不以为然,但其实打字速度是一个程序员最基本的基本功。
    试想实际开发中,获得了一些编程的想法,这些想法可能是对的,也可能是错的—如何来检验它们?把想法转变成代码是最好的途径,此时就需要快速的输人能力作为基础。
    对输人能力的基本要求是:“盲打.。键盘输人速度要比用笔写更快,这样基本可以满足要求了:当大脑有某些编程想法时,手指的动作可以自然地将这些想法转换为对应的代码。
    除此之外,快速的输人能力还能避免编程徽惰。
    有过编程经验的人都知道,如果要真正掌握编程,光看书是不行的。编程最大的奥秘在于编码,没有几十万行甚至上百万行代码作为基础.想真正掌握编程纯属痴人说梦。
13.1.1快速的输入能力
    关于快速的输人能力,很多程序员可能不以为然,但其实打字速度是一个程序员最基本的基本功。
    试想实际开发中,获得了一些编程的想法,这些想法可能是对的,也可能是错的—如何来检验它们?把想法转变成代码是最好的途径,此时就需要快速的输人能力作为基础。
    对输人能力的基本要求是:“盲打.。键盘输人速度要比用笔写更快,这样基本可以满足要求了:当大脑有某些编程想法时,手指的动作可以自然地将这些想法转换为对应的代码。
    除此之外,快速的输人能力还能避免编程徽惰。
    有过编程经验的人都知道,如果要真正掌握编程,光看书是不行的。编程最大的奥秘在于编码.没有几十万行甚至上百万行代码作为基础,想真正掌握编程纯属痴人说梦。
    如果输人速度太慢,很多人往往容易陷人“光看不练“的危险境地,因为他们往往会觉得输人那些代码太浪费时间了,看着书上的代码,完全理解它们不就可以了吗?但实际上真的不行,只有把这些代码输人电脑,通过编译器编译,然后运行它们,才会更好地理解每行代码的作用。
    当拥有足够的输人能力之后,可能会考虑将所有代码输人电脑中运行。即使照着书上的代码向电脑中敲人一遍,都是有意义的。
    当然笔者认为,即使照着书上代码的输人,比较理想的输人方式应该如下所示。
    (1)先整体看看这个程序,试图理解书中这个程序要达到的目的和实现方式.
    (2)将完整的程序分成几个小段落.
    (3)逐段、逐段理解书中程序,再将其输入电脑.
    在这种方式下,如果想将某段代码输人电脑,必然要先试着理解,然后才可能记住这段代码,这样就可用于验证是否真正理解了这段代码。
    根据自己的编程、教学经验,笔者把学习过程分成如下3个阶段。
    第1阶段:吸收阶段。该阶段的学习以接受外界知识为主,包括听老师讲解、看书、阅读网络资料等,如图13.1所示

第2阶段:归纳、整理阶段。该阶段的学习以理解第I阶段所吸收的知识为主,在这阶段中大脑会以归纳、类比的方式将新知识 整理得条理化、细致化,如图13.2所示。
 第3阶段:输出阶段。该阶段可以将之前 整理的知识系统、条例化的方式输出.这里的输出包括输出成 文档、程序等,也包括 向其他人讲解、传授等,该阶段的示惫如图13.3所示。

 对某个庞大的知识体系而言,如果能按这3个阶段将其进行系统的归纳、整理,并按自己整理的条例输出它们,那么对这门知识的掌握也算比较到位了。
    就某个小的知识来看,上面介绍的3个学习阶段依然是适合的,即使只是理解一小段程序。
    (1)看书、理解某段小程序仅仅停留在第I阶段.
    (2)合上书,在大脑中能条理地整理出第1阶段所理解的那段程序,这大致进入了第2阶段.
    (3)将这段代码愉出到计算机上,这勉强可以算得上第3阶段了.
    就像想学会游泳,站在岸上看再多游泳理论都是隔靴搔痒,要想学会编程,就从编码开始吧。为了避免对编码产生畏难,请保证较高打字速度
13.1.2编程实现能力
    此处的编程实现能力用于指导比较初级的阶段,是指将伪码翻译成语言代码的能力。
    对于一些真正有经验的程序员来说,编程语言只是一种工具,编程的难点在于算法,这一点绝对正确。但对于大部分编程学习者而言,掌握编程实现能力则是更紧迫的事情—当有一段现成的伪码摆在面前时,是否可以准确地将它翻译成熟悉的机器代码?
    还是前面那个规律:不要梦想着能凭空获得优秀的编程思路、编程算法,有了熟练的编程实现能力之后,这些编程实现能力反而会给开发者一定的启发。
    同样,这些编程能力也不可能凭空产生,归根到底还是需要大量的编码。
    在笔者的教学过程中曾经遇到一些学生,给他们简单的程序,他们认为这些程序看上去太简单了,因此不愿意去编写.给他们一些复杂的程序,他们又认为无从下手,也不愿惫去编写。最后的结果是:没有值得他动手的程序。这是非常危险的事情。再简单的程序,至少可以从以下两个方面来学习它。
可以尝试着将它部分代码注释、修改,看看修改后的程序与预期是否相符;
可以尝试着去完善这个程序,为它增加一些新功能,看看是否可以满足要求.
    反过来,对于看上去复杂的程序则需要勇于下手去做,多尝试,即使每次能多增加一个小功能,也就离成功更近了一步。
    不要觉得有些代码太简单,当不断地编写这些代码,再将它们以合适的方式进行组合时,它们也可以变成不错的程序。

快速排错
    每个人都会经过这个阶段,对编程的出错感到害怕,不愿意去面对、去排除程序中出现的错误—以为只有技术不合格的人写程序才会出现错误。
    但只要稍微有过一点编程经验的人都知道,写程序不出错的人只有一种:从不写程序的人。只要写程序,就一定会出现错误。
    没有排错能力的程序员是还不人门的程序员。
    对于一个基本功扎实的程序员来说,快速地排错是必要的,如果一个简单的语法错误就要折腾上一个小时,那如何去实现程序单功能?一个基本功扎实的程序员,对于绝大部分常见错误,应该能根据错误提示准确地定位错误位置,.并快速排除错误,只有这样才能保证开发工作的正常完成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值