转载

初入职场

去年这个时候,我写过一篇《 个人自我管理 》,重要是从定位,学习,思辨和实践四个方面强调了下初入职场时候应该有的一些学习态度和职业精神。今年公司又入职了不少新员工,还是想结合自己刚工作时候的一些工作场景谈下初入职场时的一些思维态度和学习方法的内容。

我们招聘的新员工,有些可能并没有经历过完整项目的实践,那么最看重的还是学习能力和技术基础是否扎实,对于经验的入职面试题我们也准备进行修改,即将新员工和社招有经验的员工尽量分开,新员工重点考场技术基础,而老员工则重点考察以已有项目实践能力和问题分析能力,同时尽可能的减少对纯粹记忆性知识的考查。

虽然我们本身专业不是计算机,但是在大学本科的时候读了计算机二专业,接触开发的时间相当来说比较早,通过计算机二专业把计算机核心课程如软件工程,算法,数据结构,数据库,计算机组成原理等课程都进行了详细的学习。大三的时候开始学习foxbase和foxpro,也经过了一些小项目的练习,到了大四毕业论文设计开始接触到一个导师的实际项目课题,印象里面是前面师兄遗留下来的一个软件开发项目,即用borland c++开发的列车运行调度和优化系统,这个系统相当复杂,根据当时的水平要能够完全看懂是很难的,但是当时仅仅优化已有程序里的部分内容,通过这个研究课题对程序和软件有了更加深刻的认识,特别是前端图形设计和调度算法部分,虽然这部分内容在工作后用的并不多,但是后在项目里面要进入公司用VC++开发的MRP系统的时候,整个切入过程就显得相当容易。

到了研究生阶段开始接触delphi,读研的第一年基本是研究生基础课程的学习,而第二年基本花了大量的时间在delphi语言学习和程序设计上面,有幸的是当时学校刚好有一个公司招聘开发人员,使我能够真正进入到项目里去锻炼同时还有一定的工作回报。印象里面这个项目涉及到学校信息化管理和考勤的一个系统,系统虽然不大但是相当完整,在真正项目里面的锻炼也发现了原来自己学习中大量的不足和问题,然后就是不断的补充相关知识。当时还没有发达的互联网和知识库,所以只有爱书不断的练习,然后再实践,书里面的练习,技术点基本全部做完不断反复的练习,虽然里面有些知识点项目里面暂时不会用到。

说了这么多,想说明的是大学期间最重要的还是打好理论和技术基础,当然有实践机会最好。没有实际的项目实践并不代表你不能去做练习,大量的基础编码练习往往是必须和必备的。我们现在招聘新员工遇到最大的问题还是技术基础薄弱,比如java本身技术基础薄弱,在这种场景下当你接触真正的项目开发和编码的时候,你会发现程序和代码,里面的数据结构和内部逻辑你很难看明白,要补的知识点太多,导致举步维艰。这个时候还能够快速的融入和成长的那都是悟性相当高的人,但是不可能每个人悟性都那么高,那么前面的基础知识积累就很重要,有学校期间打好的良好基础理论,你会发现接触新东西学习成本大幅降低。这也是为什么很多类似达内,北大青鸟这些软件开发培训学校无法真正解决的问题,编码本身无法速成,需要的还是前期理论和技术的积累,后期大量的练习和项目实践。我们往往并不是需要软件工人,而是真正需要有思想,能够开发出高质量的代码和软件产品的工程师。

研究生毕业后,正式进入公司开始接触到asp开发电子供应链类BS应用,虽然一进公司后给每个人都安排了导师和详细的学习计划。但是前面的2-3个月现在想起来是相当辛苦的,对于asp开发原来没有接触过基本又是新东西,大量的新知识学习还得又靠自己,每天下班回去唯一的事情就是买书看,不断的练习,掌握相关的基本知识点,掌握基本的功能开发流程。这个学完后,当时微软的asp.net已经出来,虽然还是beta版本,但是当时项目组决策转入了使用asp.net来开发这个业务系统。有了asp的基础,你会发现进入asp.net后整个开发更加简单,基本没有太难的内容,到后面一切都是水到渠成。当时印象里面比较深的就是自以为有了前面的这些积累,相对来说比较自负,经常和想导师发生争执或产生不同意见,细到一个具体的的页面布局和css的使用,一年后再回顾这段时间最大的感受就是很多当时想的内容都太理想化或者本身就是错误的,导师采用的往往才是当时最佳的方法。要总结的话就是理论本身是需要通过实践验证,但是理论不能完全指导实践,最终的实践往往是前期大量实践后总结的经验和方法论的指导,这个往往才是最重要的,否则就是纸上谈兵或大量走弯路的,前人指导的经验教训,方法流程往往都是前期大量血的教训换来的,可能你一开始并不能很好的理解缘由,但是一定不能固执己见,更多的还是应该跟随,等你真正有了大量实践经验的积累后你可能才能做到扬弃。

在最近的1,2年,我逐步把新人的招聘和培训下移到产品经理和团队负责人自己去完成。但是如何做好新人的培训,如何能够针对不同新人的能力基础和兴趣方向制定合适的培训路线却是我一直关注的内容。德鲁克在管理者的五项重要指标里面就谈到过要培养人包括我们自己,因此很多时候不是简单的管理和领导,而是教练和师傅。任何一个新人我们希望一开始就能够按照系统化的培养思路,迭代式的分解目标逐步培养,让他们能够快速的成为公司的中坚力量,一方面是发挥出自己真正的价值,一方面是取得自己该有的回报。

在带新人的过程中,我不断的强调新人要养成记录的习惯,首先能够按照导师讲的内容step by step的先做出来,做出来后再写学习总结,把整个过程详细的梳理一遍,搞清楚各个步骤之间的联系和内在逻辑。有时候导师讲,自己不记录,等到自己去练习的时候发现这也不通那也不通,这就是相当大的一个毛病。任何事情不要让你的导师重复给你讲第二遍,导师花在你身上的时间往往自己可以创造出更大价值的产生,导师能够耐心的给你讲那么你就要首先做到这点,这是对你的师傅最基本的尊重。

刚进职场的时候,一定要形成每天记录日志,每周写本周工作总结或学习日志的习惯。现在我们的很多程序员写作的能力太差,写出来的东西完全没有逻辑性可言,这只能暴露出来你本身内部思维逻辑的混乱。任何一个事物,我能够结构化的把它写出来,就帮助我们梳理清楚了第一遍思路,对于写出来的东西你还能够很有条理的讲来别人能够听明白,那就做了第二遍沉淀。我们要求写学习日志,不是让你记流水帐,而是让你真正回顾学习或实践的内容,把你完工的事情系统化的梳理一遍。在这个梳理过程中来发现哪些知识点还没有理清楚,同时发现一个case里面可能还会涉及到哪些新的知识点,对于这些新知识点如何有计划的去展开学习。包括想清楚或弄明白为何理清原理和机制很困难,暴露了自己哪些技术知识的薄弱。很多时候导师可能反馈的就是你基础太差,但是你需要解决的是你究竟差在哪些地方?我如何去补这些基础逐步赶上来。只有把这些问题都想清楚了,你才可能明确你的学习目标和计划,有针对性的展开后续工作。

如何你是新员工,从现在开始写日志,开始记录学习总结,这是给所有新员工的一个建议。

基础任何一个新事物,我原来在初入职场的文章里面就谈到过,首先是要能够按部就班的方式做出来,这时候你不清楚为何一件事情要分成这些步骤,按这个先后关系做,你不清楚你做的步骤之间的关系和内在逻辑。这些都不要紧,关键是要做出来,任何一件事情只有你亲自做出来后才可能有初步的成就感。但是不要满足这个成就感,这个仅仅是起步,这个成就感应该是激起你精益求精的愿望,激起你去探究事物内部运行机制和原理的期望,而如何才能够做到这点?那么就必须去分解,去回溯,去分项演练,最终去融合贯通。这些如果都能够做到了,往往才谈得上举一反三。


最后我想谈下问题层面的事情,我们很多新员工要么就是没问题,要么就是一大堆低级问题,这都是极其不好的两个极端,都是没有经过很好的自我思考和分析的结果。一个新员工提不出问题,很大一个原因还是不懂得思考的方法,不清楚学习最终要达成的目标,这可能也是我们导师平时教授知识欠缺的地方。让任何一个新员工能够养成自我学习和思考的方法往往才是最重要的,我一直也强调一个员工最核心的能力就是独立分析和解决问题的能力,那我们一开始也应该更加注重这种思考和学习方法的传递。其次很多新员工有问题不敢提,一个问题前面才跟导师说弄懂了,现在有出问题自己又怎么好意思提?这些也是一个常见现场,导师也要认真对待新员工提的每一个问题,通过问题来思考他们当前的状态和位置,但是我们还是要强调同样的问题不要问第二遍,同样的错误不要犯第二遍。

对于问题管理前面很多文章都谈到过了,一个问题首先是要能够提清楚,理清问题的定义,同时现在互联网如此发达,自己也要尝试去解决和分析,确实解决不了的再寻求协助。在别人帮助你解决问题,要多思考下为何自己没有想到,原因究竟在哪?暴露了自己哪些知识点的缺陷,哪些思考方法上的缺陷。任何一个问题,乃至一个小小的bug往往都是提升我们思维能力的机会,要勇于直面任何问题,当然你也从来都不是一个人在战斗。

正文到此结束
Loading...