数学之美读后感:
从头到尾坚持读完真不容易,但是由此确实得到很多。不仅仅有一些书本知识,更重要的是带给自己的思考
首先来梳理一下所获的知识吧
主要介绍了这些数学方法:统计方法、统计语言模型、中文信息处理、隐含马尔科夫模型、布尔代数、图论、网页排名技术、信息论、动态规划、余弦定理、矩阵运算、信息指纹、密码学、搜索技术、数学模型、最大熵模型、拼音输入法、贝叶斯网络、句法分析、维特比算法、各个击破算法等。
1、基于统计的方法的自然处理,统计语言模型是自然语言处理的基础。
2、自然语言处理所涉及内容:①分词(中文分词、词性标注、TF-IDF(词权重度量))②特征提取(矩阵知识、特征向量与余弦定理)③模型(隐含马儿可夫模型(马儿可夫链、贝叶斯网络(图论)、条件随机场(句法分析))、逻辑回归)④算法(维特比、最大熵、期望最大化)
3、搜索引擎涉及内容:①信息(信息熵、布尔代数与索引)②图论(网络爬虫、遍历算法、有限状态机和动态规划(地图、拼音输入法))③算法(pagerank网页排序、分治算法-MapReduce、)④搜索引擎(反作弊、广告投放)
4、①信息指纹(密码学(公钥))②数学模型(最大熵模型)③句法分析(语法树)④通信(CDMA、FDMA、TDMA)
吴军老师在《数学之美》中提到:“这本书的目的是讲道而不是讲术。很多具体的搜索技术很快会从独门绝技到普及,再到落伍,追求术的人一辈子工作很辛苦。只有掌握了搜索的本质和精髓才能永远游刃有余”。回到我们日常的开发工作中,作为IT工程师,程序员,要跟上技术的大潮流,需要学习的技术太多太多,如果一味地只为去追技术的脚步,那么我们也会很累很累,而且可能会是花了80%的时间却只得到了20%的效果,更别谈期望值最大化了,或许根本就达不到你期望值的60%。相反,比如cnblogs(博客园)在招聘工程师一直提到的“3大原理,2个协议,1种结构”(计算机原理、操作系统原理、编译原理、TCP/IP协议、HTTP协议、数据结构)却是没有怎么变化的(甚至是短时间不会变化的),而这些东西恰好是在这个浮躁的社会,我们这些所谓的计算机系的毕业生,所谓的科班毕业生所缺乏的(因为大部分人都没有在大学期间将这些东西真正地学好,而只是为了所谓的几个学分去图书馆奋战一两个周末而已)。站在高处向下看,也许我们一直看不到底,但是站在底处却是可以看见底的,这也是我为什么在毕业之后还要去重新温故操作系统原理和数据结构等科目的原因。
所以我们应该悟技术之道,让自己的技能提升,而不是仅仅满足现状。
希望大学生可以多多了解并且如实做到!
代码规范:
其实代码规范不是一朝一夕就能养成习惯的,都是通过多敲多练习自己摸索出来的,也是个人习惯而已。
我所习惯的代码规范有以下几条:
1. 首先是空行。
空行可以使自己的代码更加清晰,有理有据,给其他人看的时候也是可以看得明白的,而且自己在找bug的时候,都是可以非常清楚地看出自己的错误,并且及时改正。
规则一:定义变量后要空行。尽可能在定义变量的同时初始化该变量,即遵循就近原则。如果变量的引用和定义相隔比较远,那么变量的初始化就很容易被忘记。若引用了未被初始化的变量,就会导致程序出错。
规则二:每个函数定义结束之后都要加空行。
总规则:两个相对独立的程序块、变量说明之后必须要加空行。比如上面几行代码完成的是一个功能,下面几行代码完成的是另一个功能,那么它们中间就要加空行。这样看起来更清晰。
2.其次是符号的一一对应和成对出现。
自己的习惯是花括号上下对齐,另起一行。不要写完左括号然后写内容最后再补右括号,这样很容易漏掉右括号,尤其是写嵌套程序的时候。
3.然后是空格。
(1)赋值运算符、关系运算符、算术运算符、逻辑运算符、位运算符,如 =、==、!=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=、|=、>、<=、>、>=、+、-、*、/、%、&、|、&&、||、<<、>>、^ 等双目运算符的前后应当加空格。
(2)关键字之后要留空格。像 const、case 等关键字之后至少要留一个空格,否则无法辨析关键字。像 if、for、while 等关键字之后应留一个空格再跟左括号(
,以突出关键字。
4.再就是缩进。
适当的缩进会让你的代码看起来更高大上,哈哈哈哈哈,而且更清晰明了,更有层次感。
5.最后是注释。
之前我是没有注释的习惯的,嫌麻烦,但是后来发现这样是不对的,注释可以帮助你以后看自己的代码会理解写的是什么,而且功能也清楚,便于阅读。
小结: