找到对的目标, 自我驱动, 将事情做好做到极致;
英语
技术
经历
表达能力
人际关系
职业规划
简历:时间轴(时间、地点、项目、知识)| 能力矩阵|项目介绍
笔记:知识框架填补,博客,难度阶梯图,word
程序员层次:http://blog.csdn.net/everlastinging/article/details/5715023
能力矩阵:http://www.cnblogs.com/P_Chou/p/3520613.html
英语:英文网站是首要信息来源;能够读懂英语国际标准,比如NTFS磁盘格式标准。
加入一些社团,开源社区或者俱乐部,拓展交际圈
做笔记的时候不是去拷贝别人的东西,也不是综合N经典书的内容,而是真理解透了概括总结、有层次的表达出自己理解出的东西来。
分类 |
内容 |
|
计算机科学Computer Science |
||
计算机体系 |
计算机组成原理,编译原理,汇编语言,ARM体系结构 |
|
操作系统 |
系统原理,Android,Linux(shell命令,开发环境,系统开发,系统原理),Windows,μC/OS,系统开发 |
|
数据结构与算法 |
常用数据结构和高级数据结构,经典算法,ACM,模式识别等领域相关算法(Adaboost,SVM) |
|
|
||
程序设计Programming |
||
编程语言 |
C/C++, JAVA(JNI,JVM,并发), Python |
|
Web前端 |
JavaScript(JQuery),HTML5,了解CSS |
|
服务器 |
SSH2,SpringMVC |
|
计算机网络 |
网络协议TCP/IP、HTTP、Websocket,网络开发Socket、IOCP、EPOLL、MarioTCP,网络安全Android漏洞、病毒木马 Windows网络编程第二版中文 Windows网络与通信程序设计 |
|
Android |
应用开发,NDK, JNI,系统体系结构,源码和移植,UI设计,游戏开发 |
|
并行开发 |
OpenCL,SSE,Neon |
|
数据库 |
MySQL,Sqlight |
|
开源技术 |
webkit,Chromium |
|
开发环境 |
Eclipse,vitual studio, vim+gcc+makefile,git,Tomcat/Wasphere |
|
多媒体 |
图像处理,OPenCV,OpenGL |
|
|
|
|
|
||
软件工程Software Engineering |
||
架构设计 |
设计原理,面向对象与设计模式,高性能服务器架构,分布式服务器设计,MVC |
|
软件工程 |
工程实践,UML(Viso,Rose),敏捷开发,质量控制,开发模型 |
|
项目管理 |
版本控制Git、SVN,文档撰写,编码规范 |
|
其他方面 |
自动化编译(脚本、makefile),自动化测试(测试方法,测试工具Junit、Robotium) |
|
|
||
理论学习Theory Learning |
||
前沿理论 |
人工智能,模式识别,深度学习,虚拟现实,巨量数据检索,自然语言理 解,计算机图形学等领域 |
|
科学思维 |
科学哲学: 袁萌专栏-开源的力量:http://blog.csdn.net/yuanmeng001 思维要有极强的穿透力,学会看透文献作者没有写出来的动机 创造性思维、批判性思维 |
|
数学 |
1.离散数学:康托集合论(经常站在集合论的角度思考算法问题),离散结构,图论方法,群论方法之间的紧密关系。它有什么用?在哪里用?如何用? 2.数学线性代数(矩阵方法,向量特征)和概率论在实际编程工作中的极端重要性 3.高等数学,运筹学,统计学,数值计算 |
|
|
||
研究方向:移动多媒体智能计算 |
||
移动互联网 |
思维培训,产品意识,扩展视野,企业动态,创新模式,商业模式,大事件新概念(如O2O),资料: 门户 http://blog.csdn.net/feitianhanxue?viewmode=contents http://blog.csdn.net/ksjlhy2?viewmode=contents |
|
多媒体 |
流媒体,图像处理,模式识别,人脸检测 |
|
其他方向 |
云计算,大数据(数据分析,数据挖掘),物联网(嵌入式) |
计算机科学:对后续学习重要的内容
软件工程:架构设计,工程管理
开发技术:熟练使用,实现原理,应用场景,理论范畴,开发环境
理论学习:人工智能,模式识别,图像压缩,虚拟现实,巨量数据检索,自然语言理
解,计算机图形学等等领域
语音识别算法:语音识别/模式识别/神经网络/信号处理等相关算法, 良好的C/C 编程能力,熟悉Perl或者Python等脚本语言,熟悉HTK等
机器学习算法: 大数据机器学习/数据挖掘方向(微博数据挖掘与社交网络数据分析等)
或 文本处理方向 (情感分类、文本摘要、自然语言生成、信息抽取、信息检索等)
或 多媒体数据结合方向(推荐/检索/抽取/生成/分类等)。
- 熟悉机器学习以及NLP, ML/DM, IR和UM主流算法并了解相关工具
- 在增量特征抽取、增量分类、增量聚类、流数据挖掘(学习)有较丰富的实践经验
- 在文本分类、检索、推荐方面有较丰富实践经验
- 熟练的Java或者C 编程能力
- 有互联网后台实际编程开发经验者或者大型软件测试经验者优先录用
- 良好的学习能力和解决问题能力,具备技术创新能力,有良好的团队合作意识
- 英语读写听说熟练(CET-6)
自然语言处理算法:
- 精通C/C 语言编程,熟练掌握数据结构和算法设计,字符编码;熟悉Perl及Python等脚本语言;
- 能够根据具体任务筛选特征,设计算法,提出数据制作规范;
- 掌握数据压缩技术者优先
- 掌握自然语言处理相关算法者优先
图像处理及计算机视觉:
- 具备扎实的图像处理或模式识别,机器学习知识和经验
- 精通C&C 、Matlab等软件开发,了解软件工程
- 基于体表示的三维表面重建;基于OpenGL ES的通用算法优化;Android平台的图像处理、三维重建相关的
C++ |
基础 |
C++语法 面向对象 |
学习c++的五十条忠告 《C++ primer》 《The C++ Programming Languague》 《Inside The C++ Object Model》 《The Standard C++ Bible》(中文版:标准C++宝典) 《Accelerated C++》 |
高级 |
Template STL 泛编程 |
《Effective C++》 《More Effective C++》 《Exceptional C++》 《C++面向对象高效编程》 《C++编程思想》 《The Art of Computer Programming》 《Modern C++ Design》 《C++ Template Metaprogramming》 STL的基本实现和使用方法 |
|
其他 |
开源代码 |
多线程编程 socket编程 各种操作系统的API |
|
多媒体 |
视频: 微视频 视频编辑器 |
MPEG
|
流媒体技术
|
ffmpeg+SDl |
|
||
H.264 |
H.264入门资料{ 几位专家推荐过的: 《H.264_MPEG-4 Part 10 White Paper》 《Video coding using the H.264 MPEG-4 AVC compression standard》 《Halsted.Press.H.264.And.MPEG- 4.Video.Compression.Video.Coding.For.Next.Generation.》 《Overview of the H.264_AVC Video Coding Standard》 顺序看下来可能需要一周吧;下载地址:http://download.csdn.net/source/1664894 |
||
Digital Watermarking |
|
||
直方图均衡 视频编辑码 |
|
||
前沿论文: |
|
||
语音 |
HTK 音频编解码 |
Windows下安装编译HTK语音识别工具包
|
|
图像 |
|
|
|
Java |
|
|
|
Android |
|
|
|
技术 知识点 使用时间 相关实践项目。
边学边总结,做好笔记:分析,代码,遇到的错误和问题及解决办法
Android系统研究和源码阅读:C/C++,Java,JNI,面向对象设计与设计模式,网络,驱动开发
除了学一些基础性的C++书籍,更重要的是需要了解C++编译器的原理和实现机制,了解操作系统中的内部机制如内存管理、进程和线程的管理机制,了解处理器的基础知识和代码优化的方法,此外还需要更深入地学习更多的数据结构与算法,掌握更深入的测试和调试知识以及质量管理和控制方法,对各种设计方法有更好的理解等。
学习上面说的这些知识不是一挥而就的,不看个三五十本书并掌握它是做不到的。以数据结构算法来说,至少要看个5~10本这方面的著作;以软件设计来说,光懂结构化设计、面向对象设计和一些设计模式是不够的,还要了解软件架构设计、交互设计、面向方面的设计、面向使用的设计、面向数据结构算法的设计、情感化设计等,否则是很难进到这个楼层的。
{
1、《计算机组成原理》(熟悉)
2、《数据结构》(掌握)
3、《操作系统》(了解->熟悉)
4、《The C language》(掌握)
5、《编译原理》(了解原理)
6、《汇编语言》(了解)
7、《计算机网络》(了解)
8、《软件工程》(了解)
9、《关系数据库》(熟悉)
10、《The C++Languege 》(掌握)
11、《面向对象设计》(掌握;结合C++学习)
1、《The C Programming language》(Keinighan & DennisRitchie 1988)
2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)
3、《Inside The C++ Object Model》(lippmans)
4、《Effective C++》(同上)
5、《More Effective C++》(同上)
6、《Exceptional c++》
7、《C++面向对象高效编程》
8、《设计模式》
9、《Thinking In C++》
10、《The Standard C++ Bible》(一般推荐)
11、《The Art of Computer Programming 》
12、《Programming Windows》(Charles Petzold)
13、《深入理解计算机系统》
14、《程序员修炼之道》
15、《软件需求》
16、《程序设计实践》
17、《C++ primer》
18、《编码》
19、《用TCP/IP进行网际互连》
20、
浪潮之巅
人月神话
世界是平的
世界是数字的
看见
背包十年:我的职业是旅行
打造Facebook:亲历Facebook爆发5年
思考的乐趣:Matrix67数学笔记
怪诞行为学:可预测的非理性
时间的形状:相对论史话
重来:更为简单有效的商业思维(Rework)
学习网站:http://blog.csdn.net/han_jiang_xue/article/details/18546815
http://www.ahalei.com/book-book.html
linux: http://blog.csdn.net/silangquan/article/category/748002
图像处理:http://blog.csdn.net/silangquan/article/category/1279708
}
{
1、真正的程序员用C++;(一位专家说的)
2、动手去编程序;
3、动脑去思考;
4、要有良好的编程风格;
5、读书,读好书,尽量读原版书!(我反复强调这一点,读书要有选择,坚持读好书,名家出的经典书,不要浪费实践在一些粗制滥造的书上面;坚持博览群书)
6、有自己的学习计划;
7、总结自己的经验教训;(准备一个笔记本,记录错误和心得)
8、不要怕学新东西;
9、要有软件工程的思想;
10、善于发现问题,然后去寻找答案;
11、向高手请教;(要虚心直到你成为高手)
12、和同行交流;(不善于交流肯定不行)
13、懂得软件的实质,不要被千变万化的表象所迷惑;
14、真正要学习用的是编程语言和方法,不是什么库,什么类,什么工具;(学用那些什么库都比较简单,但光会这些库,我觉得还远远不够)
15、学习wiodows编程主要是学习windows OS和win32 API;
16、有空了解一下嵌入式开发;
17、有空了解一下PDA软件开发;
18、了解一下.NET框架和C#语言,也许它是你新的衣食父母;
19、要有耐心,不要作浮躁的人;
20、对程序加注释,并保留你的老程序;
21、学到的东西越多,了解的越多,你就越接近专家;
22、有空去逛逛CSDN,那里有你很多知己; 加入你的新语言的社区,参与用户组讨论。记住要虚心,你的代码不是你。
23、要有信心成为一个优秀的程序;
}
=========================
人脸检测 并行优化(OPenCl,SSE) Android开发和移植,FoxP电视平台上开发
笔记,代码,深度。
网络资源,官网,开源代码,常用门户,账号,自己的博客、论坛、github,google code,
统计编程量 建立自己的代码库,每个技术学了些什么东西要做笔记和统计。
http://blog.csdn.net/han_jiang_xue/article/details/14647589
对于一个IT从业者,让你谋得工作的也许是技术能力,但有助于提升职业生涯的却是软技能。步步高升的人都是那些发表文章、在会议上积极发言以及关注客户的员工(程序员)。与此同时,通常情况下,企业CIO或多或少都具备人文社科专业学历背景,原因就在于其在软技能方面更具优势。
1.突发情况处理能力
2.谈判技巧
3.供应商管理
4.积极倾听
5.演讲技巧
6.领导能力
7.学会激励
8.时间管理
9.有效写作
10.解决问题和决策
其他:这包括项目管理,持续集成,敏捷开发,版本控制
http://blog.csdn.net/han_jiang_xue/article/details/12618343
第一部分 基本的搜索算法
一、回溯算法
二、深度搜索与广度搜索
第二部分 搜索算法的优化(一)
一、双向广度搜索
二、分支定界
三、A*算法
四、A*算法与回溯的结合(IDA*)
第三部分 搜索算法的优化(二)
第四部分结语
本文的主要的篇幅讲的都是理论,但是根本的目的还是指导实践。搜索,据我认为,是当今ACM竞赛中最常规、也最能体现解题者水平的一类解题方法。 “纸上得来终觉浅,绝知此事要躬行。”要想真正领悟、理解各种搜索的思想,掌握搜索的解题技巧,还需要在实践中不断地挖掘、探索。实践得多了,也就能体会 到渐入佳境之妙了。算法的优化是无穷尽的。
NOI知识点
典型题
http://blog.csdn.net/pongba/article/details/1611593
需要品味的一篇博文,其他知识的学习也当如此:
http://blog.csdn.net/pongba/article/details/1930150
http://blog.csdn.net/everlastinging/article/details/5715023
http://blog.csdn.net/everlastinging/article/details/5733217
RDSE(Ready-do-sumary-extend):
学习、拟定计划做事情什么的都是要做一定的准备后便开始着手去行动,边做边补充内容,弥补不足,螺旋迭代,由少到多,由局部到整体,不要期待全部做好准备了再去动手,那是给自己的拖延症找借口。
整体-细节:
首先有一些很重要&必须的语言细节&特性是需要掌握的,然后我们只需知道在C++中大抵有哪些地方有复杂性(陷阱、缺陷),那么遇到问题的时候自然能够知道到哪儿去寻找答案了。
二八原则:
其中最重要的一个指导思想就是在学习的过程中注意你正学习的技术或细节到底是80%场景下的还是20%场景下的(一般来说,读完两本书——后面会提到——之后你就能够很容易的对此进行判断了),如果是20%场景下的(有大量这类复杂性,其中尤数各种各样的workarounds为巨),那么也许最好的做法是只记住一个大概,不去作任何深究。
建议1:有辨别力地阅读(包括那些被广泛称为“经典”的)C++书籍。
建议2:养成随时查阅资料和文档的习惯。
建议3:CSAPP &TCPL&AC++&TC++PL。
建议4:实践驱动地学习:实践+查文档
建议5:思考。
建议6:脱离语言思考,使用语言实现。
建议7:学习其它语言。
学习C++:实践者的方法:
《ComputerSystems:AProgrammers Perspective》(中译本《深入理解计算机系统》)
如果你是一个C++程序员,那么很大的可能性你会需要用到底层知识(硬件平台架构、缓存、指令流水线、硬件优化、内存、整数&浮点数运算等);这是因为两个主要原因:一,了解底层知识有助于写出高效的代码。二,C++这样的接近硬件的语言为了降低语言抽象的效率惩罚,在语言设计上作了很多折衷,比如内建的有限精度整型和浮点型,比如指针。
《The CProgramming Language》、《AcceleratedC++》
C++不同于C的一个关键地方就在于,C++在完全保留有C的高效的基础上,增添了抽象机制。而所谓的“现代C++风格”便是倡导正确利用C++的抽象机制和这些机制构建出来的现代C++库(以STL为代表)的。
理解C语言的精神不仅有助于更好地理解C++,更理性地使用C++,而且也有其实践意义。建议在阅读《Accelerated C++》之前先阅读《The C Programming Language》。因为,一,《The C Programming Language》非常薄。二,如果你带着比较的眼光去看问题,看完《The C ProgrammingLanguage》再看《Accelerated C++》,你便会更深刻的理解C++语言引入抽象机制的意义和实际作用。
《The C++Programming Language》
其实没有它看起来那么厚,因为真正介绍语言的内容只有区区500页(第一部分:基础;第二部分:抽象机制;以及第四部分:用C++设计),剩下的是介绍标准库的,可以当作Manual(参考手册)
额外:《C缺陷和陷阱》
实践驱动代表着一旦一个扎实的基础具备了之后获得延伸知识的方式。出于环境和心理的原因,C++学习者们在这条路上走错的几率非常大,许多人乃至以上来就拿Effective C++&More Effective C++、Inside C++ ObjectModel这类书去读(是的,我也是,所以我才会在这里写下这篇文章),结果读了一本又一本,出现知道虚函数实现机制的每个细节却不知道虚函数作用的情况。
实践驱动其实很简单:实践+查文档。知识便在这样一个简单的循环中积累起来。实践驱动的最大好处就是你学到的都是实践当中真正需要的,属于那“80%”最有用的。而查文档的重要性前面已经说过了,但对于C++实践者来说,哪些“文档”是非常重要的呢?
《C++ CodingStandard》
这是一本浓缩了C++社群多年来宝贵的经验结晶的书,贴近实践,处处以80%场景为主导,不钻语言旮旯,用本为主…总之,非常值得放在手边时时参阅。因为书很薄,所以也不妨先往脑袋里面装一遍。书中的101条建议的介绍都很简略,并且指出了详细介绍的延伸阅读,在延伸阅读的时候还是要注意不要陷入无关的细节和不必要的技巧中,时时抬头看一看你需要解决的问题。在C++编码标准方面,Bjarne也有一些建议。
《ThePragmatic Programmer》
虽然不是一本C++的书,但其介绍的实践理念却是所有程序员都需要的。
《CodeComplete, 2nd Edition》
这是一本非常卓越的参考资料,涉及开发过程的全景,有大量宝贵的经验。你未必要一口气读完,但你至少应该知道它里面都写了哪些内容,以便可以回头参阅。
《你的灯亮着吗?》
《The Art ofUnix Programming》
其它
所有优秀的技术书籍都是资料来源。一旦养成了查文档的习惯,所有的电子书、纸书、网络上的资源实际上都是你的财富。不过,查文档的前提是你要从手边的问题分析出应该到什么地方去查资料,这里,分析问题的能力很重要
如果仅仅是因为要开发优秀的库,那么涉及这些细节都还是情有可原的,至少在C++09出现并且编译器厂商跟上之前,这些都还能说是不得已而为之。但我们广大的C++程序员呢?大众是容易被误导的,我也曾经是。以为掌握了更多的语言细节就更牛,但实际却是那些语言细节十有八九是平时编程用都用不到的。C++中众多的细节虽然在库设计者手里面有其用武之地,但普通程序员则根本无需过多关注,尤其是没有实际动机的关注。一般性的编码实践准则,以及基本的编程能力和基本功,乃至基本的程序设计理论以及算法设计。才是真正需要花时间掌握的东西。
学习最佳编码实践比学习C++更重要。看优秀的代码也比埋头用差劲的编码方式写垃圾代码要有效。直接、清晰、明了、KISS地表达意图比玩编码花招要重要…
真正的编程能力是与语言细节没关系的,熟练运用一门语言能够帮你最佳表达你的意图,但熟练运用一门语言绝不意味着要把它的边边角角全都记住。懂得一些常识,有了编程的基本直觉,遇到一些细节错误的时候再去查书,是最节省时间的办法。
C++的书,Bjarne的圣经《The C++ Programming Language》是高屋建瓴的。《大规模C++程序设计》是挺务实的。《Accelerated C++》是最佳入门的。《C++ Templates》是仅作参考的。《C++ Template Metaprogramming》是精力过剩者可以玩一玩的,普通程序员碰都别碰的。《ISO.IEC C++ Standard 14882》不是拿来读的。Bjarne最近在做C++的教育,新书是绝对可以期待的。
P.S. 关于如何学习编程,g9的blog上有许多精彩的文章:这里,这里,这里,这里… 实际上,我建议你去把g9老大的blog翻个底朝天 :P
再P.S.书单?我是遑于给出一个类似《C++初学者必读》这种书单的。C++的书不计其数,被公认的好书也不胜枚举。只不过有些书容易给初学者造成一种错觉,就是“学习C++就应该是这个样子的”。比如有朋友提到的《高质量C/C++编程》,这本书有价值,但不适合初学者,初学者读这样的书容易一叶障目不见泰山。实际上,正确的态度是,细节是必要的。但细节是次要的。其实学习编程我觉得应该最先学习如何用伪码表达思想呢,君不见《Introduction toAlgorithm》里面的代码?《TAOCP》中的代码?哦,对了它们是自己建立的语言,但这种仅教学目的的语言的目的就是为了避免让写程序的人一开始就忘了写程序是为了完成功能,以为写程序就是和语言细节作斗争了。Bjarne说程序的正确性最重要,boost的编码标准里面也将正确性列在性能前面。
此外,一旦建立了正确的学习编程的理念,其实什么书(只要不是太垃圾的)都有些用处。都当成参考书,用的时候从目录或索引翻,基本就对了。
========================================
一、Hadoop入门,了解什么是hadoop | 1、 Hadoop产生背景 2、 Hadoop在大数据、云计算中的位置和关系 3、 国内外Hadoop应用案例介绍 4、 国内Hadoop的就业情况分析及课程大纲介绍 5、 分布式系统概述 6、 Hadoop生态圈以及各组成部分的简介 7、 Hadoop核心MapReduce例子说明 |
二、分布式文件系统HDFS,是数据库管理员的基础课程 | 1、 分布式文件系统DFS简介 2、 HDFS的系统组成介绍 3、 HDFS的组成部分详解 4、 副本存放策略及路由规则 5、 NameNode Federation 6、 命令行接口 7、 Java接口 8、 客户端与HDFS的数据流讲解 9、 HDFS的可用性(HA) |
三、初级MapReduce,成为Hadoop开发人员的基础课程 |
1、 如何理解map、reduce计算模型 2、 剖析伪分布式下MapReduce作业的执行过程 3、 Yarn模型 4、 序列化 5、 MapReduce的类型与格式 6、 MapReduce开发环境搭建 7、 MapReduce应用开发 8、 更多示例讲解,熟悉MapReduce算法原理 |
四、高级MapReduce,高级Hadoop开发人员的关键课程 |
1、 使用压缩分隔减少输入规模 2、 利用Combiner减少中间数据 3、 编写Partitioner优化负载均衡 4、 如何自定义排序规则 5、 如何自定义分组规则 6、 MapReduce优化 7、 编程实战 |
五、Hadoop集群与管理,是数据库管理员的高级课程 | 1、 Hadoop集群的搭建 2、 Hadoop集群的监控 3、 Hadoop集群的管理 4、集群下运行MapReduce程序 |
六、ZooKeeper基础知识,构建分布式系统的基础框架 | 1、ZooKeeper体现结构 2、ZooKeeper集群的安装 3、操作ZooKeeper |
七、HBase基础知识,面向列的实时分布式数据库 | 1、 HBase定义 2、 HBase与RDBMS的对比 3、 数据模型 4、 系统架构 5、HBase上的MapReduce 6、表的设计 |
八、HBase集群及其管理 | 1、集群的搭建过程讲解 2、集群的监控 3、集群的管理 |
九、HBase客户端 | 1、 HBase Shell以及演示 2、Java客户端以及代码演示 |
十、Pig基础知识,进行hadoop计算的另一种框架 | 1、 Pig概述 2、 安装Pig 3、 使用Pig完成手机流量统计业务 |
十一、Hive,使用sql进行计算的hadoop框架 | 1、 数据仓库基础知识 2、 Hive定义 3、 Hive体系结构简介 4、 Hive集群 5、 客户端简介 6、 HiveQL定义 7、 HiveQL与SQL的比较 8、 数据类型 9、表与表分区概念 10、表的操作与CLI客户端演示 11、数据导入与CLI客户端演示 12、查询数据与CLI客户端演示 13、数据的连接与CLI客户端演示 14、用户自定义函数(UDF)的开发与演示 |
十二、Sqoop,hadoop与rdbms进行数据转换的框架 | 1、配置Sqoop 2、使用Sqoop把数据从mysql导入到HDFS中 3、使用Sqoop把数据从HDFS导出到mysql中 |
十三、论坛日志分析项目 | 该项目的数据来自于某网站论坛的日志,该项目是为本课程量身定做的,非常适合我们hadoop课程学习。 有的同学觉得应该介绍更多项目,其实做过几个项目后,就会发现项目的思路是相同的,只是业务不同而已。 大家写过这个项目后,就对hadoop的各个框架在项目中是如何使用的,有个比较清晰的认识,对hadoop与javaEE结合有个比较清晰的认识了。 |
http://java.itcast.cn/subject/hadoop/index.shtml?140312a9xia
other:
http://www.mxjedu.com/six-renowned-international-retrieval-systems/
http://blog.csdn.net/enjoysophie/article/details/9378313
http://blog.csdn.net/huyuyang6688/article/details/9393009
http://blog.csdn.net/xujiaolf?viewmode=contents
http://blog.csdn.net/xujiaolf/article/category/1209351