读万卷书
程序员的自我修养(四星推荐)
总结:比较适合新手程序员或者工作一段时间后产生了些许迷茫的程序员。我个人对于书中的大部分内容都深有感悟,而且基本上也在这么做了;如果你还没有这个意识,那么或许你应该读一下本书。
本书对编程生涯的各个方面均有一定的探究,但部分内容先于篇幅,有点点到即止。
NOTICE:以下内容并非完全摘抄自书中,有些是我自己的感悟,与作者不尽相同!因为效率关系,并不会全部注明,建议感兴趣的同学去阅读原著对应章节
职业生涯
十点启示
本章指导我们如何做好一个“程序员”,而不是“码农”。
- 正确地认识自己:编程是一门手艺,以“匠人”的标准要求自己,看待自己的工作,这样你才能慢慢成为受人尊敬的大神
- 比一般人更加努力:有的天才或许我们永远都无法超越,但是只要我们持续学习,那我们就会比跟我们相似的普通人走的更远
- 适时建立个人权威:多想多做,展示自己存在的价值
- 遵循最佳实践:技术日新月异,然而“道”始终不变;多去了解下各个方面的最佳实践,加深对软件开发本身的认知
- 保持好奇心并乐于探索新的事物:有了广度才能更好地加深深度
- 抛开代码与人沟通:
- 要为优秀的人工作:与优秀的人一起工作,才能更好的看到自己的不足,才能激发自己的上进心
- 生活、睡眠、旅行:技术只是我们谋生的手段,不要忽略了身边人,请珍惜
- 相信自己的天赋和创造力:阅读优秀的书籍,激发自己的创意和灵感;记录和收集灵光一现的灵感;尝试动手和实践
- 至少要坚持第二点
职涯经验
- 薪酬与工作量无关,与你的重要程度有关
- 尽可能持续做一件事情:学会在项目中成长,将所学知识应用于项目中才能更加深刻的理解
- 唯一不变的就是变化本身:持续学习;学的越多,越能触类旁通,越能学的更快
- 你的声誉非常重要:保持严谨的态度
- 理解沟通的意义:
- 你的右脑将是你成功的关键:转换思维逻辑,避免固化;可以学习些与技术无关的技能,比如PPT
- 不要轻易说简单或不可能:这里我的感悟与作者不太一致;不要轻易的对需求或者技术方案说不可能,这样会容易让人对你的能力产生质疑;或者要用数据去论证,让大家对你的观点心悦诚服
- 你不应该总是单打独斗:学会团队合作,借助同事的力量,扩展你的边界
- 你的能力显而易见
如何招到一名靠谱的程序员
如果你还没有负责其招聘的事情的话,那就站着应聘者的角度,学习下如何成为一名靠谱的程序员吧
- 简历:
- 给面试者时间介绍自己最擅长的(10分钟):
- 基础打牢了吗?
- 技术深度够吗?
- 选择适合所在企业文化的人
- 行为面试法:
- 给他们一个虚拟的任务
每个程序员都应该了解的一件事
自我营销能够放大你的努力,在你的成功路上起到催化剂的作用。
- 读与技术无关的书:这样才有更多的谈资与人交流
- 会写文档:文档是你展示你工作能力、内容的一个重要途径
- 学会包装
- 尝试多讲
- 建立社会化联系:通过博客、技术分享、MeetUp等扩大你的影响范围
程序员的烦恼
- 是否应该留着一线城市:我不同意作者想让大家留着一线的观点,这是你个人的选择
- 小公司做的事情太繁杂了: BAT也是围城,大家做的事情都一样繁杂;作者讲的很好,杂事不杂,从中可以全方面锻炼你的个人能力,尝试想方设法跳出这些循环,创造更好的方式去解决这些问题,才能成为更优秀的人;但要注意,要时刻保证个人在技术上的持续精进,我曾经面试过一个BAT某家的候选人,技术水平无法达到一个工作3年+应有的水平
- 创业公司中的危机感:在创业公司中应该去全方面了解整个公司的技术、运作和行业的情况;要时刻想着,如何才能成为下一个创业公司的核心成员
- 技术单一,想学更多:精通一门技术后再去尝试学习其他的,因为技术的事情都是触类旁通
- 我想自学编程,应该学习哪一门语言:作者推荐学习JS,我推荐Python
- 大专学历,能进大公司吗?:不能,除非你得到对应岗位leader的认可,或者极其专业,但这很难
- 非计算机专业学生,未来想从事软件开发:略
- 总是熬夜,睡眠不足:略
提给年轻程序员的职涯建议
- 尽早确定你想做的事情
- 10000小时定律:《异类-不一样的成功启示录》
- 提高工作效率:年轻程序员应该花些时间打造一个舒适的开发环境
- 简明的沟通方式:如果一个时期无法很好的用文本去解释,那就电话,如果电话也不行,那就当面去解释;不紧急的事情可以先留言约时间,避免干扰他人正常工作
- PKSS与持续学习:PK Saturday and Sunday,持续学习也要投入一点精力,在其他方面的学习上
- 学会控制情绪:注意对事不对人;发火是否有理由,冷静,同理心;这点也是我需要持续学习的
- 让最优秀的人围绕在你身边:
- 善于归纳和表达:
- 掌握英语:
- 睡眠让你更加强大:
实践与认知
突破程序员思维
- 注意探寻问题的本质,不能仅仅满足于实现当前的需求,解决当下的问题
- 站在用户的角度,给出最合理的意见
- 杂学并从中获取不同的视角
- 坚持阅读,记录自己的点滴想法,时常review检索
全栈工程师如何快速构建一个Web应用
- 没有兴趣阅读,略
- 粗略看了一下,作者对建站过程中的整个思考过程还是值得初级程序员们去了解下的
如何成为一名优秀的全栈工程师
- 学不会CSS,暂时没有兴趣阅读,略
为什么每个程序员都应该学习使用命令行
- 太初级,略
重构—系统改善之道
- 讲的太初级,略
程序员也应该懂得“这样就好”
- 不盲目追求新技术
- 避免过度设计
- 不在项目中技术镀金
走出软件开发法则
- 面向对象:小心滥用
- 测试非常重要:
- 不要去为了满足覆盖率而编写测试用例,测试用例应该为存在不确定性的需求或者对外提供的服务来编写全面的测试用例;不应该为必然正确的实现细节去做测试
- 测试无法提高代码质量,代码质量只取决于代码本身:这点我不是完全赞同作者的观点,在写测试的过程中优秀的程序员会让自己的代码更加的便于被测试,从而提高代码质量
- 测试的方案很多
- 集成测试越早越好
- 层出不穷的方法论:说易做难啊
我无法写出易读的代码
这里除了作者提的建议外,我也推荐大家读一下《重构:改善既有代码的设计》一书
- 推行模式而非规范:
- 用什么结构来表示数据本身
- 用哪种机制来进行数据加工
- 如何进行统一的错误处理
- …
- 深入理解并尊重你所使用的应用框架:扩展框架,避免使用底层的方法或者API,这样容易导致坏味道越来越多
- 不要使用过多的所谓技巧
- Design Review与Code Review都很高重要
- 让你的架构师忙起来
- 小比大好:避免函数过长
一名全栈工程师的Mac工具箱
- 没有兴趣,略
我似乎理解了编程的意义
- 为了留下存在的痕迹
谈个人发展
那些优秀程序员身上的共同特质
挑一些写一下吧
- 现实主义者,懂得平衡,完成即价值,尊重流程,灵活运用
成为一名自由程序员
- 略
专家与普通人的区别在于觉察力
- 略
程序员创业?你需要先避开这些坑
- 暂时不考虑,略
程序员之“美”
- 工作和技术不是我们存在的真正意义,只有生活才是
- 建议阅读本章
建立自己的个人品牌
- 略
你不应该成为一匹独狼
- 略
未来,有关程序员的10个预言
- 略
你也可以写出优秀的技术博客
- 如何起步:
- 写什么:目标读者群,擅长的领域,希望写什么样的文章
- 从模仿和重写开始:
- 确定主题
- 寻找资料
- 列出提纲
- 完善内容
- 反复修改
- 每周一到两篇:注重质量
- 2000~3000字
- 发布时间:周末阅读量较少,上下班路上,睡觉前;多发多对比
- 社交营销
- 积极对待读者反馈
谈编程中的教与学
- 略
谈自学设计
- 略