码农是如何炼成的 Vol.4

logo

常常有人在后台问为何只有php的教程,有没有java的,有没有.net的,对于这类问题我实在不知道怎么回答。php

一是我确实不会这些语言,写不了这类语言的教程;java

二是在我看来若是你是会java或者.net的,彻底能够经过我教程提供的源码以及注解,用本身熟悉的语言来实现功能。程序员

但事实上他们依然写不出来,这是为何呢?编程

之前的公司里有个程序员工做大概四五年了,可是开发水平一直不好,曾经有一次我让他作一个新功能,事先还特意很详细的给他讲了整个业务逻辑,给了他两天的时间,结果这哥们通宵不睡觉仍是没捣鼓出来,要知道我本身作最多几个小时就完事了……segmentfault

缘由很简单,这哥们只会重复机械的写代码,没有用心去理解里面的业务和逻辑,一旦让他作新的东西就傻眼了。数组

在第一章里我就说过,对于应用软件程序员来讲,基本上只会跟高级编程语言打交道,因此不管是java,仍是.net,或者是php,都没有太大区别,甚至你学两年java,再转去php也是很快的。微信

由于咱们须要学习和掌握的是编程思想,但实际上不少人只关注语言和工具,忘记了核心。思想这东西有点抽象,如何在实际中去掌握呢?具体一点说能够这样划分:编程语言

  1. 片段代码的实现能力,这是基础。好比说对于一张表的查询新增更新删除,对于一个数组的遍历排序等,都属于一个片段代码,这部分跟之前读书背公式同样是死的,很容易掌握的,正常人写上十次八次的过程,应该没有不熟练的。函数

  2. 复杂问题的分解能力。这个是基于1的基础上的,任何一个复杂问题都是由若干个简单问题组合而成,当你掌握了这其中全部简单问题的处理方式后,所须要的就是去体会如何把这些简单问题串联起来解决一个复杂问题。工具

  3. 场景的复制能力。当你掌握了一个复杂问题的解决方案后,能够尝试将其往类似的场景复制。这个过程可能开头比较艰难,但只要你有这个意识,而且不断去尝试,可能通过三个月才勉强成功了三次,我相信从第四次开始你就会感到轻松随意了。简单一点说,这实际上是个触类旁通的过程。

有了上面三个能力后,用什么语言对你来讲就彻底不是问题了。全部语言的基本逻辑必定是同样的,区别无非在语法与函数的调用上,而这些东西均可以经过搜索引擎解决。

像我本身开始学php代码时,第一天就写了不到10行代码,其他时间全花在了百度上,然后三天就完成了Discuz整个模板和后台的个性改造。

事实上我写的微信教程也一直是遵循这个路线在给你们指导的,从简单的文字回复、图文消息回复,到后面通信录、播放器等完整产品的开发,就是让你们体会从片段代码、简单问题到复杂问题的过程。

至于在我教程基础上开发出相似校讯通这类产品的朋友,恭喜你已经到了第三个境界,你是真心在学习,也真的掌握了编程的核心思想。

跳出编程来看咱们平时的生活和工做,这样的过程和方法也是通用的,再复杂的东西也是由一个个细小的部件组成,从了解到理解再到分解最后解决,这个过程是很是有趣的,当你完成这个过程,你会发现。

真正有价值的是你的思想,这部分任何工具都帮不上忙的。

相关文章
相关标签/搜索