0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员浅谈如何快速提高个人开发能力?

工程师人生 来源:网络整理 作者:工程师飞燕 2018-06-08 10:46 次阅读

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

说服自己

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

首先,说服自己很重要,什么叫说服自己呢,就是一定要先把自己“忽悠”了,让自己觉得现在做的事情非常的牛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 的重构功能,等等。

其中解决问题的时候也会遇到问题,比如怎么才能找到问题的解决办法呢?一开始总是黑暗的,这个时候可以求助他人,比如现在有人告诉你,搜索引擎是个好东西,于是你知道可以用搜索引擎。

搜索引擎搜索不到怎么办?这个时候就发挥作为人类的能力,也就是结合和运用之前的经验的能力,怎么办?你现在只会用搜索引擎,那只好在搜索引擎里搜索“如何使用搜索引擎”... 结果还真搜到几篇有用的内容,一看都是来自某某公众号的文章,果断收藏。

发散思维之后还要收回来,得到了搜索引擎使用秘籍之后要投入使用啊,比如把某搜索引擎换成更好的搜索引擎,把整句分割成关键字来查询,最终你成功搜到了想要的结果。同时,积累了数个收藏夹。

下次再遇到问题的时候,你又可以站在之前的经验上,继续提高自己。

这样你就满足了吗?虽然你解决了自己遇到的问题,但是有没有可能另一种解决方式更完美呢?

所以继续发动人类能力,于是你从你同学口中得知一种叫 IDEA 的东西,又从搜索引擎上得知 IDEA 的优点,又在之前收藏的论坛里发现了一篇 IDEA 的教程,再结合自己 Eclipse 的使用经验,你成功的上手了 IDEA。这就是人类的能力,可以结合运用之前得到的经验的能力,而不是只能零散的使用。

你甚至把这个过程总结成一篇文章,得到了许多膜拜,也得到了许多批评建议,不仅能收获了,还能输出了。

最后,追求永无止境,能不能更好?更舒适的字体,更快的快捷键,更强的代码模板 ... 总之,就像剑客对其兵刃的喜爱一样,投入精力不断打磨,总是有回报的。

重构

拿着锤子不会锤钉子也不行啊。工具并不能直接提高你的编程水平,怎么办?

继续发动人类天赋技能,之前你已经学到了遇到问题解决问题的能力,那写代码有什么问题呢?

首先第一步还是先搞起来再说,于是你花了三天时间写了一个“高达” 80 行的程序。写完之后觉得自己好牛x啊,厉害的不得了。

冷静下来,这样够了么?不够,因为代码中有三段都是重复的,仅仅只有一点区别,如果以后需要改动,那就需要改动三处代码,这样不行。

于是你花了两个小时把那些代码改写成一些函数,使用之前学到的 IDE 重构功能,消除了重复代码,现在只剩下 40 行了。写完之后感觉已经超神了,怎么会有这么聪明的人?

冷静,这样还不够,虽然提取了出来,但是方法名不能体现出功能,而且可读性太差。如果过两天来看完全不知写的啥。

于是你整理代码结构,增加注释,代码变得赏心悦目起来。写完之后感觉精神振奋,抬头一看,天已经黑了,嗯,晚上能吃三个馒头。

冷静,这些代码有没有值得总结的通用逻辑?下次如果遇到类似问题能不能直接写出最后一步的代码而不是再这么重构一遍?

于是你认真分析,总结出一个非常通用的逻辑,什么时候可以用,什么时候不适用。写完长舒一口气,晚上能睡个好觉了。

这么晚了只能吃夜宵了,路上你想,我这个东西这么厉害,怎么能忘了出去炫耀一下?马上打开手机,正准备发帖,突然想到,聪明人大有人在,是不是已经被捷足先登了?

于是你利用自己之前积累的丰富的搜索引擎使用姿势,快速搜索到原来早就有人总结了出来,还出了书,称之为设计模式。不禁出了一身冷汗,这要是真出去得瑟了还不得被笑话,幸好搜了一下。

吃完饭回来,翻开设计模式,哦,原来别人是这么总结的,大同小异。设计模式算是理解了,今天是太晚了,只能以后再多加练习。

一星期后,你发现有人在抱怨设计模式好难学啊,背也背不会,用也不会用,根本无从下手。于是给他耐心讲解一二,那人发出感叹,“大神啊,你怎么这么聪明。”

你一时语塞 ... 真的是我聪明么?

总结

仅仅只是两个故事么?

其实,开发能力的提升都像这两个故事中说的那样。

如何写出高质高效的代码?并不是一蹴而就,同样需要先按以往经验写出初版,然后提取、抽象,最后归纳总结,甚至开源分享。为下一次更好更快的开发做好准备。

所以并不是按照某种经验照做就可以快速提升个人能力了,而是需要按照一定的节奏,站在之前的基础上,不断自我升级,迭代,优化,开发水平和速度才能稳步提高。

那到底是什么节奏呢?各位都是程序猿了,那就总结的程序一点:

遇到问题

解决问题

若解决途中再次遇到问题,则解决子问提

能不能更好?

同时,说服自己非常重要,自信,但不能自满,要在觉得自己很牛x的情况下虚心前进,这样有动力又走的远。

这一点儿也不矛盾。『虽知大海的深邃,但仍为捡到贝壳而欢呼。』这是我非常喜欢的一句话,作为结尾。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    949

    浏览量

    29752
收藏 人收藏

    评论

    相关推荐

    AI编程工具会不会抢程序员饭碗

    AI编程工具可辅助编程,减少手动编码,提升效率,对程序员有积极影响也有挑战。程序员需深化技能、拓宽知识应对。长远看,AI与人类程序员将共生共荣。
    的头像 发表于 11-08 10:17 74次阅读

    第五届长沙·中国1024程序员节开幕

    场精彩活动将轮番上演。超200名海内外技术人员围绕人工智能、数据技术等前沿领域展开深入研讨。 本届1024程序员节中机器人与具身智能、大模型等主题引发热烈讨论;程序员开发者如何利用生成式AI提升
    的头像 发表于 10-25 15:42 148次阅读

    京东上万程序员都AI用它!

    对大模型生成代码进行智能修复,为程序员开启代码漏洞修复的“自动驾驶”模式,不但减少人工接入、提高工作效率,更为企业抵御内外部各种攻击构建起一道坚固的安全屏障,确保业务的连续性和稳定性。 JoyCoder是京东云自主研发的一款辅助开发
    的头像 发表于 07-17 16:29 219次阅读
    京东上万<b class='flag-5'>程序员</b>都AI用它!

    程序员节视频创意大赛,用串口屏赢取千元大奖

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-08 10:38 72次阅读
    <b class='flag-5'>程序员</b>节视频创意大赛,用串口屏赢取千元大奖

    程序员节视频创意盛宴,邀您共襄盛举!

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-04 09:00 67次阅读
    <b class='flag-5'>程序员</b>节视频创意盛宴,邀您共襄盛举!

    大模型时代,程序员当下如何应对 AI 的挑战

    随着 AI 技术的飞速发展,特别是大模型的出现,传统的程序员角色正在经历深刻的变革,我们不得不重新对自己进行审视和思考。 通用领域大模型的“泛化能力” 在过去的二十年内,AI 领域的大部分研究
    的头像 发表于 06-28 16:19 497次阅读
    大模型时代,<b class='flag-5'>程序员</b>当下如何应对 AI 的挑战

    阿里云发布首个AI程序员,引领应用开发进入“分钟级”时代

    近日,在备受瞩目的阿里云上海AI峰会上,阿里云向全球开发者们展示了其最新的技术成果——首个“AI程序员”。这款创新应用基于通义大模型构建,具备了令人惊叹的多项技能,包括架构师、开发工程师、测试工程师等,为软件
    的头像 发表于 06-24 10:36 614次阅读

    适者生存,程序员最终会流向哪……

    程序员没有永远的护城河!!就目前的互联网大环境来看,it行业已经是……
    的头像 发表于 03-11 17:11 382次阅读
    适者生存,<b class='flag-5'>程序员</b>最终会流向哪……

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。技术迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    瑞萨Flash程序员V3 发布说明

    电子发烧友网站提供《瑞萨Flash程序员V3 发布说明.pdf》资料免费下载
    发表于 02-19 09:37 1次下载
    瑞萨Flash<b class='flag-5'>程序员</b>V3 发布说明

    2024程序员的未来方向如何走?还看今朝

    这几年的IT行业想必大家已经感受到了,Android、Java、前端等等程序员都经历了大厂……
    的头像 发表于 02-02 09:45 767次阅读
    2024<b class='flag-5'>程序员</b>的未来方向如何走?还看今朝

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    。 如何正确看待鸿蒙? 我作为程序员来说,首先是看鸿蒙的发展、市场开发岗位、薪资以及前景。 这几年对鸿蒙的发展情况来分析,从2019年开始鸿蒙的出来今天,华为鸿蒙取得了很大的成就。从“不兼容
    发表于 01-16 22:13

    诚邀报名 | GPT驱动的新程序员时代,开发者如何编程?

    模式,开发者们迎来了编程范式的全新变革。传统的编程不再局限于编写线性代码和优化逻辑,自然语言取而代之,成为了编程的新工具,这大大降低了开发的门槛。 如今,以ChatGPT、Copilot等为代表的AI工具,将全球的知识库和代码库都呈现在用户面前,只要有足够的想象力,每
    的头像 发表于 12-11 22:20 505次阅读

    程序员表白程序

    电子发烧友网站提供《程序员表白程序.rar》资料免费下载
    发表于 11-21 10:41 16次下载
    <b class='flag-5'>程序员</b>表白<b class='flag-5'>程序</b>

    嵌入式程序员应知道的几个基本问题

    电子发烧友网站提供《嵌入式程序员应知道的几个基本问题.pdf》资料免费下载
    发表于 11-20 11:21 0次下载
    嵌入式<b class='flag-5'>程序员</b>应知道的几个基本问题