作者序 前言 第1章先导:重新认识程序员这个职业 1.1高薪的背后 1.1.1外界对程序员的刻板印象 1.1.2程序员的工作日常 1.2程序员独特的职业气质 1.2.1对技术充满热忱 1.2.2追求** 1.2.3用代码说话 1.2.4读写文档 1.2.5求真务实 1.3**的程序员 1.3.1国内**程序员 1.3.2国外**程序员 1.3.3程序员的视野 第2章入门:技术是成长的根基 2.1学一门编程语言 2.1.1编程语言发展史 2.1.2编程语言分类及介绍 2.1.3编程语言学习要义 2.1.4学习目标与态度 2.2计算机基础技术 2.2.1计算机网络基础 2.2.2计算机组成基础 2.2.3操作系统基础 2.2.4数据结构基础 2.2.5数据库基础 第3章经验:树立项目全局观 3.1软件开发通用项目管理流程 3.1.1通用项目管理中的岗位角色 3.1.2通用项目管理流程 3.1.3项目管理工具** 3.2代码管理及文档管理 3.2.1代码管理工具 3.2.2Git流程及常用操作 3.2.3文档管理要点及工具 3.2.4Markdown使用指南 3.3在线协作及IDE 3.3.1在线协作工具资源 3.3.2���更多时间学习IDE 3.4敏捷开发 3.4.1敏捷开发定义 3.4.2敏捷软件开发宣言 第4章职业:本色做人、角色做事 4.1工作态度 4.1.1如何对接不同角色的工作 4.1.2对事不对人 4.1.3工作责任心 4.1.4技术人的态度 4.2人际关系 4.2.1完成大于** 4.2.2团队的重要性 4.2.3沟通促进合作 4.3持续学习 4.3.1学习方法论 4.3.2费曼学习法 4.3.3寻找学习途径 4.3.4获取学习资源 4.4程序员的日常生活 4.4.1工位好物** 4.4.2空闲时间管理 第5章进阶:程序员的可持续发展 5.1代码规范 5.1.1**的编程原则 5.1.2童子军规则 5.1.3代码风格指南 5.1.4代码注释规范 5.2代码可读性 5.2.1函数式编程 5.2.2封装 5.2.3如何写好注释 5.2.4代码分析工具 5.2.5临时解决方案的持久性 5.3源码即设计 5.3.1技术负债 5.3.2简单即美 5.3.3复用思维 5.3.4设计模式 5.3.5设计黄金法则 5.3.6高内聚、低耦合 5.3.7谨慎对待设计的隐形 5.4代码评审 5.4.1代码评审策略 5.4.2代码评审通用工具 5.4.3代码评审的项目实践 5.4.4代码评审分享 5.5代码单元测试 5.5.1单元测试的意义 5.5.2单元测试怎么做 5.5.3单元测试要点 第6章升职:程序员的职业发展 6.1程序员也要懂产品 6.1.1参与产品建设 6.1.2观察用户 6.1.3人人都是产品经理 6.2程序员素养提升 6.2.1优先自我检查 6.2.2开发并非人越多越好 6.2.3让项目“说话” 6.2.4从说yes开始 6.2.5了解技术的背后 6.2.6学习人文知识 6.3开源实现梦想 6.3.1开源的魅力 6.3.2开源协议 6.3.3开源途径 6.3.4开源技巧 6.4学习时间管理与授权 6.4.1时间统筹 6.4.2任务委派 6.4.3结合技术和管理 第7章思维:多听多想、打开格局 7.1切勿急于求成 7.1.1借助“外脑” 7.1.2程序员也要很努力 7.1.3关于“造轮子”这件事 7.1.4放下鼠标、离开键盘——适当休息 7.2敢于打破思维定式 7.2.1克苏鲁神话——克服恐惧 7.2.2给出编码理由 7.2.3不要轻易相信自己的假设 7.2.4代码“炸弹” 7.3对代码进行终身维护 7.3.1关心自己的代码 7.3.2成为编码专家 7.3.3工匠精神 第8章自驱:路遥知马力 8.1主动意味着很多 8.1.1机会是主动创造出来的 8.1.2主动更新技术栈 8.2自驱是进步的原动力 8.2.1长期主义——欲速则不达 8.2.2厚积而薄发——注重积累 8.3成长即负熵本身 8.3.1接受多元化 8.3.2熵增理论 8.3.3成长型程序员 附录 附录AAIGC浪潮 A.1ChatGPT的背后 A.2人工智能的发展 A.3国内AIGC发展现状 附录B专业术语 B.1程序员常用专业术语 B.2互联网术语 后记