分享自己的困惑和挣扎
每次和大家说起来分享和写技术文章, 除了 `我啥都不会咋分享`,
听见最多的就是: '我不知道我的哪些知识的是对别人有用的'.
个人的体验是:
- 遇到一个问题, 感到困惑.
- 经过一段时间(几个月或者几年之后), 解决了或者部分解决了, 又或者虽然没有解决, 但是加深即理解了对这个问题的理解.
- 就应该去写一篇文章, 做一次分享.
之所以有效, 是因为:
- 推己可以及人, 困扰我的问题也有很大可能困扰别人.
- 分享和记录是有保质期的, 领悟之后, 新知变成旧识, 你已经失去了初学者的心态, 也失去了分享的欲望(和能力, 相信所有的小学生家长都有这个体会).
这当然不是唯一有效的方式, 但是一个有产出, 对别人有帮助的方式. 总结下来, 有如下要点:
要有建设性
和工作中面对问题一样, 对人对己要做到有所帮助.
以Java学习为例, 什么 范型我不会, stream是啥呀, io怎么这么难
之类的困惑和牢骚本身, 不具备分享价值.
遇到困惑, 是为起点, 但是不能停在起点.
挣扎的过程是明确主题的过程
这篇文章的名字不是"学啥分享啥"是有原因的.
以个人举例, 我同时在学很多东西, 在过去的10年时间中我一直在学Clojure. 但是从何处着手去去写呢, 介绍语法? 又或或者写一下`core.async`库的用法?
思路纷繁, 有点无从写起, 很多知识, 对我已然稔熟, 失去了时效性.
但如果从自己的挣扎的角度出发, 问题就清楚多了, 一个曾经长期困扰我的问题是如何在JVM中尽可能高的提高性能. 而且这个问题就有趣多了,而且有更大可能为有共同问题的人解决问题, 应为这个问题并不是那么显而易见.
可以产生一系列的思考和总结, 是很好的素材.
写起来不要着急, 有些东西就是需要长时间才能学会
草稿箱里的东西可以等, 我从来都是有十几个主题并进, 有心得就补充好了.
深刻的主题需要长久的时间, 请阅读Peter Norvig的: 十年学会编程.
挣扎的时间可以很长, 贵在坚持.
趁你还记得自己的艰难时刻
很多技能, 学会了以后你就忘记了他有多难, 以及你再学会过程中的挣扎和挣扎的感受.
开始学习git的时候, 我也犯过很多错误. 那是2011年, 我不能清晰记得当时卡在哪儿了.
我现在可以说学会git的关键是理解git的设计,
理解git中的blob/tree的对象结构. 当时不明白, 现在懂了,
我不记得我我是如何从 当时 走到 现在.
逼一下自己
人都是有拖延症的, 回顾自己个人的能力成长过程, 在自己flag/deadline的限制下 我往往会把注意力集中到关键的问题上,从而对问题有更深入的理解和更多元的解决策略.
躺在舒适区, 就不会有创造和产出, 可以适当给自己制造困难.
勇于立Flag, 勇于设定Deadline, 勇于和同事讨论和承诺(现在还有chat gpt).
要脸的你, 会补上来的.