June 10, 2023
By: Kevin

分享自己的困惑和挣扎

  1. 要有建设性
  2. 挣扎的过程是明确主题的过程
  3. 写起来不要着急, 有些东西就是需要长时间才能学会
  4. 趁你还记得自己的艰难时刻
  5. 逼一下自己

每次和大家说起来分享和写技术文章, 除了 `我啥都不会咋分享`, 听见最多的就是: '我不知道我的哪些知识的是对别人有用的'.

个人的体验是:

  1. 遇到一个问题, 感到困惑.
  2. 经过一段时间(几个月或者几年之后), 解决了或者部分解决了, 又或者虽然没有解决, 但是加深即理解了对这个问题的理解.
  3. 就应该去写一篇文章, 做一次分享.

之所以有效, 是因为:

  1. 推己可以及人, 困扰我的问题也有很大可能困扰别人.
  2. 分享和记录是有保质期的, 领悟之后, 新知变成旧识, 你已经失去了初学者的心态, 也失去了分享的欲望(和能力, 相信所有的小学生家长都有这个体会).

这当然不是唯一有效的方式, 但是一个有产出, 对别人有帮助的方式. 总结下来, 有如下要点:

要有建设性

和工作中面对问题一样, 对人对己要做到有所帮助.

以Java学习为例, 什么 范型我不会, stream是啥呀, io怎么这么难 之类的困惑和牢骚本身, 不具备分享价值.

遇到困惑, 是为起点, 但是不能停在起点.

挣扎的过程是明确主题的过程

这篇文章的名字不是"学啥分享啥"是有原因的.

以个人举例, 我同时在学很多东西, 在过去的10年时间中我一直在学Clojure. 但是从何处着手去去写呢, 介绍语法? 又或或者写一下`core.async`库的用法?

思路纷繁, 有点无从写起, 很多知识, 对我已然稔熟, 失去了时效性.

但如果从自己的挣扎的角度出发, 问题就清楚多了, 一个曾经长期困扰我的问题是如何在JVM中尽可能高的提高性能. 而且这个问题就有趣多了,而且有更大可能为有共同问题的人解决问题, 应为这个问题并不是那么显而易见.

可以产生一系列的思考和总结, 是很好的素材.

写起来不要着急, 有些东西就是需要长时间才能学会

草稿箱里的东西可以等, 我从来都是有十几个主题并进, 有心得就补充好了.

深刻的主题需要长久的时间, 请阅读Peter Norvig的: 十年学会编程.

挣扎的时间可以很长, 贵在坚持.

趁你还记得自己的艰难时刻

很多技能, 学会了以后你就忘记了他有多难, 以及你再学会过程中的挣扎和挣扎的感受.

开始学习git的时候, 我也犯过很多错误. 那是2011年, 我不能清晰记得当时卡在哪儿了.

我现在可以说学会git的关键是理解git的设计, 理解git中的blob/tree的对象结构. 当时不明白, 现在懂了, 我不记得我我是如何从 当时 走到 现在.

逼一下自己

人都是有拖延症的, 回顾自己个人的能力成长过程, 在自己flag/deadline的限制下 我往往会把注意力集中到关键的问题上,从而对问题有更深入的理解和更多元的解决策略.

躺在舒适区, 就不会有创造和产出, 可以适当给自己制造困难.

勇于立Flag, 勇于设定Deadline, 勇于和同事讨论和承诺(现在还有chat gpt).

要脸的你, 会补上来的.

Tags: essay