第238期 | 阻碍你成为优秀程序员的两个坏习惯
池建强
讲述:池建强大小:6.86M时长:07:29
你好,这里是卖桃者说。今天跟你聊聊程序员的两个坏习惯。
程序员是一个很有意思的职业,入门门槛并不高,如果你学习能力强,自学几个月就能写出简单的程序,还能成功运行起来。但它的晋级路线却很陡峭,也就是易学难精。以前看到过一个比喻还挺贴切的,人人都会做饭吧,但不是人人都可以当厨师。
程序员在成长过程中,会有无数坑和障碍阻止你从新手成长为优秀程序员,数据结构要学,算法和编译原理要懂,还有各种软技能,甚至,你在不经意间养成的坏习惯都会阻止你进一步提升自己。
有些坏习惯并不那么引人瞩目,只是会在潜移默化中阻碍你发挥自己的能力。今天,我就跟你聊聊可能阻碍你成为优秀程序员的两个坏习惯。
1. 只是会用,而没有真正掌握一门编程语言
我经常跟初入职场的程序员同学们讲,编程语言之于程序员,就如同青龙偃月刀之于关羽,如意金箍棒之于孙悟空。你想写出一手好代码,那最起码需要精通一门编程语言,为此花费再多的精力也不为过。
然而在实际中,很多人对编程语言的掌握程度也就是会用,迫于工作需求,粗粗掌握一些语法、看过示例代码就撸起袖子开干,然后边查 Google 边写,也就是所谓的“在实践中学习”。这的确是快速学会一门语言的高效方法,实践出真知嘛。如果你学习能力好的话,说不定写出来的代码质量还不差。
但这种方法也有弊端,很多人大概率只能掌握语言中最常用的 50%,也满足于这 50%,毕竟已经能解决工作中的大部分问题了。剩下的 50%,平时看着不会有什么影响,当你想更进一步的时候就会跳出来成为拦路虎,就算你通过翻阅各种资料侥幸解决问题,也依然是知其然不知其所以然,下次很有可能踩进同样的坑里。
所以,对于你选择的语言,千万不要止步于会用、能写代码就行,而是要牢牢掌握它,做到真正精通,这是你日后在所有领域拓展的根基。以 Java 为例,Java 的那些核心语法你都掌握了么?抽象和继承都搞清楚了么?常用的类库和工具你都熟悉么?面向对象的思想还有多线程等技术难点都掌握了么?
就像范学雷老师在他的专栏《代码精进之路》里写的,编程语言就像一套功法,练得越多,练得越纯熟,用起来就越得心应手。武侠小说里,一套功法只有练了全套,才有最大的威力。对于编程语言,我们了解得越多,熟知的招式就越多,可选择的范围就越大,我们就有更多的活动空间和解决问题的办法。
另外,编程语言之间基本上是相通的,掌握了第一门,第二门语言学起来就会快很多,第三门语言会更快。现在我们几乎都是多语言使用者,但一定要先精通一门语言,达到像用筷子那样的熟练程度。
听到这,你不妨问一下自己,今天常用的编程语言,你真的掌握了吗?写代码的时候能做到胸中有丘壑,还是需要时不时去 Google 一下呢?
2. 只是 Copy & Paste,但不加以消化
说句老实话,很多程序员在编程早期都有过 Copy & Paste 的经历,很多时候也是不得已为之,俗称面向拷贝粘贴编程。
尤其是最近几年,软件开发行业越来越追求速度,“开发过程越快越好,越快越有竞争力”成了不少从业者的共识。这也无可厚非,快速开发、快速发布可以快速得到用户的反馈,从而更快地验证用户价值假设。
落到实际工作中,快速上线这个目标最终都会压到程序员头上,为了赶工期,很多程序员往往会选择各种“捷径”,比如要开发已有功能的一个相似功能,因为时间很紧就先 Copy & Paste,先保证功能按时上线再说。
我对 Copy & Paste 本身持中立态度,复用本来就是编程的要素之一,它确实能让我们在短期内保证快速交付,满足业务发展需求;但复用不是复制粘贴,也不鼓励一味的拷贝别人的代码,复用是一种高级技术,而不是走捷径的做法。一时的投机取巧,并不能让你找到问题的最优解。短期或可一用,长期这么做,不同来源、不同风格的代码堆砌在一起,很容易形成技术债,反而让速度慢下来。
简单来说,除了帮助你赶工完成任务,Copy & Paste 并不会给你带来更多的实际价值,比如知识的积累、能力的增长之类的。你不可能 Copy 一遍就记住代码的内容,弄懂它的原理。
如果你不得已 Copy & Paste 了,那之后最好抽时间再自己把代码写一遍,想想它为什么这么写,用到了哪些方法和设计模式,原理是什么,然后根据自己的理解把代码敲出来。这样,你 Copy 过来的内容才能变成你自己的东西。很多人写了 5 年的代码,能力成长还不如只写了 1 年的新手,区别就在这儿。
总的来说, Copy & Paste 不是问题,问题在于你有没有进一步消化,把代码及其背后的逻辑与原理内化成自己的东西,最终写出带有自己风格的优秀代码,不再 Copy & Paste。
当然,程序员的坏习惯并不只有这两点,其他的还有:没想清楚就直接上手写代码、不重视文档、不声明类型、不写注释、使用无意义的命名、上下文频繁切换导致注意力不集中等等,最终都会影响到你的成就。
其实,这些坏习惯归根到底是态度问题。一个人的潜力往往来自于三个方面,知识、技能和态度,而态度能决定你会怎样去完成你的项目,以及从中收获多少。很多时候,决定你高度的不是你的天资,而是你的态度。
最后做个小调查,你会在工作中 Copy & Paste 么?频率如何?会把 Copy 来的代码再次重构和优化么?
好,今天的话题就聊到这里,卖桃者说,明天见。
(编辑:夏天)
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《卖桃者说》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(20)
- 最新
- 精选
- huhu小仙女朋友圈有人说:能不能别只顾程序员,也管管运营和产品。
池建强回复: 那必须得管管了
3 - geek_27eain写代码也要经常复盘,对自己的代码,对开源代码都要复盘6
- Bryant-cx不爱copy,我有代码洁癖,我偏爱每一行代码都在自己控制之中3
- ん灬超果果MC这简直就是在说我2
- 悟空来 | Arthur李华栋 ...深以为然,一通百通1
- 李洪亮平时工作中只有应对快速上线这种情况时才会使用Copy &paste。 虽然我对copy&paste的态度也是能不用就不用,但有时候也会根据实际情况酌情使用,我会抽时间把重构优化复用的部分,我想这也是作为技术人看待代码的正确态度吧。
- 悟空来 | Arthur李华栋 ...这个文章昨天在通勤的路上听了两遍,反思自己做的不好的地方,也知道,就是要做,把能做到的做做到,能做到的做好。难的事情不是咱也不会吗 😂😂😂
- 第一装甲集群司令克莱斯特面向百度编程,调包侠,说的就是资深处理开发工程师,我。但是我绝不满足做一个CRUD Boy!
- eddy大部分copy过来的代码都在被重构以后才真正可用,而网上copy来的代码几乎都要重构才能可编译
- 25ma老夫写代码都是一把梭
收起评论