如何成为一个牛逼的Web开发

作者: CharlesTang | 来源:发表于2014-12-04 22:06 被阅读1255次

在学校的最后两年,我就开始往一个Web开发的方向发展,基本上属于自学成才的全栈Web开发工程师,从前端到后端无一不做,但是没一个精通的,看到这里是不是很失望?确实,如果真是“无一不精”,我也没空在这里写文章了。

现在工作四年多了,我才刚刚有点摸到了成为一个牛逼Web开发的门路。不敢自珍。一点看法,与诸君分享。

我感觉,编程,整个就是一个抽象的过程,对世界建立抽象的模型,然后让他们运作起来。编程的抽象,是双向的,对底层,程序员要去抽象计算机的实现,往上层,程序员要去抽象纷繁复杂的客观世界。而更高一级的抽象,往往就是更低一层的抽象的一个组装。所以,越是大型的系统,就组装了越多的抽象。

如果以计算机硬件作为程序的底层来看,越低层次的抽象,对客观世界的表达能力就越薄弱,越高层次的抽象,表达能力就越强,但是会丧失灵活性。

Web开发从这个角度去理解的话,本质上工作在一个非常高的抽象层次上,因为Web开发下面,有操作系统,浏览器,解释器,引擎,框架,所以,Web开发对客观世界的表达能力很强。

可是即便如此,我工作这么多年来发现,我们踏入这个行业以来,学习到的东西,抽象层次还是如此之低,以至于根本没法做出什么巨大的,或者众多的工作成果。

所以,分析到这里,我就觉得,如果我们希望自己变成一个牛逼的开发,首要变成一个高产的开发,那么你必须有一个你的工具箱一样的东西,当然是一个抽象的工具箱,这个工具箱,应该包含了各个层次的抽象组件。一年又一年的重复工作,我们要做的不是拿一份月薪而已,而是往自己的抽象工具箱里放入一个又一个抽象组件。这个叫做积累。

而且,我觉得比较好的方式,是使用拿来主义,千万别自己发明。自己发明只有利于你理解原理,但是那不利于你做出一个巨大的或者众多的工作成果。

比如,有些人问,学哪种语言,语言只是一个表达法,其抽象层次之低,不能帮你构建任何东西。从这个角度来说,语言应该是最简单的东西,简单到了一个普通程序员可以学会任何语言的程度,所以不必问学习什么语言,哪个好用,就去学会就行了。

语言上面有框架。哪个框架好用,就去掌握住,然后所有的开发,都尽可能用这个框架。

在框架之上,有系统,系统也需要去积累。因为人世间的业务模型,无非就是这么几个,一旦掌握全了,等于你一个人能构建一个超级系统出来,只要把你掌握的每个系统接驳起来就可以了。

我举个例子,比如我是PHP程序员,然后用Yii框架,然后我掌握了CMS系统,网店系统,社区系统,CRM系统,销售支持系统等几个系统。然后,任何新型业务,暂时都没有脱离这几个东西,于是我可以去帮助任何新型业务快速的生产他们的系统。但是我发现,我在网站或者交互表现上有所欠缺,所以我要掌握类似Bootstrap这样的前端框架,帮助我在前端表现和交互上能有所补全。

所以,后续的工作模式,就是不断去积累各种层级的抽象工具和系统。以后我就会成为一个牛逼开发,可以搞定任何系统的开发。

这就是我想与大家分享的。

相关文章

网友评论

  • 887491b96daf:不知道拿来注意含金量有多少~
  • af0e48c9d233:我表示不太赞同,当没有了巨人的肩膀,该何去何从。
  • 俊桑:原来是这样。
  • CharlesTang:@Amoy影 对的,客户端和Web确实是两个方向了。Web的应用领域更广泛,而客户端可能更有趣一点吧,大概就这么个区别。不过,移动互联网应该是下一波浪潮没错了。就算学Web,也应该是往纯后台或者往移动Web端发展。客户端开发的话,我觉得有趣是更有趣的,但是容易往交互那个方向去偏,你自己去琢磨吧~
  • CharlesTang:@南瓜藤 目前在我看来,从原理上,最厉害的是Common Lisp,可惜不怎么平易。然后,我觉得Ruby也很努力,不过还是太文艺。传播最广泛的是Javascript。比如jQuery,我认为就是一种典型的DSL的思路,连js的语法都不需了解太多,就可以写jQuery了。其实每种语言,都可以通过框架和抽象,实现一定层次的DSL。
  • Amoy影:虽然篇幅短,但是所得挺在理。关于编程语言部分我一直在纠结,是ruby还是swift,这其实是两种开发方向的选择
  • f09fffd32c47:@CharlesTang DSL 那家强?
  • CharlesTang:@happypeter 对,就是这个意思,DSL。
  • happypeter:忘了是谁说的了,跟作者的意思有点接近。“编程就是不断开发自己的 DSL 的过程”。
  • Andrew_liu:@CharlesTang 比如框架如何学习, 没有经验的人总是要走很多弯路, 怎么获取抽象组件. 学完一门语言怎么才能用到应用中, 很多时间语言语法很清楚, 但是就是写不出优雅的应用
  • CharlesTang:@Andrew_liu 不知道哪方面说得模糊呢?我可以都展开说说
  • Andrew_liu:感觉写的还是有点模糊, 自己是个新手, 依然不知道该怎么下手, 不过还是很喜欢的你的分享, 感谢

本文标题:如何成为一个牛逼的Web开发

本文链接:https://www.haomeiwen.com/subject/avngtttx.html