程序员,从我的经历给你些建议

来自网络

1

大学毕业之后,我进入了一家传统的软件公司做java开发。在此之前我没有过企业级开发的经验,只做过很小的web系统,纯粹的servlet、jsp、jdbc。以至于在加入公司实习的一周以后,一起进来的伙伴都已经分到具体的开发组参与工作了,我还在看hibernate的视频。

那天下午,部门经理找我谈话,问我心里的想法。我说自己以前没有接触过开源框架,对公司的框架也不了解,我想我还没有准备好立即进入开发的阶段,需要再多一周来学习。部门经理说好,于是我多了一周。

在那一周,我每天都在看hibernate的视频,练习里面的demo。部门经理坐我的前排,每一次他接水、去洗手间,从我的身边走过,我都觉得好压抑。

尤其是我看了太多的hibernate的内容,庞大繁杂的知识冲刷着我的大脑,虽然学得很快,忘记得也很快。当时我还不知道有思维导图,不知道在知识中应该取舍,我完全依赖着自己多年来自学的经验,笨拙地想把看过地一切都塞进大脑里。但是记忆不是一个四面围墙地仓库,我没有办法让装进去地东西不流失。那一段时间,我过得很压抑。

2

后来项目经理跟我说,先加入工作,慢慢学着看吧。于是我加入了一个开发组,开始看公司的文档,学习公司的框架。当我渐渐熟悉了公司的框架,我发现其实并不需要我掌握springmvc、hibernate、jpa。公司的框架把一切都封装的很好,我只需要学会使用几个注解来声明Controller、Service就可以了。公司甚至有一个代码生成工具,只要在数据库建好了表,就可以自动生成有一定目录结构的Controller、Service、Model、前端页面组件。Controller暴露了基本的增、删、改、查的接口,Service因为继承了一个BaseDao的类,已经有了基本的数据库操作能力,我只需要做些简单的修改,就可以提供基本的功能。

一段时间以后,我对公司的框架已经很熟悉了,我的主要工作量变成了写前台的页面。使用js进行数据校验、用户交互,使用css美化界面,使用ExtJS、dojo的组件来做个性化比较强的页面。然后渐渐接触了公司的旧项目,学习写PLSQL。

我的工作所需要的技能基本上就是这样,后来学习到的webservice、消息队列,对我来说已经算是非常新奇的知识了。

3

在最近三年里,我刻意利用私人的时间看书、练习demo、写总结,然后get到新的技能。这样的自我强迫,让我在团队里脱颖而出,渐渐成为一个骨干,渐渐成为一个模块设计师。但是其实,我心里很清楚,自己的学习效率并不高。

我的学习方式还停留于看书、看视频上,没有反馈,没有交流,很难长久的坚持。

现在想来,我应该多逛逛一些编程相关的社区、博客,关注一些大牛的成长,给自己刺激和方向。我应该结交一些在技术上有追求的人,加入一个圈子,大家平时吹吹水,偶尔相互鼓励一下,线下见个面,交个朋友。我应该留意一下新的技术,它解决了什么样的问题,以及是否适合我们。

我住的地方很差,不能给我好的学习心情。

即使是在广州这样的地方,我的房租也是在800左右。我曾经住过城中村,一栋栋小高楼挤在一起,楼与楼之前的距离很小。住在底层的人,很难看到阳光,但是隔壁的油烟味却很容易跑进来。广州三四月份的梅雨季节,屋里的东西很容易发霉,更别提时而看到的蟑螂迅速的从你眼前贴着墙壁溜过。在这样的环境里,我也只能看看电视,打打游戏,堕落着,腐朽着,耽搁青春的年华,消磨孤独的激情。

所以关于这一点,我很想说些什么。如果你还想提升自己,还有一些热血和志向,你需要找一个同道中人作舍友,还需要找一个相对优雅的环境作为临时的家。刚入职时你大可不必作存钱的打算,只要你能一直提升自己,哪怕做个月光族又何妨,你在自己身上的投资,终会得到令人欣慰的回报。

公司的事务经常打断我的学习计划。

虽然一般情况下,公司的开发都是很简单的,但是经常也会有非常个性的需求,需要我加班加点。这样一来,我就必须打断自己的学习计划,把主要的经历放在工作上。等忙完了工作,我当时的思路已经断了,我必须从头拾起那种感觉,这会让我觉得很气馁。

李刚的那一本SSH框架的入门介绍,我断断续续整整看了两年多,都没有看完。直到我离职之后,预留了一段时间休息,才花了十几天,毫无间断地看完了。也算是了结了自己刚入职时的一个心愿。那本书实在是很厚,但是要静下心来看并不难,有很多demo都不需要跟着做,只要理解了就好。

但是在这三年里,我一直抱着“这本书都还没看完,怎么能去学习其他的技术呢”这种想法,所以被卡在这里好久。

中间我还复习了软件设计师考试的资料,考得一个证;复习系统分析师考试的资料,结果没考过。每一次考前的复习,都花了近三个月的私人时间,这些时间对于我来说是没有多少实用收获的。我也曾经纠结过,是应该花时间在备考上,还是在那些离我更近的技术上。

考证应该是一个水到渠成的事情,如果成为了一个目标,那就说明我们偏离了正确的方向。我们更应该关注自己的成长,而不是那一纸证书。

或者说考证只是一个boss,而我们之所以顺利秒掉它,是因为在此之前,我们砍掉过无数个怪,提升了经验和等级。而不是直接面对boss,一次次的挂,一次次的读档重来。

我没有关注效率的提升。

如果你经常问别人同一个问题,那么你应该做一下笔记,找一个合适的笔记本,最好能够在电脑和手机上同步。如果你觉得一件事很复杂,比如某个项目,某个技术,可以尝试使用思维导图,分析出这件事情的脉络。

如果你的工作效率很差,可以尝试先做计划,使用excel表格,预估每一个计划需要多少时间,然后先做容易的,再做难一点的;这样即使后面一两个难题没有解决掉,你也会觉得“今天还可以啊”,给你持续的动力。如果你的计划很难完成,那么要重新估算自己的能力,减少计划的数量,一定要保证计划的量不能耗尽你一天所有的时间,否则你会很疲惫,也很难坚持。在工作中突然插进来的任务,尽量往明天、后天排,如果紧急,就把今日的等量计划排到后面去。

当你做好了一份工作量适度的计划之后,你唯一需要记住的就是:今天做完这些事情,其他的时间可以随意安排。

试一试吧,一段时间后你会有不同的状态。

心态不够积极。

或许研发部门会主动去研究一些新的任务,然后考察是否适合加入公司的框架。但是我所在的业务开发组,所使用到的技术一直都是那些,所以我的学习和我的工作是脱节的。

当然,我个人也是很大的问题的。比如另一个业务开发组,有一位同事和我是一起进来的,我们也在同一年离职,但是当时他已经是项目经理了,而我还是模块设计师。他会把自己学习的东西结合到工作上来。就是因为他把消息队列用到某一次项目实践上,而且效果还不错。所以我在处理另一个问题时,部门经理才建议我使用消息队列。

当时我觉得,他把学到的东西主动用到工作上来了;但是现在,我想他或许是针对工作上的问题,找到了解决的方案。这两者之间是有很大区别的,前者是学习先行的思想,本质上是主动去学习新的技术,然后再考虑能不能用到工作上。后者是工作先行的思想,主动去发现工作上的问题,然后去找解决的方案,接着是学习、运用。

直到现在,我才意识到其实自己一直想错了。我只是想着要学习,而且没想过反哺工作,所以我学到的东西没有锻炼的机会,所以就只是浅浅的一层,轻易地被岁月揭过。

而现在我所推崇的方式,则是从工作中出发,找到问题点,然后使用技术解决问题,从而让公司和自己都能够从中受利。这个想法在致想成为技术大牛的你 | 你有这个问题吗一文中,有更详细的论述。

总结

最后来总结一下我想给出的建议:

  1. 拓宽自己的学习方式,不要停留于看书、看视频上。

  2. 找一个志同道合的人做舍友,住一个尽量优雅的地方。

  3. 合理安排工作、学习、备考的时间。

  4. 关注效率的提升,思考下有没有提升自己效率的方法,留意下别人有没有这方面的经验。

  5. 不要把工作和学习分离,对待工作要有积极的心态,从工作的问题点出发,去捕捉技术,这样知行合一,才学得更好。

希望大家能有所收获。

文/守正at杭州

关键字:产品经理, 学习

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部