程序员思维修炼 --- 读书笔记

简介: 关键点:优秀的学习能力和思考能力本文是《程序员思维修炼》一书的读书笔记和重点内容

程序员思维修炼 --- 读书笔记

关键点:优秀的学习能力和思考能力

本文是《程序员思维修炼》一书的读书笔记和重点内容

从新手到专家的5个阶段

  1. 1. 新手
  • • 无经验,需要指令清单,需要老大教你如何执行
  1. 2. 高级新手
  • • 有部分经验,可以摆脱固定规则,但是难以解决问题;
  • • 高级新手不需要全局思维。全局思维在于观看整体,不仅仅是技术上,还有公司层面上的,这样有助于你去做决定,比如决定这个公司是否值得呆下去,决定这个项目是否对你有意义,决定是否是你以后必要的经验等。
  • • 大多数人处于这个位置
  1. 3. 胜任者
  • • 可以独立解决问题和思考问题;这个是利用以往的经验去思考和解决,但是细节方面有所缺失;主动性足够。但是还不够精通。
  • • 仅次于高级新手的就是这个胜任者。
  1. 4. 精通者
  • • 精通者具有全局思维,会扩展整体和框架,能够自我纠正。
  1. 5. 专家
  • • 专家会不断寻找更好的方法和方式,有丰富的经验
  • • 新手使用规则,专家使用直觉

成为高手的方法和经验

学习方法论

找到一个合适自己的学习方式,需要坚持学习,做任何事情都要坚持,只要坚持了,就一定有收获;同时坚持一种好的习惯;习惯成自然,坚持一个好的习惯可以有助于提高学习方法和技巧

  • • 反馈时学习
  • • 要善于和别人讨论,和别人讨论可以通过别人的反馈,来判定你是否真的已经了解
  • • 流程图就很重要,架构设计图,一图胜千言
  • • 博客的输出,如果得到别人点赞、评论,通过这个反馈去了解自己是否掌握,同时给自己带来信心。
  • • 利用感官反馈
  • • 通过反馈来验证
  • • 集体学习,可以促使你更快进入状态,促使你更快的掌握,因为谁不愿意在同一个起点上弱于别人
  • • 思考式学习
  • • 需要知道,你自己还不知道什么,还不懂什么,还需要学习什么
  • • 需要学习 如何学习的方法,技巧,方法论
  • • 找个安静的地方,想,想,想,这样形成习惯,一定要给自己留一些时间去想、去思考,这样才能知道自己当前的问题,才不会随遇而安,才会有激情,才能知道该如何改进
  • • 综合学习与分析学习并重
  • • 实践时学习
  • • 记录东西包括自己的笔记、经验;还包括自己的想法、和他人的讨论等
  • • eg:有时候讨论的技术方案和思路,其实并没有记录,这样讨论完了就忘记了,当时还是记住了,但是没有然后了,可惜了。
  • • 需要随时 7 * 24 小时记录一些想法、灵光一现的想法,经常会有这个情况,但是如果当时没有记录,那么就会彻底忘了;可以用手机上的备忘录去记录
  • • 关键东西、好的东西一定要记录,好记性不如烂笔头,记忆总会失效或者模糊,但是记录永远存在那里。
  • • 善于总结归档,文档、ppt很重要
  • • 善于思维导图
  • • 做完笔记后,还需要复习一下,复读可以让你重新回顾和思考,也许会有不一样的想法
  • • 管理好自己的知识体系,体系很重要,知识不能杂乱无章
  • • 要实践,不动手,不实践,不尝试,永远不知道结果,不知道结果那就没有意义;如果失败了,没事儿,学习嘛,学习新知识就ok了; 尝试会失败,知识会弥补;
  • • 通过观察和模仿进行学习;比如学习别人好的技巧;观察别人平时是如何学习;如何排查问题的,然后学习好的一面
  • • 要综合式学习,注重短期和长期的投资,记住,知识的投资一定都有用,关键是看到什么时候起到应有的效果。以前我只注重看技术书,但是不一定只看技术书才有用;看一些人文类、管理类都是有用的,会无形中提高你的思维和思想。
  • • 目标导向式学习:目标 & 计划 很重要, OKR 、 KPI 充分利用起来
  • • 可以先制定一个小目标,先能达到;然后诸多小目标汇成大目标
  • • 不仅仅是工作,自己的学习计划都可以是OKR方式
  • • 目标要可以量化,只有量化,才能知道是否达到,达到了多少
  • • 经常制定具体可执行的计划和目标:比如半年、1年、3年、5年,甚至更远的目标,然后定期复盘和调整,根据行动计划看目标是否达成,如何变的更好

思维方式论

  • • 改变解决问题的角度
  • • 疑难杂症,通常需要换个思路;换个考虑方式
  • • 逆向思维:不管是颠覆的,还是从上到下,还是从里到外,都可以换个思路
  • • 要学会从多个角度去看待问题,从正面、反面不同的方向去看待并思考问题
  • • 尝试寻找事务之间的关联性,进行类比;分析问题的时候,要了解各个环节的关联性
  • • 要懂全局意识,全貌;全面分析和思考
  • • 技术小兵的时候,考虑高手的事情,高手的时候考虑专家的事情
  • • 做事情、做决策 都要全局去看待
  • • 防止被固化的思维形成思维定势
  • • 如果你需要创造力、直觉或者独创能力,避免使用形式方法
  • • 需要考虑场景、情景;具体情况具体分析
  • • 都喜欢偏爱自己熟悉的东西,如技术、方案、工具;不愿意自我调整和挑战、不愿意颠覆;有时候甚至只能看到自己熟知的东西,这个是很可怕的。很多时候自己认为的东西不一定是正确的。
  • • 极少可能发生的情况,一定不要忽视,因为总有一天会发生,比如线上系统,某个已知问题是在极少可能的情况才会发生的,但是这个并不能忽视,因为如果一旦发生,可能会是比较致命的问题;所以,我们对细节要一一甄别并合理处理
  • 不过过早的下定论,因为很多时候你下定论的时候,只是你对这个东西认知还不够,如果等你认知够了,或者认知上升了一个层次,你会发现,没有什么不可能,你都做到;或者说,这个东西在下一次你再决定或者下定论的时候,就能够解决了
  • • 做项目决策的时候,如果你还没有完全考虑清楚, 那么推迟下定论
  • • 或者做方案选型的时候,很多时候,就是因为没有考虑清楚,所以过早、过于肤浅的下定论
  • • 想要改变自己的时候,一定是苦难的,但是只有尝试改变,才会做的更好,否则不是现在这样了。

实战经验论

  • • 技术本身不是很重要,持续学习才是最重要的;正确的掌握学习方法、把基础功底弄扎实非常重要
  • • 在实践中保持技能;没有实践就没有技能,不能只问,一定要动手
  • • 避免分心、保持专注
  • • 给自己强制性规定,如规定什么时候看微信、规定什么时候喝水、规定什么时候和别人交流、规定什么时候撸码
  • • 交流规则很重要,需要协商、制定
  • • 拖延症, 这个得治

SMART

目标要对应目的,目的要有意义 流媒体融合调度为例,目的是:提升用户播放体验

目标是:平均起播时间由原来的1.2秒,降低到0.6秒,平均卡顿率由5%,降到2% 在6个月内完成

Specific 具体:平均起播时间 Measurable 可衡量: 起播时间降低到0.6秒 Achievable 可达成:0.6秒是可达的 Relevant 相关:平均起播时间和用户播放体验非常相关 Timing 有时间限制: 6个月时间完成

如果目的意义不大,目标也就意义不大了

对我影响深刻的几个点

  • • 不过过早的下定论,因为很多时候你下定论的时候,只是你对这个东西认知还不够
  • • 思维定势
  • • 要懂全局意识,全貌;全面分析和思考
  • • 需要随时 7 * 24 小时记录一些想法
  • • 需要学习 如何学习的方法,技巧,方法论
  • • 要综合式学习,注重短期和长期的投资

程序员修炼之道

关于软件开发

  • • 规范先行,然后才是代码
  • • 单元测试还不够,最好还要有集成测试;通过命令行运行测试用例
  • • 好的编程语言自带测试框架
  • • 写文档其实是在善待未来的你;文档就是契约
  • • 不要将布尔类型作为函数的参数,避免引起歧义,从函数的意义和参数上看不出具体效果
  • • 在选择编程语言时,不要只看语言本身,还要看社区
  • • 认知成本是代码可读性杀手
  • • 日志用于记录事件,不需要展现给用户
  • • 一定要使用版本控制系统
  • • 一个变更对应一个代码提交
  • • 创建公共库
  • • 学会使用监控
  • • 使用配置文件
  • • 命令行选项很有用

关于团队协作

  • • 代码评审不是为了检查代码风格;在进行代码评审时,请把时间花在架构和设计问题上,不要对代码风格问题吹毛求疵。
  • • 遵循代码风格
  • • 显式胜于隐式


相关文章
|
1月前
从代码到人生:技术感悟与生活哲学
【10月更文挑战第3天】在编程的世界里,每一行代码都承载着逻辑与创造力的火花。正如印度圣雄甘地所言,我们必须成为我们期望在世界上看到的改变。本文将通过技术感悟探讨如何在生活中实现自我提升和目标达成,同时提供实用的代码示例来说明理论与实践的结合之道。
|
6月前
|
敏捷开发 程序员 测试技术
代码之禅:技术感悟与实践之路
【5月更文挑战第29天】在编程世界里,每一行代码都如同禅宗中的一句偈语,蕴含着深邃的智慧与哲思。本文旨在通过个人的技术实践和感悟,探讨如何在日复一日的代码编写中,寻找到提升效率和质量的路径。从对编程语言的深入理解,到开发流程的优化,再到团队合作与沟通的艺术,文章尝试描绘出一幅程序员修行的蓝图,为追求卓越的技术人员提供灵感与指导。
|
26天前
|
安全 程序员
技术感悟——从代码行间窥见人生哲理
【10月更文挑战第10天】 在技术的海洋中,我们常常沉浸于代码的编写与优化,却忽略了其中蕴含的深刻哲理。本文将通过作者的个人经历与感悟,探讨编程背后的人生智慧,揭示技术与人生的密切联系,启发读者在技术领域中找到生活的意义和价值。
45 0
|
3月前
|
Java 程序员 Python
探索编程之美:从代码到哲学的思考之旅
【8月更文挑战第30天】编程,不仅仅是一种技术活,它更像是一扇通往深邃世界的窗户。本文将带你走进编程的世界,从一行行代码中,探寻其背后蕴含的哲理和美学。我们将一同体验从大学毕业的迷茫,到大胆尝试新领域的冒险旅程,再到通过不断学习和提升找到人生方向的过程。正如乔布斯所言:“人生中的每一个点都会在未来某个时刻连接起来。”让我们跟随代码的脚步,开启一场思考与实践交织的旅程。
|
3月前
|
搜索推荐 程序员
代码之旅:我的编程实践与感悟
在这个数字时代,编程已经成为一种重要的技能。它不仅仅是计算机科学的一个分支,更是一种解决问题的工具。从最初的迷茫到现在的熟练,我在编程的道路上经历了许多挑战和困惑。这篇文章将分享我的编程实践经历,包括我如何从一个初学者成长为一名有经验的程序员,以及在这个过程中我所学到的一些重要经验和感悟。
|
监控 程序员 测试技术
程序员思维修炼 --- 读书笔记
程序员思维修炼 --- 读书笔记
14821 11
程序员思维修炼 --- 读书笔记
|
Cloud Native 程序员 Go
从项目中突显技能:在面试中讲述你的编程故事
从项目中突显技能:在面试中讲述你的编程故事
71 0
|
设计模式 程序员
程序员成长第三篇:好的代码和好的工程师
程序员成长第三篇:好的代码和好的工程师
80 0
|
程序员 测试技术 开发工具
程序员成长第十篇:从阅读代码开始
程序员成长第十篇:从阅读代码开始
195 0
|
IDE 程序员 测试技术
程序员优秀之路:一起来看下这 97 位”砖家“能给出啥编程的好建议?(4)
本瓜并未逐字逐句翻译,而是取其精要、理解抽象,结合自身进行撰文表达,与各位看官分享。认知好的编程概念,走向优秀~

相关实验场景

更多
下一篇
无影云桌面