程序员修炼之道--从小工到专家(一)

  

  这个假期里看了一下这本书,乍一看名字,觉得这就是比较鸡汤类的书吧,但是在看了一部分之后,忽然感觉到,以前的自己真的是很无知,一直就没有认识到做一个真实的项目的困难性,也根本就没有真正的认识到怎么去做一个合格的程序员。就像是推荐这本书的人在前言中说的那样: 如果一本书能够全面的、清晰的总结你从实践中获得的各种认识、总结你从其他书里散乱的读到的技术和方法,这本书就一定不是无益的。对我而言,《程序员的修炼之道》这本书就是我在程序员启蒙路上的重要导师。下面我说一下我的在读这本书时候的感悟。

 

  一、注重实效的哲学

  注重实效的程序员的特征:主要体现在处理问题、寻求解决方案时的态度、风格、哲学上,他们总是能越出问题去思考。

  注重实效的程序员成功的关键在于他们总是对自己所做的事情负责。

  

  1、我的源码让猫给吃了

  a.注重实效的程序员对他自己的程序员生涯负责,并且不害怕承认无知和错误。

  

  b.即使在最好的项目中,尽管有彻底的测试、良好的文档和足够的自动化,出错是难免的事情。一旦发生这样的事情,我们要设法尽可能职业地处理他们,要诚实坦率。我们可以为自己的能力自豪,但是对我们的缺点——还有我们的无知和我们的错误——我们一定要诚实。

 

  c.要提供各种选择,而不是各种借口,不要说事情做不到,在你大声说他之前,先设法把蹩脚的借口清除出去。

 

  不论怎么样,诚实和勇敢都是一个程序员最基本的品质。你可以不是一个最顶尖的人才,但必须是一个诚实的人,一个你敢于正视自己错误的人。

  

  2、软件的熵

  a.熵是一个物理学概念,指的是某个系统中“无序”的总量。当软件的无序性增长时,称为“软件腐烂”。促使他腐烂的因素有很多,最为重要的是项目者的心理。

 

  b.不要容忍破窗户  ( Don’t Live with Broken Windows )  当你看到糟糕的设计、错误的决策和糟糕的代码时,一定要及时修正它们。

 

  3、石头汤与煮青蛙

  a.做变化的催化剂 Be a Catalyst for Change

 

  b.记住大图景 Remember the Big Picture

 

  4、做足够好的软件

  a.我们没办法做到十分完美,但可以训练自己,编写出足够好的软件,对你的用户、对未来的维护者、对你的内心安宁来说足够好。但是足够好并非意味着不整洁或制作糟糕的代码。

 

  b.要让你的客户参与权衡,使质量成为需求问题。因为大部分的客户,宁愿用上有“毛边”的产品,也不愿意长时间的等待。

 

  c.不要因为过度修饰和过于精益求精损毁完好的程序。也许代码不够完美,但是不要担心,他不会完美。

 

  5、你的知识资产

  a.你的知识和经验是最重要的职业财富,但它们是有时效的资产。随着你的知识价值的降低,对你的公司和客户来说,你的价值也在降低。

 

  b.管理知识资产与管理金融资产类似:

  1) 定期投资。即使投资量很小,习惯自身也和总量一样重要。

  2) 多元化是长期成功的关键。你知道的不同的事情越多,你就越有价值。但作为底线,你需要知道你目前所用的技术的各种特性,同时不要就此止步

  3) 在保守的投资和高风险、高回报的投资之间取得平衡。不要把所有的技术放在一个篮子里。

  4) 低买高卖,以获取最大回报。在新兴技术流行之前学习它就可能和找到被低估的股票一样困难,但所得到的就和那样的股票带来的一样。

  5) 周期性地重新评估和平衡资产。

 

  6、交流

  What do you want them to learn

  What is their interest in what you’re got to say

  How sophisticated are they

  How much detail do they want

  Whom do you want to own the information

  How can you motivate them to listen to you

转载于:https://www.cnblogs.com/yandashan666/p/10424119.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018年文章汇总

Android ANR 实例分析Linux kernel计算某段代码运行时间Linux Kernel 发展和内核特点C/C函数指针与指针函数(二)老王带你理解算法复杂度O(1),O(N),O(N^2)Android NDK Tombstone/Crash 分析堆和栈的区别(转过无数次的文章)C语言scanf-周末杂想C语言-scanf…

C++11:右值引用和转移赋值

1、左值与右值的区别: 左值:能别赋值的值;能取到地址的值,用&能取到地址,具有持久性; 右值:临时变量;不能用&取到地址;只是字面常量值 2、右值引用 一般用的…

[备忘]Visual Studio常用小技巧

1. 怎样调整代码排版的格式? 选择:编辑—>高级—>设置文档的格式 或 编辑—>高级—>设置选中代码的格式。 格式化cs代码:Ctrlkf 格式化aspx代码:Ctrlkd 2. 怎样跳转到指定的某一行? 两种方法&#…

Angular CLI的简单使用(1)

参考地址: https://v2.angular.cn/docs/ts/latest/cli-quickstart.html Angular CLI是一个命令行界面工具,它可以创建项目、添加文件以及执行一大堆开发任务,比如测试、打包和发布。 1. 请先在终端/控制台窗口中运行命令 node -v 和 npm -v, 如下图,没有…

在没有数据集的情况下使用数据表

使用数据适配器填充数据表 View Code using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient;namespace PopDataTable {class Program{static void Main(string[] args){string connString…

2019年文章汇总

要不要去培训机构深造一下?我一个37岁的程序员朋友Linux内核中的GPIO系统整理的免费资料,帮你年后跳槽C语言,字符串指针做函数参数书籍推荐过年回家抢票攻略C语言,函数不可返回指向栈内存的指针你还会写这段C51程序吗?…

一种简单的LRU cache设计 C++

最近在工作中需要用到LRU cache用作缓存来提高性能,经过查阅各种资料,了解了其运行的机制,如下: LRU cache可以用于在内存中保持当前的热点数据,下面实现一个有大小限制的lru cache,相关如下: …

开博了,喜欢这里的气氛

开博了,喜欢这里的气氛 以后经常写东西 学PHP不久,很多东西需要学习 我的站点 www.zhibowang.cn www.xzld.com转载于:https://www.cnblogs.com/gxphp/archive/2009/04/05/1429819.html

bsgs整理

目录 bsgs问题 或 poj2417:概述代码exbsgs鸣谢 \(gzy gzy gzy\)bsgs问题 或 poj2417: 给定质数\(p\),给定\(a\),\(b\),\((a,p)1\) 求出最小的整数x,使得\(a^{x}≡b(mod p)\) 概述 由费马小定理可以知道\(a^{xp-1}≡a^{x}≡b(mod p…

两个指针变量可以相减

两个指针变量可以相减转载于:https://www.cnblogs.com/LoveFishC/archive/2012/07/23/3845529.html

linux下修改max_user_processes和open_file的最大值

从事分布式服务器开发工作的都会遇到,linux下open_file的值默认是1024;max user processes的值默认是4096,在实际用于中,这两个值严重不足,常常需要调整这两个值。默认配置如下: 可以通过以下两种方式修改&…

Silverlight 全屏显示

privatevoidFullScreenButton_Click(objectsender, RoutedEventArgs e) { Application.Current.Host.Content.IsFullScreen Application.Current.Host.Content.IsFullScreen?false:true; }转载于:https://www.cnblogs.com/star250/archi…

IP SLA的路径控制

一、定义SLA 服务水平协议(简称:SLA,全称:service level agreement)是在一定开销下为保障服务的性能和可靠性,服务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。简…

创业动力衰减 中国面临危险挑战

近日,在翻阅1月份出的一书《赢道:成功创业者的28条戒律》时,对目前国内的创业形势产生了近乎激动的想法。从目前的创业情况看,我认为,中国80年代青年的创业动力正在衰减,对照2005年—2007年间各种创业沙龙如…

【linux】linux系统中常见配置文件及目录说明

1.配置文件/proc/sys/fs/file-nr 里文件里显示三个数字 [rootlocalhost logs]# cat /proc/sys/fs/file-nr 2112 0 2100000已分配文件句柄的数目 已使用文件句柄的数目 文件句柄的最大数目 上面第二项的值为0表示分配的文件…

6-14 数据库高级

--先通过设计器手动添加,然后通过代码来添加--手动增加约束--手动删除一列(删除EmpAddress列) alter table Employees drop column EmpAddress go--手动增加一列(增加一列EmpAddr varchar(1000)) alter table Employees add EmpAddr varchar(1000)--手动修改一下Emp…

ptmalloc,tcmalloc和jemalloc内存分配策略研究

转载:https://cloud.tencent.com/developer/article/1173720 操作系统内存布局 各种malloc的内存分配管理方式离不开操作系统的内存布局策略。 32位经典内存布局 32位系统下经典内存布局如上,程序起始的1GB地址为内核空间,接下来是向下增长…

AJAX之表单即时验证

最近互联网上比较火热的话题当然是关于WEB2.0的应用,其中AJAX又是WEB2.0的核心之一。AJAX是Asynchronous JavaScript and XML 的缩写。它并不是一门新的语言或技术,它实际上是几项技术按一定的方式组合在一在同共的协作中发挥各自的作用,它包…

黄聪:PHP获取MAC地址(转)

<?php /** 获取网卡的MAC地址原码&#xff1b;目前支持WIN/LINUX系统 获取机器网卡的物理&#xff08;MAC&#xff09;地址 **/ class GetMacAddr{ var $return_array array(); // 返回带有MAC地址的字串数组 var $mac_addr; function GetMacAddr($o…

Tcmalloc

Tcmalloc Ptmalloc在性能上还是存在一些问题的&#xff0c;比如不同分配区&#xff08;arena&#xff09;的内存不能交替使用&#xff0c;比如每个内存块分配都要浪费8字节内存等等&#xff0c;所以一般倾向于使用第三方的malloc。 Tcmalloc是Google gperftools里的组件之一。…