如何让自己在行业内保持进步

进入机器视觉这个行业,慢慢的我发现,这个行业技术涉及面较广,从底层算法到应用算法,再到软件界面,再到行业应用,再到客户关系管理。其中每一部分都可以扩展到很多职位,技术特点都属于上手容易,精通难。自己经历了一些,也见到身边一些优秀朋友的成长,发现了一些良性成长的规律,分享给大家,也是希望自己能做到。

当我们还在学校的时候,大家想法都没有那么具体,根本不太清楚自己适合什么,擅长什么,真正形成意识形态的往往是自己的第一份工作。大部分应届生第一份工作的热情最高、态度最好、兴趣最浓,做的大部分工作都是学校没有见到的,充满新鲜感和成就感,能力成长、薪资成长也是最快的。所以,第一个公司、第一个岗位的重要性不亚于高考的大学志愿和专业。

当我们工作一段时间,掌握了一些足以维持生计的技术后,往往会逐渐依赖现有的技术,下意识拒绝接受新的技术,一是自己没有学校时期那份学习的精力,又担心自己掌握不了新技术,在公司项目上出差错,所以久而久之,我们会一直以求稳的心态做重复的技术,哪怕这个技术已经落后。

那么如何保持进步,最基本的就是要不断否定自己

1、重构代码。例如很久以前你写了一个算法运行的方法类,当时只是为了实现一个简单的blob算法,随着项目的推进,你又在该方法中增加了模板定位、预处理、仿射变换等算法逻辑,当项目完成后,你的这个方法就变得很大,很难维护,这个时候一定要勇于否定自己,推翻现有冗杂的业务逻辑,抽象清晰模块,进行代码重构。久而久之你就会发现你在写一个方法的时候,更多的是考虑方法的接口,而不是方法的实现,所以你进步了。

2、精简代码。华为内部代码审核有一个规定,1000行代码里的bug数不能超过3个,其实我们每个人写代码都会有bug,而bug率基本是一定的,所以尽量精简代码,有利于减少bug。例如你完成一个方法,辛辛苦苦的写了1000行代码,运行效果很理想,那么你要想办法将1000行减少到500行,且达到同样的运行效果,这样你的bug概率减少了一半。所以你进步了。

3、看优秀的代码。现在是个开源的时代,我们的资源很多,例如github,各种开源代码、各种论坛,或者公司老员工的代码。那么,如何是优秀的代码,**接口完整、模块分明、代码精简、注释清晰、容易理解的代码。**当参加了工作,可能看的最多的就是项目组的代码,我的第一份工作,运气不太好,是一份逻辑混杂,架构臃肿,基本无注释的代码,最让人头疼的是,熟悉代码的人离职了,业务逻辑全靠猜。我想,应该也有很多人跟我一样,或者熟悉代码的人不愿意跟你交流,这个时候不得不靠自己,所以一份优秀的代码是多么的重要,看优秀的代码就会写优秀的代码。所以你进步了。

4、放低姿态,不要拒绝与自己专业无关的工作。有些朋友目标性比较强,例如自己是算法工程师,当领导要求你去现场调调相机焦距、或者给产品打光测试的时候,你可能觉得这是在浪费自己的时间。我觉得你应该感谢你的领导,让你有机会去拓宽机器视觉行业的技术。实际上,很多算法工程师真的连相机、LED光源都没见过,不可否认他们算法写的很好,但是他们也不可能成为一个能独当一面的项目负责人。多接触、多学习、不要有技术大牛的清高气质,哪怕一个产线员工也有很多你不会的地方,放低姿态,所以你进步了。

5、写一个完全属于自己的机器视觉软件。每个成熟的公司都会有自己的代码,新入职的员工基本就是修修改改,对核心架构压根不敢动,时间久了就把自己变成了一颗螺丝钉。当然,当螺丝钉没有什么不好,可以把专注度放在某个细节的深度技术研究上,但也会因为太过于专注而局限了自己的研发视野,特别是大公司,螺丝钉的任务就是把自己这颗螺丝做好极致,不需要也没权限去了解其他方面的工作。当你在某些方面已经有所造化的时候,**开始规划开发一套属于自己的视觉软件,从架构到软件,再到算法和应用,结果能不能商业化不重要,重要的是开发过程,**我相信,一旦开了这个头,早晚有一天你的软件可以用在客户现场,那个时候成就感肯定爆棚,所以你进步了。

6、多写总结性文档。写程序就跟写文章一样,都需要注重结构、细节。我不觉得我写文章是在浪费我的时间,当写技术篇的时候,我会总结以往的开发思路、查阅一些技术贴,这个过程可以理清过往的一些开发思路,并迸发出一些新的想法。当写一些心态篇的时候,其实是自己的心态出现了一些问题,或者疲倦或者厌烦,写出来是一种发泄,也是一种共勉,给自己打鸡血。多写写文档,整理整理开发思路,所以你进步了。

如果你的开发心态出了问题,欢迎交流,共勉!!!

你可能感兴趣的:(职场感悟,职场和发展)