前言
这篇博客是针对程序员如何平衡日常编码工作与提升式学习?
这个话题进行的个人观点阐述,个人所思所想罢了。
刚毕业没几年,水平有限,仅结合自己的经历写写吧。
我的观点总结一下就是:尽吾志也而不能至者,可以无悔矣。
抛开装X文学,就是努力干吧,怎么干都不行了,实在尽力了,那就可以了。
1.工作是什么?
从毕业后进入工作领域,第一次发现自己大学白念了。
想着自己大学也没有做一个混子吧,年年也有奖学金,国家励志 也拿过。电赛那年省赛也拿过省一,蓝桥杯什么的也拿了不少奖。大学还给年级同学们开开课,讲讲计网,JAVA之类的。总的来说,自己的大学过的也没有很差,中上吧。
进入工作后才发现,自己大学学的东西真的是皮毛,工作的很多东西根本没接触过。比如CMake,SVN+Git,QT等等。
当初还抱着学校的教材啃不停,觉得那就是一切,现在想想,只是年少,认知不足罢了。
工作以后意识到是工作给了自己接触更多技术的机会,让自己学的东西有了用地方。有技术没用,你得有需求,有需求搭配上恰当的技术,才算是实现自己的价值吧。
工作中用到的很多技术,可能没听过,也可能只是初次尝试,但是有着项目压力的deadline,就会push自己去学相关的技术。无论是被推着走还是主动走,至少你都在走。
因为是工作,所以很多技术是实打实要用到实际项目中去的,技术是一线最前沿的技术,用技术解决问题。当然也不排除有些公司是老技术用到“死”,不过学了老技术再学新技术也会有点帮助的吧哈哈哈。
那么写到这里,工作对于我这种刚毕业没几年这类人来说,是一个学习新技术,解决实际问题的平台。
画大饼一点,实现自我价值的地方。
悲观一点,谋生罢了,得过且过。
2.怎么提升技术?
都说干几年干几年技术就咋咋咋,跳槽就涨薪百分之五十之类的。
但很多情况是,前两年确实学了不少东西,后面就吃老本,公司一吃吃几年,跳槽或者被优化自己能力好像和工作年限不匹配。导致跳槽的时候自己的谈资并没有多少。
上面是我认为的,现实中存在的情况,仅个人观点。
技术这个点是个很抽象的东西,怎么考察?
我今年面试的时候,面试了十几家公司,对于我这种刚毕业没多久的人,它们注重考察基本功,所以就问了很多C++的基础知识。又因为C++要用到QT框架,如果是软件开发还会问到设计模式,那么你答得上来,你技术就好了?答不上来技术一定烂?
我不好评价,但对于面试官来说。你能答的上来,至少你有解决问题的基础知识。所以面试我这种初级程序员,个人来说,基础扎实就是一个非常好的加分点。
所以技术到底是什么,我认为,技术是你解决问题的能力。如果一个项目遇到棘手的问题,大家都不会,就你会,那你的技术,至少在这个点,一定是牛的。
要提升技术,实际上就是提升自己解决问题的能力。
解决问题,需要有解决问题的方法,方法来自于知识,知识就是那些学习积累了。
那这个学习积累,现在在我的认知中,渠道分为下面几种
:
1.看公司代码的时候,调试代码,处理业务逻辑。调试代码其实有本书也可以看下,我最近也在看《C++ 代码调试的艺术》(这是提升自己调试代码,快速上手项目能力)
2.看书,看相关书籍。比如C++老生常谈的几件套, 《 P r i m e r C + + 》 《PrimerC++ 》 《PrimerC++》, 《 E f f e c t i v e C + + 》 《Effective C++ 》 《EffectiveC++》 《 M o r e E f f e c t i v e C + + 》 《MoreEffectiveC++》 《MoreEffectiveC++》,等等。(巩固基础,提升认知)
3.问同事。自己看了代码,看了书还整不明白,问同事是最直接的方法。问之前一定要自己深思熟虑过,有自己的想法。随便问问的,浪费自己和别人的时间,你自己印象也不深刻。问的好处就是可以顺便可以复习之前书上看过的一些点的用法以及回顾公司项目的具体实现,(一对一的老师真的很nice)
4.提升技术这个东西,我喜欢去找点什么C++学习路线。C++方向很多,音视频,游戏,嵌入式,后端什么的。自己找方向,然后收集相关书籍,再去从入门到精通的学习。如果对自己的方向不是很确定,后面想换的话,其实可以看一些共性的基础书籍,打打基础。比如 模板相关之类的。可以看视频也可以看书,我个人更喜欢看书。看了书如果不记笔记,可以尝试自己写博客输出。用输出倒逼输入。我很多东西学过后就会忘,但是我学过后,过段时间,再复习一遍,写一篇对应的博客,那么这个知识点真的是钉在脑子里了(没那么夸张,不过印象会很深刻)
3.工作/学习与生活的平衡
工作里面能学到东西,学的是公司的代码框架,框架中的设计模式,编码规范之类。
最近我看的
《
g
o
o
g
l
e
−
s
t
y
l
e
g
u
i
d
e
−
C
+
+
》
《google-styleguide-C++》
《google−styleguide−C++》版,里面就写了很多代码规范的东西,比如命名m_strName;这种m_类型缩写+名称的方式。
有时候我也会在公司加班,不一定是要解决bug,可能就是今天这个地方没搞懂,我想看一下底层实现,看看为什么这么写?看代码学习(主要还是加班有加班费,贫穷嘛,能挣一点是一点)
学习这个东西不是说你非得看书才叫学习,工作里面,你不会的,你做着做着会了,那就是学到了,这也是一种学习。
很多同学其实都抱怨,老板老让你努力,成长,大饼一大堆,PUA你。最后工资没涨,还天天加班累死累活。我上家公司就这么个地方,所以自己如果确实学不到东西,那就早点run吧。趁年轻,未来可期。
PUA这个词,其实我是挺抵触的。如果你确实菜,不得不加个班,趁机学点东西,赶个项目,我觉得没啥问题吧,学到的就是自己的。能力上来了就可以走。
但是有的人就觉得,我到点就该下班,无论干没干完,多干一分钟,老板让我多加点班美其名曰学习,就是在PUA我。最后回到出租屋追剧打游戏,晚上也没干啥。一年到头书也没看多少,上班真的就是混口饭吃罢了。
程序员每天久坐,肚子上都有一圈肉。要减肥是难的,但要健康是可以的。
我每天骑车上下班,一天就是7KM。有时候晚上跑步,或者骑车(25KM+的骑行),周末要去爬山。
小米手环有一个元气值的概念,每周保持到60,就可以越来越健康了,不用到100%。实在不济,30的元气值还是要的。
年轻可以挥霍的身体,就是老年用钱补不回来的东西。
工作的项目很多情况下都好难,毕竟是研发。研发开发这种,都是从无到有的过程,有时候绞尽脑汁都想不明白的东西,可能吃个饭去公园溜达一下;早点下班回去洗个澡躺着,第二天突然就灵感爆发呢?这东西真说不准。劳逸结合是真的有点用的。
人生不只有工作,生活是要的。发展点爱好,比如我骑车,摄影。摄影不一定很贵啊,买个二手的随便玩玩,两千就可以了。自行车买个几百的山地车也能骑。爱好的意义就在于,人生还有点别的乐趣,别让自己那么悲观。
总结
写了点自己这个二十出头的年级的认知,希望若干年后回过头来看自己留下的文字,会有些许欣慰吧。