作者: 莫力全 Kyle Mo
译者:前端小智
来源:medium
有梦想,有干货,微信搜索 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。【成为 Software Engineer 半年后的小回顾 — 我遇到的困难与反思】不知不觉间成为软体工程师也过了半年了,按照以往的惯例,每隔一段时间就会想回顾一下这段时间自己心态的改变与成长,顺便以文章的形式纪录下来,希望可以与一些在相同阶段或是有类似经历的读者产生共鸣。
本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。
老实说自己在成为全职软体工程师的这段时间遇到了一些“烦恼”,不过这些问题可能会因为个人习惯与自己对职涯的规划而异,对你来说也许根本不是烦恼也说不定,当然除了烦恼之外也有一些体悟,就继续看下去吧!
什麽技术都想要会的过渡期 — 四不像
在蛮久以前我写过一篇文章,内容是关于前端与后端该如何去选择的一些个人看法。
简单来说就是我会先 focus 在前端开发,但同时也会继续学习后端相关技术,毕竟职涯很长,我认为不用过早局限自己。
在现在的工作中,原本隶属于前端团队,但是后来刚好有一个蛮急的后端需求,主管也知道我对后端是有兴趣的,所以我就得到了一个转去写后端的机会,目前大概一个月过去了,基本上都在用 Python 开发后端,这段时间完全没再去碰前端。自己学习后端一年多终于有机会真实上战场了,心中当然是兴奋的,但这段时间下来也多了一个隐忧:“我的前端技术会不会因此慢慢退步?”另外因为我只是在这四个月暂时加入后端 team 协助开发,实质上还是隶属于前端团队,因此会议、讨论基本上还是跟著前端伙伴一起,因为暂时脱离了前端开发,有时候会跟不太上伙伴的讨论,自己在开发时遇到的问题似乎也不太适合与前端伙伴讨论,导致自己有点“四不像”的状况出现。
经过思考后我认为这只是一个过渡期,当各种技术都没有到非常精通时,就会有这种顾此失彼的状况发生。但是如果在未来自己的基础与实力更扎实时,我认为就不用担心有些技能会因为短时间内不常使用就严重下滑的状况。(当然熟练度还是会有差啦!)
直到现在我仍坚信前端开发者是一定要具备后端开发甚至 DevOps 相关的技术与知识的,从技术的演进就可以慢慢发觉这样的趋势。未来的技术会变得如何我们无法预测,但只要做好足够的准备就不必害怕未知的挑战。
实力无法对应名气,困扰于技术圈的大神文化
首先要先强调这边并不是要自夸!
首先要先强调这边并不是要自夸!
首先要先强调这边并不是要自夸!
透过撰写技术文章,比如说 StarBugs 技术週刊或是 iT 邦帮忙铁人赛,又或者像今年首次尝试在 JSDC 这样的开发者年会做技术分享,让 Web 开发领域,尤其是前端圈越来越多人知道我,也渐渐有人成为定期关注我的读者。
然而我会写文章的初衷仅仅是因为喜欢分享而已。我想每个人在学习软体开发的这条路上一定有参考他人文章来学习的经验,自己很单纯的觉得我应该也要成为那样的人,让其他人也可以因为自己的文章学习到一些知识,或是在学习的路程更快速掌握方向,少走一些冤忘路。
名声的增长其实带来了不小的压力,可以常常听到别人用“大神”、“老师”来称呼自己,但我比任何人都清楚,我只是个刚出社会的菜鸟,在言语表达上也不是很在行,与人面对面沟通聊技术相关的事情时都没办法像透过文字撰写这样的轻松自在。我认为我只是比别人花更多时间在学习,并且比较擅长整理所学知识,仅此而已,任何人花跟我一样的时间都可以做到一样的事,这是我十分肯定的。
当自己清楚本身实力并不是像大多数人想的那样强,却一直被所谓“大神文化”环绕时,有一段时间还蛮困扰跟低落的,因为这跟自己想要的每个人平等交流的环境有点落差。尤其当自己身边有数不清比自己还要厉害的人时,这样的称呼老实说成为了不小的压力。
经过思考后我决定这阵子要自己闭关修炼一下,所以未来部落格可能会比较偏向撰写一些工作或生活上的心得杂感为主,太聚焦于技术的文章就随缘吧!
Coding 不是软体工程师的全部
以前太 focus 在 “coding” 这项硬技能,直到真的成为软体工程师,并加入一个完整的开发团队后才发现要成为一个好的软体工程师,还需要具备非常多的软技能,例如说团队沟通与协作的能力、对公司业务逻辑的了解…等等。以前总是只关注自己的 coding 能力或是电脑科学的基础知识有没有进步,现在我则同时去注意自己在软实力上有没有需要加强的地方,这也是我现在对于一个好的软体工程师的一种新认知。
在工作上,因为公司是做金融保险科技,因此员工也需要对保险这个领域的专业智识与业务逻辑有一定程度的了解。我原本对于保险就没有特别感兴趣,加上保险是个超级複杂的系统,每天得面对一堆艰涩难懂的专有名词,这对我来说是个相当大的挑战,有时候在开发时会有种“我学了很多技术,但不懂业务逻辑,我根本不知道怎麽使用,或是没办法加入其他人的讨论给予建议。”的感觉。这些经验验证了 coding 真的不是软体工程师的全部,我们应该放一部分心力在提升自己的软实力与相关产业的专业知识,才能最大化自己的价值。
Junior to senior (初级到高级)
刚准备出社会前,我有个盲目的目标:“我在一年内要成长到 Senior Engineer 的程度。”,于是我疯狂学习软体开发相关的知识,不过在上面一个段落也提到了,要成为一个好的软体工程师,除了硬实力以外,也需要具备许多软实力,这个道理也同样适用于从 Junior 过渡到 Senior 的过程。除此之外,Junior 工程师也很容易在接收到需求时,就盲目的开始开发,希望尽快把需求给完成,不过这样缺乏通盘考虑的下场往往是写了一堆未来不好扩充,不好维护的程式码,在以后可能还是要其他工程师帮忙擦屁股做重构。
对,我就是上面所说的莽撞的 Junior 工程师。
我在这半年才感受到与资深开发者的差别,最大的差距不是写 code 的能力(好啦,这也差很多 XDD),而是经过思考看透整体架构的能力,例如说做这个需求会不会影响到系统上的其他地方?哪种实作方式对目前架构来说最适合?对整体 codebase 影响?这些都是现在的我所欠缺的。
所以现在的我不会再给自己多久之后要成为 Senior 这种目标,毕竟 Junior Senior 这些 title 本就是客观的,没有一定的衡量标准。我认为重要的是心中要有个理想开发者的样子,不断往那个方向前进就对了。
太努力也会累,培养一些生活中的兴趣吧!
在进入职场前,自由的时间很多,我平均每天大约花 5 个小时在学习上,然而开始工作后,每天只剩下下班后的一些零碎时间可以拿来利用,现在我还是尽量每天空出下班后的两个小时拿来学习新知识与技术。不过这样花大量时间在技术相关的事情上久了会有点疲劳,学习的动力与成果也会砍半。因此我也开始慢慢调整自己的生活步调,除了写代码以外,也开发一些长期的兴趣,例如健身、打球、看电影…等等。虽然碰技术的时间变少了,但我并不觉得自己进步的幅度有减少,毕竟活得快乐,做任何事才会快乐吧!
所以想变强真的不需要一股脑的埋头苦干,每天除了代码什麽也没有,你必须做个权衡,慢慢来真的比较快!
总结
也许这是一篇有一点点负面的文章,但我认为负面情绪本就是进步的动力之一,认清自己的问题、认清自己的理想与现实的差距可以让我们更快速导回正轨并继续前进。
我非常庆幸自己在出社会半年后就遇到这些烦恼,自己也设立了一些改进的目标,接下来就等再过半年出社会满一年后再看看自己有了哪些改变吧!
代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。
原文:
https://oldmo860617.medium.co...
交流
有梦想,有干货,微信搜索 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。
本文 GitHub https://github.com/qq44924588... 已收录,有一线大厂面试完整考点、资料以及我的系列文章。
文章图片