程序员的外功和内功的修炼

说明:此文章为腾讯云机器自动从本人csdn博客搬迁过来。是本人授权操作。

申明:无本人授权,不可转载本文。如有转载,本人保留追究其法律责任的权利。

龚浩华,QQ 29185807,月牙寂 道长

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

对于程序员该如何成长,修炼的思考。从毕业开始工作,就始终伴随着我。

我将其归结于外功与内功。那么什么是外功,什么是内功呢?

从金庸大侠的武林中可以看到。外功再厉害的人,在内功强大的人前面,都可以被秒杀掉。

但是不是光有内功就行了呢?空有一身内功,却无法施展的,在其中也不乏案例。

那么对于个人来讲,外功与内功相辅相成,才能发挥最大的效力。

外功,我的理解,是那种招式,不管是语言,数据结构,设计模式等这些都是外功。

对于程序员来说,最初始的阶段,勤奋练习外功,是发展最快的。学会正确使用这些招数,可以达到立竿见影的效果。

那对于外功的修炼,是不是除了勤奋努力就够了呢?也并不是如此的。君不见,只会死记硬背招数的人不在话下。

外功的修炼,需要招式。当然有人说,我可以创造招式。可以是可以的,但你所创造的招式,真的有用吗?还是在浪费时间?

内功,内功的修炼,这个要看天分和悟性。这个需要总结,归纳,抽象的能力,再加上想象力。

天分高之人,可以在学招式的时候,归纳,抽象,然后悟道。比如我们长说的,编程之道,系统设计之道等等。

好了,那么该怎么修炼呢?

对于程序员来说,有一些基础的东西,是无法都没有可能去规避的。

比如,你需要知道计算机操作系统原理,计算机网络原理,数据库原理,分布式原理等等。

因为这里面很多东西是一些标准,是既定的标准。你无法规避,比如二进制,比如tcp/ip协议,这些东西,是你无法规避的。

还有语言,你不懂开发语言,如何将你的程序实现出来?虽然有很多语言可以选择。

这些原理懂了之后,工具(最常见的就是编程语言)也学了之后,那么你就用程序来实现你的想法。

但要想程序写的好,或者说快。这个时候需要学习一些构建招式。面向对象,设计模式,架构模式,等等,这些是一些更高级的一些的招式。

这些东西,好像可用可不用,但用好了能给程序带来很大的帮助。

但很多人,确是滥用。导致了一个名词,过度设计。

那么在这个过程中,有些人会开始思考,开始进阶,变成自己独立的设计之道。

设计模式,常见的就是23经典设计模式,但我们去看看,程序中有多少种设计模式,那么数不清楚的。

从这些招式中,总结,归纳,抽象出对设计的理解,升华成设计的思想。便游刃有余了。那么那些设计模式就可以忘记了。

这样,在对设计模式的理解便是内功的一种修炼,达到了无招胜有招。

架构设计呢?也是一样的,现在可以在网上找到很多系统设计的案例,但这些真的适合你吗?不一定,要看场景。

但通过对这些案例的学习,你可以总结,归纳,抽象,然后形成架构设计思想。你独有的思想。

那么对于厉害的大师来讲,他又可以将他的思想,再抽象成设计模式,重新展现给世人,比如现在很流行的微服务设计。

那么对于程序员来说,可以循序渐进。

从无法规避的基础知识的掌握。

再从一些技巧入手,好的语言,好的设计模式,等。

再继续在某些方面,不断的吸收前人经验,总结,归纳,抽象,再加上自己的想象,形成自己的思想。

再最后呢,有一个在此之上的东西。那就是对事物的认知能力的提升。这个无关于是不是程序员。这个是普世的。

提升认知能力,也会帮助我们对程序内功的修炼,而内功的修炼,也可以帮助我们提升认知能力。这都是相辅相成的。

这里就不多说了,我的文章《我的系统设计之道》和《以无厚入有间,恢恢乎其于游刃必有余地矣》有讲过一些看法。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯IVWEB团队的专栏

腾讯 Web 工程师的前端书单

2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍。

17.6K10
来自专栏CDA数据分析师

如何系统地自学 Python?

是否非常想学好 Python,一方面被琐事纠缠,一直没能动手,另一方面,担心学习成本太高,心里默默敲着退堂鼓? 幸运的是,Python 是一门初学者友好的编程语...

1807
来自专栏phodal

Developer进阶书单

这是一份关于如何Re-Practise的技术书籍推荐书单。 一直画/写一个推荐书单来供大家参考,无奈找不到一本合适的形式。有一天,想到了之前的技术树https:...

18810
来自专栏机器之心

观点 | PHP or Python如何选择?或许你应该考虑一下这三个问题

选自Hackernoon 机器之心编译 参与:黄小天、李亚洲 2017 年可谓是网页应用与 API 之年,开发者不用每次重新发明轮子,而是利用脚手架和第三方库就...

2918
来自专栏CDA数据分析师

如何系统地自学 Python?

是否非常想学好 Python,一方面被琐事纠缠,一直没能动手,另一方面,担心学习成本太高,心里默默敲着退堂鼓? 幸运的是,Python 是一门初学者友好的编程语...

1797
来自专栏Java编程技术

关于阅读源码的一点心得

本文来谈了自己关于阅读源码的一些心得体会,希望大家能够更好的意见,留言回复。另外并发编程系列已经全部放出,想学并发的童鞋可以 单击我 ,学dubbo童鞋可以 单...

581
来自专栏Kirito的技术分享

技术精进的三境界

最近更新了一篇 Docker 的文章,朋友跟我反馈说效果并不是很好,我回头看了下,的确没有我自己的特色,没有太多思考,让公众号显得有些「百货」了。经过反思,今后...

3096
来自专栏编程之旅

iOS漫谈——对于项目架构的思考

又一次的版本更新上架,心情容不得片刻舒缓,新的迭代任务又明白的摆在桌面上。今年上半年自己琢磨完ReactiveCocoa之后,对手上了项目做了MVVM架构的尝试...

893
来自专栏编程微刊

echarts如何设置背景图的颜色

公司的业务涉及到统计图的有很多,最近一直echarts里面踩各种坑,感觉应该建立一个echarts专题才对,前端的东西博大精深,无论在哪一个知识点,只要细细深究...

631
来自专栏Python web开发

5本必读Python入门书籍,你都看过吗?(附福利)

今天技术学派为大家准备了5本Python入门书籍,除了书籍小编还整理了3个常用的资源网站分享给大家。

1330

扫码关注云+社区