程序员的自我修养
第一章 谈职业生涯
写给年轻程序员的几点启示
正确认识自己
比一般人更努力(将成为你最大的竞争优势)
适时建立个人权威
遵循最佳实践
保持好奇心并乐于探索新的事物
抛开代码与人沟通
要为优秀的人工作
生活(有节制有规律的生活)、睡眠(充足的睡眠)、旅行(发现和感受新东西)
相信自己的天赋与创造力
那些程序员们后知后觉的职涯经验
你的薪酬与工作量无关
尽可能持续做一件事
唯一不变的就是变化本身(提升快速学习的能力、10 000小时定律)
你的声誉非常重要(养成严谨的习惯)
理解沟通的意义(与用户沟通)
你的右脑将是你成功的关键(非技术能力)
不要轻易说简单或不可能
你不应该总是单打独斗(团队协作)
你的能力显而易见(程序员的能力来自于大量的编程实践,以及持续学习的能力和勤于思考的习惯)
企业如何招到一名靠谱程序员
简历看人(简明、清晰、项目经验)
给面试者10分钟介绍自己最擅长的
基础打牢了吗
技术深度够吗
选择适合所在企业文化的人(最合适的比最优秀的更重要 )
行为面试法
给他们一个虚拟任务
每个程序员都应该了解的一件事
读与技术无关的书
会写文档
学会包装
尝试多讲(敢讲、让说的与想的一致)
建立社会化联系(与人交流、自我营销)
程序员的烦恼
是否还应该留在一线城市(生活的意义)
小公司做的事情太繁杂(正确看待每一件件事,可能会提升你的沟通能力、管理能力)
创业公司中的危机感(创业过程最重要)
技术单一,想学习更多(技术是相通的,首先应精通一门技术)
想自学编程,应该学习哪一门语言
大专学历,能进大公司吗(是否有脱颖而出的东西)
非计算机专业,未来想从事软件开发(兴趣最重要)
总是熬夜,睡眠不足(保持充足睡眠 )
提给年轻程序员的职涯建议
尽早确定你想做的事
10 000小时定律
提高工作效率(加快工作节奏、借助工具)
简明的沟通方式(邮件开头放结论)
PKSS(周六和周日进行比拼)和持续学习
学会控制情绪
让最优秀的人围绕在你身边
善于归纳与表达
掌握英语(开阔视野)
睡眠使你更加强大
第二章 谈实践与认知
突破程序员思维(常人思维+编程思维)
为什么(技术与发展)
怎么做(透过技术发现问题本质、像专家一样给出意见、杂学并从中获得不同的视角、找回创造力)
全栈工程师如何快速构建一个Web应用
网站定位与功能设定(资源、用户)
信息架构(业务领域、实体模型)
UI设计
应用架构(前端:AngularJS,后端Spring Boot)
开发
部署(选择云服务器、应用部署、安全)
性能调优(合并压缩静态文件、使用前端镜像库、使用云存储和CDN进行加速)
网站数据统计(用户个性化统计)
选择开发与设计工具
如何成为一个优秀的全栈工程师
什么是全栈工程师(同时是一位资深开发工程师、架构师、以及具有敏捷开发技能的程序员)
全栈工程师的价值(个人价值与自由度的极大提升、全局思维与技术前瞻性、降低沟通成本)
全栈工程师技能栈(关键开发技能(硬实力)、附加技能(软实力))
为什么每个程序员都应该学习命令行
有效控制你的操作系统
用Git做版本控制
前端开发依赖于命令行工具
重构——系统改善之道
从构建工具开始(引入构建工具、第三方包依赖与版本管理、实现自动化)
让自动化测试成为重构的保障
代码级的持续重构(去除代码中的坏味道(重复的、复杂的、错误的等))
基于微服务的重构(服务识别、UI与服务剥离、构建服务)
程序员也该懂的“这样就好”
不盲目使用新技术
避免过度设计
不在项目中技术镀金
无法写出易读的代码
代码本身难以阅读
如何让代码更易阅读(推行模式而非建立规范、深入理解并尊重你使用的应用框架、不要使用过多的所谓技巧、小比大好)
编程的意义
编程是一项技能
编程是去解决问题
编程是在表达,也是在创作
编程是为了留下痕迹
第三章 谈个人发展
优秀程序员共有特质
至少深入理解一门编程语言(特性、局限、缺陷、未来)
看上去有些“傻”(促进不停学习、工作严谨)
都是现实主义者(懂的平衡、尊重流程)
很懒却很高效(善于使用或发明工具)
并行工作,有效利用时间
具备不错的软技能(语言表达、倾听、担当、尊重、谦虚)
身边有一些优秀的伙伴
对生活充满热情
成为一名自由程序员
自由程序员类型(独立接包者、兼职程序员、混合外包、临时工、团队接包者)
成为自由程序员益处(成为自己的老板、工作灵活性高)
成为自由程序员挑战(工作量不稳定、容易分心、无公司福利、客户、项目管理、法律财务知识)
如何成为一名成功的自由程序员(像企业一样运作、建立自己的品牌、沟通、质量、团队)
如何开始(Coding码市、猪八戒网、Freelancer、猿团)
程序员创业应避开的坑
做自己不擅长的领域
不具操作性的商业计划
参与者太少或太多
研发周期过长,产品缺乏焦点或特色
过度关注产品研发忽略市场
没有与用户维护关系,也不愿向人求助
过分信任专家,或对用户言听计从
第四章 谈编程中的教与学
写作与写代码
写作很像写代码
遵循一定逻辑规则(语法、逻辑、修饰)
将细节组合成更美的东西
你需要能够纵观全局
自我表达非常关键
考虑你的读者或用户
写作与写代码又是不一样的
目的不同
写作可表达情感,写代码不能
培训笔记
过程管理:
法约尔--计划,组织,指挥,协调,控制。
管理科学四大要素:复杂问题简单化,简单问题量化,量化问题专业化,专业问题模块化。
MVxx模型
MVC模型
MVP模型
架构是组织文件和命名方式
前端(web),HMI(人机交互),底层,数据库
通信涉及到数据格式,数据转化和数据传输
高内聚,低耦合
自顶向下,分而治之
分层就是为了降低耦合
内聚是为了复用
复用是软件的价值
复用可以实现0成本
重构:
- 设计的局限性
- 添加功能的时间超出了修改bug的时间
- 不要犹豫
测试:
- 编译过了还要验证运行
- 测试包括本工程测试及全工程测试
- 下载提交后再进行一轮验证
UT,IT,SWT
测试:全覆盖
调优:
找到调优的瓶颈(用数据说话)
CPU运行率:在哪个画页CPU运行率提高了;
程序运行时间:在哪一步运行时间变长了;
在限定条件内,空间换时间,时间换空间
新手学习流程
C++--语言基础
C++--STD标准库
C++--Boost库
C++--其他开源库
协同开发--git
Linux基础--文件及权限
Linux系统编程--多线程
新手入门的正确姿势:
裸机编程,系统编程,软件编程
IDE,协同配合,git,linux基础,linux系统编程,交叉编译.
了解工程代码的奥义:
1.明确目的
2.明确模块
3.明确自己负责的模块
4.明确和自己交互的模块
5.明确各个模块的接口文件和接口函数
6.明确通信方式
2020-04-25 13:51:33
分析领袖的品格
领袖应该是一件事项的最高意志,即使别人放弃了,领袖也不能放弃.
领袖要有舍己为人的精神,
领袖要有人格魅力
领袖要有大量人脉
领袖要有鸡汤能力
领袖要有超人的热情以带动其他人,感染力