写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。
本文关键字:开发者、讲师、职业素养、必备技能
笔者的第一笔收入其实并不来自于第一份工作,而是来自于:“大创”(国家大学生创新性实验计划),最后顺理成章的变成了我本科的毕业设计,当时的题目是:基于新型梯度重构的图片拼接研究(MATLAB)。作为一个连期末考试都是勉强及格的数学狗,当时组队去做这个项目真的是有挑战的,既然数学不行,那我只有写写代码,用MATLAB做做软件开发了。不得不说MATLAB真的是一个很强大的工具,当时每周都要花不少时间投入到这个项目中,穷尽毕生所学,最后终于鼓捣出这么个东西:
简单来说,就是选择两张图片,然后将其中一张图片的一部分贴到另外一张图片上,要控制鼠标事件,自己写mask区域算法,balabala,最后蝴蝶瞬移!哦不对,是生成拼合图像。我想这是对学生时代的我产生很大影响的一件事,也许就是因为这个项目让我走入了开发岗位也说不定呢。
谈起我的学习经历,真的是有些梦幻,因为本科报考的是天津师范大学,数学科学学院,嗯。。。谁让那个时候的自己就一门心思相当数学老师呢。唉,那门让人望而生畏的高数我们是不学的,为何?因为这门课只是我们学的数学分析中的几个章节,除此之外,还有高等代数,解析几何,常微分,离散数学,数值分析,概率论与数理统计,and so on~当时年少的自己差点被这些课直接给"梭哈"了。。。不要问我师大女生多不多,也不要让我说出我的故事,我甚至连寒暑假还在自己啃着这些学不懂的书。
But!我的专业是:信息与计算科学,在数学专业课的压力下,我竟然看到了剩下的专业课向我张开了怀抱,我仿佛看到了曙光!没错,他们就是:C语言程序设计、数据库原理与应用、计算机网络、数据结构与算法、Java程序设计!!!不要问我为什么突然这么激动,有同感的小伙伴儿就握爪吧。
在从各种数学定理和公式、原理和证明中爬出来后,突然发现原来我还是有学习能力的,因为我发现了自己能学懂的东西(自信心真的是被打击殆尽)。于是这些科目的成绩一路飘升,最终保住了我可怜的绩点,让我得以顺利毕业。
在忙完了学校的事情后,就开始规划自己后续的安排,当时自己是大三下学期的亚子。当时对入岗教师的要求一高再高,本来是打算读完大学之后能回来当个高中老师,结果发现自己想的太多了(一定是高中时数学偏科严重给了自己盲目的自信),本科毕业也就是能去个一般的小学而已。
当时也曾经被考研大军的阵势所影响,网购一套考研教材,干掉一碗鸡汤,买上胶带,带上占位长纸条,早上不到六点骑车奔赴考研自习室,推门,选座,贴条,放书,占坑!整套连招一气呵成!当然,之后的事情大家也都知道了,基本一次没去过。。。
咳!但这并不重要!因为没去自习室复习的这段时间我也并没有闲着,而是发现有另外一条路可走,那就是成为一只码农。诶?这是怎样神奇的脑回路?当然这是有一些事情影响的,除了在学校做的大创项目,另外一件事就是赶上第一批学院与企业的合作培训,当时还处在安卓比较火爆的时代,所以培训内容以现在看来已经很老的SSH三大框架和安卓开发为主。
于是,在大三下学期的暑假,我就直接没有回家,选择参加了培训。这一培训就是三四个月,那个时候的培训周期还相对比较短,刚开始进入状态比较慢,每天上午讲课,下午练习,还没有形成自己主动思考、主动学习的意识,Java基础讲了一个月左右。
然后进入到了Web开发和三大框架的学习,换了一个项目经理来带我们,这绝对称得上是对我影响很深的一位前辈,不只是技术,还教会了我们很多其他的东西,比如:如何关注行业的动向,如何确定自己成长的方向,如何对知识进行总结,还有面试技巧等等。
进入到Web开发的阶段后,明显感觉学习起来有些吃力,虽然流程上的东西都能够明白,但是如果自己动手就感觉没有任何思路,于是乎我和我的同学们(也是大学同宿舍的兄弟)一同进入了疯狂的学习状态。有多疯狂?来听听看~
你若问我为何到凌晨两点就停止?因为自从我入学的第二年起,师大也开始断电了,勉强支撑一个路由器的电压,一般电脑能存储的电量极限也不过是两个多小时。那个时候真的是不知道困倦,仿佛自己的兴趣终于被激发,亦或是感受到了未来的压力。
从来没有想过自己会为了学习,如此的去克服种种困难,毕竟回去晚了是会封楼的呀。。。有的时候晚了十几二十分钟,宿舍楼门口已然是下了重锁。不过还好,宿舍不高,只住在二层,顺着防护栏就可以爬上去,还好没有被发现过。如果真的被发现,我说是因为学习才回来晚了,怕是谁也不会相信吧。
后来宿舍的兄弟看我总是爬上爬下的,觉得不安全,于是乎网购了一条安全绳,这样我每次可以顺着绳子爬楼了,但是气氛貌似却变得更加古怪了一些。。。你问我为什么不早点回去?那个时候宿舍的网是真的不好用,基本每次回去都是离线工作,而且软件园的环境是真的巴适~
经过了两个月的不懈努力,我终于在培训结束前就提前就业,当然并不是因为自己能力十分突出,而是刚好赶上了招聘会,于是就去试了试,结果拿到了两家公司的offer,坐标都在北京,也算是一块石头落了地。
在奔赴北京后,也成为了一个初入职场的小白,工作时接触到的项目也只是能捕捉到些许学习时的影子,虽然很多东西要学,但是好在没有那么痛苦了。由于没有学习安卓就提前跑了出来,于是最开始对自己的定位就是Java开发工程师,但是工作里面发现其实前端的知识多少还是要会点。
于是又跑去报了一门网课,内容是Java全栈,当时是在YY上课,老师讲课也是十分的激情。由于当时住在公租房,离公司差着两环,所以有公司的班车接送,路上要花费一两个小时的时间,这样早上五点多就要起来,晚上七八点才能回来。就是在这样情况下,自己还是作死报了网课,并且按时上课。。。
每次网课的上课时间是晚8点到11点的样子,有的时候因为老师过于激情,会延长到12点,当时的自己依然傻乎乎的整理着当天的笔记,这样的话又要到凌晨两点才能睡了。。。But!第二天不到六点就要起床!自己算了算,加上上下班在车上补的觉,应该能达到7个小时左右,嗯,还好,应该不会英年早逝。
后面的事情剪断截说,一直保持着白天工作,晚上学习的状态,如果下班没有学习就会有一种负罪感。前后也换过几家公司,两年下来,虽然人瘦了好几圈,但是技术栈还算完整,包含:Java、Linux、数据库、前端、大数据、数据分析等。
在这期间收到了大连理工大学软件学院的研究生录取通知书,由于在学校里面窝了一年就出去工作了,所以暂且不表。
相信大家有很多是还在学校的学生,也有一些是已经从事开发多年的大佬,入坑的经历也各有不同,上面只是介绍了一下我个人的从业经历。不能算作是科班出身,但是最后还是从事了软件行业,有些阴差阳错,下面该切入正题了,讲述一下自己如何从一个开发者转为讲师的。
成为一名老师一直是自己的规划,将自己的所掌握的知识教给他人。而且,作为一名企业的讲师相对容易,目前互联网十分发达,在共享经济模式的影响下,如果具备相关的技能,我们就可以把他讲出来,变现也好,发展自身也好,甚至不需要投入太多的精力,但是本文想讲述的是如何从开发者完全的转换为讲师角色,其中的必要条件和差别。
自己在小的时候是希望成为一名人民教师的,在高中时表现的尤为强烈,担任多个科目的课代表和学习委员,经常组织早自习也习惯了,有的时候自习或者答疑,也会代讲一下语文、数学、生物、化学这些课。本来觉得自己只是少了一个老师的头衔而已,只要上去讲,其实并没有什么难的,但其实成为一名讲师不难,但是如果你真的想在这个行业走下去,并且有所作为,那么你必须要对自己高要求,更高要求才行。
有的时候回到师大去看看老师,也会和已经成为老师的师兄弟聊聊天,可以发现即使是在小学,也是要不断的备课、磨课、做课件,要保证学生能够学会、学懂。而且这并不是刻意给自己增加压力和负担,都是相辅相成的,后文再表。
拿我自身来说,我是一个很不喜欢冒险的人,但是不甘于安逸,喜欢接受小挑战,我不能接受事情在不可控的情况下发展,突发事件不可避免,但是至少自己不能给自己挖坑。
从我刚刚踏入职场开始,我就隐隐有一种我将来一定要投身讲师的计划。我做的第一步就是社群运营
,这是一个零风险的行为,主要是创建一个属于自己的可以分享知识的平台,锻炼自己与人交流的能力。如果你已经是一个开发大佬,我想跳过这一步也无所谓,毕竟职场上所积累的经验,足够让你驾驭讲师这个角色了。
有句话说的好:内行一伸手,便知有没有,讲师一方面需要有扎实的技术功底,最重要的是要能讲的明白,逻辑清晰,能够有耐心的把需要注意的点拆开,同时还要有深度。最开始,我是在自己的社群开群共享,或者在YY上的教育频道直接开播,免费让大家来听,这样即使讲的不好也无所谓,没什么负担,和大家熟悉了,还可以问问大家哪里可以改进。
如果你不确定自己是否适合做讲师,你可以先这样来尝试,身边的同学,群里的陌生人,都可以当你的听众,不建议一开始就录课挂到平台去卖,如果自己没有技术大佬的各种名头,销售情况不好把控,如果一开始就得到各种负面反馈,对自己的影响会比较大。
由于自己一开始就在看各种教程,自己又有成为讲师的规划,所以在学习知识的同时,也在学习视频中讲师的授课风格,所用的课件,使用的笔记工具、录屏工具,自己尝试之后选择最适合自己的,同时慢慢总结讲课的技巧,找到自己的节奏。
由于自己一直在开发岗位中,生活也还算稳定,以上的行动我做了两年,当我准备投身讲师事业时我已经有了两年的开发经验,几千人的社群(一个主群,数个分群),并且积累了一大批常见的新手问题解决办法,很多问题解决起来都已经炉火纯青,所以毅然辞职,奔向自己的梦想。
由于自己是在大连读书,所以入职的第一家培训机构就是在大连,拥有五层的培训基地,业务主要是以校企合作为主。刚开始从事讲师,其实内心还是比较忐忑的,也是无比的重视。
当时自己主要是得益于从事过大数据开发的优势,讲的内容其实并没有很深入,自己也认识到了这个问题,在课上有时也会遇到不能解决的问题,也会比较尴尬,但是随着不断的备课和磨合才一步一步走上正轨。
在做培训的这几年,也接触到了各种各样的培训项目,有面向长期培训学分置换的,也有进行短期课设基地培训的,也有直接外派到学校周末上课的(曾经无休息的连轴转了两个月),还有面向高校骨干教师进行师资培训的,当知道下面坐着的都是教授副教授时,内心也是受到了不小的惊吓。
由于是对IT行业的培训,那么自己的技术不更新是不能够的,只不过不需要像一线程序员那样拼死拼活,可以在安全区里慢个半拍,但是如果再慢你就要被甩出安全区了。培训的内容也要能够顺应市场的需求,这样培训机构才得以存活,就算讲师自己没有觉悟,培训机构也会要求讲师去不断的学习。
由于平时就在社群中和大家交流,所以对于行业的发展方向还是比较敏感的,选择一个正确的方向真的很重要,只要以数据为中心,基本上可以把风险和学习成本降到最低。软件开发的框架在不断的更新,但是数据的存储和分析流程依然相对固定,要跳出对纯粹技术的追赶才能有更宏观的视角,学习新的框架技术时要去理解更底层的东西才能不断的降低自身的学习成本。大家可以去关注一下我的这篇文章:跨过2019 - 如何立一个新的Flag?且看行业解读。
随着自己不断的学习,发现各种机会接踵而来,而这些机会又能让自己对行业的发展以及和其他行业的关系有更深一层的认识,进一步扩充自己的视角,接触的对象包括各种证券公司、通信公司、大小银行、各大高校的各学院、各大培训机构、在线教育平台等。了解到它们对于自身员工或学生的培养是基于什么样的考虑,最稀缺的是什么样的人才,我想这就是做讲师最大的一个好处:只要你肯努力,你可以越走越稳,积累的素材越来越多,让你的教学变得越来越充实,从而获得越来越好的教学效果。
当达到一定的高度以后,你甚至需要去拒绝一些项目,要有计划的打造属于自己的技术体系和学习体系,不断的去吃透教学内容,这样才能把学生教好。
还在自己学习时,就已经注册了CSDN,一直都有写博客的冲动,但是感觉自己还是功力不足,没有勇气开始,毕竟开始了就要做个样子出来,我这该死的完美主义。。。
从开始做讲师开始到现在已经积累了几千页的教学讲义和素材,但是感觉还是很零散,不够细化,终于在去年的程序员节(10.24)开启了博客之路:1024 - 在这里起航!
就像文章开头所说的那样,希望打造一个完善的技术图书馆,形成一个闭环,以成体系的方式去写博客,相互呼应,将专栏做成目录的形式,随着内容的增加,专栏还会不断的细化。
以上描述了一下我自己的经历,下面进入干货环节,经过了多年的工作,对于这个行业也有了一些了解,希望自己的感悟能够帮到大家。
说到培训,大家第一想到的可能就是培训机构,线上也好,线下也好,都是去教学生。为什么说开发者转为讲师是一条不错的路呢?因为随着你的技术不断的深入,转为讲师时你的优势也会越来越明显。开发者年龄大了,可能是一个劣势,而对于讲师来说,只要你还在慢半拍的节奏以内就不会被甩下。
另外一点,有人觉得自己不够耐心,不适合去教学生,或者表达能力不行,说话说不明白,但是这些问题都是可以克服的,在做技术的时候我们要学习各种知识,那么作为讲师,耐心和表达就是你的必修课。
而且,培训这个行业其实是个很广泛的行业,面向的人群不只是想要转行IT的社会人员,还有在校学生、应届毕业生、高校教师、企业员工等等,你完全可以给自己找一个合适的定位。
如果你已经是一个技术大牛,那你完全可以走高端路线,面向企业培训,就算做一个游离态的讲师也未尝不可。不要觉得没有机会,机会都是自己发现和争取到的,如果你想做一件事,那么至少要付出些精力。
如果你是一个有几年开发经验的老手,但是没有培训经验的话其实并不是一个很大的问题,因为软件行业的发展日新月异,培训机构也需要不断的补充新鲜的血液,虽然大型的培训机构都有自己的研究院,自己就可以完成课程体系的升级,但是同样需要有老师去驾驭,那么你需要做的就是走出舒适区,在做开发时要尽量去使用主流的开发技术,并且自己进行归纳总结。
如果你还是一个在校园中未曾踏入社会的大学生,想要直接成为讲师确实有一定的难度,但是你的优势在于时间充沛,可以早做准备,因为通常做讲师都需要行业经验,否则只能从助教开始,我觉得也不必着急,你需要做的就是一步一个脚印的踏实前行。
社群运营会磨掉你的稚气,也会锻炼你与人交际的能力,增加你的视野。有空写写博客,可以让你对自己掌握的知识有更明确的认知,缩小自己知识的盲区,同时锻炼自己总结归纳的能力。
作为一名讲师,虽然并不像学校里的教师那样高尚,但是我觉得也要有自己的准则。目前很多的培训都以就业为导向,或者以解决企业中存在的问题为目的,你所讲授的知识、你对技术的渴求状态、教学时展现出的耐心都直接会影响到你的学生,所以讲出的知识一定要能过自己这一关。
作为一名讲师,一定要对自己严格要求,并不都是完全基于学生的考虑,这对自身也是有好处的。要清楚的知道每个章节的难点,以及在整个知识体系中所在的位置,这样在讲课时才能条理清晰。
作为一名讲师,所传授的应该不仅仅是知识,我觉得还应该教会学生学习的方法,教会他们如何总结,如何自我提升,做出适合自己的规划,当然如果是短时间的培训是很难做到的,只能尽量去传达给他们类似的信息。
技术过硬是一项很重要的指标,过硬指的是兼顾深度和广度,编码和程序的学习本就是一个比较枯燥的事情(虽然笔者十分热衷,从不觉得),但是我们要站在学生的角度去考虑。而且程序和软件尤其爱欺负小白,总是出各种问题,进而摧毁他们稚嫩的心灵。
讲师必须有深厚的积淀才能去解决掉各种奇葩的问题,当然这是一个积累的过程,对于讲师来说,自己的世界观又何尝不是一直被刷新和颠覆。。。
要让学生能够学以致用必须要在讲解的过程中结合场景,生活中的应用,企业中的项目,根据不同的阶段不断的渗透,这样才能让学生有宏观的意识,理解为什么要注意编码规范、为什么要考虑性能,还有就是能够回答那个源自灵魂深处的发问:这有什么用?
俗话说的好:编程讲得好,注释少不了。在讲课的过程中,除了注意命名大小写,缩进,换行等编码规范外,还要多写注释,不断的理清思路,帮助学生去理解,以身作则,让学生养成良好的编程习惯。
文档编写是讲师的必备技能,PPT和讲义的制作自然是少不了的,一定要掌握的就是快速成文的Markdown语法,好在大家写博客已经用的十分熟练了,推荐两款比较好用的Markdown工具:Typora、MarkEditor。
每完成一个阶段的教学后,学生是难以将知识记牢的,通常是学完了后面忘前面,思维导图的制作是讲师的另一个必备技能,将知识成体系的串联,明确标出重点和注意事项,可以让学生的学习效率进一步提高。但是这里也奉劝广大学子,讲师做的再多再细,也是讲师所给予的,一定要有自己总结和吸收的过程,否则一切都是白费。
讲师的另一必备技能就是语言凝练而到位,这里不是说一字不差背出规范的定义,笔者认为这没有什么意义,因为规范的定义往往都太过抽象,而讲师要做的就是要总结出其中的含义,把通俗好记的概念传递给学生,这就要求讲师自身对各种思想方面的概念和定义有深入的理解,同时有较好的表达能力。
说的再多不如画图一张,很多组件的工作流程、框架的工作原理、项目架构,往往不如画一张图表达的清晰明白:流程图、用例图、数据流图、架构图、时序图、E-R图、类图等,对于软件工程中常见的图要能够使用相应的工具实现,推荐一款作图软件:Edraw(亿图)。
最后说到讲课的风格,我觉得每个人也都有自己的性格特点,有自己的教学特色也是好事,笔者接触过各种层次的学生,各式各样的学生,也完成过不同性质的培训,有些学生需要鼓励,有些学生需要严厉,有些知识需要讲透,有些知识需要给学生留出思考的空间,无法一概而论。
笔者最后想了想,其实就是达到与学生的一种默契,一种行云流水的状态,有起有伏,以学生为中心进行互动,并且在各种培训目标和面向的学生中切换自己的状态,这也是笔者一直在追求的终极奥义。
其实想和大家分享的内容在上面都已经讲完了,最后自己再絮叨几句。目前时代在更迭,学习方式也在逐渐发生着变化,优秀的教育工作者们也在追寻着新的教育模式,其实对于讲师的要求一直都不低。
对于开发者来说,你可以首选做为线上平台的讲师,录播课程进行售卖,虽然这不是本文的介绍重点,但依然十分力荐,毕竟收入是可以用”可观“两个字来形容的。
作为一名线下的全职讲师投入的精力要多的多,每天要解决的也不只是单一的知识讲授问题,还有班级管理、教学体系建设、教学环节的设定、教学培养方案的打磨等等。从业几年,经历过为人之师的满足感,也经历过找不到方向的迷茫期,经历过几个不眠夜的赶制课件,也经历过每天只睡三四个小时的日夜备课,只是为了将授课内容准备到尽可能的完善(确实,没人给我多发哪怕一百块钱,咳!这不重要)。
讲师是一个良心职业,希望这个行业能越来越好,不要再向服务行业倾斜。曾经在一段时间里,培训行业饱受诟病,客观上存在着种种乱象,希望即使以各种原因入行的小伙伴,也都要有一颗负责的心,为他人,也为自己,用自己的努力去抓住未来!
写着写着就奔万字去了,赶紧自己给自己叫停,感谢大家一直看到这里,码字不易,希望能点个关注点个赞,在评论区留下你的脚印,也欢迎大家与我私信交流。