简介
本书讲的的是一些程序员必须了解的数学知识,有些知识点挺有意义的,特别是对于非科班出身的程序员来说。
就我的观点来说,一般的程序员需要的数学水平大概是高中就够了,当然要做算法研究大学数学专业水平也不一定够。
下文记录本书一些有用知识点,包括一些算法的数学思路,还有有趣的逻辑问题。
人类一思考,上帝就发笑。
本人结合自己使用的感受,推荐以下几十款软件给大家使用,覆盖了日常的大部分使用场景。
软件不追新,够用就好,因为软件随着不断更新过度开发的可能性是很大的。
资源大部分来自互联网,请知悉相关风险。
部分分享已经失效,这里补一下: https://pan.baidu.com/s/1ehg5VNksD7u-eWm1KFmPSw
提取码: g2fx
善用佳软,节约时间,提高效率。
诸行无常是你于此世遭受痛苦、挫折的原因。
如果你能缓慢地行走,没有任何想要获得什么的念头,便已经是一名优秀的禅门弟子。
入道之门屏息外界的诸多攀援之物,并止内在的情绪与妄念,当你变成一块砖或一面石墙,你便入了道。
虽然由你的推想,你可以有一种试验性的理解;然而,你应该由经验而理解空性。
叙述出来的并不是真正是实相,而当你认为它是实相时,已经包含你个人的观念和想法,那是一个自我的概念。
大小方圆,并不属于现实实相,它们仅仅是观念,这就是空去水杯的含义。(忘记已有的观念)
当我们分析一己的经验时,就产生了时间或空间大或小、重或轻的概念;某种的衡量尺度是必要的;以我们心中的各色各样的衡量尺度,我们经历着事物。然而事物本身并不存在衡量尺度,那是我们强加到实相上的。
阮云:先生未生之前各种尺度何在,又何必头上安头。
我们有无限的痛苦,因为我们有无限的欲望。
阮云:因欲生贪,因欲生嗔,贪嗔既久,陈陈相因,愚痴无救。
no man is a island.
西谚有云“没有人是个孤岛”,人是社会性动物,很多自我价值都在社交中实现,自是离不开沟通。
但真正的沟通又是何其难?某种意义上,你永远都不能知道对方真正的意思。当然,有时你连自己是什么意思都不甚了解。
在聊天中经常出现的是,表面上相谈甚欢,背地里很可能是呵呵一笑。毕竟不同价值观,你不能奢望别人能完全理解你,不然怎么老说知音难觅呢?
叔本华曾说
人就像寒冬里的刺猬,互相靠得太近,会觉得刺痛;彼此离得太远,却又会感觉寒冷.
大师所言简直入木三分,而且这些刺猬靠得太近的时候,会说“这个距离太热了”,而不是“你刺到我了”。人与人之间的沟通乃至交往,正是寻找这个合适的距离,这个对双方都合适的距离。
人人都有刺,你的刺一方面是你防卫的武器,另一方面阻止距离更近一步的枷锁。没安全感的人,他的刺就特别长,这样虽然安全了,但别人永远无法接近你。所以我们往往躲在自己厚重的防卫之下,同时感叹着“怎么没有真正理解我的人呢?”。
但其实这些刺都是无用的累赘,你以为它能保护你,其实它把所有人都隔离在外。其实能伤害你的只有你自己,敞开你的心扉吧,你会找到真正的知音,就算不幸有人要辱骂你伤害你,你不放在心上,他就无的放矢。
放下无谓的防备,追求无碍的沟通。
包是指含有__init__.py
的文件夹,模块就是一个.py文件。
python的包和模块是先查找buil-in moudle
然后是sys.path
这个list里的所有路径。
python task/admin.py
,sys.path[0]是'/home/code/taskman/task'
sys.path[0]
是实际文件所在路径,详见''
。''
,这个值等于当前工作目录也就是os.getcwd()
的值,也就是linux的pwd的值,你可以用os.chdir
来改变工作路径。还是分析之前的那个例子
抽象类是自底向上抽象出来的,接口是自顶向下的设计,也就是接口是预设计,抽象类是后抽象。
所有设计模式都是为了维护的方便,如果你的代码确定不需复用,阅后即焚,则设计模式是多余的。
敏捷开发:通过重构改善既有代码的设计
单一职责原则:就一个类应该只有一个引起它改变的原因
开放-封闭原则:对于扩展开发,对于更改封闭
依赖倒转原则:高层模块不应该依赖底层模块,两个都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。
里式代换原则:依赖父类则可用子类代替,反之则不可(子类型必需能够替换父类型)
迪米特法则:如果两个类不必彼此相互相互通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法,可以通过第三者转发这个调用。
这世界上这么多纷争与烦恼,很大一部分都是因为人与人之间不能相互理解,他人为敌国、以邻为壑等等层出不穷。之所以不能理解,是因为同一个东西,对于不同的人(或者不同时间或空间的同一个人),价值是全然不同的。
可能你认为重于生命的东西,于他人不过徒增笑谈尔。比如信教者的斋戒等行为,对无神论者来说是多余的,而对信徒来说却是可能比生命更重要。
又如,你还在大学的时候,这时的时间对你来说十分廉价,所以你愿意去发8元每小时的宣传单;等你事业有成或是垂垂老矣,你还愿意花这一小时去干这个吗,也许只会感叹自己当时太年轻吧。一个人尚且不能理解年轻时的自己,又怎能奢望他理解别人呢?
真正的相互理解是要认同他人对事物价值的判定,但一个事物对他们的价值有天壤之别,这样你叫他们如何相互理解呢?
那么怎么解决这种情况呢?也就是怎么寻找一种相对普适的价值衡量方法呢?
我的一个浅薄的思路是,衡量一个事物的价值可以通过这个人的付出相对自身的稀缺性,这种付出包括物资的付出和精神上承受的压力。
比如说,一个乞丐付出了仅有的100元买了个表,和一个百万富豪付出1000元买了个表。对乞丐来说这表是全部,而对富豪来说表是1/1000。因此乞丐对表爱护有加,富豪对表弃之如弊履,就完全可以理解了。也可以说乞丐的表价值大于富豪的表。
虽然绝对价值不可判定,并且造成很多纷争。但是,同一件事对不同的人价值不同也不是全然没有好处,至少在市场经济里,你们完全可以交换这些东西嘛。
要之,于娑婆世界中,众生皆苦,要以事物相对他人的稀缺性来看他人的付出与承受,如此理解他人才成为可能。
在linux服务器上工作,常常和rm
打交道,难免手滑删除了重要的东西。而且linux又没有回收站功能,一旦删错东西真是欲哭无泪。别问我为什么知道,说多了都是泪。
主要思路是用mv
命令代替rm
,将要删除的东西移动到回收站目录。
mkdir ~/bin
vim ~/bin/trash
# 将下面的内容写入1
mv -v $@ ${trash_bin}
chmod +x ~/bin/trash
# 增加执行权限
1 | # 将以下内容追加到"~/.bashrc"中,回收站是以每天的日期新建文件夹 |
文如其名,是由91篇关系不是很紧密的python文章集合而成
这本书和国内很多技术类书籍一样,排版的代码缩进很有问题,还有文章有些观点并不正确。
除此之外,还是有很多有用的知识点,需要读者自己辨别。
结构日益规范化。现在的库或框架跟随了以下潮流:
__init__
.py文件。Python表达式计算的顺序说起。
一般情况下Python表达式的计算顺序是从左到右,但遇到表达式赋值的时候表达式右边的操作数先于左边的操作数计算,因此表达式expr3, expr4=exprl, expr2
的计算顺序是exprl, expr2 —> expr3, expr4
。
因此对于表达式x, y=y, x
,其在内存中执行的顺序如下:
y,x
,因此先在内存中创建元组(y,x)
,其标示符和值分别为y、x及其对应的值,其中y和x是在初始化时已经存在于内存中的对象。python的and、or表达式并不会将每个值都算出,一旦整个表达式的值已知,其他部分就不会被计算,并且返回最后计算的那个值。
因此,在编程过程中,如果对于or条件表达式应该将值为真可能性较高的变量
写在or的前面;
而对于and则相反,应该推后。
四念处观
欲望和干劲是两回事,干劲反而因为欲望的压力而消耗。
博主云:你的欲望和使欲望满足的方法往往是两个东西,所以欲望越多,越不知道该干什么。欲望想要的是一件事的结果,而我们能做的却仅仅是每一个具体的过程。
难以抉择会给心灵带来极大负担。
博主云:人在一段时间内的自制力是有限的,一个选择在内心停留越久,对自制力就越大损耗,自制力耗尽就表现为什么都不想做。
欲望最原生的材料就是压力,即是苦,所以说将我们驱逐至欲望的正是(痛)苦。
一直待在痛苦的世界是不好的。
我们的欲望并不是自己的欲望,它是你前一段时间所有行为对当下心灵的残留影响。
往往看起来高尚伟大的“xxx主义”,大致上总说着一些漂亮的场面话,实际上只是执着于想要增加自己所属团体的利益。
觉得快乐并不是什么坏事,但是这往往会导致想要追求更多的快乐,就是扩大欲望。
博主云:因快乐而生欲望,因欲望而生执着,因执着而造业。