奉劝那些想把编程学好的人
大家好,我是沉默王二。
作为一名 18 岁的老码农(有点倔强了哈),我接触了太多太多想学编程、想把编程学好的人,有从别的专业转过来的,有零基础自学的,有科班出身的。他们当中的一部分人,学着学着就放弃了,或者还在放弃的路上。
01、很遗憾
我上大学那会,学校的计算机专业刚成立两年,也就是说,我们是第二批。据说,第一批做小白鼠的学长学姐们,很多在毕业的时候都没从事计算机专业方面的工作。倒不是他们不想找这方面的工作,而是本地的工作机会寥寥无几。
很幸运,我是班里面为数不多坚持下来的。准确来说,这个数不超过 10。剩余的呢?能在大一的时候转专业的都转了,转不了的毕业后都干别的去了。
2008 年那会,郑州几乎没有计算机专业方面的工作,于是我们都莫名其妙地丧失了对未来的信心。老师们呢,也不吭声,哪怕说一句,“你们去北上广深闯一闯吧”,没准我们都能成为时代的弄潮儿,毕竟一线城市的工作机会还是挺多的,把握住的话,还真能成就一番作为,毕竟早就是优势啊。
现在想起来,不仅为我自己感到遗憾,也为班里面的同学们感到遗憾。我们的专业是学校最不看好的,但却是那个时代最有前景的,十多年的时间也证明了这一点。但我们还是因为自身的局限性错过了,错过了去一线城市闯荡的最佳时机。
以前,程序员稀缺,但机会也少;现在,机会多,程序员也多。每个时代都有每个时代的局限性,那还学不学编程了呢?
02、选择比努力更重要
时不时就会有人问我,“25 岁了,学编程还来得及吗?”“30 岁了,学编程晚吗?”也有人问我,“正在上高中,我想以后从事软件开发,我该学些什么呢?”
每个人,不管处于什么样的年龄段,都有选择的权力。
大家应该听过这句话,“互联网时代,选择比努力更重要。”于是,大多数人就在纠结,到底该选择什么才能不那么努力就轻而易举的得到,到底选择什么才能不后悔。
但大多数人往往会忽略一件事,说“选择比努力更重要”这句话的人,其实付出了很多很多常人看不到的努力。
很多人听说 IT 行业很吃香,于是倔强的选择了 IT,这是对的,互联网虽然已经很卷了,但仍然处在蓬勃发展的阶段,很多地方都充满了机会。
我要告诉大家的是,既然选择了,就要付出努力,不要轻言放弃。
很多事情,短时间内都是没有答案的,只有把时间线放得长一点,才能验证选择到底是否正确。
03、编程难吗
我妹学了有小半年的编程了,她就经常给我抱怨,“编程太难了!”
说句实在话,编程确实不是一件容易的事儿,我上大学那会,也觉得编程难,难得想要放弃!真的,一点不骗大家。
现在不是放寒假了嘛,我就没看见过我妹打开电脑敲过代码,每天用得最多的一个软件,大家不用猜应该就知道,它叫“抖音”。
抖音是一个国民级的软件,的确给我们带来了很多欢乐和感动,我不讨厌它也不喜欢它,因为对于那些自制力差的人来说,抖音悄无声息地就把他们的时间消耗殆尽。
卡耐基的《人性的弱点》里阐述了一个发人深省的观点:
99% 的情况下,不管犯下多么严重的错误,人们都会优先归咎于他人。
例子我就不再举了,我也有过这样的想法。一开始学编程很难,于是同学们不约而同地都把责任归咎到了老师那边,认为是老师自己学艺不精,所以才没办法把我们教好。
但事实上,这就是人性的弱点,我们都在想方设法地为自己找借口,找一个看起来很合理的接口。
编程难不难,我估计没人敢说容易,哪怕是出了名的大佬们。可正因为难,才有价值,不是吗?因为难,就不学了吗?
04、努力就真的能成功吗
答案也显而易见,“不一定。”
我每周会去三次健身房,每次都会见到一个人,他的肚子好像一直就那么大。他没有请私人教练,也没有练习器械,单纯的就是在跑步机上慢走,走大概 20 分钟左右。
在我看来,他很努力也很自律,然而这样的努力,往往收不到任何的效果。
这也就是为什么,常常有人会抱怨,“为什么那谁谁谁努力了就成功了,而我没有呢!”
每天把输出“hello world”的程序敲上一百遍,坚持一百天,这样学编程的话,效果可想而知,是学不好的。努力,并不是不断地做重复性的工作。
真正的努力,需要花费足够多的时间,并且要不断的寻求突破。
就拿学习 Java 来说吧,一开始可能要先学习 C 语言,打下坚实的基础,如果没有学的话,直接开始学 Java 也行,但以后有时间的话,还是要补一补的,好处很多。从 Java 基础知识,到面向对象编程,到网络编程,到多线程并发,到 Java 虚拟机,到性能优化。
这一条线下来,还不够。还要学习工具,比如说 IDE、Git、Maven;还要学习框架,比如说 Spring、MyBatis、Spring Boot;还要学习数据库,比如说 MySQL、Redis 等等。
除此之外,数据结构与算法、设计模式、计算机网络、计算机组成原理、操作系统等等,这些也要学,也只有这样,不断地走出舒适区,不断地突破,不断地寻求边界,然后才能真正地把编程学好。
05、目标如何定
对,我们常说,做任何事情之前,都要先定个目标,这样做起事情来就有了动力,不至于漫无目的。
但,如果做什么事情都奔着一个目标去,会感觉很累,累到有时候你会丧失信心。
我们可以把“我要学好编程”作为目标,也可以把这个目标简单做下拆分,比如说先入门再进阶,然后再拓展。更甚至,可以抱着一种“玩一玩”的心态,也没什么大不了的。
我喜欢看王小波的书,但一开始,我并不知道有王小波这个人,而是通过一个叫《一个人的书房》的播客节目了解到的。这个播客里提到了《沉默的大多数》,于是我就买来读了读,觉得有趣得不得了,然后我就又买了时代三部曲,然后就读啊读。
等到我要写作的时候,莫名其妙地,就受到了王小波的影响,写出来的文字就带有一些“幽默风趣”在里面。
但如果一开始,我是抱着一种我要把文章写得有趣,再去读王小波的作品的话,没准我会读得很困难,因为我可能会静不下心来,我想从书里面挖掘“有趣”,可能就失去了阅读的兴趣。
同样的,如果我们抱着一种“玩一玩”的心态来学习编程的话,没准真能把编程学好。但如果我们抱着一种“我一定要把编程学好”这种心态的话,没准在遇到困难的时候就放弃了,因为我们定下来的目标很难完成,以至于我们有一种负罪感,这种学习状态下,学好是一件很难的事,学不好倒是一件很容易的事。
把目标降到最低,也是为什么我们在学习一门编程语言的时候要敲“hello world”的原因。
最后,希望大家都能把编程学好,从“星标”沉默王二这个公众号开始,嘿嘿。
PS:顺带开一下这个月的赞赏吧,也是 2021 年的第一次赞赏,求个好彩头。金额随意哈,赞赏一元也是爱,只求大家不要忘记这件事,瞧我这心机 boy 的怂样,已经把“赞赏”两个字加粗加大了。