为什么我不快乐呢,为什么我总感觉自己不上进呢,我到底要成为怎样的人?这些问题不断的在我头脑中回闪,我会后悔过去为什么不做其他选择,如果做了其他选择我会不会更幸福。其实不然,思来想去,我其实并不确定不知道我要成为什么样的人。因为不知道想成为什么样的人,所以不知道该如何上进,上进并非品质,而是种生活状态。不上进而又对现状不满,因此不快乐。
我对于想成为一个怎样的人一直有个误解,认为成为怎样的人是一个盖棺定论的标签,这种想法很幼稚。一个正常的人,可能今年想要成为一位到处品尝美食的品菜师,而到了明年又想要成为踏遍祖国大好河山的导游,这些朴素梦想,远比比成为物理学家、宇航员更容易实现。当你给自己定完标签,接下来是对这个标签加些前缀,比如我要成为去过城市最多的导游,或者我要成为一个最会写代码的导游,这些前缀可以很世俗,也可以很个性,主要取决于你更在乎外在的评价,还是内在的满足感。插句题外话,为什么我们自己的标签要靠世俗的标准定义呢,依赖于外在的力量内心迟早会崩塌,只有内在强大了,才能像钻石一样坚不可摧。
确立自己成为什么样的人,这很重要。就像船只出海远航总是需要确认目的地,而后才根据地图选择航行的反向。这个像成为的人越具体越好,地图上描述的越确切,最终能达到目的地的可能性就越高。比如你的目标是我要成为一个最优秀的程序员,这个是没有标准的、不可量化的。虽然你跟不同段位的大佬比较会感觉出差距,但是差距并不大的时候,大家总感觉自己更优秀(禀赋效应)。成为优秀的程序员,这个应该是蓝图,你可以头脑风暴要成为优秀程序员需要做哪些事情,实现哪些多西,阅读多少本书等等。这些都是很主观的东西,切记不要网上搜索什么路线图啊,哪些信息可以作为参考,不能作为你自己的目标。最近刚看了《娱乐至死》这本书,挺深刻的一本书,里面一些思想解释我少年时候的困惑,这是题外话,我读初中那会儿,发现我如果经常看电视,写作文会写不出来,随意后面我调整了自己只能寒暑假才能无限制看电视。所以别人的经验知识永远只适合别人,鞋子合不合脚只有自己知道,这个信息爆炸的时代让我们失去了思考的能力,让我们不信任自己主观的看法,这很可悲。
那么怎么成为一位优秀的程序员呢?
一、夯实基础
这很重要,基础足够扎实,你所表达的内容才更站得住脚。这个很重要,也是最容易被忽略的。关于基础知识的记忆,网上的思维导图可以参考,但是切记,那是别人的思维,如果他的记忆方式跟你有所区别,一定要自己做归纳,内化为自己的东西,要像练气功一样,讲这些基础知识内化为自己的“气”,记住还不够,结合不断刷题,加深对基础知识的体悟。
二、独立开发
独立开发是拒绝成为体制内开发者最好的方法,大部分人都有感悟,当去到新公司面对新框架,一开始是手足无措的,做事畏首畏尾,不敢使用更为高效的方法,最终沦为和其他体制内的开发者一样,每天做大量重复的事情。独立开发的好处有很多,比如可以提升自信心、提升设计框架能力、加深底层知识的理解,而且还增加了自己独当一面的能力。借用一句名言:跳出三界外,不在五行中。独立开发让自己从公司这个体制中剥离出来,自我就是个完整的小团队,无需依赖别人。
三、坚守程序员品质
1、坚持高标准、不妥协,杜绝复制黏贴,时刻准备重构代码;
2、解决难题,不能半途而废,要有不到黄河心不死的决心,只有不断攻克难题才能成长;
3、一定要“偷懒”,这个偷懒是有两层含义:第一,减少需求变更时对代码的修改,这需要我们对业务做更深远的思考,保证自己代码的弹性,;第二,保证代码的扩展性,保证其他同事兼容功能时最少改动代码,以遵循开闭原则。
4、多看源码多看书,这就像你去饭店吃饭,一道炒日本豆腐(本人爱吃的菜)很好吃,你会去细细品,你还会去思考它是怎么做的呢,然后自己模仿着做。当你理解大师们的思想并拍着大腿喊出牛逼,说明你离大师又近了一步。这种时候最妙,你会像是欣赏艺术品一样欣赏代码。
四、生活
不要惊讶,就是普通的生活。开发也是服务于生活的,学会好好生活,也就理解了怎么成为一名优秀的程序员。我记得我转行做程序员的初衷是:这个行业有很多牛逼的人、牛逼的思想,我想学到这些思想反向服务于我的生活,我想成为一个人,一个认真生活、开心快乐的人。毕竟生活才是我们的全部,职业只是生活的一个微观部分,两者相辅才能有所收获。
END——2022-07-31