《左耳听风》
技术变现
从事编程这个事可以做到,完全靠自己的手艺,不依赖任何人或公司去生活。
我完全没有必要通过打工听人安排而活着,而是反过来通过在公司工作提高自己的技能,让自己可以更为独立和自由地生活。
对工作中没有技术含量的活,想尽办法提高效率,比如提高代码重用度、自动化、简化掉需求,少干一些活。这样就有更多时间去研究公司内外更为核心更有技术含量的技术。
要去经历大多数人经历不到的,要把学习时间花在那些比较难的地方。
要写文章就要写没有人写过的,或是别人写过,但我能写得更好的。
我们可能都是在写一样的
for(int i=0; i<n; i++)
语句,但是,你写在那个地方一文不值,而我写在这个地方,这行代码就值 2000 元。
如何让自己的技能更值钱?
1、聚沙成塔,积流成河。
通过实现一个个小成功从而达成一个大成功。
先让身边的人有求于自己,经过口碑积累别人的推荐,让外部的人注意到自己。
通过正向反馈激励自己学习更多新技术,达到一个正向循环。
2、关注有价值的东西。
何为有价值?物以稀为贵,供不应求,就是有价值。
这要求我们不仅要看到市场,还要看到技术的趋势。分辨出什么是主流技术,什么是过渡式技术。
关于市场需求:看看各个公司都在研究什么,遇到什么难题。不缺搬砖的人,缺的是能解决技术难题的人,能提高团队收入的人。
关于技术趋势:以史为镜,可以知兴替。看清技术趋势,需要了解技术历史。一项新技术是否顺应发展趋势,需要将老技术的本质吃透。同时,如果一项技术顺应趋势,定会有大型的商业公司支持。
故而,常问自己:这个技术解决什么问题?为什么别的技术做不到?为什么是这样解决的?
3、寻找能体现价值的地方。
高速发展的公司,技术人员的价值可以最大化。
大公司当螺丝钉,起步公司精力放在业务上,不需要高精尖技术。
较好的成长路径是,先进入大公司学习技术和成功的经验方法,再找到高速成长的公司,这样可以实现更多的价值。
4、动手能力至关重要。
5、关注技术付费点。
技术付费点体现在两处:帮别人挣钱、帮别人省钱。
6、提升能力和经历。
付费的前提是信任,有足够的能力和经历别人才能给你机会。
7、寻找有价值的信息源。
优质的信息源,可以让人更快地成长。对于技术人员而言,优质信息源基本来自西方世界。
学会使用 Google,如输入 xxx Best Practice
,Best programming resource
。
不断提升英文能力。
8、输出观点和价值。
9、朋友圈很重要。
程序员应知应会
每个程序员应读的书
- 《代码大全》
- 《程序员修炼之道》
- 《计算机的构造和解释》
- 《算法导论》
- 《设计模式》
- 《重构》
- 《人月神话》
- 《代码整洁之道》
- 《Effective C++》/《More Effective C++》
- 《Unix 编程艺术》《Unix 高级环境编程》
What is the single most influential book every programmer should read?
每个搞计算机专业的学生应有的知识
作品比简历更优参考意义。项目经历、对开源软件的贡献、个人网站等。
学会与人交流,包括如何写演示文稿,以及面对质疑时如何与人辩论的能力。
计算机专业人士所需要的硬技能:工程类数学、系统管理、程序设计语言、离散数学等。
What every computer science major should know
LinkedIn 高效的代码复查技巧
通过建立公司范围的 Code Review 工具,这就可以做跨团队的 Code Review。
Code Review 的经验作为员工晋升的参考因素之一。
Reviewer 可能不了解某块代码修改的背景和目的,因此要求对提交代码写说明文档。
为提高员工积极性,LinkedIn 的代码复查工具允许提出“这段代码很棒”之类的话语,以便让好代码的作者得到鼓励。
不但要 Review 提交者的代码,还要 Reivew 提交者做过的测试。看看其测试用例是否合理,从而提出测试建议。
LinkedIn’s Tips for Highly Effective Code Review
编程语言和代码质量的研究报告
A Large-Scale Study of Programming Languages and Code Quality in Github
电子书:《C++ 软件性能优化》
C++ 程序员必读书籍。
Optimizing Software in C++ - Agner Fog
前端练级攻略
- HTML5:《HTML5 权威指南》;SVG、Canvas 和 WebGL 对应于矢量图、位图和 3D 图的渲染,这三个看 MDN。
CSS3:MDN Web Doc - CSS;预处理工具 less、sass。
JavaScript:JS 基础;ES6,看阮一峰的《ECMAScript 6 入门》。
浏览器原理:浏览器的渲染原理简介;Virtual DOM 学习,前端渲染和性能的关键技术,深度剖析:如何实现一个 Virtual DOM 算法。
网络协议:HTTP、HTTP2、WebSocket。
前端性能优化:《高性能网站建设指南:前端工程师技能精髓》。
前端框架:React、Vue。
React 提高需学习的东西
函数式编程:React 更符合后端程序员的开发思维。《JS 函数式编程指南中文版》
设计相关:React 的设计模式。React Pattern。
- UI/UX 设计:前端能学点 UI 设计最好。
软件设计
软件设计一些原则
Don't Repeat Yourself(DRY):不要重复自己。抽取封装重复代码。
KISS(Keep It Simple and Stupid):保持简单,不要复杂。简约至上
YAGNI(You Ain't Gonna Need It):不要无用。只考虑必须的功能,避免过度设计。