《程序员的自我修养》(陈逸鹤)读书笔记

第一章 谈职业生涯

写给年轻程序员的几点启示:

  1. 正确认识自己

  2. 比一般人更努力(将成为你最大的竞争优势)

  3. 适时建立个人权威

  4. 遵循最佳实践

  5. 保持好奇心并乐于探索新的事物

  6. 抛开代码与人沟通

  7. 要为优秀的人工作

  8. 生活(有节制有规律的生活)、睡眠(充足的睡眠)、旅行(发现和感受新东西)

  9. 相信自己的天赋与创造力

那些程序员们后知后觉的职涯经验:

  1. 你的薪酬与工作量无关

  2. 尽可能持续做一件事

  3. 唯一不变的就是变化本身(提升快速学习的能力、10 000小时定律)

  4. 你的声誉非常重要(养成严谨的习惯)

  5. 理解沟通的意义(与用户沟通)

  6. 你的右脑将是你成功的关键(非技术能力)

  7. 不要轻易说简单或不可能

  8. 你不应该总是单打独斗(团队协作)

  9. 你的能力显而易见(程序员的能力来自于大量的编程实践,以及持续学习的能力和勤于思考的习惯)

企业如何招到一名靠谱程序员:

  1. 简历看人(简明、清晰、项目经验)

  2. 给面试者10分钟介绍自己最擅长的

  3. 基础打牢了吗

  4. 技术深度够吗

  5. 选择适合所在企业文化的人(最合适的比最优秀的更重要 )

  6. 行为面试法

  7. 给他们一个虚拟任务

每个程序员都应该了解的一件事:

  1. 读与技术无关的书

  2. 会写文档

  3. 学会包装

  4. 尝试多讲(敢讲、让说的与想的一致)

  5. 建立社会化联系(与人交流、自我营销)

程序员的烦恼:

  1. 是否还应该留在一线城市(生活的意义)

  2. 小公司做的事情太繁杂(正确看待每一件件事,可能会提升你的沟通能力、管理能力)

  3. 创业公司中的危机感(创业过程最重要)

  4. 技术单一,想学习更多(技术是相通的,首先应精通一门技术)

  5. 想自学编程,应该学习哪一门语言

  6. 大专学历,能进大公司吗(是否有脱颖而出的东西)

  7. 非计算机专业,未来想从事软件开发(兴趣最重要)

  8. 总是熬夜,睡眠不足(保持充足睡眠 )

提给年轻程序员的职涯建议:

  1. 尽早确定你想做的事

  2. 10 000小时定律

  3. 提高工作效率(加快工作节奏、借助工具)

  4. 简明的沟通方式(邮件开头放结论)

  5. PKSS(周六和周日进行比拼)和持续学习

  6. 学会控制情绪

  7. 让最优秀的人围绕在你身边

  8. 善于归纳与表达

  9. 掌握英语(开阔视野)

  10. 睡眠使你更加强大

第二章 谈实践与认知

突破程序员思维(常人思维+编程思维):

  1. 为什么(技术与发展)

  2. 怎么做(透过技术发现问题本质、像专家一样给出意见、杂学并从中获得不同的视角、找回创造力)

全栈工程师如何快速构建一个Web应用:

  1. 网站定位与功能设定(资源、用户)

  2. 信息架构(业务领域、实体模型)

  3. UI设计

  4. 应用架构(前端:AngularJS,后端Spring Boot)

  5. 开发

  6. 部署(选择云服务器、应用部署、安全)

  7. 性能调优(合并压缩静态文件、使用前端镜像库、使用云存储和CDN进行加速)

  8. 网站数据统计(用户个性化统计)

  9. 选择开发与设计工具

如何成为一个优秀的全栈工程师:

  1. 什么是全栈工程师(同时是一位资深开发工程师、架构师、以及具有敏捷开发技能的程序员)

  2. 全栈工程师的价值(个人价值与自由度的极大提升、全局思维与技术前瞻性、降低沟通成本)

  3. 全栈工程师技能栈(关键开发技能(硬实力)、附加技能(软实力))

为什么每个程序员都应该学习命令行:

  1. 有效控制你的操作系统

  2. 用Git做版本控制

  3. 前端开发依赖于命令行工具

重构——系统改善之道:

  1. 从构建工具开始(引入构建工具、第三方包依赖与版本管理、实现自动化)

  2. 让自动化测试成为重构的保障

  3. 代码级的持续重构(去除代码中的坏味道(重复的、复杂的、错误的等))

  4. 基于微服务的重构(服务识别、UI与服务剥离、构建服务)

程序员也该懂的“这样就好”:

  1. 不盲目使用新技术

  2. 避免过度设计

  3. 不在项目中技术镀金

无法写出易读的代码:

  1. 代码本身难以阅读

  2. 如何让代码更易阅读(推行模式而非建立规范、深入理解并尊重你使用的应用框架、不要使用过多的所谓技巧、小比大好)

编程的意义:

  1. 编程是一项技能

  2. 编程是去解决问题

  3. 编程是在表达,也是在创作

  4. 编程是为了留下痕迹

第三章 谈个人发展

优秀程序员共有特质:

  1. 至少深入理解一门编程语言(特性、局限、缺陷、未来)

  2. 看上去有些“傻”(促进不停学习、工作严谨)

  3. 都是现实主义者(懂的平衡、尊重流程)

  4. 很懒却很高效(善于使用或发明工具)

  5. 并行工作,有效利用时间

  6. 具备不错的软技能(语言表达、倾听、担当、尊重、谦虚)

  7. 身边有一些优秀的伙伴

  8. 对生活充满热情

成为一名自由程序员:

  1. 自由程序员类型(独立接包者、兼职程序员、混合外包、临时工、团队接包者)

  2. 成为自由程序员益处(成为自己的老板、工作灵活性高)

  3. 成为自由程序员挑战(工作量不稳定、容易分心、无公司福利、客户、项目管理、法律财务知识)

  4. 如何成为一名成功的自由程序员(像企业一样运作、建立自己的品牌、沟通、质量、团队)

  5. 如何开始(Coding码市、猪八戒网、Freelancer、猿团)

程序员创业应避开的坑:

  1. 做自己不擅长的领域

  2. 不具操作性的商业计划

  3. 参与者太少或太多

  4. 研发周期过长,产品缺乏焦点或特色

  5. 过度关注产品研发忽略市场

  6. 没有与用户维护关系,也不愿向人求助

  7. 过分信任专家,或对用户言听计从

第四章 谈编程中的教与学

写作与写代码:

  1. 写作很像写代码
    遵循一定逻辑规则(语法、逻辑、修饰)
    将细节组合成更美的东西
    你需要能够纵观全局
    自我表达非常关键
    考虑你的读者或用户

  2. 写作与写代码又是不一样的
    目的不同
    写作可表达情感,写代码不能

猜你喜欢

转载自blog.csdn.net/adorable_/article/details/79958794