编程新手如何快速提高开发能力?

作者:媒体转发 时间:2018-06-10 21:35

字号

本文来源于我的知识星球“码农翻身”的一个讨论帖子,编程新手面对新的技术和项目,如何学习,如何快速提高个人开发能力?抓狂的观点很有意思,我建议他扩展了一下,写成了这篇文章。

编程新手如何快速提高开发能力?

说服自己

拿我自己这一年的工作经历来说吧。

首先,说服自己很重要,什么叫说服自己呢,就是一定要先把自己“忽悠”了,让自己觉得现在做的事情非常的牛x。

去年这个时候,我也是刚毕业进公司,上来就要搞一个之前从没有接触过的技术,怎么办?

首先,开始疯狂暗示自己,这个项目很牛x --- 大名鼎鼎 Erlang 平台,号称可以写出十几年不用停机,超高可用性的项目,同时搭配吸取了 Ruby on Rails 精髓的 Elixir/Phoenix 开发框架,开发速度据说是 Java 的 20 倍。如此牛逼的技术,学起来还不得偷着乐?

然后捣鼓开发环境吧,语言太新,没有成熟 IDE,正好可以学学多年来一直想学的 Emacs --- 这可是号称神之编辑器,号称伪装成编辑器的操作系统,号称无所不能。

硬着头皮学,一开始保存文件快捷键都要想一下怎么按,把快捷键列表放在屏幕另一边,一边看一边写,竟然也能慢慢上手了。

然后项目跑起来,学习语言,理解核心要点,开始写代码,写项目 --- 从一开始写爬虫,到研究如何打包项目,热部署,再到代码结构的设计优化 ...

甚至横向发展: 前端,交互设计,SEO 都开始涉及。慢慢的也能理解更深层次的东西了,非常有成就感。

但是还不能满足,能不能更好?学习一下别的大牛是怎么做的?都用的什么?最新的开源项目用的什么技术?学过来!

于是埋头研究,把公司老旧技术替换成更好的新技术,GraphQL,持续集成/持续部署(CI/CD) ...

同时自己也搞点个人爱好,比如给自己博客用上公司还不敢用的更加激进的新技术,折腾一下 ArchLinux,尝试自己搭建一个代理服务,等等等等 ...

这样既能提升自己的水平,又给公司创造了价值,这样带着荣耀感去学,怎么会觉得枯燥?

总之,“自我催眠”,认为自己做的事情很牛x,这样做起来才会有激情。不然如果自己都觉得无聊,一看见就烦,那样能做好才奇怪。

内功

貌似学了这么多东西,如果仅仅只能学到点新技术的用法,能行么?新技术日新月异,瞎追是追不上的。这就又回到老掉牙的话题了,内功。

真正的聪明人聪明在思考问题的方式和你不一样。聪明人有聪明人的思路,而你想不到这个思路。 但要知道大部分人并不是聪明人,所以也不要自卑。

扯远了,再说内功。为什么有的人学知识特别快?可能并不是因为他有多聪明,而是他内功扎实。也就是对计算机的知识体系有一定程度上的理解。

比如在你懂了计算机网络之后,就可以很快理解 RESTAPI,GraphQL,RPC 之间的异同,也可以明白即时通讯协议 XMPP,MQTT 的优劣。

比如你了解 Lambda 演算,编译原理,形式语言,自动机,也就能理解一个语言为什么要这么设计语法,为什么不能这么写。

比如你懂了数据结构,你就能理解数据库,搜索引擎中的细节原理。

这些知识并没有被什么邪恶组织封锁,只要你想学,网络上有大把的资源供你所学。

所以你眼中的聪明人真的是天才么?不排除真的有天才,但我想更多的是普通人,只不过他学的稍微比你多一点,知识体系比你更系统一点罢了。

所以只要你愿意学,愿意思考,愿意动脑子,愿意较真,愿意折腾,也一定能成为别人眼中的聪明人。

道理我都懂,但是到底要怎么做?

技术是复杂的,而且每个人都有自己的学习习惯,所以具体例子可能并不适用于所有人。

所以到底怎么做才能快速提高开发能力

别急,先讲两个故事。

利其器

一开始学校老师让你用纯文本编辑器,不让用 IDE,所以你就选则了比较流行的 Notepad++。

这是第一步,先上手。第二步,在用的过程中寻找问题,并解决问题。

比如,经常因为标点符号打错而不能通过编译,怎么办,首先老师不让用 IDE 的原因之一就是让你认识到这些错误,养成一种严谨的习惯。

那就打字之前小心严谨一点。但是就算你非常严谨,难免也有笔误的时候,这个时候 Eclipse 登场了,问题解决。

然后循环这个过程 --- 遇到新的问题,解决问题。

比如有些代码片段记不住怎么办,用自动补全。变量改名方法结构调整的时候非常麻烦怎么办,用 IDE 的重构功能,等等。

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
关键词 >>编程 新手 能力
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接