Algorithm
主要是为了编程训练和学习。每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell。
剑指 Offer 16. 数值的整数次方
题解记录:
- 看了题解才答出
- 关键点:
- 减少重复运算,将 xn 拆分成 xn/2 来计算
- 递归的结束条件是考虑 n 的三种特殊值:-1, 0, 1
- 考虑 n 的奇偶性
Review
主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。所以,需要你阅读并点评至少一篇英文技术文章,我个人最喜欢去的地方是http://Medium.com(需要梯子)以及各个公司的技术blog,如Netflix的。
tapable 原理详解
因为最近在搞一个新手引导配置化的技术方案,想引入插件化的机制来方便功能的扩展。很自然地,联想到了 webpack 的强大的插件系统——背后就是 tapable 在管理任务流程,所以找了相关的文章看了看,目前觉得这篇文章讲的比较不错。下图是 tapable 支持的同步任务流程和异步任务流程的接口方法。
Tip
主要是为了总结和归纳你在是常工作中所遇到的知识点。学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识。
最近在写技术方案,涉及到画图。目前常用的画图工具有2个:DrawIO/ProcessOn 图形化界面绘图 和 PlantUML声明式绘图。两者各有特点:
- 前者:优点是绘图过程简单直观,可选图形比较多;缺点是需要自己摆放布局和连线,调整起来效率较低
- 后者:优点是通过几行代码就能声明一张图,效率较高;缺点是上手成本较高,绘图者需学习相关的语法
附录:
- PlantUML 参考手册PlantUML_Language_Reference_Guide_en.pdf
- ProcessOn: https://www.processon.com/
- DrawIO:www.draw.io/
Share
主要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的技术文章。
看《乔布斯传》,粗略翻了几章,能初略感受到他的一些特点:控制欲、完美主义、为人功利、有鲜明的个性… 不知道为啥,有点不想继续看了 😂 —— 虽然这本书备受一些人的追捧。可能看书也讲究个时机或者眼缘吧?