标签:交流 体系 ice 代码质量 生产 查看 服务发现 编译器 leader
http://matt.might.net/articles/what-cs-majors-should-know/
首先,作品集(Portfolio)会比简历(Resume)更有参考意义。简历中应该放上自己的一些项目经历,或是一些开源软件的贡献,或是你完成的软件的网址等。个人网址写自己的技能、经历、文章。
其次,计算机专业工作者也要学会与人交流的技巧,包括如何写演示文稿,以及面对质疑时如何与人辩论的能力。
最后,硬技能方面工程类数学、Unix 哲学和实践、系统管理、程序设计语言、离散数学、数据结构与算法、计算机体系结构、操作系统、网络、安全、密码学、软件测试、用户体验、可视化、并行计算、软件工程、形式化方法、图形学、机器人、人工智能、机器学习、数据库等等。
LinkedIn 的高效代码复查技巧
LinkedIn’s Tips for Highly Effective Code Review
LinkedIn 内部实践的 Code Review 形式复查有以下几个特点。
LinkedIn 对提交代码写说明文档这个思路是一个非常不错的方法,因为代码提交人写文档的过程其实也是重新梳理的过程。写文档的时候通常会发现自己把事儿干复杂了,应该把代码再简化一下,于是就会回头去改代码。
编程语言和代码质量的研究报告
A Large-Scale Study of Programming Languages and Code Quality in GitHub
结论1: 从查看 bug fix 的 commits 的次数情况来看,C、C++、Objective-C、PHP 和 Python 中有很多很多的 commits 都是和 bug fix 相关的,而 Clojure、Haskell、Ruby、Scala 在 bug fix 的 commits 的数上明显要少很多。
结论2:函数式编程语言的 bug 明显比大多数其它语言要好很多。有隐式类型转换的语言明显产生的 bug 数要比强类型的语言要少很多。函数式的静态类型的语言要比函数式的动态类型语言的程序出 bug 的可能性要小很多。
结论3:研究者想搞清是否 bug 数会和软件的领域相关。比如,业务型、中间件型、框架、lib,或是数据库。研究表明,并没有什么相关性。
结论4:研究人员想搞清楚 bug 的类型是否会和语言有关系。的确如此,bug 的类型和语言是强相关性的。
这份报告可以在评估编程语言时有一定的借鉴作用。
Optimizing Software in C++ - Agner Fog
这本书是所有 C++ 程序员都应该要读的一本书,它从事无巨细地从语言层面、编译器层面、内存访问层面、多线程层面、CPU 层面讲述了如何对软件性能调优。实在是一本经典的电子书。
Agner Fog 还写了其它几本和性能调优相关的书,可以到这个网址http://www.agner.org/optimize/下载
- Optimizing subroutines in assembly language: An optimization guide for x86 platforms
- The microarchitecture of Intel, AMD and VIA CPUs: An optimization guide for assembly programmers and compiler makers
- Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD and VIA CPUs
- Calling conventions for different C++ compilers and operating systems
一个技术能不能发展起来,关注三点:
影响因素:
衡量Go:
也就是说,Go 语言不会吞食底层到 C 和 C++ 那个级别的,也不会吞食到上层如 Java 业务层的项目。Go 语言能吞食的一定是 PaaS 上的项目,比如一些消息缓存中间件、服务发现、服务代理、控制系统、Agent、日志收集等等,他们没有复杂的业务场景,也到不了特别底层(如操作系统)的软件项目或工具。而 C 和 C++ 会被打到更底层,Java 会被打到更上层的业务层。
衡量一下 Go语言的杀手级应用 Docker:
Docker解决了PaaS层的问题,PaaS层能解决以下问题:
新技术的入场,而不是等待技术成熟了再进入:
时间一定是能找得到的,就看你对你要干的事有多大的渴望程度和多大的热情。 只要你真的想做,你就一定能想出各种各样的招儿来为自己挤出时间。
从写作中还能训练自己的表达能力,这让我能够更好更漂亮地与别人交流和沟通。这一点对于我们整天面对电脑的技术人员来说,太重要了。
耗子叔给的一些建议:
两者得不同点如下:
从上面这些比较,可以看到 Boss 和 Leader 的不同。了解和认识到什么才是一个真正的 Leader,什么才是一个 Leader 应有的素质和行为。
- 这个世界很大,一个公司或是一个 Leader 很难做到把人一辈子留下来,因为人总是需要有不同经历的,优秀的人更是如此。既然做不到把人留一辈子,那么不妨把这件事做得漂亮一些,这样会让要离开的员工觉得这个 Leader 或是这个公司的胸怀不一般,可能是他再也碰不到的公司或 Leader,反而会想留下来,或是离开后又想回来。
- 既然做不到不让员工吐槽公司,那么不妨让这件事做得更漂亮一些——可以公开透明地说,而不是在背后说,因为在背后说对公司或是团队的伤害更大。
赢得他人的信任:对于信任来说,并不完全是别人相信你能做到某个事,还有别人愿意向你打开心扉,和你说他心里面最柔软的东西。而后者才是真正的信任。
开放的心态 + 倾向性的价值观:
- 对于各种各样的技术都要持一种比较开放的态度,可以讨论优缺点,但不会争个是非对错,尤其对于新技术来说,更要开放。
- 倾向性可以让别人更清楚地知道我是一个什么样的人,而不会对我琢磨不透,一会东一会西只会让人觉得你太油了,反而会产生距离感和厌恶感。我认为,倾向性的价值观是别人是否可以跟随你的一个基础。
描绘令人激动的方向,提供令人向住的环境:能够抓住主要矛盾,看清事物的本质,给出清楚的观点或方向,简化复杂的事情,传道解惑、开启民智,让人豁然开朗、醍醐灌顶,才会让人追随之。
甘当铺路石,为他人创造机会:帮助别人其实就是帮助自己,成就他人其实也是在成就自己,这就像一个好的足球队一样,球队中的人都互相给队友创造机会,整个团队成功了,球队的每个人也就成功了。
也许,你不必做一个 Leader,但是如果你有想跟随的人,你应该去跟随这样的 Leader!
标签:交流 体系 ice 代码质量 生产 查看 服务发现 编译器 leader
原文地址:https://www.cnblogs.com/17bdw/p/10211002.html