A Programming language is not for the computer, it is for people.
If the computer doesn’t run it, it’s broken. If people can’t read it, it will be broken. Soon.
程序员应该追求好的算法和**惯用法 **--《计算机程序的构造和解释》
Done is better than perfect。 **不要追求完美,不要过度计划,而是要尽快实现功能,通过不断迭代来完善。 **--facebook
如果说设 计模式是“术”,设计原则才是“道”。设计模式并不能帮你建立起知识体系,而设计原则 可以。--《10x程序员工作法》
什么是高层策略?它是应用背后的抽象,是那些不随具体细节的改变而改变的真理。它是系统内部的系统--它是隐喻。 -- 《敏捷软件开发》
To learn,read. To know,write. To master,teach --印度谚语
What I hear, I forget. What I see, I remember. What I do, I understand --华盛顿国家儿童博物馆
你需要意识到,如果感到学习非常吃力,那是说明你正在学习非 常重要的东西。--《认知天性》
十年拉磨的驴和十年征战沙场的马,谁能力更强?
迷茫时读书,烦躁时运动,独处时思考。
中高级开发是开发主力。对于中高级开发,就升职加薪来看,技术的效益远高于编码设计能力。设计的好坏,在外行来看终究不也只是翻译了业务逻辑,所以希望他们认可做设计和代码检视买单挺难的。
Any fool can write code that a compute understands, good programmers write code that humans can understand. --Martin Fowler
“类型”有时候是一个有用的事,有时候又是一件很讨厌的事情。因为类型是对底层内存布局的一个抽象,会让我们的代码要关注于这些非业务逻辑上的东西。而且,我们的代码需要在不同类型的数据间做处理。但是如果程序语言类型检查得过于严格,那么,我们写出来的代码就不能那么随意。 --陈皓
初级程序员维护代码,中级程序员设计代码,高级程序员重构代码。
模块化的本质是分而治之。
当你忙得跟牲口一样,你应该停下来,问一下自己,自己成为牲口的原因,是不是就是因为自己做事时候像就牲口一样思考?
被动工作的人永远都是一颗螺丝钉。
先有深度才会有广度。
数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。
庄子语:
井蛙不可以语于海者,拘于虚也;//空间局限
夏虫不可以语于冰者,笃于时也;//时间局限
曲士不可以语于道者,束于教也。//认识局限
程序员不要"墙"了自己
- 设计原则和思想比设计模式更加普适和重要。
- 客户的根本需求:物美价廉。
- 质量是符合客户需求而不是‘好’。
- 不接受上一道工序的缺陷
自己不产生缺陷
缺陷不流入下一环节 - 第一次做某件事时只管去做;第二次做类似的事会产生反感,但无论如何还是可以去做;第三次再做类似的事,你就应该重构。正如老话说的:事不过三,三则重构。
--Don Robert 《重构》第三版 - 敏捷开发三大实践:可测试代码(能够进行单元测试)、 持续集成、重构。--Don Robert 《重构》第三版
- 对象的基本特征之一就是封装--对外部世界隐藏其内部细节。--Don Robert 《重构》第三版
- 编程能力是解决难写不出来的问题,架构能力是解决大写不出来的问题,工程能力是解决人多怎么协作的问题。
- 一次写入多次读取才能体现缓存的价值。
- 大部分人终其一生停留在高级新手阶段,而阻碍他继续发展的一个重要原因就是:他不知道自己是一个高级新手。
- 编程语言实质:
编程的目的是用计算机来解决现实世界的问题
编程的过程是在计算机所能理解的“模型”(解空间)和现实世界(问题空间)之间建立一种联系
编程语言是一种“抽象”的机制, 问题是对“谁”来抽象 - 十年拉磨的驴和十年征战沙场的马,谁能力更强?
- 迷茫时读书,烦躁时运动,独处时思考。