计算机技术发展日新月异,技术方向又繁杂多样,在工作中我们随时会面临着新的挑战,也都会阶段性地遇到成长的瓶颈。

所以无论是作为初入职场的新人,还是工作了几年或者十几年的老手,都需要保持着持续的学习能力和学习习惯,不断地拓展边界、提升自我,以应对挑战、突破瓶颈。

但时间总是有限的,知识和经验的积累也不可能一蹴而就。在有限的时间和精力下,如何规划好我们的学习成长路线显得尤为重要。

今天我们邀请了四位来自闲鱼的开发同学,让他们来谈一谈自己关于这个话题的想法和经验。

文珏

从电信行业跳槽互联网来讲一讲程序猿的学习之路。我之前从事电信行业的开发很长时间,现在入职闲鱼半年多,回想两份工作之间的差异和相通,通过对比希望能大家一些启发。

变化很大

  • 业务范围的变化

我从关心4、5G的发展,关心移动联通的接口含义转换到关心每个C端用户的需求是否被满足,每步操作的体验是否流畅,每天要时刻关注线上的业务舆情,页面访问数据等实时信息。

业务范围的变化可以说是最大的跨越,这时快速转换思想,接受新的业务定位,快速融入新的轨道至关重要。

  • 技术栈的变化

电信行业引入开源解决方案的机会相比不多,同时为了解决复杂业务,需要较多产品模块的参与,对于执行效率,大并发的要求较低。

互联网行业为了适配各种新业务,更多时候需要引入开源解决方案进行项目优化,同时有更丰富的线上问题的日志监控,对安全、并发,更加重视。

同时数据中台,业务中台,技术中台等新的技术架构概念也在更换轨道的时候带来一些挑战。

  • 工作节奏的变化

跟客户确定需求-->做POC-->预估工时-->团队排期-->进入开发-->多轮测试-->安装部署上线,稳定节奏保障电信业务更安全流畅的交付以及迭代。

然而互联网业务,快速上线,快速迭代,实效更加重要。而且线上出现的状况永远是防不胜防,随时准备帮客户排查问题,随时准备拉分支,修复小问题。

这些工作节奏的变化可能一开始会不太适应,快速脱离原有舒服的模式,快速试错,快速成长,也是件让人兴奋的事情。

变化不大

IDEA,Git,Debug调试,每天依然还在这些工具中穿梭。开发,测试,看架构,理解业务,写逻辑,作为程序员,工作内容本质上还是差不多的,用代码实现功能,保证模块的安全,健壮,和稳定。另外对业务和对需求的理解在各种域中都很重要,充分了解业务,才能更好的实现功能,满足客户要求。

而且不论是电信还是互联网,开发人员都是用自己的语言来解决问题,方便人们的生活,赋予工作意义也给自己找到社会价值,从这一点来说,开发工作都是相通的。

总结

回归到主题如何规划学习成长路线上,无论是哪一个域的开发,下面这些点都是在不断进阶的路上值得思考和重视的

  1. 深入了解所在域的业务内容

    大部分的开发都是为了满足功能,对业务理解的越透彻,越有利于在工作中有所为,有所创新。尤其在经历过的项目中,最好可以把流程都弄清楚,把每个模块的难点都吃透。

  2. 始终保持学习能力

    个人能力的更新、精进,旺盛的好奇心,这些对开发人员来说都非常重要。

  3. 勤于思考

    了解架构-改进架构-创造架构,了解业务-改进业务-创造业务,让自己的工作更有意义。

烬天

“程序员如何成长”,这个话题其实很宽泛,每个程序员在大学志愿单写上计算机,当写出第一个“Hello World”时,就已经开始思考这个问题。作为一个本三的小菜鸟,既没有睥睨天下的技术,也没有丰富精彩的阅历,只是顺利跨过了毕业->工作的过渡。从科班到金融软件公司,再到闲鱼,短短三年,也算是在按照自己的指定的方向前进,就将这其中的一些思考和拙见分享给大家吧。

基石——专业课的开设都有其道理

计算机组成原理,编译原理,计算机网络,数据结构……大学期间的课程五花八门,有些课程晦涩难懂,很多人(包括我)都觉得,学这些有用吗,这些不都过时了吗,我只要掌握行云流水的编码能力,一气呵成的框架体系,写一手漂亮的代码,不就行了吗。非然也。都说程序员是吃青春饭的行业,新技术更替的太快,让人疲于奔命。其实,万变不离其宗,底层技术原理一直都未多大变化,是最值得我们去投资的。不懂计算机原理,不知道计算机如何去存储表示数据,怎么去理解位运算的奥秘,去理解形形色色的编码格式?不学计算机网络,如何理解数据间的传输,多台计算机如何通信,怎么去搭建可靠稳定的系统?这些专业课程,传授的是知识,也是思考和文化,前人从0到1的创造的思考,前人遇到的数不清的难题和坎坷的解决办法。这些基石搭建好,才能在上面盖出高楼。“蓦然回首,那人却在灯火阑珊处”,工作后遇到的诸多难题,最后发现答案都隐藏于之前那些晦涩难懂的专业课中,才发现“计算机网络”真是一门好课,真是一本好书。

保持学习上的成就感

学习是枯燥乏味的,所以就要有一些激励手段,或者发现一些兴趣指引。平常的工作学习中,要多发现一些“不懂点”,Spring为什么要这么启动,为什么人们会拥抱 REST,嫌鄙 SOAP。多制造一些为什么,勾起好奇心之后,发现自己的渺小和茫然,原来我这么菜,作为内驱力去学它,搞懂它。彻底理清搞懂一个难题后,心理上的满足感是无与伦比的,或者也可将自己学习过程中的思考和各种总结记录下来,整理发布到论坛博客上,分享给更多人,再次提高自己的成就感。自己成为某方面的“小大师”,就可以帮助下个遇到该问题的同事/朋友,“看,这个我懂,我讲给你”。

没必要单枪匹马闯关东

当遇到难题,设计方案的时候,不要一个人一直搞,这样会消磨自己的激情与耐心,求而不得还会提高自己的挫败感。善于借助外力,善于学习前人经验。技术成一家,别人走过的路,往往也是自己要走的。阅读别人的优秀代码,学习别人的设计思路,可以从别人写的好的源代码和方案中间学习到更多的编程方法和技巧。一个比较大型的程序,完善的设计方案,往往都是经过了很多个版本很长的时间,有很多人参与开发,修正错误,添加功能而发展起来的。面前就有前人种好的树,先乘凉,再树荫下再种自己的树。

跟自己的节奏

我觉得最重要的,还是要跟着自己的节奏,按照自己制定的计划和方向去前进。千万不要急于成长,不要过分的追求技术上快速积累。没有什么快速通道,程序员大神也不是一蹴而就,都是一个坑一个坑踩过来的。苦学三日,一鸣惊人根本不存在。其次,工作也只是生活的一部分,技术又只是工作的一部分。程序员如何成长,我觉得更应该是自己生活中如何成长。保持自己的节奏,有些事急不来。在生活这条路上,只要自己在慢慢前进,已经超越大部分踏步的人了,又何必不知足呢?

百夜

技术成长道路不用担心走“弯路”

拿我个人的大学四年经历来说,大一学的运维,还去考了红帽认证工程师;大二主要搞的web安全,去打了各种各样线上线下的CTF比赛;大三明确了自己要做开发,开始有规划的学习Java。我想说的是不用那么着急确认自己的工作/研究方向,感兴趣的领域都可以去试试看,而且计算机技术有很大的互通性,比如学安全的时候想复现一个漏洞,可能要手动搭环境吧,或者找现成的docker,这时候就能用上一些运维的知识;开发的时候要考虑接口安全性,要学习代码怎么部署到服务器让它跑起来,安全和运维的知识都用到了。技术的道路既长远又宽广,可以多看看,最后再选择走哪条细分的道路。在成长路上走的每一步都是有意义的。

说一下“八股文”

对“八股文”不要有什么的抵触情绪,更不要把它当成“灵丹妙药”,“八股文”就是一份很不错的学习规划路线,按着这份路线学习不会有错,但一定要思考,一定要实践,细节一定要深挖。或者用它来检测读书的成果,比如刚看完《MySQL技术内幕:InnoDB存储引擎》,去“八股文”里找一些关于MySQL的问题,看看自己能否答出来,自己的理解和其他人是否有差异,这样有助于加深理解和记忆。

玉凇

搭建技术知识体系,补齐短板

对于刚毕业不久的新人,这个阶段最需要的是搭建好自己的技术知识体系。尤其是非计算机专业毕业的同学,本身的知识结构可能不是特别完备,更需要夯实好基础,才能有利于之后的长远发展。

从编程语言与规范、计算机网络、数据库,到设计模式、微服务架构、大数据技术等等,需要学习的内容有很多很多。在制定学习计划之前,需要对自己的知识结构进行详细的梳理,需要明确自己的知识盲区,做到有的放矢。

在这个阶段,一些经典的书籍会更推荐一些,比如java开发领域的《深入理解JVM虚拟机》、《Effective Java》,代码质量相关的《重构-改善既有代码的设计》等,切忌去看一些乱七八糟的“速成”文章。

明确目标行业,深耕技术领域

在时间有限的情况下,往往需要选择一到两个行业内的技术领域进行深耕,比如消息中间件技术、分布式系统设计、高并发场景系统设计等等。

这个阶段,需要能够做到“以终为始”,对目标进行阶段性的详细的拆解,分阶段逐步达成。在学习的过程中,也需要不断地提醒自己是否偏离目标。

在学习的过程中可以重视以下几点:

第一,  可以适当阅读一些核心源码,但是不要漫无目的地瞎看。可以先通过阅读官方文档了解一些基本的原理,想一想如果是自己来实现要怎么做,然后与源码的实现进行对照,这样会比较高效。

第二,  通过高质量的文章输出来进行阶段性的总结和梳理,重视知识的体系化。

第三,  多与他人进行交流,主动分享,听取一下别人的批评和反馈收益也很显著。

重视日常工作中的技术实践和经验积累

知道和做到之间往往有着巨大的鸿沟,需要在不断的实践中,将所学的内容固化为自己的能力。在业余时间有限的情况下,怎么利用好日常的工作机会多去实践,还是很重要的。这里需要注意两点:

第一,  不要把工作只当作不得不去做的任务,在进行技术选型和系统架构设计时,可以多花些时间进行思考,不要因为“时间紧、任务重”就得过且过了。

第二,  适当地进行前瞻性设计,切忌好高骛远,如果架构设计偏离了具体业务场景的需求,即使再“高大上”,所谓的经验也就没有什么价值了。

以上是四位闲鱼同学的观点,关于学习和成长的话题,你有什么想说的,欢迎一起交流呀~

程序员如何保持学习成长?相关推荐

  1. 程序员如何自我学习和成长?

    关于成长,这是一个上至10年的大牛.下至3年的菜鸟 都能参与的话题,作为一名在坑里挣扎了六年的码农,我 也一直在探索.一直在思考.一直在总结,作为一名码农 到底该怎么成长? 这是一个值得持续讨论的话题 ...

  2. 解析程序员的几个成长阶段

    软件开发这个行业往往是供不应求,这跟开发人员的素质有很大的关系,在这个浮躁的圈子里,能在一家公司呆上三年以上的程序员,通常就会把持领导岗 位,结果做出来的东西大多非常糟糕.这也说明了,程序员的能力不能 ...

  3. 专访雷果国:从1.5K到18K 一个程序员的5年成长之路

    摘要:上段时间CSDN博客上流传了一篇比较励志的博文,讲述了一个程序员从基础薄弱到入职心仪公司的5年成长经历,为了给那些待毕业或已毕业但对未来仍很迷茫的朋友指引前行的方向,CSDN专访了这篇博文的作者 ...

  4. 从1.5k到18k, 一个程序员的5年成长之路【转载】

    从1.5k到18k, 一个程序员的5年成长之路 168楼朋友批评的很有道理, 虚心接受. 我自己是开始学的时候已经错过了基础课的学习, 现在也是深受其苦的, 面临技术上的瓶颈, 需要花更多的时间补充这 ...

  5. --专访雷果国: 从1.5K到18K 一个程序员的5年成长之路--

    导语:今年三月份,在CSDN博客和新浪微博上有一篇<从1.5K到18K,一个程序员的5年成长之路>被众人分享和传阅,这篇博文首先介绍了作者自学之初薄弱的基础,然后通过流水账形式分享了那个从 ...

  6. 程序员该如何学习技术

    程序员该如何学习技术 前言   学习是第一生产力,我从来都是这么认为的,人只有只有不断地学习才能意识到自己的缺点和不足,身为程序员,我更认为人们应当抱着终身学习的想法实践下去,这是我所一直践行且相信的 ...

  7. --专访雷果国: 从1.5K到18K 一个程序员的5年成长之路--

    导语:今年三月份,在CSDN博客和新浪微博上有一篇<从1.5K到18K,一个程序员的5年成长之路>被众人分享和传阅,这篇博文首先介绍了作者自学之初薄弱的基础,然后通过流水账形式分享了那个从 ...

  8. 黑马程序员——c语言学习心得——函数传递二维数组

    黑马程序员--c语言学习心得--函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化.    变量 ...

  9. 送给 Java 程序员的 Spring 学习指南

    https://www.infoq.cn/article/Ad-8ghcGGCNU572U6oEX 学习 Spring 的基础要求 Spring 官网首页是这么介绍自己的--"Spring: ...

最新文章

  1. 登陆窗体与主窗体的跳转 C# (转载自网络)
  2. 公钥密码--Diffie-Hellman密钥协商算法
  3. datetime模块及time模块
  4. 用requests爬取一个招聘网站
  5. 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
  6. ×××linux下vsftp服务器
  7. 设计模式_4_原型模式(对象的拷贝)
  8. php7 cms,PHP7CMS 无条件前台GETSHELL
  9. python中正则表达式的使用
  10. sql server 多条记录数据合并为一条_面试必备sql知识点——MySQL基础
  11. Bzoj1034 [ZJOI2008]泡泡堂BNB
  12. ssm练手小项目_20 个 JavaScript+Html+CSS 练手的小项目
  13. 1.3 正则表达式和Python语言-1.3.5使用 search()在一个字符串中查找模式(搜索与匹配 的对比)...
  14. java序列化(Serializable)
  15. 2020年 Java开发者进阶手册.pdf(吐血整理)
  16. RPC架构简介与原理
  17. 科学计算机怎么用10次方,一个数怎么用计算器开10次方
  18. 百度网盘离线下载分析及实现
  19. mac电脑怎么彻底关闭系统更新提示?
  20. Ubuntu搭建邮箱服务器

热门文章

  1. 华为鸿蒙是实时,用过华为鸿蒙后,我可能再也不需要安卓
  2. JDK内置工具之appletviewer
  3. 自定义高德地图深色主题
  4. DBeaver 深色主题安装教程
  5. 剑指offer——矩阵覆盖
  6. Centos7磁盘爆满排查
  7. 最近似乎都没怎么自学,觉得很愧疚,慎独真的很重要
  8. HBase:项目之电信信号强度诊断介绍(第一阶段:了解整个项目相关信息)
  9. 设计程序,判断给定的一个字符是否是英文字母。
  10. idea的文件一直在不停闪烁,并不停updating and index