为什么要重新开始CSDN
之前一直没有真正维护一个技术博客,可能因为自己骨子里有一点文青吧,所以总是写一些人生感悟之类的。但我其实是有很多技术要写的,之前研究了一下博客框架,发现自己搭建独博我欠缺了很多我现在不是很关心的一些技术,我现在只想专注于描绘与我工作相关的技术,以及一些技术分析和学习感悟,
工作三年我都干了什么
- 单片机: 从大一下学期的期末开始,我就开始主要学习的技术,一直延续到我第一份工作一年半的时间。可以说,我在单片机方面还是比较厉害的,掌握了最基本的读datasheet写代码技能。这个技能可能跟读api写代码的技能类似。
- 嵌入式 Linux:我玩 Linux 的时间应该还是比较早的,在我大一的时候就已经开始把玩这个东西,我的windows 技能只停留在 windows xp,从这一点就足以看出我对 Linux 是有多么热爱,掌握安装 RedHat、Fedora、Debian、Ubuntu 技能。在目前这家公司我的主要工作就是为 TI 公司的 DM8168 编写程序,第一年主要是写ARM核上的 Linux 应用程序,最大成就可能就是将 GDB、gprof、valgrind等工具引入到程序代码分析中。
- DSP 处理:这不是新近掌握的技能,因为在玩单片机的时候我的主要工作都是处理各种传感器获取的数据,在今年,我开始主要使用《数字信号处理》和《概率论》中的部分知识解决我的实际项目问题,例如噪声的识别,音频的比对。据我保守估计,使用 Shazam 算法应该是可以将之前的相似距离分析的比对算法的同步算法优化到 400ms 之内。
接下来如何发展
在很多同事眼里我的技术还是可以的,同事们给我的最中肯的评价也许就是学习能力很强。以前老师给我的评价是好奇心很强。上面三点远远没有描述出我的好奇心是多强,其实很早之前我就在看各种编程语言尝试各种新 Linux 软件和技术,写了各种 Demo,当然大多最后也止于 Demo ,长久以来我一直想要改变这种现状,我想要在工作之外学习到更多有效的技术,可以为我的未来加分的技术,由于种种原因没有在大学时多学习一些基础的知识,很多计算机基础知识都是工作之余开始学习的。一直都学不好《数据结构》、算法渣到死,一面试就挂,反而被录取我的公司给坑了,因为录取我的公司真的用不到算法。我以前的世界里没有计算机算法,不代表我以后的人生就只能处理 DSP 算法。相比于计算机算法,DSP 算法完全是另一个方向的延伸,但根上都有数学的理论依据。所以学习数学也是势在必行的。
既然这么多知识都需要学习,那么列一下我最近以及接下来主要看的书:
《Understanding Digital Signal Processing 3rd》这本书主要用来处理 DSP 算法,里面很多东西还没看懂
《Head First Python》学习 Python 主要也是用来做 DSP 算法仿真的,Python 是胶水语言,以后结合C++肯定用得着。之前将 C 和 lua 结合也是只是完成了 Demo 依然没有找到实际使用的需求。希望 Python 早日为我所用。Head First 的书很不错,读起来很爽,之前看过《Head First PHP & MySQL》 挺棒的。
《statistics》这本书是一本很不错的统计方面的入门书,每个人都应该懂一点统计学,其中对人类贡献最大的无疑就是药物的研发,现代医学的“大规模随机样本对照双盲测试”就是依据统计学建立起来的。
《统计学习方法》 这本书比较难,主要涉及算法 k 近邻法 、贝叶斯 、决策树 、svm 、隐马尔科夫模型等一系列坚深的算法。
《计算机的心智 操作系统 之哲学原理》快看完了,感觉比较无聊。不过写的还可以。
《C++ Primer》看了有一个多月了,坚持做习题是个好习惯,但进度有些慢。关于 C++ 以前是觉得难学起来费劲,但是还是所有知识都接触到了,当然也是自学没有项目经验。后来有一段时间看到关于 C++的负面消息太多,觉得编程应该关注于问题本身,而不是特别底层的东西(虽然我是一名嵌入式 C 程序员)。但是因为要学 OpenCV 之类的东西,还是不得不重新看看。
《编程之美》、《剑指Offer》这两本书是新加入的,主要是为了增强我的基础算法能力。说来也惭愧,玩了这么多年的技术,在程序员同事眼里都是电脑高手,可是算法水平渣不是一般啊!
《TAOCP》 三卷,高老爷子的书必须收藏,有点算法能力之后一定仔细研读。
近期还是要以增强基础算法能力为主,多写技术博客,沉淀知识,现在学这些一点都不吃亏,想想我到死可能都不会放弃写程序,能够为一生奠定基础的努力要多强都不过分。