hawtim / hawtim.github.io

180 stars 15 forks source link

左耳听风笔记 #56

Open hawtim opened 3 years ago

hawtim commented 3 years ago

摘录&知识关联&内化

hawtim commented 3 years ago

程序员如何利用技术变现

hawtim commented 3 years ago

从信息泄露看信息安全

数据泄露攻击

数据管理

最佳实践

如何践行最佳实践

虽然有非常多的技术手段,但是也不能保证 100% 防止。

  1. 技术手段只能说尽量的提高黑客入侵的门槛,当黑客的投入和收益大大不相符时,黑客也就失去了攻击的意义
  2. 安全的另一方面是风控,通过技术手段控制数据泄露的范围。
hawtim commented 3 years ago

技术领导力

何为技术领导力

国内和国外的技术环境差异

人类社会的发展阶段可以概括为: 野蛮开采, 资源整合,精耕细作,发明创造。

外国的大公司FAANG,最终都会去发展自己的核心技术,提高自己的技术领导力,从早期的业务型公司转变成为技术型公司的原因。

那些本来技术很好的公司,比如雅虎、百度,在发展到一定程度时,将自己定位成了一个广告公司,然后开始变味、走下坡路。

尊重技术的公司和不尊重技术的公司在初期可能还不能显现,而长期来看,差距就很明显了。

技术领导力不仅仅是呈现出来的技术,而是一种可以获得绝对优势的技术能力。

我们可以看到的技术领导力是:

如何拥有技术领导力

我认为,这世界的技术有两种,关键技术,工程技术,对于后者,所有的工程师都有机会。

以下这些特质可以体现技术领导力

培养自己的技术领导力

hawtim commented 3 years ago

技术领导力-下篇

“扎实的技术基础对应,吃透基础技术,基础技术是各种上层技术共同的基础。”

基础技术分为编程和系统

即 C 语言(底层)、编程范式、算法和数据结构。

分为计算机系统原理,操作系统原理和基础,网络基础,数据库原理,分布式技术架构

以上的基础知识都不是可以速成的,需要用一生的时间来学习,所以说做好自己的职业生涯规划很关键,做好长期持续学习的准备,并且随着自己的阅历和经验的增加,你会对这些只是有不同的理解和感悟,逐步内化成自己的思想体系。

“提高学习能力,能够很快低”

“坚持做正确的事情”

“高标准要求自己,不断地提高标准,你才可能越走越高”

附 Google 评分卡

0 - you are unfamiliar with the subject area.

1 - you can read / understand the most fundamental aspects of the subject area.

2 - ability to implement small changes, understand basic principles and able to figure out additional details with minimal help.

3 - basic proficiency in a subject area without relying on help.

4 - you are comfortable with the subject area and all routine work on it:For software areas - ability to develop medium programs using all basic language features w/o book, awareness of more esoteric features (with book).For systems areas - understanding of many fundamentals of networking and systems administration, ability to run a small network of systems including recovery, debugging and nontrivial troubleshooting that relies on the knowledge of internals.

5 - an even lower degree of reliance on reference materials. Deeper skills in a field or specific technology in the subject area.

6 - ability to develop large programs and systems from scratch. Understanding of low level details and internals. Ability to design / deploy most large, distributed systems from scratch.

7 - you understand and make use of most lesser known language features, technologies, and associated internals. Ability to automate significant amounts of systems administration.

8 - deep understanding of corner cases, esoteric features, protocols and systems including “theory of operation”. Demonstrated ability to design, deploy and own very critical or large infrastructure, build accompanying automation.

9 - could have written the book about the subject area but didn’t; works with standards committees on defining new standards and methodologies.

10 - wrote the book on the subject area (there actually has to be a book). Recognized industry expert in the field, might have invented it.

Subject Areas:

hawtim commented 3 years ago

每个程序员都该知道的知识

每个程序员都应该要读的书

每个搞计算机专业的学生应有的知识

首先,对于我们每个人来说,作品集(Portfolio)会比简历(Resume)更有参考意义。所以,在自己的简历中应该放上自己的一些项目经历,或是一些开源软件的贡献,或是你完成的软件的网址等。最好有一个自己的个人网址,上面有一些你做的事、自己的技能、经历,以及你的一些文章和思考会比简历更好。

其次,计算机专业工作者也要学会与人交流的技巧,包括如何写演示文稿,以及面对质疑时如何与人辩论的能力。

最后,他就各个方面展开计算机专业人士所需要的硬技能:工程类数学、Unix 哲学和实践、系统管理、程序设计语言、离散数学、数据结构与算法、计算机体系结构、操作系统、网络、安全、密码学、软件测试、用户体验、可视化、并行计算、软件工程、形式化方法、图形学、机器人、人工智能、机器学习、数据库等等。详读本文可以了解计算机专业知识的全貌。

高效的 Code Review 技巧

LinkedIn’s Tips for Highly Effective Code Review,LinkedIn 的高效代码复查技巧。

https://thenewstack.io/linkedin-code-review/

编程语言和代码质量的研究报告

A Large-Scale Study of Programming Languages and Code Quality in GitHub,编程语言和代码质量的研究报告。

https://cacm.acm.org/magazines/2017/10/221326-a-large-scale-study-of-programming-languages-and-code-quality-in-github/

hawtim commented 3 years ago

答疑解惑

为什么你能够写出这么多东西

几个阶段

怎样选择自己的人生和职业发展

人生分为两个阶段

其他角度的建议

编码能力很重要,但是技术视野、技术洞察力,以及我们如何用技术解决问题的能力更为重要。

hawtim commented 3 years ago

如何成为一个大家愿意追随的 leader

boss 和 leader 的差别

image

如何成为愿意追随的leader

技术领导力之外的素质

也许,你不必做一个 Leader,但是如果你有想跟随的人,你应该去跟随这样的 Leader!

hawtim commented 3 years ago

错误处理的最佳实践

hawtim commented 3 years ago

时间管理

主动管理

你要主动管理的不是你的时间,而是管理你的同事,管理你的信息。

学会说不

  1. 面对你做不到的需求时,不要说做不到,而是要先想一想,并且给出另外一个你可以做到的方案,而不是回绝掉对方的方案
  2. 面对复杂的需求的时候,要反问一下,为什么,目的是,然后给出自己的方案,或者性价比更好的方案,提供部分的满足
  3. 当时间完全不够的时候,你要把压力还回去,或者让对方与你一同分担这个压力。

我惯用的方式是给回三个选择:

a. 我可以加班加点完成,但是我不保证好的质量,有 bug 你得认,而且事后你要给我 1 个月的时间还债。

b. 我可以加班加点,还能保证质量,但我没办法完成这么多需求,能不能减少一些?

c. 我可以保质保量地完成所有的需求,但是,能不能多给我 2 周时间?

加班和开会

在国内的公司,老板们看到团队在拼命加班,会很高兴。

在国外的公司,老板看到团队在拼命加班,会觉得这个团队一定是哪里出了问题,老板会比较焦虑。

加班和质量的权衡。如果怎么做都要受伤害,那么两害相权取其轻。

开会,不是讨论问题,而是讨论方案,开会不是要有议题,而是要有议案。

hawtim commented 3 years ago

如何利用好自己的时间

投资自己的时间

规划好自己的时间

你要学会规划自己的行动计划,不是短期的,而是一个中长期的。我个人建议是按季度来规划,这个季度做什么,达到什么目标,一年往前走四步,而不是只考虑眼下。

用好自己的时间