我从小喜欢英语,向往针锋相对的外交场,高中理想大学是北大或者北京外国语大学;而我现在在北京一个理工科学校学软件工程,注定要和代码日夜相伴。尽管成绩应该可以保研,如今互联网行业也是前景广阔、薪酬诱人,但我不喜欢打代码,起码一个月前还是这样。
承认这一点不太容易,因为就像学土木的不喜欢工图,学理的不喜欢数学,学汉语言文学的讨厌语文,这相当致命,自砸饭碗、自断经脉一样致命。
回想起来这所谓的“不喜欢”应该是有缘由的。初中时候上机课小心翼翼对着面前的台式机,生怕给捣鼓坏了;高考失意选了“软件工程”专业虽然并不了解;上大学因为学校建议“新生尽量不要带电脑,以免影响成绩”,第一个月都没有带电脑来学校,发现软件专业的作业要在电脑上写才傻了眼。
总而言之,我和电脑编程的初遇并不美好,就像《陆犯焉识》里向往自由的陆焉识第一次见恩娘执意安排要和他结婚的婉喻,心中充满着牢骚和不满意。
大学我跟编程接触的唯一时机大概只是老师留作业之后deadline临近那几天。
兵临城下迫不得已,怀着壮士赴死的心态打开电脑:写bug,改bug……一时间“做不出来没成绩”、“做不出来会挂科”这些想法不断施压已经十分紧绷的神经,随之而来的是“写代码好难受!”“我半天做不出来好笨呐”诸如此类的消极情绪。
其实我本是个争强好胜的性子,凡事总想争一争。但当我发现努力之后,和别人相比写代码依然迟钝缓慢,质量也毫无可圈可点之处时,我悲哀地发现自己越来越讨厌打代码了。尽管”别人”指的是那些从小学开始编程的人,而我到大学才接触电脑,客观来讲这里面十几年的差距不是说赶就能赶得上的。但我顾不上这些,在我心里,“打代码”和“我很菜”已经悄无声息地画上了等号,每次打代码都觉得自己超级笨蛋,就越来越不想打。
记得学院演讲比赛决赛的晚上,第一轮主题演讲我表现还不错,同学鼓励说,“今天你可能‘稳’了”。在准备即兴演讲的间隙,我看到一个我参与开发的一个软件项目组里,负责的老师@我,“写好代码快和前端对接一下!”
几个后台的功能代码我拖了一周了。脑子当时就乱了,第二轮即兴演讲很糟糕,虽然最后还是拿了一等奖,但在台上捧着奖杯的时候,我没想象中那么高兴。
我想起了我拖沓的代码,想起了催我跟他check论文进度的老师,想起了搞凉了的大创和服务外包比赛。一阵悲怆的感情向我袭来,我发现我从未花过一点心思去认真了解我的专业,了解它的原则和性情,了解它的成长,了解它究竟是如何“改变世界”的。
三年来,原来是我辜负了它。
大脑很聪明,当做一件事情给你不好的感受的时候,出于自我保护,你会尽可能避免它。而这也会让人更倾向于沉溺在舒适圈里,只学那些容易学的东西,学让自己感觉不错的东西。而那些对当下的你更有价值的、你不喜欢的,却被粗鲁地扣上一顶“不适合”的帽子,你假装看不见它,开始抱怨命运、后悔选择。
而真相不过是“你害怕它罢了”,害怕学了也学不会,害怕别人觉得自己笨,害怕过程中可能出现的失败和挫败感,害怕可能会出现的自我怀疑。
但什么是真正的学习?
真正的学习正是走出舒适区的向上攀登,是认知的突围和升级,这个过程必定痛苦,因为你会发现自己许多不足甚至产生自我怀疑,但结果是值得的,因为你在进步着。
所以不要拿专业不适合当作自己不好好听课,不认真学习的借口了,好像自己受了多大委屈似的,你们不是不适合,而是你害怕了。
那么如何让自己逐渐爱上自己的专业呢,就像老浪子陆焉识回头一样?
我在知乎上看到“如何提高编程技巧”问题下的一个高赞回答:“编程是一门技艺,多练习,多思考,多积攒代码量就是。”
1、设置积极的即时反馈。
你喜欢做一件事,便会在上面去倾注时间和精力,这件事你会越做越好,而你也会越来越喜欢做这件事给你的积极反馈。我在学校的oj上做题,每过一道题显示的绿色“Accepted”都让我精神振奋,我发现我开始喜欢打代码了,喜欢研究算法了,喜欢调bug了。这些都是我之前唯恐避之不及的事。
写作业写得不错奖赏自己一顿大餐,甚至弄懂一个知识点都可以给自己画上一个小星星,这些都会让你渐渐更喜欢做这件事。
2、去寻找热爱这个专业的朋友
朋友对一件事情的热爱会感染你,让你觉得这件事情也好有趣,“或许我也可以试试”。专业学习也一样,去寻找那些热爱这个专业的同学交个朋友,倾听他们对这个专业的看法,学习他们的学习方法,而他们也会在你遇到困难的时候给予帮助。
最后坚持下去,而当你发现做这些事情感觉还不错的话,坚持也就没有那么难了。
愿你始终不惧怕前行。