5 脉神剑,杀无赦!

2021-04-25 12:00:24 浏览数 (1)

大家好,我是二哥呀!

分享一个数据,我在 CSDN 上有 19 万多的读者关注了,这个数量应该能排到所有博主里面的 TOP 3(乐观点,自信点),就算是保守估计的话,至少应该是 TOP 10 吧!

有些读者看到这个数据,估计破口大骂:“卧槽,二哥,你真牛逼!”

当然了,有些读者会觉得 CSDN 很 low,抄袭又严重,这点成绩根本不算什么。

确实,我的很多文章都有被抄袭过,甚至有些是直接原封不动标原创出来。有读者发现了,去举报,官方的审核结果往往是“不存在抄袭行为,不予处理。”

老尴尬了,我已经见怪不怪了。但我这里还是要说一句,CSDN 作为一个技术论坛,能活到现在,并且沉淀了“一亿多”用户(官方说的),我觉得价值还是有的。

当然了,这 19 万多的关注在某种意义上是属于平台方的,和博主之间的通道还没有打通,或者没有开放给博主。希望 CSDN 能更开放一些吧,博主和读者之间的联系更紧密了,平台的价值才会更大。

不管怎样,我个人还是非常重视 CSDN 这个平台的,因为我在这个平台混迹了 11 年,可以算得上是骨灰级博主了,有感情在的。

CSDN 有个私信功能,我每天都会收到大量的读者信息。

我每周都会抽出一定的时间,集中去回复这些私信。尽管我已经很努力了,但目前还有上千条私信没有回复,太难了!其中的大多数问题,都比较简单,一点也不复杂,但是很多人依然不知道该怎么解决。凭借我多年的经验,是能够帮他们解决的,但由于 CSDN 私信没法做到及时响应,他这边提问题了,我没法及时回复,也回复不过来,我回复了,他那边也不一定能及时看得到,网络延迟很高,这就导致沟通起来很费劲。

有时候我就在想,为什么有些人在遇到一些问题的时候,无法独自搞定,需要寻求他人的帮助。而有些人,几乎什么疑难杂症都能解决,就像我(吹自己一把),这些问题可以说是各不相同,千奇百怪,但只要他们给出的信息是有效的,我就能帮他们找到解决办法。

为什么会有这样的现象存在呢?程序员最重要的能力是什么呢?

在我看来,应该是解决问题的能力!

最好是自己就能解决,并且在短时间内就能解决!如果有了这个能力,基本上核心竞争力就有了!别人解决不了的问题,你能解决,那完蛋,升职加薪的时候,哪个领导会不惦记着你,除非他眼瞎!

如何培养解决问题的能力呢?可以从下面这 5 点着手。

1)摆正心态,把这个问题当成自己要处理的问题,一开始不要想着有靠山,有退路。

《桃花源记》里有这样一句话:“初极狭,才通人,复行数十步,豁然开朗。”

大家应该都还记得这句话吧?一开始遇到问题的时候,任谁都会感觉痛苦,不然也就不叫问题了。当你用心去找解决办法的时候,试试这个,不行,试试那个,不行,很沮丧;可等找到了答案,就会开心得像吃了一颗小白兔奶糖,极度的舒适。

在自己没有做大量尝试的情况下,就去找别人帮忙,尤其是同事或者领导。如果问题很难,同事和领导都没办法解决的话,这是一个好问题;但如果问题轻而易举就被解决了,你可能就被同事和领导小看了,降低了你在他们心目中的预期,是很不划算的。

互联网上的信息都是公开的,海量的,你遇到的问题很可能就有前辈遇到过了,所以一定要善于利用搜索引擎。很多人会抱怨说,我也搜了呀,没搜到。可能是你搜的关键字不对,换一换;可能你没有用谷歌,想办法用谷歌进行搜索,真的,花不了几个钱的!谷歌估计是互联网时代,每个人最好的老师了,绝大多数的答案她都胸有成竹!

每个人都会有惰性,我也不例外,初学编程的时候我也喜欢问同学,问老师,总觉得他们掌握了知识的脉搏,问他们,能很快的把问题给解决了。但渐渐地,我就明白,还是“自己动手丰衣足食”香!

像现在,基本上所有的问题我都自己解决,除非超出了自己的知识储备。

2)储备知识,最好的办法就是大量的阅读,知识的宽度还是要有的。否则,很可能在遇到一个问题的时候,死钻牛角尖,走不出来,因为你的视野还不够宽广,看不到更多的可能性。

好朋友小北曾说过,我们程序员学的是计算机科学,而不是编程语言,所以我们要学习操作系统、编译原理、计算机组成原理、计算机网络、数据结构与算法。

古人有云,“读书破万卷下笔如有神”,一样的道理,掌握的知识阅读,遇到问题的时候思路就越多。

举个实际的例子来说吧。写一个算法,求下面序列之和。

-1,1,-1,1,...,

(-1)^n

你打算怎么求?

代码语言:javascript复制
int sum = 0;
for (int i = 1; i <= n; i  ) {
  sum = sum   (-1)^n;
}

这段代码是可以实现求和运算的,但还有更简洁的算法。

代码语言:javascript复制
int sum = -1;
if (n % 2 == 0) {
  sum = 0;
}

第一种算法需要运行 n 1 次,第二种算法只需要一次!这样的解法其实我们小学课本上就学过,高斯那道 5050 的题。能回忆起来吧?

这就是知识储备的力量!我之所以能举出这个例子,是因为我读了《趣学算法》这本书。

如果知识储备不够的时候,第一,你可能没有解决问题更多更好的思路;第二,你不知道怎么去找问题的解决办法,不知道在搜索引擎里面搜什么;第三,你不确定哪个是正确答案,无法判断。

3)深度学习,有了一定宽度的知识储备后,你就能解决掉一般的问题了,但想要解决更复杂、难度更大的问题时,就需要术业有专攻,在某一个领域深耕。

深度学习这个概念近些年还是挺火的,它是机器学习研究中的一个新的领域,模仿人脑的机制来解释数据。

这个概念同样适合于我们所有人,人的时间是有限的,所以我们不可能把所有的知识全部吃掉,我们只能让自己成为某个领域的专家,从而保持竞争力,然后再通过分工合作,通过团队的力量来解决更庞大的问题。

如果你想学习编程,我是不太建议初学者在一开始学习太多的编程语言,先挑一门,比如说 Java,先把 Java 核心知识、Java 集合框架、Java 并发编程、 Java IO 和 Java 虚拟机等方面的知识掌握,成为 Java 领域的专家,即便是不能成为专家,至少处在比较优秀的层面,再去学其他的编程语言,就会轻松很多。

不要让自己一直停留在框架的层面,或者说会用的层面,这样你就不具备核心的竞争力,因为技术框架层出不穷,像 Java 方面的 Struts、到 SSH,再到 SSM,再到 Spring Boot,只在这些方面下功夫是不够的,到了一定程度后,还是要去学源码,弄懂原理,这样再有新的技术框架出现时,也能够第一时间吃下它们。

4)形成套路,遇到问题的时候第一步做什么,第二步做什么,心里要有数,要有套路,一套程式下来,基本上问题就解决了,哪怕是没有解决,至少也摸清楚了原因,再去寻求新的方案就不会没有头绪了。

记得我刚参加工作那会,经常会遇到这样的问题,明明代码在别人的电脑上跑得好好的,到了我的电脑上就不行了;或者明明本地环境跑的好好的,到了正式环境就出问题了。我想大家没少遇到这样情况,怎么解决呢?

前辈曾告诉我一个非常傻瓜式的,先重启你的 Eclipse(那时候还没有 Intellij IDEA),还不行的话,重启一下电脑!

这既是一个苍白无力的解决办法,又是一个极其聪明的解决办法。

IDE 运行时间比较久的话,包括计算机运行时间比较久的话,确实会出现一些莫名其妙的问题,在没办法去深究为什么的情况下,重启一下是真的能解决问题的!

软件是会出 bug 的,计算机是会死机的,重启对它们来说,就好像是焕发了新生。

校招的时候,招聘方比较看重的是你的基本功,但社招的时候,往往比较看重经验。什么是经验,就是你遇到过什么重大的问题,你是怎么解决的,你所表达的,就是你解决问题的思维方式——也就是套路。

换了新的岗位,换了新的工作环境,出现了新的 bug,这些套路都是适用的,经验是永远不会过时的。

新手遇到问题的时候往往习惯于寻求他人的帮助,而老鸟习惯自己研究源码,甚至看一眼问题,就大概知道问题发生的根源在哪。

5)善于总结,形成自己的知识库。解决一个问题,一定要记得总结,复盘,最好能形成文档。

就拿我自己来说吧,有时候,为了解决一个问题,搜啊搜,搜到最后发现提供解决方案的竟然署名“沉默王二”!

一是,人的记忆是有限的,随着时间的流逝,往往一些不常见的问题就会忘记了解决方案。二是,大多数的问题都具有相似性,可能解决方案不同,但解决问题的思路是相同的。

勤记笔记,可能就上升到了另外一个高度。随着你的知识库不断积累,你就成了那个给别人提供答案的人。

一个人的影响力能不能扩大,很大程度上取决于,他能不能持续不断地给初学者提供帮助,而记录(博客)和搜索引擎,给了这样的机会,给了一个让你成为大佬的机会。

好朋友 Guide 哥,他在 GitHub 上开源的 JavaGuide 项目就帮助了无数的初学者,他把自己的经验分享出来,然后就有了 100k 的星标。据他说,他是从大二开始搞的。所以,各位读者朋友们,搞起来呀!

如何增强解决问题的能力,还有很多方法和途径。打通自己的任督二脉,让 5 脉神剑肆意地喷发吧!

我是二哥呀,觉得有帮助的话,点赞和星标吧!我们下期见~

0 人点赞