点击上方蓝字关注我们

昨天很多人都看到我们GoCN社区和慕课网联合发布的《Go 高级程序员实战营》培训课程,看到内容的第一眼大家都很惊讶,为什么这个培训内容这么接地气,当然很多人纷纷私信我几个问题:

  • 谢大,你怎么创业方向变了吗?打算搞培训了?

  • 谢大,这个课程是你设计的吗?是你们公司内部的Go培训吗?

  • 谢大,这个课程看了内容很深,我入门才两年适合吗?

  • 谢大,我已经报名了课程,虽然我会动手去做去实现一些自己感兴趣的东西,但没有个方向,也不知道应该准备什么,有些地方无从下手?

  • ......

一过会儿功夫就积累了一大堆的问题,我虽然都一一回复了,但是很多人可能还是不明白我为什么在这个时间点这个阶段出这样的实战培训营。那么今天就和大家一起聊聊我做这个培训的初心。

初心回顾

时间大概回到过年前后,那个时候我们公司因为业务快速的发展(我创业还是在做工业互联网方向),团队继续扩张,特别是Go方面的后端人才,我在那个阶段天天泡在boss直聘、拉钩招聘里面,和差不多上百位候选人沟通交流,前前后后看了不下几百封简历,线下也面试了好多Gopher,大多数Gopher基本上处于这样的状态:

  1. PHP工作经验两三年,利用业余时间学习过Go;面试gopher岗位时问他工作技能,结果发现他只会一些小工具的开发。

  2. 业务能力很杂,什么都做过,听上去像是全端人才;但是一些深入的问题就不行,例如Go 如何进行性能监控、埋点之类的。

  3. 写了三年Go,但是都在区块链行业,都在基于Hyperledger开发,其他的东西没有开发过。

  4. 刚大学毕业,大学里面基本上都是学习的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内训的讲师非常注重实战,这个是和外面遇到的培训最大的区别,就拿我参加的一个谈判的课程培训,三天的培训,都是在不断的实战,讲师不断的抛出来很多场景,让我们扮演不同的角色,然后不断的在实战中掌握技巧和方法论。

所以对于培训我有了自己更深入的理解,我觉得主要有四方面的深度理解:

  1. 培训内容,这一部门主要看讲师的实战能力,能够通过不同场景的内容展现出来之前的实战经验,让学员能够沉浸在场景中学习成长,讲师通过讲解场景应用和教导动手能力相结合的方式培养起来学员的实战能力。

  2. 学习氛围,一个人的学习经常是遇到问题不知道怎么解决,就放弃了;或者是学习之后不知道怎么应用,没有了任何方向,放弃了;所以我们需要一个很好的学习氛围,首先这个就需要一个有经验的讲师带领,然后需要一个不错的学习委员的角色带领大家应该怎么学习,怎么应用等。所以这个非常考验培训背后的服务能力和指导能力,这个也是传统培训机构最缺失的部分,大多数就是填鸭式的培训,我只管输出,你们只管吃,但是真正好的培训是需要培养气氛,带领同学前进,我觉得助教非常需要,然后需要从程序员的角度给大家去做code review,讲解案例等等,需要用程序员的方式来辅导指导背后的原理。

  3. 影响力,首先通过学习建立了一个小班级的小群体,这个培训就是建立战友情的很好的地方,我依稀记得当时我刚开始学习Go教的第一个班级《战狼班级》,目前基本上这些同学相互帮忙相互推荐。第二我们学习培训之后总希望自己掌握了这把屠龙宝刀之后能够有用武之地,所以我也帮助通过GoCN社区给大家建立起来社区影响力,而建立社区影响力有多重途径,输出文章内容,参与开源项目,这样不仅你学习到的知识可以输出,也帮助自己建立起来了社区影响力。

  4. 企业需求,培训的内容是企业期望的人才的技能图谱来进行设计,这样培训完人才就可以对接企业,而且对自己是一种提升,对企业是内训的延伸,缩短内部培训的时间,实现人才和企业之间的一座桥梁。

策划出版

基于我前期的调研和对于培训的深度理解,我开始设计这样一个人才培训的规划,经过了反反复复的讲师刷选,我找到了Go领域里面的顶级专家,Go语言的contributor 曹春晖老师来担任这一次的讲师,曹大来自一线大厂,在PHP转Go、Go基础架构、Go语言深度等各方面都有非常深厚的经验,这个正是我们培训急需的专家,所以找到曹大,我们一拍即合就开始了这一次的Go高级工程师的设计。

 

实战内容

 

三大实战设计

 

 

阅读原文了解更多关于这门课的信息。

点个在看你最好看

重新理解 Go 实战相关推荐

  1. Kotlin中协程理解与实战(一)

    Kotlin中协程理解与实战(一) 什么是协程 在Android中协程用来解决什么问题 协程是: suspend -也称为挂起或暂停,用于暂停执行当前协程,并保存所有局部变量: resume -用于让 ...

  2. 区块链共识之Paxos算法理解与实战

    0.前言 本文记录笔者学习和理解区块链共识算法Paxos的点滴,文章比较长,需要耐心来细细琢磨,笔者也是苦战了一个周末才对此有那么一点初步了解,有问题的地方请不吝斧正! 1.初始是阅读本文后续内容的基 ...

  3. Docker小白入门教程--docker理解与实战(懵逼三连--Docker是什么,为什么要使用Docker,如何使用Docker?)

    站在巨佬的肩膀上,才能看的更远!(没错这篇文章就是大量援引国内外网上各位大佬的博客,外加我这个小菜初入docker的一些理解,整理一下所学,也是为了方便我自己在暑假过完后,被别人问起docker问到我 ...

  4. PLSQL重点问题理解和实战

    一 ORACLE中PL/SQL使用的集合变量类型有RECORD(类).VARRAY(sql数组).TABLE(嵌套表) TABLE(嵌套表) 可以加index定义也可以不加,加表示index by是建 ...

  5. AB-test理解与实战

    AB-test 1.定义:为同一个目标制定两个方案,在同一时间维度,分别让组成成分相同(相似)的用户群组随机的使用一个方案,收集各群组的用户体验数据和业务数据,最后根据显著性检验分析评估出较好的方案. ...

  6. Wide Deep模型的理解及实战(Tensorflow)

    目录 一.背景 二.概述 三.模型原理 3.1.Wide模型 3.2.Deep模型 3.3.Wide和Deep模型的协同训练 四.系统介绍 4.1.系统简介 4.2.系统流程 五.tensorflow ...

  7. 深入理解虚拟机实战:修改class文件实现System标准输出重定向

    一.背景 在深入理解Java虚拟机的过程中,理解java程序在虚拟机层次如何执行十分重要.了解了深层次的东西,才可以实现一般情况下做不到的特殊功能,而这种特殊功能面向的对象往往是程序员本身.下面我们通 ...

  8. Spark Catalog深入理解与实战

    写过Spark应用程序的同学都知道,通过下面这段代码就可以加载和访问外部Hive数据源: SparkSession.builder().appName(TestSparkHive.class.getS ...

  9. 深入理解 RPC : 基于 Python 自建分布式高并发 RPC 服务

    RPC(Remote Procedure Call)服务,也即远程过程调用,在互联网企业技术架构中占据了举足轻重的地位,尤其在当下微服务化逐步成为大中型分布式系统架构的主流背景下,RPC 更扮演了重要 ...

最新文章

  1. R2LIVE: 一个鲁棒实时的雷达-惯导-视觉紧耦合的位姿估计和建图系统
  2. mysql text 最大长度 报错 Row size too large. The maximum row size for the used table type
  3. apache http自动跳转https_怎么给网站开启https协议?Apache2下SSL证书安装配置方法...
  4. 当一个美术生开始在腾讯撸代码… |「递归」第1集
  5. java循环满足跳出_java跳出循环的几种方式
  6. 纪事本 乱码_纪事地图和Yahoo Cloud服务基准
  7. python计算股票趋势_通过机器学习的线性回归算法预测股票走势(用Python实现)...
  8. 带你学习javascript的函数进阶(二)
  9. 离线处理需要做哪些工作_游戏配音需要做哪些工作?
  10. Mac上踩坑.net core开发
  11. Binder学习笔记(九)—— 服务端如何响应Test()请求 ?
  12. 创 业 项 目 计 划 书 样 本
  13. 大数据认知实习的实习目的_如何在数据实习中取得成功
  14. 关于Tomcat和Servlet容器的小结
  15. 中国各路神仙!!!!
  16. 南京灵活就业人员社保缴费标准出炉!附案例!
  17. 罗永浩又双叒叕diss苹果了
  18. Scrapy爬虫框架管道文件pipelines数据图像存储
  19. uni-app的发展和应用
  20. 切比雪夫1型滤波器C语言,切比雪夫1型滤波器.doc

热门文章

  1. 解决IE下载DOCX文件时自动变为ZIP的方法
  2. Java:利用接口实现打印机案例(墨盒有彩色和黑白色,纸张有A4纸和B5纸)
  3. c#编写activeX控件详细教程,底部附有下载地址
  4. 猿人学第1题(一天搞一个)
  5. 【Redis源码剖析】 - Redis内置数据结构之压缩列表ziplist
  6. 干掉保险丝和继电器,自动驾驶才能更安全
  7. 天池 入门赛-新闻文本分类-单个bert模型分数0.961
  8. 全球计算机科学排行榜,最新全球计算机科学排名:清华力压CMU,人工智能第一!北大排第四...
  9. 二级路由器下的pc如何使用映射网络驱动器的方式添加一级路由器下nas共享的文件夹
  10. mac安装WireShark2.0新手教程