初入职场的软件开发新人的“心灵鸡汤”
面对出入职场的新人,他们一定是热情蓬勃,蓄势待发,准备大干一番事业的。一个部门往往都是新人占比小于老江湖的,所以当把一个新人投入到一个团队中的时候,一定要进行正确的“三观”教育,确保他们积极的融入团队文化,为团队注入一股清流。这种正确的思想不仅仅对团队建设有利,对新人的未来发展也是不无裨益的。新人需要注重引导以下的几点:
持续学习才能在纷繁复杂的技术变革中处惊不变
IT行业是一个变化日新月异的行业,如果不能持续更新自己的知识体系和IT技能,啃老本倚老卖老,四十岁被退休那是早晚的事情;同样对于一个新人,IT行业也确实是一个让人深刻体会到学海无涯的行业,各种新技术粉墨登场,各种新的框架和组件各领风骚三四年,还有各种概念炒作轰炸下一不留神就out了。如何在这样一个技术纷繁复杂,日新月异的行业里面处惊不变,稳如泰山呢?每一个人都必须有持续学习的热情和奋斗精神,对新技术要有好奇心,要亲自实践,尝试用用这些新技术从而得到自己对新技术最直接的理解。下班的时间打游戏的人和下班时间看书涉猎新技术的人前途一定是不一样的。持续学习的必要性是显而易见的,通过持续学习可以让一个人主动掌握技术选择,而不是人云亦云或者不知所云,同时持续学习也会帮助一个人提高对新技术的理解和把握能力,学习新技术会更快,还可以提高个人对于技术概念炒作的辨别能力,最终通过持续学习提高自己的技术素养,视野,技术能力和理解力,从而修炼到处惊不变的境界。
无论起点在哪里,切忌挑三拣四,优秀总是成功的阶梯
对于IT新人来说,起步从哪里开始是非常重要的,人人都希望从行业顶尖公司里面最热门的技术部门开始自己的职业生涯,但是这种机遇比较只会有少数人才能得到。或者迫于生计,或者奈何自己实力不济,或者穷于自己的积累不足,你不一定能够自己选择起点。但是一旦选择了这个职业,不管你从哪里开始,不必抱怨,不必拘泥于各种纷扰,成功唯一的路就是打造优秀的自己。笔者985博士毕业,第一份工作在著名外企从事带领一个团队从事表单开发,这或许是很多博士嗤之以鼻的没有技术含量的事情,但是当我把表单开发技术深入透彻研究之后,重点就放在了团队内部技术指导,然后腾出时间研究公司的后台开发框架,表单相关的其他开发技能,ERP领域的企业流程相关知识涉猎和深入学习,然后再把这些相关技术分享给团队成员,分工进行深入学习和分享,最终让团队保持技术活力,同时因为技能提升也拓宽了团队的工作领域,在团队成功的同时,自己的技术素养,领域知识和开发技能都得到了很大提高,为自己以后的发展奠定了基础。如果当初自己抱怨生不逢时,怀才不遇,消极对待自己的工作,可能就是被公司淘汰,对于一个大公司来说,谁会在意你的学位呢?学位只是敲门砖和适当机遇的时候锦上添花,其他时间在任何IT公司都是技术说话。
深入学习打造自己的硬核技能
每一个人要在公司立足都要有自己的硬核技能,才能保证自己立于不败之地。虽然岁月不饶人,长江后浪推前浪,但是老人只要持续maintain硬核技能,一般公司也不愿意麻烦去外面招聘一个新手从头培养,相反多年的开发经验对于开发效率和代码质量还是必不可少的,所以四十而立只要不懈怠,也不需要焦虑,你依然光辉灿烂。当一个人入了职场,经过半年的学习,成功融入团队能够独立承担开发任务贡献自己的工时的时候,下一步就是在自己的领域开发技能打磨得更加娴熟,更加浑厚,要通过深入学习打造自己的硬核技能。深入学习意味着开发的时候不能拘泥于自己当前开发用到程度,或许你的开发对于数据库只需要写简单的CRUD SQL,调用JDBC SDK就能解决问题,但是你应该深入去了解pool,了解事务,了解SQL注入,了解数据库表结构设计的最佳实践,了解窗口函数,了解数据库的scalaibility,分库分表等更加深入的数据库知识,从冰山一角开始,逐步突破,掌握整个数据库知识体系;深入学习也要求自己在使用SDK或者第三方框架的时候,不要google一下别人的用法就拷贝过来改改就交差了,需要深入理解框架的技术原理,SDK提供的各个API的能力,从而选择最适合自己的使用方式。深入学习也意味着不仅仅会用现成的东西,还要理解现成的东西的原理,适当的时候能够改造别人的东西形成自己的东西。深入学习的努力程度和效果是一个人从程序员过渡到高级程序员的必由之路。
广泛涉猎不断扩展自己知识面
当一个人从一个初级程序员成长为高级程序员,成为某一个技术细分领域的专家之后,下一步就是要广泛涉猎不断拓宽自己的知识面。经过第一阶段的磨练,个人的学习能力,技术理解力都有了很大的提升,一个人需要拓展自己的职业通道,要进入架构师或者技术管理领域,就需要拓宽自己的知识面。这点中国和西方国家的人才观念是不同的,西方国家IT就业市场强调专精深,一个职位一个坑,希望某个人就是在这个领域的高级专家,但是中国IT职场需要博大精深。如果你是一名后端开发工程师,可能你也需要了解一些前端框架,具备简单的UI前端开发能力;你需要拓宽自己在数据库开发方面的技能,写出高性能的SQL,了解数据库的扩展性;你也需要了解Cloud Native开发相关的K8S, Cloud Foundary技能。此时了解不仅仅是读一两片Tutorial了解它是什么这么简单,而是自己要搭建一个环境,亲自动手,尝试这个技术到底能做什么,不能做什么,出问题的地方在哪里,瓶颈在哪里。通过实践的过程深入自己对相关技术的理解,抓住该项技术的精髓,了解大家经常犯错的地方。这样以后承担更加重要的职责需要进行技术抉择的时候就能够信手拈来。
文章来源:Biaofun标梵互动(https://www.biaofun.com/)