成长的模式:如何从毕业生到技术专家?(代码片段)

Phodal Phodal     2022-12-04     428

关键词:

过去的一个月里,在帮助其他部门进行毕业生培训。从名称上说是培训,但是实际上则是训战结合。不想一下子给太多,这篇文章会给的建议是:

  1. 寻找持续成长的动机

  2. 塑造整洁的编码习惯

  3. 建立定位问题的方式

  4. 学习既有的模式

  5. 频繁性自我总结

只凭这五点来说,与《福格行为模型》所定义的三要素也是颇为相似的:

  • 要素1 动机(Motivation):找到实现愿望的黄金行为

  • 要素2 能力:让行为简单到随时顺便都能做

  • 要素3 提示:善用锚点时刻让行为立刻发生

如果再简化来说,也可以采用和我一样的模式,通过基本简单的行为:每天写代码,每周做总结(通过文章)。


再定义专家

再回到我们这篇文章的主题里,如何从毕业生到一个技术专家?专家是基于研究、经验或职业并在特定研究领域具有广泛知识或能力的人。这样的定义是如此的简洁,以至于一个工作经验丰富的人都可以称上得是专家。在这种定义之下,一个 996 的程序员的开发经验,可谓不比一个 965 的人差。

于是乎,我还更喜欢,我在在那篇《专家 x 抽象 x 类比》里,我们也定义了专家应该做点什么?

所谓的专家嘛,就是在擅长的 “领域” 里,构建了具有范畴化(归类)的概念空间,并可以通过类比灵活地完善自己的概念库。

在这个定义之下,我们行业的技术专家便是指,在软件开发领域,具备丰富的软件开发相关的知识(即概念)或者是经验。拥有自己的软件开发相关的知识体系(概念库),并且能持续不断地完善。比如说,你是个后端专家,那么你能理解后端开发中的大部分概念,以及这些概念之间的关系。诸如于:

Spring Boot 是一个可以用于帮助我们开发微服务的框架;微服务是一种基于服务的分布式架构风格/架构模式架构模式是模式的一种,其中采用最广泛的是设计模式分布式架构通过远程协议连接多个部署单元

基于 Spring Boot 构建的应用可以是一个部署单元,通过持续集成构建持续部署容器化平台上。

能知晓整个体系的相关概念,并清晰地知道概念之间的关系,再有一定的经验,我们就是入门级 “专家”。而后,一旦来了一些新的概念,我们还需要能将它们纳入到我们的体系中。诸如于最近在后端开发领域又重新火起来的 Cells-based architecture,它也是一种架构风格,同等于微服务架构。我们所能构建的是一个领域的思维框架,它可以帮助我们对所有的知识分门别类。

1. 寻找持续成长的动机

首先,我们要思考的第一个问题是,为什么我们要成为一个技术专家?

不管动机水准的高低为何,人们若能维持一定的动机水准,则不但能维持追求该目标的行为,也能维持心理上对该目标的渴望,直到人们知觉到该目标达成为止。—— 维基百科

六年前,我参加过一个 Management 3.0(有兴趣的读者,也可以翻看《管理3.0:培养和提升敏捷领导力》)。虽然,这个培训确信了我不适合这个无聊的工作。但是,培训/书中介绍了一个 CHAMPFROGS 模型,它可以用来帮助我们寻找内在的动机。它由十种激励因素(好奇心,荣誉,接受,精通,力量,自由,亲和力,秩序,目标,地位),包括内在动机、外在动机或两者兼有的因素组成。(有兴趣的读者,可以翻看:https://www.infoq.com/news/2013/11/intrinsic-motivators/ )

你也可以尝试一下,从上面的十个动机,按一、二、三的顺序,挑选出最与你匹配的动机。进而,你就可以发现你成长的动力在哪里。我记得多年以前,我的主要动机是好奇心、自由,其中有一个我已经忘了,估计也不重要了。

总有人会说:“hi,我成为技术专家的专家是赚更多的钱”。那么,问题来说,你如何定义多和少,怎么去衡量它们呢?对于打工人而言,你赚的钱多数时候,并不是靠你的能力决定的,而是你的行业决定的。所以,久而久之,将赚钱作为成长的目标,你会失去这种动力。因为,你的技术成长并不会从收入上得到回报。

2. 塑造整洁的编码习惯

整洁的代码意味着很多事情,你可以从《代码整洁之道》得到更多相关的知识。作为一个刚入行的程序员,在代码上充斥着大量的问题,诸如于:

  • 无用的注释

  • 注释的代码

  • 混乱的代码风格

  • 缺乏设计/重构的代码

  • 缺乏自动化测试,导致大量的 println 或者 console.log

  • 不会使用工具加速开发。如 IDE 快捷键、snippets、emmet 等

  • ……

如果在工作一两年之后,你依旧还是这样,就需要警惕一下。基本的编程习惯都没有养成,离专业的程序员的距离就更加遥远。而这些简单的问题,大部分都可以通过 IDE 来帮助我们发现,如 Intellij IDEA 这一类的工具。

所以,我建议新手程序员应该优先考虑现代化的 IDE,从工具上花的钱,早晚会通过其它方式赚回来的。

3. 建立定位问题的方式

我们一直在说,程序员大部分是 ctrl + c/ctrl +v ,即 Copy and paste from Google/Stack Overflow/GitHub。但是呢,能做到这一点的程序员,本身并不多。学会使用 Google,是作为程序员的一个很大的门槛,而大部分人都跨不过这个门槛。另外一个门槛,便是访问 GitHub,大量的可学习的代码在上面。

从查看问题的角度来说,我们可以发现新手经常:

  • 忽略到错误信息上显而易见的信息,如 error 等。

  • 不会有效地看错误信息。只看最后的结果,或者截错图。

从分析问题的角度来说,我们还可以发现新手们:

  • 不会去查看官方的文档。哪怕官方文档真的是最好的。

  • 不懂得如何查看文档。

  • 忽视从错误信息搜索,是最有效的手段。

  • 不懂得如何使用关键字搜索。即采用相应的技术术语,如:Spring Boot JPA Query

  • 不知道 GitHub issue 可以搜索

而在定位问题上,虽然对于新手有点难,但是依旧可以做一些尝试。诸如于通过 review 代码变更、回退,或者是自动化测试来帮助我们定位问题。

4. 学习既有的模式和最佳实践

对于新手来说,值得注意的是,我们在这一个阶段遇到的问题,大部分都是一些已知问题,往往可以搜索到资料来解决。大部分困扰你已久的问题,往往在书上,或者通过 Google 就可以得到这样的答案。

也因此,在多数时候,我往往会通常买书来快速熟悉一个现有的领域。没有什么能比,买知识更划算的知识。虽然说,互联网上也包含这些知识,但是搜索是需要成本的。对于编程来说,大量的知识已经被先辈们总结过。与其再自己汤坑,还不如直接买本书方便。所以,不妨去寻找一些书单,诸如于:https://www.douban.com/doulist/121444657/

广泛意义上的模式是一个好东西,比如如何去分析问题、拆解问题等等。

你也可以多去搜索看看,新手程序员的建议。

5. 频繁性自我总结

不要把日报、周报视为自我总结 。这是的总结是指对于技术、模式等的总结,它可以是:

  • 如何应用某个框架和模式的总结

  • 如何一步步采用某种框架的总结

  • 分析某个框架的原理的阶段性总结

  • ……

编程生涯很长,我们使用过或者将使用的技术很多。新的技术层出不穷,绝大部分的新技术都是基于已有的改进。与此同时,我们学习过的大量有趣的东西,并不会在工作的时候用上,或者用到的概率很多。

而如果我们不去记录这些有意思的东西,通过代码托管网站或者博客的方式,那么我们再次遇到它们的时候,就需要重到再来。所以,可以多做一些总结,以便于将来使用上。

其它:专家的知识诅咒

也是好久没有接触毕业生,所以过程中陷入过知识诅咒的问题。即如果我们很熟悉某个对象的话,那么我们会很难想象,在不了解的人的眼中,这个对象是什么样子的。。简单来说,就是无法预知毕业生的平均水平,需要多次的解释,才能将问题解释清楚。

对于我的文章来说,这个问题也是由来已久的。只是对于我来说,要解决这个问题并不容易,也不是我的义务。博客一直在那,或许,多年以后,读者就能自行理解。

对于专业的程序员来说,也存在类似的问题。我们习以为常的内容,在一些新手看来,往往是无法理解的,我们也很难解释清楚。在解释的过程中,还有可能带入了更多的概念,导致新手程序员更加困惑。诸如于,我在解释一个几百 M 的文件提交到 Git 中,为什么会存在的时候,引入了 blob、索引等一系列的概念。这时候的效果反而不如右键 .git 目录查看一下大小,来得简单得多。

成长的模式:如何从毕业生到技术专家?(代码片段)

过去的一个月里,在帮助其他部门进行毕业生培训。从名称上说是培训,但是实际上则是训战结合。不想一下子给太多,这篇文章会给的建议是:寻找持续成长的动机塑造整洁的编码习惯建立定位问题的方式学习... 查看详情

阿里高级技术专家:如何结构化地思考做事成长?(代码片段)

作者|?承风阿里巴巴高级前端技术专家导读:建立结构化的思维,以结构化的模式驱动工作,以结构化的体系构建自身的能力,小到写PPT、大到为业务提供更大价值,都是非常值得我们使用的模式。阿里巴巴数字供应链事业部高... 查看详情

linux下搭建filebrowser文件管理系统(代码片段)

...业、职业?入门的导师你还记得吗?为大家介绍一下吧3.从毕业生到职场IT人,最大的感受是?4.你觉得毕业季职场新人应如何选择工作?5.工作中,技术人应如何在技术领域快速成长?6.工作中用技 查看详情

从《从小工到专家》的“道”到大厂的“法术器”-实效篇(代码片段)

...家》本书第二章内容的梳理与自己经验的复盘回顾,思考成长的灯塔一、本文的内容本文的内容是根据《从小工到专家》这本书的第二章内容梳理编写的,其中印象最深刻的点是“曳光弹”这一节,讲的是我们开发的时候就像是在黑... 查看详情

从《从小工到专家》的“道”到大厂的“法术器”-实效篇(代码片段)

...家》本书第二章内容的梳理与自己经验的复盘回顾,思考成长的灯塔一、本文的内容本文的内容是根据《从小工到专家》这本书的第二章内容梳理编写的,其中印象最深刻的点是“曳光弹”这一节,讲的是我们开发的时候就像是在黑... 查看详情

从《从小工到专家》的“道”到大厂的“法术器”-实效篇(代码片段)

...家》本书第二章内容的梳理与自己经验的复盘回顾,思考成长的灯塔一、本文的内容本文的内容是根据《从小工到专家》这本书的第二章内容梳理编写的,其中印象最深刻的点是“曳光弹”这一节,讲的是我们开发的时候就像是在黑... 查看详情

从《从小工到专家》的“道”到大厂的“法术器”-实效篇(代码片段)

...家》本书第二章内容的梳理与自己经验的复盘回顾,思考成长的灯塔一、本文的内容本文的内容是根据《从小工到专家》这本书的第二章内容梳理编写的,其中印象最深刻的点是“曳光弹”这一节,讲的是我们开发的时候就像是在黑... 查看详情

当技术人成长为ceo,应该修改哪些“bug”?(代码片段)

...解决行业问题、技术人如何塑造产业思维,以及如何成长为创业者四个维度,深度解读了他对算法与物流产业的思考。作者|杨阳    出品|《新程序员》编辑部丛纹弨出生于山东威海的教师家庭。从小接触 查看详情

从codereview到gitcommitlog(代码片段)

...趣的观点,比如:技术管理、技术实践、硅谷文化、个人成长等。读到关于硅谷人如何做codereview这一篇时,不由想到了前段时间看过的一篇博客:如何写好Gitcommitlog。之前的工作用Git做版本管理工具,因此每次提交改动时都会... 查看详情

从《从小工到专家》的“道”到大厂的“法术器”-哲学篇(代码片段)

...灌顶”.作者在去年加入某大厂,进来了之后一直在思考着如何利用这个平台学习一些有用和值得思考的知识,苦于一直没有找到合适的“灯塔”.看了这本书之后发现原来我想要去寻求的“道”一直就发生在我的身边以各种方式表... 查看详情

android开发三年,连续两次晋升,成为了阿里p7技术专家

...经历校招经历先讲讲我的校招经历吧。我是2017年的应届毕业生!我的学校其实也比较普通,但也不是太差,是一个末流的211。校招的话一般毕业的前一年就开始了,分为春季招聘和秋季招聘,春季的这些招聘... 查看详情

向大牛学习——如何快速成长为技术大牛?阿里资深技术专家的总结亮了(转)

如何快速成长为技术大牛?阿里资深技术专家的总结亮了阿里妹导读:你是否有类似这样的问题——“天天写业务代码的程序员,怎么成为技术大牛,开始写技术代码?”今天,阿里资深无线开发专家李运华,系统梳理了自己的... 查看详情

〖毕业季|进击的技术er〗其他人都在缅怀青春告诉你如何拿到offer提高自己的技术栈做未来规划路线,我偏要反其道而行告诉你们一个不一样的技术er的职场成长。(代码片段)

活动地址:毕业季·进击的技术er谨以此文纪念曾经夕阳下的奔跑,那是我逝去的青春…声明:本故事纯属虚构,如有雷同,纯属巧合,完全完全不是我的职业生涯,请勿对号入座!!!文中... 查看详情

redisredis高可用之sentinel哨兵模式详解(redis专栏启动)(代码片段)

...享,喜欢原创~关注我会给你带来一些不一样的认知和成长。     🏆2022博客之星TOP3|CSDN博客专家|后端领域优质创作者|CSDN内容合伙人🏆InfoQ(极客邦)签约作者、阿里云专家|签约博主、51CTO专家|TOP红人、华为云享专... 查看详情

前端leader找我谈心:我是如何从刚毕业的前端菜鸟一步步成长为前端架构师的?

 谈谈学习 我做前端已经有五年的时间了,从大学刚毕业的时候,我是一个完全什么都不懂的小白。虽然我大学里学的是软件工程专业,但是因为在大学里荒废学业,每天只知道打游戏,基本上到大学毕业之前我是什么都... 查看详情

如何画好一张架构图?(代码片段)

...地讨论。较长,同学们可收藏后再看。文末福利:架构师成长秘籍。什么是架构图?如何画好一张架构图,要做好这件事情首先要回答的就是什么是架构图。我们日常工作中经常能看到各种各样的架构图,而且经常会发现大家对... 查看详情

从《从小工到专家》的“道”到大厂的“法术器”-哲学篇(代码片段)

...灌顶”.作者在去年加入某大厂,进来了之后一直在思考着如何利用这个平台学习一些有用和值得思考的知识,苦于一直没有找到合适的“灯塔”.看了这本书之后发现原来我想要去寻求的“道”一直就发生在我的身边以各种方式表... 查看详情

毕业季|进击的技术er作为一个职场人,我想对你们说

...1.我的大学背景2.我的大学导师以及印象深刻的一些事3.从毕业生到职场IT人,最大的改变4.从毕业生到职场IT人,遇到的问题与反思5.工作中,技术er应如何在技术领域快速成长?6.程序员三十五岁瓶颈你怎么看?... 查看详情