很少有主动去读数学类的书籍,一是我本身对数学并不是十分感兴趣,对数学的态度是需要用就学,必须学才学,数学类的书籍对我来说都是大部头,啃不动的硬骨头。二是我的数学相对于其他科目学的并不是很好,有些比较难理解的知识点要花好久才能读懂,很费时间。
对于《数学之美》这本书,我在高中时老师有推荐过,大一时工程线性代数课上也听老师提起过这本书的相关内容,直到这次,老师要求读我才去读说来有点惭愧。
读了这本书,我发现它并没有我想象的那么枯燥乏味,就像作者在前言中所说:“读一读数学的东西,会让你受益良多,同时能感受到宇宙和世界的美好和奇妙。”真的如作者所言,我从这本书里学到了很多科学原理和思想方法,同时从我们专业的角度去解读更是能更加深刻的理解一个概念等。
整本书里我印象最深刻的章节就是“图论和网络爬虫”这一章节,在这一章节,我见到了许多老朋友:离散数学,数据结构,线性代数……在我看来,这些科目都有千丝万缕的联系,相辅相成,粗略的翻了一下算法这本书,感觉它也是好几门科目的集合体。(扯远了,刚刚在说爬虫)我对爬虫这一章节印象深刻是因为我暑假在自学爬虫,有很多不懂的地方,查不出来也就不求甚解的学下去,所以有时只关注代码,并不去理解其原理,这是大大不可取的。这一章虽然短,但是我知道了什么时候该用BFS和DFS,页面的分析和UPL的提取原理还有怎样应用URL表。
在读计算机专业之前,对打代码没什么概念,大一由于知识有限,只能打一些简单的代码,所以理解也不是很深,我觉得这本书从方方面面展示了数学与代码的意义和作用,让我突然想到了有一次听一位师兄讲经验,他说:“到了大学毕业,你会觉得什么都可以用代码表示出来!”真的很神奇又听起来很自豪,当然这是一个好的程序员该具备的应有的技能。
怎样去当一个好的程序员呢?还是听一位师兄说:“
一流程序员靠数学,
二流靠算法,
三流靠逻辑,
四流靠SDK,
五流靠Google和StackOverflow,
六流靠百度和CSDN”
真的是过于真实,但同时凸显了数学和算法的重要性,一个好的程序员的内核所在。
在之前,我对自己要求不高,导致数据结构的基础并不是很好,但是这次,我对算法课绝不能掉以轻心,我会把我还未掌握的数据结构知识补回来,同时努力培养自己的算法思维,懂得去优化一个算法。(好像由数学之美偏题到很远了?)。
暂时还没想到用算法要实现一个怎样的软件,可能是爬取网易云音乐评论关键词的软件吧,
我的代码规范
规范的目的:
提高代码的健壮性,使代码更安全、可靠;
提高代码的可读性,使代码易于查看和维护。
http://www.cnitblog.com/qiuyangzh/archive/2005/07/15/973.html
https://www.cnblogs.com/Spacecup/p/3701352.html
1格式
1.1空行的使用
在头文件和实现文件中,各主要部分之间要用空行隔开。
在一个函数中,完成不同功能的部分,要用空行隔开。
1.2 哪里应该使用空格
在使用赋值运算符、逻辑运算符、位运算符、算术运算符等二元操作符时,在其两边各加一个空格。
函数的各参数间要用“,”和一个空格隔开。
不要在引用操作符前后使用空格,引用操作符指“.”和“->”,以及“[]”。
不要在“::”前后使用空格。
不要在一元操作符和其操作对象之间使用空格,一元操作符包括“++”、“--”“!”、“&”“*”等
1.3 缩进
对程序语句要按其逻辑进行水平缩进,以两个空格为单位,使同一逻辑层次上的代码在列上对齐。
1.4 长语句的书写格式
较长的语句要分成多行书写。长表达式要在低优先级操作符处分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,缩进长度以两个空格或Tab符长度为单位。
1.6 清晰划分控制语句的语句块
控制语句(if , for , while , do...whule)的语句部分一定要用 ‘{ ’和‘ }’括起来(即使只有一条语句),并且‘{ ’和‘ }’应处在同一列上。
1.7 一行只写一条语句
一行只写一条程序语句。
// 不要这样写
x = x0; y = y0;
while(IsOk(x)) {x++;}
// 应该这样写代码
x = x0;
y = y0;
while(IsOk(x))
{
x++;
}
1.8 一次只声明、定义一个变量
1.9 在表达式中使用括号
对于一个表达式,在一个二元、三元操作符操作的操作数的两边,应该放置“(”和“)”。
// 下面这行代码:
result = fact / 100 * number + rem;
//最好写成这样
result = ((fact / 100) * number) + rem;
2命名
一般变量名应以小写字母打头,各英文描述单词的首字母分别大写,其他字母一律小写。
常量的名字要全部大写
所有用宏形式定义的名字,包括宏常量和宏函数,名字要全部大写
自定义类型名应以大写字母打头。
函数名应以大写字母打头。
名中含多于一个单词时,每个单词的第一个字母大写。
尽量使用有意义的名字。应做到见其名知其意。
2.1 禁用Goto语句
2.2 避免对浮点数值类型做精确比较
举例:
//不要象下面这样写代码:
float number;
… …
if (number = = 0) //精确比较
… …
2.3函数
函数体代码长度不得超过100行(不包括注释)。
应该尽量保证一个函数只有一个出口
2.4 公共变量
在程序中要尽可能少的使用公共变量。在决定使用一个公共变量时,要仔细考虑,权衡得失。
防止公共变量与局部变量重名。