算法工程师成长计划


    本人是一名算法工程师,目前主要做OCR算法。最近比较有闲,就开始迷茫,不知道如何提升自我,在此做一个总结,规划,希望自己可以按部就班,戒骄戒躁。

不知道你有没有跟我一样的困扰,手里攒着一大堆学习资料,却总是没有一个是完整看完的。就拿我来说吧,我B站收藏夹里有几十个视频,有编程语言,有数据结构和算法,有机器学习,但没有一个是完整高效看完的,今天看这个,明天点开另一个,导致花了时间,收获几乎为零。这就增加了我的焦虑,时间逝去了,自己却未真正成长。

    于是,今天早上,重新审视了一下自己,查漏补缺,觉得自己应该有一个系统性的学习计划。对于计划,当然包括两个方面,一个是时间安排,一个是需要学习的内容。学习内容在我看来主要就是包括编程语言,计算机基础知识,面试打怪中必须的算法与数据结构,机器学习和深度学习相关知识,工作项目中必不可少的深度学习框架,还有工作中自己做的项目的理解和深入。当然,作为一个略有文艺情怀的少年,阅读一些人文经济书籍也是需要的。

        图中,红色部分是比较紧急的,绿色和黄色部分不是必须的或者不是紧急的。

        最基本,最紧急的就是编程语言了。在工作中主要用到的就是python和c++。虽然很多时候功能都可以实现,逻辑上也可以转换成语言,但总是感觉有些吃力,需要停顿下来去搜索相关api或者基础语法的地方较多,影响效率。但是这部分也是最让我苦恼的,看书的话,看完就忘了,看视频亦是如此。都说编程语言需要写大量的代码来提升,但又有何途径写大量代码呢?算法工程师的工作大家应该都比较清楚,github上找开源,用自己的数据训练,调优,部署在自己的项目中。但这个过程中的代码量必不会特别大,跟应用开发相比。但是如果专门花时间去做书本课后练习,学习其它技能的时间就会被挤掉,时间真的不够用啊。该如何是好,望各位看官指点迷津。

        另一个重点内容是针对面试的数据结构和算法,作为梦想着进大厂的非985,211的硕士,这一关真的好重要。但其实心里都明白,大厂在算法上,可能会先卡学校吧。只能退而求其次,以独角兽为目标了,但独角兽应该对数据结构和算法的考核也是占一部分比重的。但这一关到底怎么过呢,我给自己列了三个学习内容。首先是《大话数据结构》,知乎大佬推荐,入门好书。当然,邓俊辉老师的算法课也是较为推崇的,已经在我B站收藏夹积灰很久了。最后,也是日积月累必备网站leetcode,刷题圣地啊。我目前的想法是直接去leetcode刷题,不会的直接看题解,然后补足相关不了解的数据结构知识。从今天就开始!

        当然,要应付面试,或者在工作中对算法理解更加深入,机器学习和深度学习的只是也是必不可少的。这个我还是喜欢看视频,看书真的太艰难了,容易犯困。视频也是一直躺在收藏夹里,假装看完了。吴恩达老师的视频如雷贯耳,林田轩老师也热门之一,邹博呢,我看过几集,还凑活,对他的普通话较为满意。

        以上三个是红色部分,较为紧急。下面就说说绿色和黄色部分。首先是看看和工作相关的两个热门框架的学习,对于这种框架我认为不需要专门花时间去学习。一般开源算法代码中都是有的,看代码就可熟悉。见的多了,就会了。套路都是一样的,首先是加载数据,然后是创建网络,构建损失函数,添加优化器,迭代训练,保存模型这几块内容。当然,如果客官你较为牛逼,可以阅读其源码。我看到阿里的面试题就会问tensorflow中如何实现卷积。不看源码,你平时应该不会关注这个问题吧。

        然后就是在项目中学习。这个说起来很简单,就是看别人的代码,修改别人的代码,加上自己的功能模块,但是在面试的时候,很容易就会被面试官问倒。比如为什么选这个算法,主干网络结构是怎么样的,有没有做优化,过程中遇到什么问题,如何解决,取得了什么样的效果,损失函数是什么,为什么这么设置等等。在面试官眼里,他不管你这个算法是不是git clone,他就觉得这个算法是你自己设计的,所以里面的细节要搞的很清楚很明白。这又有一个矛盾,在实际工作中,基本上就是有效果就好了,其它的东西并不会深究,如果要花时间深究,那是不是又要影响其它的学习时间,哎,时间不够花。

        最后也是最重要,但不是最紧急的,那就是计算机基础课。这几个知识是所有大牛程序员都在强调的,一定要学的扎实,才能高屋建瓴,基础牢固。但试问有多少计算机专业的学生把这几门课都学得很好了呢?所以这几本书不是必须的,就把他们当做闲来无事翻阅的小说看吧。

        好了,以上已经确定了学习的内容了,那时间该如何安排呢?我把自己每天的空余时间列了出来。


        我每天五点半起床,开车的话6:40到公司,八点半上班,所以6:40到8:10分这段时间是属于我自己的。中午十二点下班,吃完饭12:30,下午一点半上班,所以12:30-13:30这段时间也属于我自己。晚上七点半到家,吃完饭八点,八点到九点陪家人。九点到十二点也属于我自己,正常情况下算下来一共是五个半小时。如何把这五个半小时高效利用极为重要。这也是我比较困惑的,现在的状态效率极低,跟文章开头说的一样,不知道学什么,不够专注,不够持续,很是焦躁。每次学了一半,就觉得学的东西没用,不是当下紧急,又换一个。如此反复,焦头烂额。

        我希望这个脑图可以帮助自己清晰方向,提高效率,减少焦虑。也希望各位看官可以不吝赐教,谢谢各位。

你可能感兴趣的:(算法工程师成长计划)