1.聊聊背景--为什么想要改变现状
在B站上看到了一个程序员学习路线,这是链接https://www.bilibili.com/video/BV1Gg4y187Cj。最近也在大面积的学习,想要跳槽来着,就像期末考试前的一周,忙碌紧张着。但还不太一样,考试有点糊弄,工作之后,真是实打实的,靠临时记忆不能让你处理工作游刃有余。
我是推荐方向的工程师,更偏向于数据挖掘方面。非科班出身,基础薄弱是我的现状,工作这两年里,技术上感觉没有明显增长,只是熟悉了一下业务,使用的工具,基本都是封装好的,只是会用,原理了解一个大概,说都说不太明白。就像scala语言的惰性一样,不到使用那些变量的值,是不会计算这个变量的值。当一段时间,感受不到自己变好、进步,内心是惶恐的、不安的。对生活都失去了热情,对工作也没有激情,这不是我们想要的状态。废话不多说了,看看积累提升路线,供大家参考,目前已经在执行中,明年此也会有一个总结和调整。
2.学习路线
1.基础理论:操作系统、计算机网络 、编译原理。
2.数据结构和算法:算法竞赛;输出方面可以在leetcode、acoder刷题。
3.开源的项目学习:kafka、redis、mysql(这些偏向于存储,后端同学会接触较多,个人会使用,但是原理就不了解了)。
4.系统设计:设计模式,把学到的基础理论进行打包,应用到实际的项目中。
5.计算机语言:解决问题重要的工具----编程语言,语言特性需熟知。
6.机器学习算法:基础的算法回顾,温故而知新(这个在博客中已经在陆续总结更新了,更偏向于记录)。
7.深度学习算法:TensorFlow框架、dnn的模块知识(现在不会深度学习这些个东西,都不好意思出去吹牛)。
8.推荐相关的新老算法:工作方向使然,每一个方法的提出都是为了解决对应的问题,个人工作经验浅薄,可能遇不见什么深刻问题,让你提出一个方法去解决。但随着肩上的责任越来越大,面对的问题也会增加,此时的解决方案,就是你曾经的积累,凝聚而来,而非凭空捏造。
总结:以上八条不分先后,按照个人喜好来准备即可。
3.三人行,必有我师
可以看看身边比你优秀的人,不能光看,要向着他们靠近,多跟大家交流学习。作为开发人员,一定要动手写代码,学着去调试,上午看了一个视频,有一句话印象很深刻:“天助自助者”。代码不是一下子写出来的,要学着去调试,学着想测试用例,学着想边界条件,慢慢的定位bug在哪里,然后再去修复这个bug。
20200405 23:40