新手程序员的困惑

勤劳的双手

  这个寒假,过得感觉非常漫长。寒假里制定了一些学习计划,看一些书,都在有条不紊的进行着。在这期间,帮助一些刚入门的小伙伴如何踏入程序员职业生涯,也和一些老程序员聊聊程序员的职业规划。心里有一些体会,还是蛮有感触的。所以,费老大的劲把尘封多年的博客账号找出来,准备写一些东西,和大家分享一下。

  开始吧!有一个小伙伴小Z问我,不知道自己适不适合做程序员,工作了半年,发现自己独立解决问题的能力很弱。通过和他沟通,发现小Z半年在单位一直处于代码搬运工的角色。由于所在单位的代码质量比较好,小Z可以直接将vue桌面端的代码拷贝过来到手机端,然后也完成了手机端的开发。当时,我觉得还不错,所以问了问他vue一些知识。关于vue的v-if,v-show都不清楚,vuex也不懂,甚至连简单的js代码都不知道什么意思。说实话,当时我就非常震惊了。所以,我就问他还学习了哪些知识。他学了java,springboot,echarts,mysql等等。对于一个程序员刚入职半年来说,其实学习得还不错。但是这一次的远程在家的办公,没有使用公司的代码,也没有公司的知识库作为参考,在家独立推进小例子的原型和小demo。他几乎一点代码都写不出来。这正是他现在苦恼的地方,信心逐渐丧失,工作效率和效果很低,压力很大。后来,我们聊了很久,总算大概知道出现这个情况的原因所在。

1、程序员不是代码的搬运工

  程序员的工作不是代码的搬运工,而是一个有着创造力的工作。小Z在半年的工作,基本只是整天在公司里面拷贝这代码,而不去了解代码为什么这么写,不去研究这么写的好处,对于代码中涉及到不懂的技术,也不去仔细学习。也许你一开始还能勉强应付工作的事情,但是后期没有形成自己的知识体系,这样的你很难成为真正的程序员。

2、需要持续努力,韧性很重要

  小Z,在刚入职第一个月里面,很认真。在第一阶段的公司内部考验中顺利通过(当时另外和小Z一起入职的还有另外一个小伙伴,而这个小伙伴没有通过考核,因此这一点的自满的感觉,让他低估了程序员这个工种)。但是后来的五六个月的工作中,就开始放松自己,不再认真了,以后的惰性又出来,真是觉得有一点可惜。另外碰到代码的难问题,不去仔细解决,总觉得公司有高手帮他搞定,所以在后来的提高很少。从而在这一次远程独立办公的时候,发现知识和技术问题越来越多。在此,从个人经历来讲,个人觉得当你选择程序员这个职业方向时,希望你能做好一个持续性长期学习的心里准备。

3、困难多,bug多,心好累

  想必,这个是新手程序员,经常有疑惑和有挫败感的地方。但是,我想说的,对于老程序员,这种感觉也是一直存在的,而且甚至于苦恼的感觉比起新手们,更有过之而无不及。所以,心态平和点,因为这个情况会伴随你的整个职业生涯。很多时候职业信心,不是别人对你赞誉而带来的,而是你在克服一个又一个困难的成就感给与的。而职业信心这一点非常重要。

4、如何解决碰到的代码问题

  谈到这个问题,第一点,网上资源非常丰富,对于碰到的常规问题,网上一般都有解决办法。这时候大家肯定首先想到的是百度。但是个人观点,觉得google更好一些。另外一些技术网站和有价值的技术文档要记得收藏,一些大牛的博客积累关注,一些技术社区,你也可以提出你的问题。这里的一些知识往往更全面更有价值。第二点,另外可以寻求身边的小伙伴帮忙,但是记住,先去尝试自己解决,拿出你的分析情况和思考点,再向别人请教(不要一碰到问题就问别人,这样一直打扰别人,也会影响别人的效率),这样你在思考分析过程的技术点能够和别人讲的知识形成很好的联系。第三点,多学习多看书,尤其基础性的知识点,书上都会有解决办法。第四点,涉及到使用一些技术组件和开源的框架,认证阅读别人的源码和文档,往往对解决问题帮助很大,另外优秀源码的阅读,对于提高你本身的知识体系帮助非常大。

5、代码的实现思路往往来源于生活

  另外对于一些功能的代码实现手段,不妨在一开始没有思路的时候,可以先采用伪代码方式,和身边的生活联系起来去思考。我曾经碰到一个情况,团队在做一个可视化布局的功能(要求画布上的节点,动态排列,动态布局,实现这个布局算法),一开始由于接受任务的小伙伴对于可视化组件才刚刚熟悉,让他实现布局,他一脸蒙圈,不知道如何下手。后来,我就举了一个生活的例子,如果,你们全家准备坐在一个方桌周围吃饭,你先坐下来,这时候你爸爸来,他该怎么坐?你爸爸坐下来后,发现位置太挤,你妈妈等会也要过来坐,怎么办?这时候他似乎有点明白了,后来我追问,如果全家换成坐在圆桌周围吃饭呢?这时候他豁然开朗了。代码在解决问题的时候,其实也是解决生活的问题,二者联系起来往往也会带来思路。

6、编码效率低怎么办

  很好的IDE的选择,熟悉你的IDE的快捷键,能够大大提高你的代码速度。另外对于重新的代码工作,选择一些小工具的使用,或着编写一些小脚本帮自己实现,往往事半功倍。另外多学习多练习,熟能生巧。

7、如何提高自己的技术

  实战!实战!实战!我曾经碰到一个新手java程序员,涉及到java知识都知道一些,一些新技术的干货很多都有知晓。但是后来在一起工作之后,才发现实战能力非常弱。为什么呢?后来才知道,他有一个非常“好”的习惯,记技术笔记,但是完全是文科生摘录笔记法,甚至于书上的练习代码,他竟然没有在IDE敲过,而是在笔记里摘录。而且记录的笔记,东一块西一块,没有技术路线。

  所以如何提高技术,选择几本很好的书整理好,向有经验小伙伴请教,找到一个符合自己目前认识水平的技术路线,这一点非常重要。这个技术路线往往一步一步夯实,这样会快速重塑你的知识体系。最后不要忘记还是实战。

  最后想说的,程序员的工作不是的你生活的全部。闲下来,看看技术以外的书往往也很重要。如果一直陷于技术中,有的时候往往会限制你的思维,让你对周围形成陌生感,这样的生活一点都不美好。

阅读 741

他会敲键盘

12 声望
0 粉丝
0 条评论
你知道吗?

他会敲键盘

12 声望
0 粉丝
宣传栏