
我有一个怪癖,每次获得成就感的时候,都会让我有一种吃了一口无比美味的食物般的满足感。
在我的生活之中,这种感觉最强烈的时刻,往往是在代码当中遇到一个问题,苦思冥想最终豁然开朗的时候。踏踏实实的成就感和满足感,堪比吃了满满一大口喜欢的食物。
写代码的最大乐趣也在于此,不难看出来,几乎都与成就感相关。
大到GitHub里的项目涨粉了、解决了一个技术难题被leader和同事赞赏了,小到解决了一个很有挑战的问题,学到了一个实实在在的技术。哪怕这个技术短时间看并没有什么用,但一样可以获得满足感。
既然这么多途径可以获取满足感,为什么有些程序员尤其是小白,他们没有满足感,甚至有时候非常痛苦呢?
其实对于这个问题的回答就是整个的关键,结合前文的分析,答案呼之欲出,因为他们做的事情产生的成就感不够多。
那我们继续追问,什么样的事情能够产生足够多的成就感,至少让人能体会到乐趣呢?
这个问题的答案是我近十年程序员生涯的总结,所有的辛酸苦辣和心得体会都融入在了这句话当中,那就是:做那些刚好超出你能力范围的事情。
所以,要想成就感,要想获得快乐,你需要做能够让你成长,并且不至于太痛苦的事情。这样,当你清晰地看到自己飞速的强大,那种满足感和成就感真的可以让你废寝忘食。
究竟什么样的事情是刚好超出你能力范围,又不至于太难的事情呢?这就需要你对自己的实力做一个仔细的衡量,目前掌握了什么?想要学习什么?在通往大目标的路上,能够分段设置几个小目标?
前几天有一个同学找到我,说他在学Java,目前已经学会了基本的语法。我当时建议他可以做一两个只用命令行输出的小游戏当做小项目。
他有些迟疑,似乎是觉得没多大意义。
于是我问他,当你用面向过程做好了这个小游戏,接下来你是不是可以试着改成面向对象来实现?接下来你是不是还可以加入swing做上界面?接下来你是不是可以把swing换成JSP?接下来是不是可以把JSP换成Sping + Spring MVC?接下来是不是可以加入得分记录用上数据库?是不是还可以加入网络通信变成多机对战?是不是还可以加入算法AI……
如果你真的这么做了,当你把这个项目经验放在简历上的时候,是不是一个巨大的加分项?
他听完之后重重点了点头,眼里又重新燃起了渴望。现在你们知道该怎么样寻找写代码时候的快乐了吗?
如果你也是立志想当程序员的大学生,欢迎关注我的个人公众号:潇潇学长,让学长给你分享更多心得经验。
