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

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

要解决这样的问题,看软件工程方面的书是得不到答案的。只能从哲学类的书上去找答案。《月亮与六便士》的主人公思特里克兰德是个在伦敦做事的证券经纪人,他有一个富裕和美满的家庭:妻子漂亮,爱慕虚荣,两个孩子健康快乐。按理说,他应该满足于这种人世的快乐才对,尽管这种生活未免庸俗和平静。但是,就在他们婚后的第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. Swoole server函数列表(转载)

    swoole_server::__construct swoole_server::set swoole_server::on swoole_server::addlistener swoole_se ...

  2. [基准测试]----lmbench

    引言 要评价一个系统的性能,通常有不同的指标,相应的会有不同的测试方法和测试工具,一般来说为了确保测试结果的公平和权威性,会选用比较成熟的商业测试软件.但在特定情形下,只是想要简单比较不同系统或比较一 ...

  3. python之testlink模块

    1.安装:pip install TestLink-API-Python-client >>>>>>待续

  4. Coloring Flame Graphs: Code Hues

    转自:http://www.brendangregg.com/blog/2017-07-30/coloring-flamegraphs-code-type.html I recently improv ...

  5. UOJ #310 黎明前的巧克力 (FWT)

    题目传送门 题目大意:给你一个序列,定义一个子序列的权值表示子序列中元素的异或和,现在让你选出两个互不相交的子序列,求选出的这两个子序列权值相等的方案数,$n,a_{i}\leq 10^{6}$ 这是 ...

  6. cat和cp的神奇用法:制作U盘安装盘

    使用U盘安装debian,U盘的制作方法: 方法一: https://www.debian.org/doc/manuals/debian-handbook/installation.zh-cn.htm ...

  7. 01010_Eclipse中项目的jar包导入与导出

    1.jar包 jar包是一个可以包含许多.class文件的压缩文件.我们可以将一个jar包加入到项目的依赖中,从而该项目可以使用该jar下的所有类:也可以把项目中所有的类打包到指定的jar包,提供给其 ...

  8. RabbitMQ学习总结(1)——基础概念详细介绍

    一.基础概念详细介绍 1.引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务让你可以很轻松 ...

  9. Co-prime

    Co-prime Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem ...

  10. 论文WAN Optimized Replication of Backup Datasets Using Stream-Informed Delta Compression

         这是EMC的备份小组发表在FAST12上的论文,主要是结合重删和差量数据压缩的方法,达到更高的数据压缩率.并且作者使用了一种基于数据流的差量数据压缩,消除了对索引的需求.通过测试达到的压缩效 ...