写了这么久的读书笔记,涉及到问题大多是一些如何把软件工程做好,如何把自己的职业生涯做好。但总感觉逻辑链上缺了一环,亦即:我们为什么要把软件工程做好,我们成为一名优秀的职业生涯的意义到底在于什么?我觉得如果这个问题不去想,那么这段三段论便不是完整的,不知道为什么要做的事情而去做,未免太浑浑噩噩了,说实话,就有点行尸走肉的感觉。

本来以为程序员的自我修养这本书能够解答我心中的疑惑,然而翻开这本书,却是一些列关于系统软件如何运行和装载的问题。窃以为,如果是关于这种如何提高自身技能的书,不应该用《程序员的自我修养》来命名。为什么,我觉得一个程序员首先应该是一个人,然后才是一个程序员。如果一个程序员没有一点人文素养,根本不会去思考这类问题,只会码代码,或者讨好上司,那他如果通过自己的职业,达到自我实现呢?

要解决这样的问题,看软件工程方面的书是得不到答案的。只能从哲学类的书上去找答案。《月亮与六便士》的主人公思特里克兰德是个在伦敦做事的证券经纪人,他有一个富裕和美满的家庭:妻子漂亮,爱慕虚荣,两个孩子健康快乐。按理说,他应该满足于这种人世的快乐才对,尽管这种生活未免庸俗和平静。但是,就在他们婚后的第17个年头,他突然离家去了巴黎,抛弃了在外人看来很好的事业和家庭。就在人们以为他的出走是因为有外遇的时候,人们发现的事实却是:他原来只是为了画画。

  这时的思特里克兰德没有任何的绘画基础,他只是爱好画画而已。在外人看来,他简直疯了,他的生活开始变得窘迫,几次险些因饥饿和疾病而死。他画的画也完全不像个样子,总是在原有的事物上进行破坏,除了有个蹩脚的画家伯朗士-施特略夫把他当成上帝外,任何人都不会买他的画,事实上他也从不轻易卖画。
  他在生活态度上有某些令人难忘的东西,他过得全然是一种精神生活。他之所做出这样的决定,或许在于,他思想上受到了某些困扰。他想通过画画来表达内心的困扰。看到这里,我受到了很深的触动。为什么我们要成为一名优秀的软件工程师?
  有些胸怀天下,富有抱负的IT行业者,他们希望能通过代码改变世界。这样的能要历经种种困难,但也有成功的,比如乔布斯,扎克伯格。
  有些安全方面的人,希望通过自己的代码打击犯罪。
  而有些人,正如《人月神话》所提及的一样。编程具有搭积木一般,构建世界一样的,上帝一样的乐趣。正如《梦断代码》的作者,年轻时痴迷于用basic语言构造虚拟内战。
  而更多的人,可能更希望通过成为一名优秀的软件工程师,让自己所爱的人过上幸福而体面的生活。
  无论是哪种,都比浑浑噩噩地码代码要好。
  
   
 

第八周读书笔记(人月神话X月亮与六便士)——到底什么才是一个程序员的自我修养?的更多相关文章

  1. 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度

    <Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ...

  2. 《Linux内核设计与实现》 第八周读书笔记 第四章 进程调度

    20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有 ...

  3. linux内核分析 第八周读书笔记

    第四章 进程调度 4.1 多任务 1.多任务操作系统就是能同时并发的交互执行多个进程的操作系统. 2.多任务操作系统使多个进程处于堵塞或者睡眠状态,实际不被投入执行,这些任务尽管位于内存,但是并不处于 ...

  4. Linux内核设计与实现第八周读书笔记

    第四章 进程调度 进程在操作系统看来是程序的运行态表现形式. 4.1多任务 多任务操作系统就是能同时并发地交互执行多个进程的操作系统. 多任务操作系统会使多个进程处于堵塞或者睡眠状态.这些任务尽管位于 ...

  5. 《程序员的自我修养》读书笔记 - dllimport

    Math.c  { __declspec (dllexport)  double Add (xx, xx) {...}} MathApp.c  { __declspec(dllimport) doub ...

  6. 《程序员的自我修养》读书笔记——系统调用、API

        系统调用 程序运行的时候,本身是没有权限访问多少系统资源的.系统资源有限,如果操作系统不进行控制,那么各个程序难免会产生冲突.线程操作系统都将可能产生冲突的系统资源保护起来,阻止程序直接访问. ...

  7. pwn学习日记Day22 《程序员的自我修养》读书笔记

    知识杂项 软连接 命令: ln -s 原文件 目标文件 特征: 1.相当于windows的快捷方式 2.只是一个符号连接,所以软连接文件大小都很小 3.当运行软连接的时候,会根据连接指向找到真正的文件 ...

  8. pwn学习日记Day21 《程序员的自我修养》读书笔记

    Linux内核装载ELF过程 (1)bash进程调用fork()系统调用创建一个新的进程 (2)新的进程调用execve()系统调用执行指定的ELF文件,原先的bash进程继续返回等待刚才启动的新进程 ...

  9. pwn学习日记Day20 《程序员的自我修养》读书笔记

    可执行文件的装载与进程 覆盖装入和页映射是两种典型的动态装载方法 进程建立的三步 1.创建一个独立的虚拟地址空间 2.读取可执行文件头,并且建立虚拟空间与可执行文件的映射关系. 3.将CPU的指令寄存 ...

随机推荐

  1. Python 切片 day3

    你可以处理列表的部分元素——Python称之为切片 . 一.使用方法: 要创建切片,可指定要使用的第一个元素和最后一个元素的索引. 与函数range() 一样,Python在到达你指定的第二个索引前面 ...

  2. js:重复输出字符串中字符

    复习了 重复输出一个字符串后, 重复输出一个字符串是 比如给定 str:abc  num:3 要求输出 abcabcabc 文章链接:https://www.cnblogs.com/mobu/p/98 ...

  3. 洛谷P1208 [USACO1.3]混合牛奶 Mixing Milk【贪心+背包】

    由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的.此 ...

  4. AtCoder ARC 082E - ConvexScore

    传送门:http://arc082.contest.atcoder.jp/tasks/arc082_c 本题是一个平面几何问题. 在平面直角坐标系中有一个n元点集U={Ai(xi,yi)|1≤i≤n} ...

  5. StringUtils.isNotBlank 和StringUtils.isNotEmpty 的区别

    StringUtils.isNotBlank判断某字符串是否不为空且长度不为0且不由空白符(whitespace)构成下面是示例:StringUtils.isNotBlank(null) = fals ...

  6. 微信小程序获取登录手机号

    小程序获取登录用户手机号. 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button> 组件的点击来触发. 首先,放置一个 button 按钮,将 ...

  7. MyBatis之java.lang.UnsupportedOperationException异常解决方案

    今天在使用MyBatis执行sql语句时,出现如下异常: 执行的sql语句配置信息如下: <select id="getColumnsByTableName" paramet ...

  8. 在centos6上面安装python3.4

    mkdir -p /work cd /work gwet https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz tar -axf Py ...

  9. [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉

    本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉 题目大意 给定n,m,求在1到n!内与m!互质的 ...

  10. owin-startup方法

    owin在根目录下有这个startup.cs文件,里面有个startup方法,这个和global.asax有什么区别呢? 测试一下执行顺序,是先执行了global.asax文件,再执行了startup ...