《左耳听风》的学习笔记

极客时间的专栏《左耳听风》的学习笔记,持续更新中。

01 + 02 | 程序员如何用技术变现

  1. 程序员用手艺、技术养活自己,不依靠公司;
  2. 提高工作效率,去研究那些难的,公司内外的核心技术;
  3. 注重输出,输出技术、价值观,帮助更多的人,提高影响力。

如何做?

  1. 积少成多,形成正向循环
  2. 关注有价值的东西,关注市场市场需求和技术趋势

在学习技术的过程一定要多问自己两个问题:“一,这个技术解决什么问题?为什么别的同类技术做不到?二,为什么是这样解决的?有没有更好的方式?”

  1. 找到最能体现价值的地方,技术人员在高速发展的公司价值可以最大化
  2. 加强动手能力,了解细节才能提出更好、更靠谱、可以落地的解决方案
  3. 关注技术付费点:①帮别人挣钱;②帮别人省钱
  4. 提升自己的能力和经历
  5. 找到有价值的信息源,提升英文能力,利用好Google
  6. 输出观点和价值观,这不容易,需要积累和经历,厚积薄发

真正伟大的公司和价产品都是要输出价值观的

  1. 朋友圈很重要

==最宝贵的财富并不是钱,而是你的时间,时间比钱更宝贵,因为钱不用还在那里,时间不用就浪费掉了。把时间投资在哪些地方,意味着未来会走什么样的路。==

03 - 04 | 从Equifax信息泄露看数据安全

攻击的实现:

  1. 利用程序框架或者库的漏洞
  2. 暴力破解密码,撞库
  3. 代码注入,SQL注入,XSS攻击,CSRF攻击
  4. 利用程序日志意外泄露的信息

数据管理的问题:

  1. 一层防护
  2. 弱密码
  3. 内部系统暴露在公网
  4. 系统不及时打补丁
  5. 安全日志被暴露
  6. 保存不必保存的敏感信息
  7. 密码没有被合理地散列

安全最佳实践

  1. 了解使用了哪些框架和库,关注其安全性声明
  2. 建立能够快速部署安全补丁的发布流程
  3. 依赖的软件都有可能有安全性漏洞,建立安全策略时要考虑
  4. 建立多个安全层
  5. 建立对异常访问模式的监控机制

技术上的安全做法:

  1. 隔离关键数据到高安全级别的地方
  2. 敏感数据只进不出,提供对外服务接口操作数据
  3. 业务上需要返回的关键数据需要在传输层加密并且隐藏部分信息
  4. 用户加密算法需要非对称加密,密钥自动更换
  5. 被加密的数据和用于加密的密钥是由不同的人来管理,相互牵制
  6. 信息泄露需要做到通知,并限制外部系统的数据访问量

05 | 何为技术领导力

何为技术领导力?

  1. 尊重技术,追求核心基础技术
  2. 不断追求效率的提高:
    1. 工具自动化
    2. 组织架构的高效运转
    3. 人员的高效工作
    4. 开发可复用组件
  3. 坚持高于社会主流的技术标准和要求

如何拥有技术领导力?

  1. 能够发现现有方案的问题
  2. 能够提供解决问题的思路和方案,并能比较这些方案的优缺点
  3. 能够做出正确的技术决定和技术选择,完成一个项目
  4. 能够更优雅、更简单、更容易的方式解决问题
  5. 能够提高代码的质量(扩展性、复用性、可维护性)
  6. 能够用正确的方式管理团队(人尽其用、提高效率)
  7. 有创新能力

==总是在提供解决问题的思路和方案的人才是有技术领导力的人==

努力方向:

  1. 扎实的基础技术
  2. 非同一般的学习能力
  3. 坚持做正确的事
  4. 不断提高对自己的要求标准

06 | 如何才能拥有技术领导力

(1)吃透基础技术

基础技术可以分为两部分:==编程和系统==

  1. 编程部分:C语言,编程范式算法和数据结构
  2. 系统部分:计算机系统原理,操作系统原理和基础,网络基础,==数据库原理==,分布式技术架构

(结合自身情况和职业,我认为加粗的几个部分可能是作为前端工程师的我来说是优先级更高的基础技术)

(2)提高学习能力,能够很快的学习新技术,==又能在关键技术上深入==的能力

  1. 学习的信息源(英文搜索更接近最新的知识)
  2. 与高手交流
  3. 举一反三的思考
  4. 不怕困难的态度
  5. 开放的心态

(3)坚持做正确的事

  1. 提高效率的事
  2. 自动化的事
  3. 掌握前沿技术的事
  4. 知识密集型的事
  5. 技术驱动的事

(4)高标准要求自己,不断地反思、总结和审视自己

07 | 推荐阅读:每个程序员都该知道的知识

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

  • 《代码大全》,有点过时,但很经典
  • 《程序员修练之道》,指路明灯
  • 《计算机的构造和解释》,经典中的经典
  • 《算法导论》,美国的本科生教材
  • 《设计模式》,指路明灯
  • 《重构》,代码重构最佳时间
  • 《人月神话》,有点过时,但很经典
  • 《代码整洁之道》,细节指出的效率,完美和简单

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

(1)作品集(项目经历、开源软件的贡献、网址)比简历更重要

(2)与人交流的技巧(写演示文档、辩论能力)

(3)硬技能(太多了,毫无目的的学习恐怕要耗费数年,必须有的放矢吧?

LinkedIn 高效的代码复查技巧

提出做Code Review要求对提前的代码写说明文档,既可以方便做Code Review的人了解代码背景,又可以让写代码的人重新回头梳理代码

并且除了给出修改意见之外,也允许给出正面鼓励的评价

给出的Code Review写出有目的性的注释,比如“消除重复代码”、“增加测试覆盖率”等

不光要Review代码,还要Review对应的测试

还有给出的两篇文章,感觉不是我现在能吸收的,能把前边的书单完成,就是一个大的成就了。