如何提高编程能力?
对于下面的每 一点建议的理解,每个人可能都不一样。
如果你觉得某一点对你有用的话,不要关了这篇文章之后你就忘记了,建议你一定要记录下来。从当下开始就去努力践行,知行合一。
本文概览 :
- 练好基本功,勿过于追赶技术时髦
- 选择值得投入的技术
- 深入学习,学会总结沉淀
- 避免货物崇拜编程
- 批判性地分析你读到和听到的东西
- 提高系统设计能力
- 不要让技术栈限制住了手脚
- 造轮子
练好基本功,勿过于追赶技术时髦
一定要把基本功的修炼放在首位。高楼大厦起于坚实的地基,顶尖的程序员同样起于过硬的基本功。
哪些算是程序员的基本功呢?
- 技术方面: 计算机技术基础知识、优秀的编码实践、系统设计、设计模式、各种技术的原理,定位问题的能力等等。
- 非技术方面 : 对业务的理解能力、抗压能力、表达能力等等。
一定不要把自己的精力都花在各种工具库、框架和中间件的使用以及配置上!从投资角度来说,这些东西的投资价值并不高,有很大概率过几年就过时或者被淘汰了。举点例子:Struts2 被 Spring 干掉、Spring 又被 Spring Boot 替代、ActiveMQ 被 Kafka,RabbitMQ等优秀的消息队列干掉,太多太多这样的例子了。就算是 Spring Boot 目前依然存在着被其他框架替代的可能性,没有什么永恒不变,尤其对于工具库、框架和中 间件来说。
不过,这些工具库和中间件的底层原理还是值得学习的。
基础以及原理性的知识一般不会被淘汰,只会被更先进的技术给颠覆。
如何修炼自己的基本功呢?
- 不断学习,提升自己的认知。
- 不要单纯为了完成需求而完成需求,还要考虑代码质量比如可读性、bug 数量、是否对扩展友好等等
- 经常总结复盘。
- 理论+实践并行。
选择值得投入的技术
在我大学刚学 Java 后台开发的时候,我学习过什么呢?实话实说是 JSP、Struts2....这些现在看起来老掉牙的技术,这些技术放在现在确实没有学习的理由了。
我自己当时学这些实际也是踩了坑,被一个学长忽悠了,他对我说很多公司做项目还是用这些技术。奈何他当时比我厉害,所以,我选择相信了他。
我们每个人的时间都是有限的,这个在工作之后的感触尤其明显,所以,我们一定要尽量在有限的时间去学习那些值得我们长期投入学习的技术。
一项技术是否值得长期投入学习,简单来说,我觉得主要可以下面 3 点:
- 这个技术的学习成本。
- 这个技术的发展势头如何(Google trends 能很好的反映一项技术的发展势头)。
- 看看一些业界比较权威的技术大佬对这个技术的看法。