知识问答


什么是知识问答—帮助人解决问题,也可以说是知乎,准确的来讲是某个特定领域专业一对一的解答,当然特定领域是我熟悉的移动端和前端的开发。如果你感兴趣的话,可以阅读完这篇博文。

为何产生这个想法

如果一个人在一个领域积累了10几年,那么他掌握这个领域的知识如何才能传承给下面的人那。就像牛顿所说的他的成就是站在巨人的肩膀人造就的。当然老师的职业也就应运而生,但是老师是一个基础知识的传承,那么相对专业的领域那,有职业培训。但是这些都是集中式的,有没有可以利用的分散的时间来解决一些人刚入行时遇到的问题,加速行业的成长哪?其实在IT领域做的很好,就是有大量的博客和教程分享。但是这些碎片式的检索信息对于初学者还是有难度,如果有一个经验比较丰富的人能言传身教,肯定可以加速这个学习的过程。这就是自己产生了这个想法知识问答。

互利互助的商业社会

最近加班比较多,在忙完一天工作时,有时候自己在想,我到底喜欢干的是事情是什么,其实自己一直有想当老师的愿望,但是老师其实有一定门槛,不仅仅是教师资格证,在学历、知名度都有一定的要求,在满足这些要求的过程中,有可能你就失去了这个爱好的信心。不过现在得益于互联网互利互助的商业模式,人人都可以成为老师。“老师”这个title可能给人的感觉一定要知识渊博,可以解决各种问题,我认为反而不是,老师的本质上就是帮助一些人解决当下遇到的一个小问题,被帮助的人可能需要花费很久的成本才能完成的事情,通过老师的指点,学生如果用更短的时间解决,就提升了效率,可以让学生完成更多有意义的事情,当然老师从中获取回报也是理所应当的。

我能做什么

上学的时候自己成绩一直比较好的,也非常喜欢帮同学解答问题,每次帮助一个同学解决了一个问题就特别有成就感。可能这就是人的性格,我记得高中的时候,和一个同学聊天,他说为啥别人问你问题,你总花费时间帮他们解决哪?他说我可没那时间,并且解决这个问题对我也没什么好处,并且问来问去好烦。之后工作中一直有朋友问自己问题,自己也很乐意帮他们解决。其实这里并不是说不帮助别人就是人品不行,这只是个人喜好问题,可能有些人特别爱好专研问题,感觉这种有成就感,而我就是感觉帮助别人解决了一个小问题就很有成就感,各有千秋,所以本质上就是兴趣使然,也并无道德高尚的区分。其实也是为什么自己一直以来渴望的职业是当老师,当然自己从事的工作和理想职业是否能匹配,也是各种因素导致的结果。

之前我和一些朋友做工具软件,他特别爱好创造产品,总是有突发的想法,他想出来的工具确实可以帮助一些人解决问题,不管是效率工具,还是平时用的拍摄工具,这样既满足了自己的爱好,也可以帮助了别人。但是他的职业确是一名设计师,我也很好奇为啥他不是产品经理。可能凡是总有机缘巧合吧,但是也不能阻止我们探索自己的兴趣爱好。

所以我的优势是什么?就是我的兴趣,也是因为科技的发展,互联网给任何一个人当老师的机会,你就是那些想进入这个领域的人的老师,这点大家可以去知乎中看看比比皆是。另外教育机构是不是可以代替这种问答的方式哪?不能完全替代,教育机构的老师虽然能帮学生系统的学习一个领域,可是并不能帮助每个学生解决单点的小问题,因为教育机构的培训总是有时长限制的,培训结束了,你只能求助于其他方式。那么像我这类人,反而是可以利用碎片时间,帮助一些已经准备进入这个领域的人,遇到的一些问题。这里延伸下这个话题,其实这本质上是教育培训的长尾市场,任何行业都有长尾市场,也就是任何行业的主要行为都是为了满足大多人的需求,而不能细节到满足所有人的需求。所以我这种行为是不同于长期的职业培训和系统的线上教程。

这是一种付费的问答

其实最开始自己帮助人从而不收费的。之前都是朋友介绍。但是自己经历了很多次这样的事情,就是朋友介绍的朋友说帮忙解决个程序的问题,然后解决了,对面就转账了100或者200的红包作为感谢,其实自己一般都不好意思收,做好事不留名,雷锋嘛😹。之前我也咨询过一个医生问题,完了之后给红包不要,其实现在想想为何不收费哪?现在创造的商业社会就是一个互利互助的社会,只是金钱是实现互利互助的一个工具而已。人类在商业社会还不发达的年代,大多是通过人际关系来实现互助互利的,不过这种效率显然不如商业社会靠谱。因为金钱的数字化明确了你帮了别人之后,你需要帮助的时候就立马可以用金钱去求助,而不会因为没有这方面的人际关系找不到帮助。其实这种好处是远远大于通过人际关系维护来的靠谱。不过对于比较熟悉的朋友,关系大于金钱的情况也是存在的。毕竟人这种动物也是很难捉摸的,有理智的一面,也有感性的一面,收朋友的钱自然面子和思想上过不去。

可能会有人问你有什么资格收取别人的钱,你的这些能力值这么多钱么?其实并不是说我知道某个知识点就比别人强,只是当下可以帮到人,所以很多人有一个误解,如果你赚钱,你必须要很努力,耗费了你很大精力才能做出来的东西给别人才能拿到钱。其实当今社会金钱真的是代表一个东西的真实价值么?是一个人努力花费时间的价值么?这个在经济学领域中是不成立了,更多的代表一种供需关系,也就是别人是不是需要这个东西,如果当下能帮到别人,可能就是一句话就点破了这个问题,这句话花费了我很多精力么?可能不需要精力,但是他难道没有价值么?当然有,帮助了别人提升效率,别人可能因此产出了更有价值的东西帮助了另一个人。反而有些人辛辛苦苦加班搞出来的东西,拿到市场没人使用,或者本身就是过剩的东西,本质上这反而是一种浪费,因为你的努力反倒是没帮助任何一个人,没给这个社会带来任何产出,也就是没有价值的。

个人经历

居然帮人回答下问题就要收费,那说说自己牛逼的经历吧,那就让你失望了我没有什么牛逼的经历可以拿出来,做这个事情的初衷只是想在满足自己爱好的同时,可以有一些回报而已。那么简单的介绍下自己还是必要的,不然别人怎么知道你能解决问题哪?

自己从事移动端开发有10多年了,做的移动端的技术还是蛮多的。从0到1一款产品—“视频一对一聊天Tiki”。这个产品是和原来在淘宝工作的小伙伴一起搞的创业项目,从2014年到2019年5年时间,虽然没有十分的成功,但是也经历了一个产品从无到有,从日活几十个人到日活几十万人的技术迭代。至于一些大的产品技术如何运作,目前正在职网易云音乐团队,可以说是十分成熟的团队,DAU过千万的产品。在技术团队中,虽然不是核心角色,但是成熟团队技术方面的架构自己也基本了解到了。

对于自己爱好的老师职业自己当然也尝试过,自己曾经在业余的时间,在一个兴趣小组中,和一帮小伙伴翻译过一本ios coreAnimation的专业书籍,也做过腾讯Next课堂的Flutter入门开发的兼职讲师,发布过一些视频教程。对于站在初学者角度看问题这些方面,还是有了解一些基本常识。以上的这些经历也让自己有了一点勇气,可以从事这个知识问答这个事情。

我可以处理的问题

这里我声明下,我很清楚我在问答中的技术定位,我只能帮你解决我能解决的问题,我并不是什么技术大牛。不过对于那些大牛,底层挖掘很深的人,一定适合帮人解答问题么?我认为不一定。因为大佬考虑问题的角度很多初学者可能根本get不到这个点,我遇到很多优秀的人,他们在帮人解决问题时,往往从自己的角度出发,而没有从一个初学者的姿态去考虑问题,这样初学者听的云里雾里,甚至搞不清楚话语中的很多专业术语,而对于演讲者来讲他认为已经表达的很清楚。而对于有些人往往是这样的,完全站在初学者角度来讲,所以讲东西总是很啰嗦,那些大牛会觉得这么简单不要讲了。所以这两种方式并不是说谁对谁错,而是适合那些人听,这点很关键。所以我往往看一些在线教程,有些很简答,感觉完全没必要听,但是确实有很多观众,对于一些初学者就很乐意观看,这点其实就不难理解。如果从另一个不同的视角出发,从中能帮助一些人何乐而不为哪?

下面我就拿之前一些朋友问过我的问题

提问者: 我集成了YYWebImage播放webp动画,但是一直报错说不支持 webp协议

我: 因为YYWebImage支持wepb要依赖一些其他库

    pod 'YYWebImage'
    pod 'YYImage/WebP' 
    pod 'libwebp'

比如这种问题对于一些初学者,确实可以通过搜索库的用法来解决,但是如果有一个人的指点的话,就可以很快解决问题,并更能提高效率。

提问者: 萌哥我想问一下,如果别人git上创了一个项目,你要参与进去,除了clone 到本地然后创建分支进行操作这种, 还有“在自己的github上创建一个repository然后与别人的repo创立联系”的方式吗

我: fork

提问者: 对啊

这个问题看似很简单,但是第一次用Github的人你认为简单么?

提问者: 下面这个代码,遍历的顺序不应该是result在后面么?

 function* genFuncWithReturn() {
    yield 'a';
    yield 'b';
    return 'The result';
}

function* logReturned(genObj) {
    let result = yield* genObj;
    console.log(result);
}

[...logReturned(genFuncWithReturn())]

// The Result
// 值为['a','b']

我: es6这个语法我不太熟,我先去看下

过了10分钟之后

我: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/yield*

我: 你看下下面的代码。function* 相当于这个函数是异步的,然后可以通过yield关键字控制异步函数的执行顺序,你刚才的那个例子如果把result变量去掉,就是yield语法,控制异步函数的顺序执行,这里其实是协程的概念。由于用了yield*表达式,会立即返回函数的结果然后给result赋值,这样result先打印出来了。然后再通过yield关键字,控制异步函数按照顺序执行结果。

function* g4() {
  yield* [1, 2, 3];
  return "foo";
}

var result;

function* g5() {
  result = yield* g4();
}

var iterator = g5();

console.log(iterator.next()); // { value: 1, done: false }
console.log(iterator.next()); // { value: 2, done: false }
console.log(iterator.next()); // { value: 3, done: false }
console.log(iterator.next()); // { value: undefined, done: true }, 
                              // 此时 g4() 返回了 { value: "foo", done: true }

console.log(result);          // "foo"

提问者: 懂了,其实跟网上说的也没有差别 怎么你一点我就明白了呢😂

这就是我经常遇到一些提问者的困惑,就是网上明明有很多资料可以查看,为啥不如别人直接一句话来的直接明了哪?其实本质上就是信息的收敛问题,因为你不知道网上资料哪个知识点是真正解决你的问题的,就不能集中注意力在一个点上,容易分散注意力,问题就不容易解决,如果别人帮你点名了你应该集中在哪里,这时你就很容懂了。

这里我还想表达下,如果你在一个领域积累了很久,你会发现学习起来新东西会很快。很多人说年龄大,学东西就不行了。只是针对于全新的东西。就像孩子还是一张白纸,学新东西当然比年纪大的人快,因为年纪大的人脑子里有太多的条件约束了。但是如果针对某个你积累了很久的领域,再学这个领域的新内容,肯定比其他人快。比如Flutter开发,自己前前后后用了一周时间,基本就可以搭建一个简单应用的框架,然后一个月时间就和朋友一起开发了一款上架Appstore的应用,并且还得到了苹果的推荐。

当然我经常会遇到一些,我无法处理的问题,例如

提问者: 用webrtc帮我实现个视频聊天的功能吧。

我:额,抱歉无能为力,你还是找个外包帮你开发吧。

所以我能做的,是帮你解决一些遇到的一些困惑和难点,至于一些系统性的学习,还是求助于一些专业的教育机构吧。

总结

看完上面的文章,如果你喜欢作者的话,还望能转发下此篇文章。如果恰巧你需要移动端一些开发知识点的话,可以联系作者。另外声明下,本人还是有全职的工作要做的,在做好自己本职工作的情况下,再来做自己爱好的知识问答的事情,就像老罗说的,纯粹交个朋友不赚钱。

如果你喜欢这篇文章,谢谢你的赞赏

图3

如有疑问请联系我