您的位置:首页 > 职场人生

【读书笔记】《程序员修炼之道》前言+第一章

2017-10-06 09:04 232 查看

前言

编程是一项充满了各种细节的工作,追踪这些细节需要专注。

本书告诉我们一怎样一种我们能够遵循的方式编程。

编程是一种技艺

让我想到了SICP中,作者将编程视为一种艺术

你不应该局限于任何特定的技术,而是应该拥有足够广博的背景和经验基础,以让你能在特定情况下选择好的解决方案。你的背景源自对计算机科学基本原理的理解,而你的经验来自广泛的实际项目。理论与实践结合起来。

我们不应该也不能仅仅满足一项技术的学习。也不能和学校的SB教育体系一样,天天增加JAVA的课时,把操作系统,数据结构一流的课程一再缩减。再说一遍,SB学校,急功近利。

你调整你的方法,以适应当前情形与环境。你判断对项目有影响的所有因素的相对重要性,并利用你的经验制定适宜的解决方案。你随着工作的进展持续不断地进行这样的活动。

没有东西是不变的,适合是最好的。

注重实效的程序员的特征:

早期的采纳者/快速的改编者

好奇

批判的思考者

有现实感

多才多艺

我们应该多接触新技术,多试验。这样才能跟得上时代。就我自己来讲,在开始接触Java之后,也接触了一些Python,和机器学习。但是那时的我没有一门相对熟悉的技术,所以视野开阔了,但是问题还是很大。

好奇嘛,还是蛮好奇的。

提示1;
Care About Your Craft
提示2:
Think!About Your Work


注重实效的个体,大型的团队

软件的构造应该是工程学科。但是这并不排斥个人的技艺

我们,采集的只是石头,却必须时刻展望未来的大教堂——采石工人的信条

它是一个持续的过程

kaizen。每天为提炼你所拥有的技能而工作,为把新的工具增加到你的技能列表中而工作。

第一章:注重实效的哲学

1.我的代码让猫吃了

Provide Options,Don'tMake Lame Excuses


如果想要辩解的话,先考虑一下是否合理。如果需要帮助,那么先想办法自己解决,不要什么都要直接伸手

2.软件的熵

熵是一个来自物理学的概念,指的是某个系统中的“无序”的总量

当软件的无序增长是,程序员们称之为 software rot

有许多因素可以催生软件腐烂——破窗效益

Dont't Live with Broken Windows


不要留着破窗户(低劣的设计、错误的决策、或者是糟糕的代码)不修。发现一个就修一个。

实在没时间修理,就都标记在一个地方——要不系统一会这炸一会那炸。。。

3. 石头汤与煮青蛙

当项目遇到阻碍的时候:

设计出你可以合理要求的东西,好好开发它。一旦完成,就拿给大家看,让他们大吃一惊。然后说:我们增加,。。。。可能会更好。

问题:在大型企业里,轮不到小程序员当这个催化剂吧?我们需要往前走,发挥自己更大作用,这个时候才能拿出石头。

Be a Catalyst for change


可能村民被欺骗了,但是我们应该去识别别人画出的大饼,是不是靠谱,如果靠谱,为什么不尝试着去相信他,然后大家可能得到共赢

Remember the Big Picture


4.足够好的软件

使质量成为需求问题


在进行需求分析的时候,要分析质量问题。

不完美的代码哲学

5.你的知识资产

定期投资

多元化

管理风险

低买高卖

重新评估和平衡

Invest Regularly in Your Knowledge Portfolio


学习的机会:

把找到答案视为对你个人的挑战,不要把问题搁在那里

批判的思考

批判地思考你独到的和听到的。你需要确保你的资产中的知识是准确的,并且没有受到供应商或媒体炒作的影响。

6.交流

知道你想要说什么

 没有有效的交流,一个好想法就只是一个无人关心的孤儿

规划出你想要说的东西。写出大纲。然后问你自己:“这是否讲清了我要说的所有内容?”提炼它。

了解你的听众

你想让他们学到什么

他们对你讲的什么感兴趣

他们有多富有经验

他们想要多少细节

你想让谁拥有这些信息

你如何促使他们听你说话?

选择时机

选择风格

让文档美观

让听众参与

做倾听者

It's Both What You Say and the Way You Say It
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: