作者:July专注算法一年,向更高的信息检索等领域迈进
----算法研究系列总结+编程艺术系列总结+微博鉴书
出处:结构之法算法之道
专注算法一年
今天做个总结,顺便检索下本blog的文章。一年前的今天,开始学习和研究基础算法:
尽管可能有些基础算法写的不咋滴,但到底还是最终坚持了下来,写了十五个算法,如下:
-
- 一、A*搜索算法
- 一(续)、A*,Dijkstra,BFS算法性能比较及A*算法的应用
- 二、Dijkstra 算法初探
- 二(续)、彻底理解Dijkstra算法
- 二(再续)、Dijkstra 算法+fibonacci堆的逐步c实现
- 二(三续)、Dijkstra 算法+Heap堆的完整c实现源码
- 三、dynamic programming
- 四、BFS和DFS优先搜索算法
- 五、红黑树算法的实现与剖析
- 五(续)、教你透彻了解红黑树
- 六、教你初步了解KMP算法、updated
- 六(续)、从KMP算法一步一步谈到BM算法
- 六(三续)、KMP算法之总结篇(必懂KMP)
- 七、遗传算法 透析GA本质
- 八、再谈启发式搜索算法
- 九、图像特征提取与匹配之SIFT算法
- 九(续)、sift算法的编译与实现
- 九(再续)、教你一步一步用c语言实现sift算法、上
- 九(再续)、教你一步一步用c语言实现sift算法、下
- 九(三续):SIFT算法的应用--目标识别之Bag-of-words模型
- 十、从头到尾彻底理解傅里叶变换算法、上
- 十、从头到尾彻底理解傅里叶变换算法、下
- 十一、从头到尾彻底解析Hash表算法
- 十二、快速排序算法之所有版本的c/c++实现
- 十三、通过浙大上机复试试题学SPFA 算法
- 十四、快速选择SELECT算法的深入分析与实现
- 十五、多项式乘法与快速傅里叶变换
今年上半年还在学校,除了写这个经典算法研究系列,以及继续整理微软等公司面试题的答案之外,主要侧重于写编程艺术系列(因为有关一些算法的实践与应用也体现到了这个系列当中,最好的例子是来自第二十四章的小结:“本文有一点值得一提的是,在此前的这篇文章(十一、从头到尾彻底解析Hash表算法)之中,只是对Hash表及暴雪的Hash算法有过学习和了解,但尚未真正运用过它,而今在本章中体现,证明还是之前写的文章,及之前对Hash表等算法的学习还是有一定作用的。”),当然,这个系列最大的功劳在于编程艺术内的全部朋友:
除了红黑树系列之外,其它一些重要的数据结构#树系列#,如下
写的其它一些文章,尽请参看本blog置顶文章:
下半年总结
而后下半年7月初伊始大学毕业,开始找工作,
- 9月初不慎被人骗到天津一个传销窝,呆了十八天后跑了出来。
- 十月在家呆了一个月, 这个阶段由于找工作的需要侧重开始整理九月(九月腾讯,创新工场,淘宝等公司最新面试十三题),十月(十月百度,阿里巴巴,迅雷搜狗最新面试十一题)最新的面试题,
- 11月初来到北京,参加完了移动开发大会之后,组织北京、保定程序员聚会,然后便开始四处面试,拜访各种朋友,参观MSRA,如来京之前早已联系过的诸路好友,与会一群在北京的创业者们,与MS的朋友一起讨论本blog内的各种数据结构和算法,与在北京的同学清华聚会,逛出版社(电子和图灵)淘书,各地游玩,如与我的几位同学一起八达岭长城(到底还是比湘西凤凰的南方长城雄伟壮观许多倍),正如微博上所言:”11月份初来到北京后做了4件事:面了一个月的面试,拜访了一个月的朋友,读了一个月的书,思考悟道一个月“。感谢三个人,杨老师和张大哥赠送了我不少优秀书籍,尤其是同学勇(难得的是正宗的湘菜大厨,常常中午大口吃肉,大碗白酒),若不是他我早已露宿街头,抛尸荒野。
- 十二月份工作确定。学基础算法一年以后,得益于如今的职位,可以继续着我的兴趣,向更高的机器学习,数据挖掘,信息检索与处理,搜索与推荐引擎等领域迈进,一年学习的努力没有白费,半年找工作的坚持(辗转了大半个中国,但也认识了一大批朋友)没有白费。
没错,日后本blog除了继续分享基础&经典算法的学习与研究外,将逐步向机器学习,数据挖掘,信息检索与处理,搜索与推荐引擎等领域迈进。雄关漫道真如铁,而今迈步从头越。
微博鉴书
接下来,推荐(重点黑体部分)和罗列一些自十一月以来,以及近期看过或接触过的书(一般引用自个人之前在微博上写的心得,同时,特别感谢图灵的杨老师和电子的张大哥给我赠送的一批好书):
- C和指针。同时向初学编程的朋友推荐。根基扎实,方可致远。日后只要对C和指针方面的知识稍有生疏,便要常回顾此书。当然,工作了,日后想忘也忘不了了。
- 数据挖掘导论(完整版),Pang-Ning Tan, Michael Steinbach著。完整版包含了英文原著的附录部分:有关线性代数和概率统计等数据挖掘的数学基础知识。
- 智能Web算法。全书分搜索、推荐系统、聚类、分类和分类器融合五类算法,虽每类算法并非面面俱至到,不免有意犹未尽之感,然每章篇幅虽小但门阐述精淮,专业且具友好。
- 把时间当做朋友,李笑来著。“长久的观察和思考,有益于锻炼自己心平气和的能力。反正,别人如何认为,如何评价或者评论,其实原本根本没办法影响你自己的状态。但是,一旦你开始为此心烦意乱,胡思乱想,甚至为此产生一些无聊的行动,那么,你就不仅倒霉而且可怜了,因为,你已经被左右了。被别人左右,是一个人最可悲的状态之一。”
- 剑指Offer——名企面试官精讲典型编程题。此书对面试有一定帮助。“在此,推荐此君@何海涛Harry 的面试题博客:http://t.cn/hbya38。本人博客内大体一半是面试题讲解,一半是算法研究阐述,然迄今为止整理的340道面试题中,有近50道是收集自他的博客,Harry4年来一直厉兵秣马,详解各类面试题,始成此书:剑指Offer@何海涛Harry。”
- STL源码剖析,侯捷著。
- 黑客与画家,Paul Graham 著。每一篇文集都如饮佳酿。
- 深度探索C++对象模型。“在我所阅读的技术书籍中,深度探索C++对象模型及编程之美的排版是较好的。而其它的书籍排版过于紧凑,节与节之间不留空隙,给读者的感觉是太过紧凑、压抑以至窒息之感。我向来深恶痛绝那些为节省篇幅、纸张的书籍,此点,机械尤甚。给书籍多点空隙,还读者多点思考的空间、篇幅和想象力,有何不好?”
- MySQL性能调优与架构设计,简朝阳著。理论与实践完美结合,数据库的爱好者或开发者此书定不会让你失望。“又喝了半碗白酒,吃完火锅,叼根烟,同学的手艺实在太好了。来北京初带的钱也即将马上用完了,工作一时还无法定。多亏了同学。再趁着微微酒力,提个问题:我们知道,Hash索引的效率比B-Tree高很多,而为什么大家都不用Hash索引而还要使用B-Tree索引呢?稳定?你能说出几个原因呢?”
- 机器学习,Tom M.Mitchell著。机器学习领域的开山之作。如果你在学习决策树时读上面的数据挖掘导论有点晦涩的时候,可以试试本书。
- C语言程序设计现代方法,unix环境高级编程,unix网络编程二卷,C++编程规范,Exceptional C++ Style。
- 信息检索导论,Christtopher D.Manning等著,王斌译。
- 集体智慧编程。如果你读上面的数据挖掘导论稍感晦涩的话,读上面的机器学习稍稍吃力的话,那推荐此书便自然而然了。通俗易懂,专业深入。“集体智慧编程 一书果然不错。我想,接触算法一年后,今天才真正开始“真”算法的学习与研究:可以不再局限基础算法,而向机器学习,信息检索与处理,推荐与搜索引擎等方向迈步niao。剑锋所指,所向披靡。努力。”同时,尽管书中的一些例子都是用python语言实现的,但python是一种挺美的语言,看起来就像看伪码一般,如下的K-均值聚类算法:
- 而后,而后,便没有了,到底是工作了,不像之前闲着有大把的时间看书了。理论扎实之后,自然便是实践了。
OK,微博还是有这么一点好处的,可以随时记下自己的思考或思绪。
后记
最后还有三点值得一提的是:
- 一工大的朋友Lynn帮我整理本blog的博文成PDF:自己写爬虫,然后渲染交给chrome 之后print2pdf,输出成html就行了,然后autokey接替工作)。看了下面的截图之后,便万分期待了,希望能尽快看到:
- 论坛还在建设当中;
- 可能要开始接触和学习java和python了,为日后可能的工作需要做准备。也不知之前在学校的时候,听了谁的言论,说只要学一门语言便够了,工作之后,方知不然也。
在一年的基础算法的学习之后,如今开始工作,令人激动人心的机器学习,数据挖掘,信息检索与处理,搜索与推荐引擎等更高的算法领域,我来了。
得益于我的职位,我在这里工作很好,在做公司的推荐系统这块,有这方面经验的朋友欢迎随时线上或见面交流(周末我一般都在海淀区东北旺北,可以在微博上或邮箱内联系)及不吝赐教。OK,希望,本文对你有所帮助,谢谢。完。