重新理解 Go 实战
共 3769字,需浏览 8分钟
·
2021-04-19 15:42
点击上方蓝字关注我们
昨天很多人都看到我们GoCN社区和慕课网联合发布的《Go 高级程序员实战营》培训课程,看到内容的第一眼大家都很惊讶,为什么这个培训内容这么接地气,当然很多人纷纷私信我几个问题:
谢大,你怎么创业方向变了吗?打算搞培训了?
谢大,这个课程是你设计的吗?是你们公司内部的Go培训吗?
谢大,这个课程看了内容很深,我入门才两年适合吗?
谢大,我已经报名了课程,虽然我会动手去做去实现一些自己感兴趣的东西,但没有个方向,也不知道应该准备什么,有些地方无从下手?
......
一过会儿功夫就积累了一大堆的问题,我虽然都一一回复了,但是很多人可能还是不明白我为什么在这个时间点这个阶段出这样的实战培训营。那么今天就和大家一起聊聊我做这个培训的初心。
初心回顾
初心回顾
时间大概回到过年前后,那个时候我们公司因为业务快速的发展(我创业还是在做工业互联网方向),团队继续扩张,特别是Go方面的后端人才,我在那个阶段天天泡在boss直聘、拉钩招聘里面,和差不多上百位候选人沟通交流,前前后后看了不下几百封简历,线下也面试了好多Gopher,大多数Gopher基本上处于这样的状态:
PHP工作经验两三年,利用业余时间学习过Go;面试gopher岗位时问他工作技能,结果发现他只会一些小工具的开发。
业务能力很杂,什么都做过,听上去像是全端人才;但是一些深入的问题就不行,例如Go 如何进行性能监控、埋点之类的。
写了三年Go,但是都在区块链行业,都在基于Hyperledger开发,其他的东西没有开发过。
刚大学毕业,大学里面基本上都是学习的Java,听说Go是未来,所以想找一家做Go的公司。完全没有相关技术基础打底。
可能很多人会反问:我学习能力强,我进来可以学习,快速入手的。但是对于这些处在业务快速发展期的公司,大家缺少的是能够入职就可以帮助解决问题的人。
特别是像我们做的数字工厂业务,已经深入到工厂的生产运营中,如果出一个bug,就可能导致一批的工厂停工,这个风险是非常大的。
当然退一万步来讲,我们其实可以做企业内部培训,但是时间周期非常不确定,培训一个新人能够上手可能至少需要三个月起,而且还不一定能够培养出来(之前尝试过失败告终),这个成本对于大多数的公司是承受不起的。
我带着招聘的困惑找到了同在创业的AfterShip CTO 洪小军,咨询他在招聘过程中遇到的困惑,发现他那边也是遇到我类似的情况,缺人但是又没有很好的人才。当然这个里面最主要的原因还是Go的人才严重缺失。最近这几年云原生的快速发展,基本上各大企业都招募Go,而且还在不断的扩大Go的应用领域。
HackerEarth 发布了 2020 年开发者调查报告,有来自 76 个国家/地区的 16,000 多位开发者参与其中。调查显示,Go 是今年最受欢迎的编程语言。无论是学生(29%)还是专业人士(32%),都将 Go 语言列在“最想学习的语言”第一位。
我后来又问了一圈招聘gopher的朋友:PingCAP 刘奇、滴滴 来炜、探探 任贺、合阔 如鸿等,他们也是遇到了我一样的困境,想找有实战经验的人,找不到;自己培养,成本又很高。就算想要培养,也基本上靠运气,遇到好的可能培养起来了,但大多数都是以失败告终。
这时也是我第一次在脑子里面冒出来:GoCN 社区能不能帮我们这些缺少Go实战人才的企业进行前期培养?
Gopher困惑
做了快十年的Go社区,我自己也从一个Gopher变成了创业者,从开发者到招聘者,这个过程中也遇到了很多迷茫的Gopher,他们经常会遇到这样的问题:
"我写了两年Go了,但是感觉只会CRUD,没有机会遇到高性能高并发,总觉得能完成任务就差不多了,但是过了几年后发现,自己的技术水平和社区里面其他同学的水平相差越来越远。像我这样的情况,应该如何提升自我?"
"我毕业后进了大厂转的go,学得半桶水,独立做了项目,现在是在创业公司,也算是主力开发,但是我底子薄,好些个东西有想学的心,但感觉还是要比别人学习起来吃力一点;但我会动手去做去实现一些自己感兴趣的东西,但没有个方向,也不知道应该准备什么,有些地方无从下手"
"我看到云原生风生水起,我之前一直都在用PHP写逻辑,特别想去写中间件,特别想从PHP转到Go,但是没有公司愿意收我,我现在怎么办?"
"我看到很多岗位都在招聘Go,从各项调研报告也显示Go是未来,我想转岗做Go开发,但是目前只是利用业余时间写一写小工具,不知道如何深入学习"
.....
在社区里面诸如此类的一堆问题,其实也是让我作为社区负责人很着急,如何引导Go社区的人真正能够得到提升,找到自己想要的工作。
调研谋划
调研谋划
对于那些想找到Go工作的同学会感觉自己提升困难,找不到好公司;对于想找到Gopher的公司,又感觉很多Gopher同学实战经验少。所以我一直在思考是不是需要帮助双方去解决这个GAP问题。所以我在Go社区发起了一个《你期待怎么样的Go培训》的调研,收到了600多份的调研结果,这里也和大家一起分享一下数据。
学习Go多少年了?
从什么语言转过来的?
你期待哪方面的培训内容?
你期待怎么样的讲师?
从调研的数据表明,很多Gopher都是在0-3年之内的比例,从PHP、Python转过来的Gopher比较多,从大家投票的培训内容来看相对比较平均一些,说明我列出来关心的那些点大家都很关注,Go深度、Go实战、Go工程三大块,期待的讲师来看大家希望讲师是大厂专家兼开源库作者。
重新理解Go培训
技术人一听到培训可能想到的是早期的那种给你刷简历的培训,我自己确实也面试到过很多这些培训机构出来的人,特别是早期IT刚发展起来,需要大量人才的阶段,很多人高中毕业去刷一个培训机构,然后就来应聘工程师岗位,这种让人很反感培训出来的人才。
我在Apple的时候内部非常注重培训,全年都有各种类型的培训,我参加了很多内部的培训,让我对于培训也有了重新认识,这些培训真正的能够让自己在很多知识点成长起来,但是为什么内训和外训差别那么大呢?我自己总结出来就是,Apple内训的讲师非常注重实战,这个是和外面遇到的培训最大的区别,就拿我参加的一个谈判的课程培训,三天的培训,都是在不断的实战,讲师不断的抛出来很多场景,让我们扮演不同的角色,然后不断的在实战中掌握技巧和方法论。
所以对于培训我有了自己更深入的理解,我觉得主要有四方面的深度理解:
培训内容,这一部门主要看讲师的实战能力,能够通过不同场景的内容展现出来之前的实战经验,让学员能够沉浸在场景中学习成长,讲师通过讲解场景应用和教导动手能力相结合的方式培养起来学员的实战能力。
学习氛围,一个人的学习经常是遇到问题不知道怎么解决,就放弃了;或者是学习之后不知道怎么应用,没有了任何方向,放弃了;所以我们需要一个很好的学习氛围,首先这个就需要一个有经验的讲师带领,然后需要一个不错的学习委员的角色带领大家应该怎么学习,怎么应用等。所以这个非常考验培训背后的服务能力和指导能力,这个也是传统培训机构最缺失的部分,大多数就是填鸭式的培训,我只管输出,你们只管吃,但是真正好的培训是需要培养气氛,带领同学前进,我觉得助教非常需要,然后需要从程序员的角度给大家去做code review,讲解案例等等,需要用程序员的方式来辅导指导背后的原理。
影响力,首先通过学习建立了一个小班级的小群体,这个培训就是建立战友情的很好的地方,我依稀记得当时我刚开始学习Go教的第一个班级《战狼班级》,目前基本上这些同学相互帮忙相互推荐。第二我们学习培训之后总希望自己掌握了这把屠龙宝刀之后能够有用武之地,所以我也帮助通过GoCN社区给大家建立起来社区影响力,而建立社区影响力有多重途径,输出文章内容,参与开源项目,这样不仅你学习到的知识可以输出,也帮助自己建立起来了社区影响力。
企业需求,培训的内容是企业期望的人才的技能图谱来进行设计,这样培训完人才就可以对接企业,而且对自己是一种提升,对企业是内训的延伸,缩短内部培训的时间,实现人才和企业之间的一座桥梁。
策划出版
基于我前期的调研和对于培训的深度理解,我开始设计这样一个人才培训的规划,经过了反反复复的讲师刷选,我找到了Go领域里面的顶级专家,Go语言的contributor 曹春晖老师来担任这一次的讲师,曹大来自一线大厂,在PHP转Go、Go基础架构、Go语言深度等各方面都有非常深厚的经验,这个正是我们培训急需的专家,所以找到曹大,我们一拍即合就开始了这一次的Go高级工程师的设计。
实战内容
三大实战设计
阅读原文了解更多关于这门课的信息。
点个在看你最好看