×

20170719《MacTalk人生元编程》

96
im天行
2017.07.19 14:58* 字数 4810

缘起

  • 知道这本书是很早了,觉得是随笔类的,就没有买。不知道有没有下过电子版,至少pdf版是没有的。
  • 2017-06-09去图书馆还书并借书的时候,偶然发现了这本书,于是就借过来看了一下。
  • 2017-06-10开始第1个番茄钟,2017-07-19全书读完用了12个番茄钟。
  • 作者是池建强,是不是加盟过锤子?然后又离开了?
  • 2014年2月第1版,2014年2月北京第2次印刷。人民邮电出版社。

内容

  • 写在前面的话 写于2014年1月8日
    • 小学四年级之前一直在农村居住。2012年8月微信推出了公众平台,找到了一个写作的契机。
  • 技术写作与减熵 (冯大辉)
    • 写作只能收入8%的版税。
    • 王小波称自己写作是一个“减熵”的过程。
  • 但行好事,莫问前程(邱岳)
  • 生命中遇见的每一本书,都不是偶然
  • 开篇:为何而写
    • 程序员崛起
    • 不要给自己设限
    • 写作即思考
      • 优秀的写作者不仅能让事情变得容易理解,而且能够换位思考,沟通顺畅思维敏捷。
    • 附加值
      • 认识一些朋友。
  • 目录 1/291

Part1 Mac 1/291

  • Macintosh的命名
    • 1979年,苹果有4款产品在研发,AppleII、AppleIII、Lisa和Macintosh。
    • 杰夫.拉斯金是“安妮”的项目经理,可以看下他的博士论文。,后来改成了Macintosh。
  • 1984,Mac诞生
    • 乔布斯看上了Macintosh,于是接管这个项目。
  • Macintosh演化史
    • 《中国人史纲》把中华人的活动历史分为神话时代、传说时代、半信史时代、信史时代.....
    • 作者根据自己的理解,把Mac的演化史分为三个时代,它们分别是
      • System时代:1984~1997
      • Mac OS时代:1997~2002
      • OSX时代:2000~现在
        • Darwin OS X,通过uname -a可以看到Darwin的版本号。
    • NeXTSTEP时代的技术
      • Mach微内核技术
      • 面向对象的框架Driver Kit
      • 自包含的Bundle发布
  • 说说我和Mac
    • 我们不得不承认,先知先觉的人会比我们领先10年甚至更多的身位。
  • 品评OS X Mavericks--唯快不破
    • Time Machine进行系统备份
  • 免费的代价--从OS X免费谈起
    • 免费不等于开源,免费也不是盗版。
  • 选择Mac
  • 开始使用Mac
    • 自己在mac上试下这些功能 【完成】
  • 非同凡想 56/291
    • “非同凡想”(think different)
  • 怀念2007
    • 从平庸到优秀是容易的,从优秀到环卓越是痛苦的。
  • 年轻时的梦想还在吗
    • 除了长期艰苦的练习和有意识的提升,资质、环境、勇气、运气等同样重要。
  • 苹果的语言
    • 一门语言只有掌握得足够深入,才有机会探讨它的前途和钱途。
  • Mac Tips
    • 自己在mac上试下这些功能
      • 实践到17了。

Part2 程序员与编程 97/291

  • 并发的错觉
    • 单核单CPU的运行的发展史
      • 一个CPU只能同时运行一个任务。等它任务全部完成才能下一个,不管过程中是不是占用了CPU
      • 多通道程序。发现当前任务不需要CPU时,就唤醒等待CPU的资源,这个问题在于调度问题
      • 分时系统。运行一段时间后就给别人使用;一旦程序死循环就没招了
      • 多任务系统。系统进程开始分级,所有应用程序以进程和线程方式运行,CPU的分配方式采用了抢占式。
    • 对于人脑而言,任务的并行、上下文的切换、注意力的分散,都会让你的效率大打折扣。
  • 程序员的性格
    • 大部分牛人都很张扬,“戾气”也重,之所以比较温和,一个是岁数大了,另一个就是确实不够牛。
    • 多聆听少说话不是坏事,从别人的谈话中获取自己需要的知识。
  • 程序员如何提高英语阅读水平
    • 一个相对容易坚持的办法:找一本和当前工作相关的,急需的技术图书,每天拿出一小时阅读,不认识的单词,如果不影响阅读只可以不查字典。翻译并不是提高阅读能力的捷径。
  • 普通人之殇
    • 如果每个领域都浅尝辄止,那你就真的成了普通用户了,普通用户是没法进入高级用户的圈子的,因为那些人讨论的东西你不懂嘛,你也不能给别人提供更有价值的东西,那才是真正的普通用户之殇。
  • 趣谈个人建站
    • 109/291
  • 人生元编程
    • 元编程就是能够操作代码的代码,元数据就是能够描述数据的数据。
    • 在不支持元编程的语言世界里,大家分为两个状态:编译时和运行时。
    • 具备原生的元编程能力的语言,比如Ruby、Python、Lisp、Objective-C等。
  • 如何提问
    • 选择好提问对象,首先要选择提问对象,确保他是你所知道的最佳解决人选。
    • 一些方法
      • 用清晰的语言描述遇到的问题
      • 提供软件环境,包括操作系统、数据库等相关软件及其版本号
      • 问题是否可以重现,采用什么方式重现
      • 采用了什么措施解决,最终结果(可提供日志、程序、截图)
      • 尽可能提供问题相关的可分析文件,包括日志、截图和Core dump等。
      • 不要长篇大论,简明,描述主要问题。
  • 如何学习一门编程语言
    • 要有光
      • 无论学习什么,一定要有明确的目的和目标。
    • 经典教程
    • 掌握基础,持续练习
      • 每天花1~2小时
    • 外事不决问google
    • 用好工具
      • shell
      • 文本编辑器
      • IDE
        • Eclipse
        • Xcode
        • JetBrains(收费)
    • 找到你的Master
      • 老师能看到你自己看不到的地方
      • 所有领域的知识都是有体系的,如果有这个领域的行家里手在你早期的学习阶段进行指导甚至设计练习技巧,与自己琢磨的效果是不可同日而语的。
    • 参与社区和技术会议
      • stackoverflow
      • github
    • 刻意练习
    • 逃离舒适区
    • 最后一招“见龙在田”
  • 神奇的程序员--王小波
  • Linux 的文件系统王国
    • df -T -h查看文件系统格式。
    • 有了文件系统(ext3),引出索引节点(inode)的概念,inode由一个数据结构组成,这些字段记录了文件的几乎所有信息。用stat命令查看inode节点信息。单独看文件的索引节点号ls -i文件名。
    • inode存储
      • 数据区存放普通文件,索引节点区存放inode对象。每个inode对象的大小一般是128字节或256字节,这个数值可以在格式化的时候设定。
      • sudo tune2fs -l /dve/xvda | grep "Inode size"
    • 普通文件
      • 具备一个唯一的inode对象
    • 文艺文件
      • 目录文件
        • find ./app -type f | wc -l
        • du -sh app/
    • 二逼文件
      • 块设备文件和字符设备文件
      • FIFO
      • 套接字
      • 符号链接
    • 硬链接
      • ln sourcefile destfile ls -i查看时两个文件的inode号是相同的。stat命令查看其Links的值变为2了。
    • 软链接
      • ln -s sourcefile destfile 类似于Windows系统的快捷方式,会创建新的inode。
      • 软链接可以创建目录的软链接,也能跨文件系统存在,在Linux系统中被大量使用。
      • 一旦源文件/目录不存在了,软链接的使命也就完结了。

Part3 科技与人文 147/291

  • 不要做一个Hater
    • Hater这种人对自己不了解或没有勇气尝试的事物永远持否定态度。
  • 沉默的坚持和沉没的成本
    • 《推荐系统实践》、《清醒思考的艺术》
    • 有些项目中途放弃了,看起来是不纠缠于沉没成本,但有没有想过其实坚持下去有成功的可能性,这种情况就不好说了。
  • 缅怀那些沉没的项目
    • 2000年左右加入洪恩在线,后来成为沉没成本后;公司启动了新的项目数字校园;洪恩的英语培训系统。
      • 学尽世上技术但做不出成功的产品,一样是毫无意义的。
  • 锤子和钉子
    • 尽可能去做开发工具的人。笔者认为工具和平台是推动人类发展的原动力,业务和应用则构建于工具和平台之上,相辅相成。
    • 用好工具。用好工具的基础是对工具有足够的了解并刻意练习。
  • 读书日谈书
    • 1995年,联合国教科文组织正式确定每年4月23日为“世界图书与版权日”。
  • 付费阅读
    • 永远不要把自己的认知想当然地代入到消费者和用户的想法中。
  • 技术成长
    • 盲人摸象看起来是个笑话,但在现实世界里却随时随处发生着。
    • 技术领导需要的是敏锐的技术嗅觉和前瞻性、规划能力、解决问题的能力、组织协调的能力等,而不是去掌握团队使用的所有技术。
  • 克隆高手
    • 电影《遗落战境》,高手不可培养,只能独自成长。 有时候帮助别人解决问题时往往靠直觉行事。 自信往往来自于无知而不是知识。
  • 老兵不死,只能自我提升
    • 确认偏误(Confirmation Bias) 一旦有了这种偏见,我们就很难改变主意和接受他人意见了。大部分人都在相信自己原来相信的东西,只有那些一直积极思考并且愿意接受新思想的人才有可能改变。
    • 笔者目前的行为准则
      • 如果别人需要我的意见,知无不言,但不要去追寻结果,更不要事后说,“我早说过......”
      • 如果我需要别人的意见或建议,那就把自己放空,暂时扔掉偏见和预判,认真听,好好学。
  • 没文化有人文
    • 外界的声音都不重要,重要的是企业是否真正认可自己的企业文化。
  • 明天的科技
    • 作者觉得,软件与硬件、硬件与人、人与自然的整合。
  • 你有多少时间
    • 远离电视才省时间。网络虽然也是时间杀手,但至少是人在主动获取内容。
  • 自由软件
  • 允许吹牛
    • 代入感,吹牛算是一种自我鼓励的方式。
  • 用好自己的份额
    • 每个人的工作都有值得大书特书的地方,但不是在家里。尽可能不要把工作拿到家里做,另外多谈论大家都感兴趣的事。
    • Obama《无畏的希望》
  • 也无风雨也无晴
    • 好的文字该无干也无湿,也无风雨也无晴。
  • 写作与编程
    • 文字和代码,它们都在表达这个世界上需要表达的东西。
    • 查良诤王道乾
  • 奇特的一生
    • 全面熟悉你接触或主动学习的内容,同时打造专长。
  • 是旅行还是长跑
  • 西塘古色
  • 《晓说》不小
    • 高晓松的杂文集《如丧》。
  • 遗失的访谈--岁月无声
    • “七印部落”发布的乔布斯1995访谈字幕版。
    • 卓越的程度员可以花半天的时间解决困扰普通程序员半个月的问题,这些才是真正的差距。
    • 构建一个团队只需找到才华横溢、不甘平庸的5个人,让他们形成合作关系。
  • 怎能忘了西游
    • 今何在《悟空传》
  • 重读黑客与画家
    • Redisign-设计永无止歇 尽可能选择能够长期投入和完善的事情做,这样去做可持续的产品。
    • 正在流行的东西并不一定值得投入

Part4 人物 213/291

  • 传统的黑客--史蒂夫·沃兹
    • 出生于1950年,是不是有本书叫《我是沃兹》?。
  • 从汇编到太空--保罗·艾伦
    • 出生于1953年; 60岁时写了一本书《Idea Man》,中文名叫《我用微软改变世界》。
  • 敬畏之心
    • 冯唐的真我叫张海鹏
    • 吴军的主要研究领域是语音识别和统计语言模型
  • 设计巨匠--乔纳森·艾维
    • 《乔布斯传》里一章专门写讲“大师艾维”。

Part5 工具 229/291

  • Vim
    • 在不同的场景下采用最合适的工具,永远是最佳选择。
    • vi是比尔.乔希写的,是Sun公司的联合创始人和首席科学家。
    • vim是布莱姆.米勒写的。
    • :r!seq 100 在vim打开的文本中插入一个1到100的序列
    • :let i=1 | g /^/ s//\=i."."/ | let i+=1 在当前的每一行文字前面加“序号.”
    • vim :n */.java :argdo %s/apache/eclipse/ge | update 把当前目录下(包含子文件夹)所有后缀为java的文件中apache替换为eclipse
    • 帮助和配置(lionel)
      • 帮助
        • :hlep
      • 配置
        • .vimrc
        • .vim文件夹
    • 概念与技巧
      • 概念
        • Buffer
        • Window
        • Tab-page
      • 技巧
    • vim插件篇
      • Pathogen
      • NERDTree
      • Command+T
      • Poweline
      • Ctags
      • taglist
      • visualmark
  • 神兵利器--Alfred
    • option+space快捷键,需要自己安装。Alfred几乎是一切程序的入口。
  • 终极Shell
    • cat /etc/shells
    • 本节讲的是zsh,这个在OS X的电影里就有。
    • 别的系统安装
    • 配置
    • 使用zsh

Part6 职场 263/291

  • 留不住的人才
    • 人才是留不住的,除非他们想自己留下。
  • 薪水几何
    • 挣钱的才能分两种:一种是真正的才能(写代码,运营好),另一种是极为特殊的才能(不管什么时候,他们都能找到挣钱的门路和手段。)。
    • 找一个感兴趣、完成业绩和提升能力同步进行的地方。
    • 《清醒思考的艺术》 做一个真正有知识的人
      • 他们知道自己的能力范围和边界,他们会努力扩大能力范围和突破边界,但是一旦真正在能力之外,他们要么什么都不说,要么毫不犹豫地说不知道。
    • 这个世界残酷而公平,顶尖水平的人物往往会落下我们10年的身位,你只能在醒悟之后奋力追赶,追赶中当然也可能成就一番事业。
  • 顾得上就问,是为“顾问”也
    • 首先顾问应该有真知识,装有不行,其次顾问有很多种,再次顾问的意见和建议应该是中立的、独立的。
  • 跟着老大去跳槽
    • 笔者的个人建议是:可以跟着老大去创业,但不建议跟着老大去跳槽。
  • 一生要面试多少回
    • 面试准备
      • 明确自己现有的知识领域和目标职位的匹配程度
      • 技能准备
      • 目标公司
    • 简历
      • 知乎上的传奇简历
      • 创建属于自己的简历(利用Mac里的Pages里的模板,也可以用LaTeX命令和MarkDown)
      • 别太长,也别太短
      • 精通有毒
        • 如实、朴实地描述自己了解的技术
      • 突出重点,不罗列项目
        • 让你阐述自己最得意的产品或案例,没人会关注你5年前使用过的某个技术。
      • 开源和技术写作
    • 要有光
      • 高晓松的《大师照亮八十年代》
    • 面试过程
      • 面试中涉及的技术问题,会则答,多问多答,少问少答,在回答过程中尽可能展示自己的特色和特长
    • 反馈
      • 10天内没收到任何消息,可以主动询问一下。
      • 无论是在工作中,还是面试中,要形成反馈闭环。 闭环原则。
  • 去创业还是继续编程
    • 只要是在合适的环境里去做自己能够全盘掌控的事情,就算创业了。
  • 去公司上班还是独自在家
    • 人类作为个体存在的终极目标,肯定不是吃喝玩乐,而是寻找自我和认知世界。
    • 表面上看在家上班就是“自由”--但自由的代价却是孤独
    • 无论是去公司上班,还是独立工作,有两点很重要:
      • 第一,能不能掌控足够的资源
      • 第二,能否用这些资源去做自己想做的事情。
  • 独自在家续篇兼答读者问

收获

  • 因为没有按顺序读,所以记一下读的番茄钟吧
    • 20170610开始第1个番茄钟,从97-109/291。
    • 20170708读第2个番茄钟,从147-169/291。
    • 20170709读第3、4个番茄钟,从169-222/291。
    • 20170711读第5、6个番茄钟,从263-290/291;1-44/291。读完Part 3、4、6的部分
    • 20170713读第7个番茄钟,-130/291,Part1,2部分除了使用mac外。
    • 20170714读第8、9个番茄钟
      • 130-146/291,读完Part 1、3、4、6的部分,也实践和记录了其中的一些mac技巧
      • 231-262/291,Part5的部分还是需要实践,这是第9个番茄钟。
  • 最大的收获拓展了自己在macBook上的应用,也找了下作者的博客
读书摘要
Web note ad 1