技术面不深入

工作一年了,换过一次工作。最近面试时,面试官评价我只能算是一个 Junior(初级工程师),离 Senior(高级工程师)还差一些。虽然当时有些不服气,但仔细想来,确实没什么不对的。

对自己这一年水平的总结就是:貌似什么都知道点,但是什么又都不深入。

困惑:学得快,忘得也快

曾经有同学告诉我:“技术通过做两个项目就上来了!”后来面试官问我如何快速提高水平,我也这样回答。但面试官指出:“那不可能,没有那么多项目给你做。”

仔细想来,自己曾经做过的工作,虽然能提高一些技能,但大部分的提升貌似都是靠自学。有没有人同感?

平时我也喜欢研究一些小技术、小技巧,并将实例代码保存起来。但是工作中不用、项目中不用,这些技术就慢慢忘记了。比如说 存储过程(Stored Procedure) 的基本语法,一时兴起看看资料,照着例子写上几个,过一阵子工作中不用,自己平时也不用,慢慢就又不会写了,导致面试笔试时出问题。

于是就出现了这种局面:貌似什么都研究过、都曾用过,但是又什么都不深入。 就拿存储过程来说,如果项目中经常写,自己平时也用到,那基本上手到擒来。

再后来,慢慢的什么都记不住了,又不知道自己该研究啥了,慢慢就变懒了,什么都不想研究,因为会忘。所以就变成了:有计划,没行动。

社区观点与经验交流

针对这种困惑,收集了一些同行朋友的经验与看法,或许能给大家提供参考。

1. 关于遗忘与学习方法

“学的还不够深入。要么是自学的方式不对,要么就是自己懒。”

如何让自己学过的东西在要用到的时候就能立马想起来,而不用查资料?对于普通人来说,要么就是天长地久的练习,要么就是死记硬背

  • 任务驱动型学习:以存储过程为例,它的格式就好像学英语时的语法。背这些东西很难吗?其实不会。所谓“任务驱动型”,就是指这种带着问题去学的方式。
  • 培养良好的学习习惯:每天不需要学习太多东西,要有步骤地经常回顾以前学的东西。
  • 切忌复制粘贴:要想用过的东西不忘记,切忌省掉 Ctrl+CCtrl+V 的过程。即使是自己熟练的代码也要亲手敲一遍,这样可以加深印象和提高理解。

2. 关于工作环境与交流

“技术是需要激情和环境的,人的心态很重要。”

有位在非软件行业公司工作的朋友分享道,很多研发工作都是一人单干,从设计到编码都是如此。他的感觉是:提升 50% 来自于自学,40% 来自于自己思考,10% 来自于有的放矢的适当交流。

由于不想太频繁换工作,他坚持了一年,但现在拿起以前用得频繁的技术,看起来已经很陌生了,甚至对前途感到恐慌。最终他毅然辞掉了工作。从这两年的工作经历中,他深刻意识到:个人认为性格孤僻的人不适合做开发,交流和沟通更能促进你对业务的了解和技术上的提升。

3. 关于职业规划与取舍

“程序员应该不断学习,但没理由什么都会,你不是奥特曼。”

我们不知道在工作中自己喜欢什么,我也在寻找。但我觉得首先是不能放弃,时刻提醒自己不能懒惰,不能没有斗志,即使找不到方向。

把自己会的东西悉数列出来(不仅仅是技术),其实列完以后你还是不知道学什么好,那么不要紧,继续努力,把单子上的东西一样样划掉。记住,人总得有取舍,不用什么都涉猎、精通。 你唯一什么都学的理由,是你觉得技术上的恐惧和想让人觉得你什么都知道。

  • 案例:比如我虽然非常喜欢动漫、FlashWeb 很炫的效果,但是我仍然决定只是简单了解下 Flash 而不去研究相关的 ActionScriptFlex。其他方向上也是一样,会有人做的,而我们不要什么都接收,在工作时你可以说“不”。

4. 关于项目经验的价值

“做项目只能锻炼最基本的一些编程能力,顶多就是变成一个熟练工。”

事实上,很多人在一个公司工作了几年了,对公司做什么都还只有一个很粗浅的了解,稍微问点细节就答不上来,再多项目都是白做。对于公司来说,他们的价值就只是编程的时候比别人快一些。

记不住不要紧,你只需要知道每项技术有什么作用、优点、缺点。用的时候不记得如何实现不要紧,关键是能很快地找到资料,并实际使用在工作中。就像律师打官司时,不需要记着每条法律的内容,只需要记得每条法律的作用,在那一页就行了。

5. 成功案例分享

有位新人分享道:去做 JasperReports 的工作,虽然不是 Java 编程,但是也算 Java 领域的开发。尽管之前没有任何报表开发的经验,但是用了不到一个月时间便玩熟了 iReport 这个工具,很快也给其他的同事做 iReport 的培训,同时也开始在 BlogJava 上分享一些 JasperReports/iReport 的开发经验。

面试建议:心态与潜力

最后,想说一点:面试的时候,如果肯定自己技术不行,那么一定要展示出自己的潜力与激情

  1. 了解需求:面试之前和面试的时候,你要先了解你所面试的公司到底要什么样的人才。如果是要立马上手能用的,而刚好你的水平还没达到他们的要求,那你应该选择放弃。
  2. 展示能力:如果是在技术还不行的情况下,你要让面试官看到你的学习能力理解能力,还有你的工作态度
  3. 自信应对:面试的时候最重要的还是自信吧。没有谁什么都会的,就算把上述那些书都背下来了,紧张的时候可能还是会记不起来。
  4. 调整心态:面带微笑,就算不会也不要直接说“不会”。说下思路,表达自己的看法……反正就是给面试官一种自己完全 Hold 得住(掌控局面)的感觉。

总结

目标专注,思考,总结,分享。


说明:文中提及的 FlashFlexActionScript 及相关工具(如 iReport 旧版本)属于较早期的技术栈,部分技术目前已停止维护或被新技术取代。本文主要侧重于学习方法与职业心态的探讨,具体技术选型请参考当前主流技术生态。