夜光:程序员是什么?为什么入这一行?生命里该做什么?

夜光序言:

 

你看,这个世界终究是...变天了~~

正文:很多学长学姐的经验,很多人的精华,人生在世,总要写点东西共勉,或许这也是我夜光活着的意义

当你刚学会走的时候,别人已经在跑了;当你还像学生一样被动吸收时,别人已经在独当一面了;当你还在干基础的事情,别人已经在拿高薪水带小团队了。问题的关键是:别人是怎么做到的?

如果你是程序员,是否有类似这样的困惑——“天天写业务代码的程序员,怎么成为技术大牛,开始写技术代码?

成为大牛:梦想很美好,现实却很残酷

不管是开发、测试、运维,每个技术人员心里多多少少都有一个成为技术大牛的梦。毕竟“梦想总是要有的,万一实现了呢”?但很多阿里的新人,工作后就会发现,梦想是成为大牛,但做的事情看起来跟大牛都不沾边。

现实生活中:比如,程序员说“天天写业务代码还加班,如何才能成为技术大牛”,测试说“每天都有执行不完的测试用例”,运维说“扛机器接网线敲shell命令,这不是我想要的运维人生”。我也是一位程序员,所以我希望我这篇文章可以给我留下点什么~

态度是第一位的

态度用于是第一位的,不只是新员工,老员工也是如此。不过对于新员工来说,更加重要。没有好的态度的员工,能力再强,企业也不喜欢。更何况,我很少见到态度不好的员工,有很强的能力的。

【夜光所在单位领导经常和自己说:年轻人不努力,那到老了会含恨而终~~】

变换你的心态

你不是一个学习者,而是一个执行者

对于一些刚毕业的新人来说(或者刚转行到软件行业的人),要意识到,公司招聘员工,是要求员工给公司创造效益的。 所以虽然前面提到新人需要努力的学习来提高(improve and up)自己的能力,但是新人需要意识到,学习不是最终目的,最终目的是为了解决问题,做出成果。 所以,新人要意识到:虽然学习是必要的,但是快速进入工作状态,而非一直处于学习状态,才是一个员工应该有的状态。因为进入公司,你就不在是一个学生。

培养沟通能力

很多程序员忽略沟通能力。认为做程序员,只要能够把代码写好就行。事实远非如此。作为程序员,需要和至少如下人员经常沟通:

设计师 (沟通设计方面)

产品经理或者客户 (沟通需求)

其他程序员(沟通需求、技术、对接等等问题)

如果一个程序员不能很好的和以上人员沟通,很难想象他能够合格的完成任务,跟别说出色了。那么作为新人应该如何培养自己的沟通能力呢。

锤炼思维能力

调试能力

不会调试的程序员,不能称之为程序员。通过调试,发现数据,程序运行的规律,找到问题所在,并修复问题。可以说,一个程序员的大部分时间都是在调试,如果能很好的掌握调试技巧,将会是你的程序员生涯的巨大障碍。调试本身也可以调高你思考问题的能力。 所以,学习各种调试技巧和调试思路,势在必行。

善于思考,反思,总结

在遇到问题的时候,需要自己做中总结和反思。 思考自己的解决方式,思维方式。如果遇到一些问题,自己没能解决,而在别人的帮助下解决了,不解要总结改问题的解决方案,还需要总结别人的思维方式。我从小上学数学不错,就是因为自己花了大量时间在这种思考、反思、总结上。遇到自己不会,老师指导了才会的问题,也一定要不断梳理思路,看自己应该如何“顺利”的就能想到这种解决方案。

记录,写文档

当然,如果你能够学习写作,把平时思考、反思、总结下来的东西记录下来,一定更好。写作其实也是一种重要的能力,对于每个人来说都比较重要。 把问题解决方案或者其他思路等记录下来,整理成文档,可以加深自己的记忆,也方便以后遇到类似的问题的查阅,同时还可以分享给他人,帮助别人解决类似问题。所以写文档是一件当下利益不明显,但是长远利益巨大的事情。

猜测的能力

记得学长说到他当年高中的物理课,老师说:物理问题要大胆猜测,小心论证。对于一些问题,我们可能暂时文档 资料欠缺,在这种情况下,我们可能需要能够猜测。根据我们已经有的知识,猜测某个可能性,然后通过某个方式来论证猜测。比如,以JS为例,我们遇到某个对象的API接口不明朗的时候,我们可以在控制台 遍历出相关的接口函数,然后更加函数名称,猜测某个函数是做什么的,选中我们需要的接口函数。当然上面的举例只是一种简单的猜测 论证。还有更多复杂的情况。总之,在未知的情况下,不要害怕停止不前,而是多去猜测,尝试。说不定 就能够找到解决方案。

除此之外,在调试问题的时候,猜测问题的可能性也是一种很重要的能力【灵感来自于经验】

提高学习能力

对于新人来说,感觉自己要学习的东西很多。这个时候我们在学习的时候要掌握技巧。要有“粗学”和“细学”的能力。对于很多文档或者知识点,先从整体理解,然后大致浏览一遍相关文档。,然后在实际中运用中,遇到相关的的知识点,再去细致的了解。而不是一个知识点一个知识点的细致学习,可能等你学完后面的,前面的已经忘记了。所以在“粗学”的过程中,以下两点比较重要:

对于整体框架一定要有个很好的认识,理解框架的作用,架构思路,编程思想,代码风格。在“粗学”知识点的时候,以了解该知识点的作用和运用范围为主。

以解决问题为导向

前面提高了快速学习,实际上快速学习要能够真正落实,产生效用。 需要我们以解决问题为导向。遇到一些新手,喜欢看很多书,学习很多知识点,技术点,但是实际动手能力很差。 为什么我遇到一些参加培训的同学,培训出来之后的效果并不会很明显。因为,在培训过程中,你还是着重在学习,而这种学习,可能存在缺陷:

学习的东西可能很快忘记了并没有提高你解决问题的能力

我就遇到很多新人特别好学,不管什么技术,都希望自己能够掌握,要去学一学。 以为掌握了很多知识点、技术点就能成长的更加厉害。但是往往事与愿违。学了那么多知识,还是过不好这一生,哦,错了,还是解决不了稍微有点难度的问题。 所以建议新人的学习,应该多以解决问题为导向来学习

学习你近期工作最需要的相关知识和技术。培养相关的思考问题的方式,思维、架构能力,而不只是学习知识点。把工作内容涉及到的相关技术做到极致,而不是浅尝辄止,懂一点点就停止不前【这一点十分重要】。

其他工作外的技术点要不要学,当然要学,多学习可以开阔自己的视野,从而潜移默化的提高你的认知能力和处理问题的思路和能力;但是时间上改如何分配和平衡,需要把握好

解决问题的技巧

在遇到比较难的问题时候,我们往往会束手无策。我遇到一些员工,在遇到稍微难的问题的时候,就不知道如何下手。但是事实上,一个难的问题,可能难的部分只有20%,或者更少的比例。但是我们往往被难的部分给吓住了,然后不敢动手,或者不知道如何下手。其实,我们只要稍微把任务分解下,就会发现,还有很多部分是我们可以下手开始做的

夜光总结:

1  良好的心态是关键,上面讲的 80% 的内容,其实是关于心态的。这个是”道”或者说是智慧,需要长年沉潜内修和领悟方能获得,再怎么强调也不为过。

2 辛勤的汗水付出少不了,没有付出就没有收获。

3 需要一点组织性 + 纪律性,目标设定 + 计划 + 执行。

4 拥抱不确定性,世界本质上是不确定的,这也正是其迷人之处。

5 认识你自己,才能发挥三环威力实现从优秀到卓越的跨越。

6 运气,因为不确定性凡事需要一点运气,总体做好上面这些点,你的运气应该不会太差

最后,成功从来都不是一蹴而就的,需要长年坚忍不拔的努力。世界名著大仲马的《基督山伯爵》结尾说,人类最大的智慧其实就是:希望 + 等待,同样地我想把这个智慧传递给所有应届生:满怀希望,积极等待!

 

猜你喜欢

转载自blog.csdn.net/weixin_41987706/article/details/85254989