茫然的求索
那一年,刚好经济危机,毕业了。经过了很长时间的“网上海投”而杳无音讯之后,终于发现“经济危机真的和自己有点关系了” ,曾经以为经济危机和自己巴刚子打不着。
拿着简历,开始到处去跑招聘市场,又发现,人才招聘市场里面的计算机岗位特别少,满街的招聘销售。即便有一两家招聘技术人员的,但是又被各种“硬性指标”拦在门外。
看着钱包里面的钱一张张的变少,没有时间郁闷,也不能待在家里,没有收入的日子,待在家里就是耗钱。武汉的夏天很热,在家里带着要吹电扇(没有空调,使用空调那是很奢侈的),另外在家里要开电脑,都费电。
无奈之下,开始“地推“,开启了扫街模式:把创业街,软件园等地方的公司,一个个上门去死磕。
记得很多次被门卫挡在外面,多次被前台美女婉拒,多次被保安赶出来,不管怎么样,最后终于找到了一个工作。
给我的理由就是:挺有激情的,胆子蛮大的,人也很阳光,我们需要公司没有活力,招你进来调节气氛(这是多年之后,当年的HR美女跟我说的)。这应该也算是“拼颜值,靠脸吃饭了“(呵呵呵)。
得到了一份理想的工作,同时也收到了一份馈赠---有了慢性因喉炎,因为天气热,水喝得少,干渴了,留下了这个小毛病,至今陪伴着。
前辈的警示
终于找到了工作,工资很低,完全达不到交税的标准。
虽然曾经在大学期间在一些公司做过项目,也参加多一些软件比赛,也在很多的IT社区回复很多的技术帖子,提升能力,但是终究没有实战经验,不管自己如何说,至少在别人眼中,你就是新兵蛋子。
能力不是说出来的,是干出来的。
在日企里面,做事比较的严格,可以明显的感受到了每天那种紧张的气氛,每天进办公室,听到的更多的都是键盘敲击的声音,虽然大家在聚在一起讨论需求,但是更多的是在会议室。即便有时候在工位上面谈论问题,大家也是很注意,尽可能的不打扰到别人。
我终于明白HR美女说的那句话了,需要新人进来,注入活力。
入职半个月左右,我旁边的一个“老程序员”,我们一般叫他----陈工,走了。来了这么久,没有和他说一句话,只是知道他40多岁了,而且是一个基础的程序员,在级别上面,Leader都算不上。听到同事在八卦,说是陈工被公司“请走了”,因为他的待遇可以请到2~3个新人…..
看到陈工默默的收拾东西,轻轻的走的时候,那一刻,我思考了很多:陈工也儿女,老人要养,现在被“请走了”,怎么办?而且被请走的时候,没有看到他的反驳,换句话说,难道是真的是“弱者连谈判的权利都没有”?四十多岁,已经算是不惑之年,自己不想这样子。
陈工的离开让我明白,至少等到我四十岁的时候,不能混成这样子。
生存的渴望
进入项目组之后,终于看到什么是一个真正的软件项目,代码的庞大完全超出了自己想象。
不要以为有人会来“慢慢的“的教你,这不是学校,而是公司。招你进来就是来做事的,不要以”我是新人,所以我不会“来扯理由。
要么干,要么滚。
项目leader丢给我几个文档,说是数据库的结构文档,让我看熟,之后给我分配任务。陌生的业务,陌生的行业,几百张数据表,肯定是一头雾水。很想找别人去问,看到大家都忙得像啥似的,也不敢随便去打扰。
凭着自己所谓的“经验”,开始尝试理解各个表,也看着一大堆英文需求文档,开始磕磕碰碰的尝试理解需求,然后把问题都记录下来,每次看到有人在喝水,或者在上厕所了,我就马上走过去问几句。
进入项目组,一直没有分配任务,心里反而着急,因为我知道公司不会养闲人,什么都做不了的话,天知道什么时候会被开除了。每天啃文档,看似轻松,心里却是度日如年。
大概4天之后,我告诉leader,我把数据库表结构看熟了,也知道了系统分了那些大的模块,每个模块大致的功能是什么,更加具体的功能,就需要在项目中学习了。
Leader也吃惊,于是让一个老员工开始带我,他开始把手头的一部分任务给我,让我尝试着做起来。心中开始有了一个大石头,因为真的要“实战”了,做一个“商业项目”。这和以前实习,比赛是完全不同的。
每次任务了之后,自己开始捣鼓。很多时候发现,自己在业务的理解方面有偏差,明明上午写的代码,下午就感觉不对了,因为觉得业务应该是那样子的。于是,自己赶快急急忙忙的去修改,因为任务的时间是规定好了,必须在规定时间之前做好。
于是,每天不断的琢磨,但是自己天资愚笨,很大问题搞不动。很多同事下班就走人了。但是我自己的任务没有完成,肯定走不了,也不敢走,但是有些业务点,技术点自己确实不清楚。于是就想出了一个招: 每天看自己哪些点不懂,然后看看那个同事比较对这个比较熟,只要他下班,自己就跟着他一起走,一起挤公交,走路,同时,在路上不断的请教各种问题。当把同事“送到”家之后,马上自己回到公司,开始继续捣鼓。
自己每天基本干到12点回去。回去之后,不断的反思,任务是否做好了,代码有没有问题。很多时候,感觉自己越想,问题就越多,越发感觉自己写的代码有问题。心里一惊,一夜都睡不着,早上4点起来,摸到公司,然后在上班之后,把代码改好。
身边的惊雷
在公司呆了一个多月了,而且也开始完成一些小任务,总算是“做了点事情”,心里依然稍微好受了点,毕竟我不是闲人了。但是心里依然不踏实,因为离转正还很远,离“自如的完成任务”还很远。
有一天,看到和自己一起做事的那个老员工和HR争吵,第二天,那个老员工就走了。
我震惊了:一个月以内,我看到了两个人被请走了,而且第二个人就是和我一直做任务的同事。他有四年的经验都被请走了,我一个新人,岂不是…..
HR找到我,告诉我,那个员工的走,不是因为能力问题,而是态度问题,让我不要担心,好好干,而且这一个月干的也不错。
不管怎么样,我心里的念头就是:我要留下来。
于是,我开始更拼命的做好手头每一个任务。如果自己做完了之后,反复的审核,在审核,如果自己手头任务搞完了,就看周围有没有同事需要帮忙的,不管是帮他们“填充测试数据”,还是调整文档格式,还是给他们顺手倒垃圾,我都干。
我要留下来!!!我需要工作!!!
困境,突破
做任务算是上手了,也逐步的开始做一些有点难度,稍微大点的任务。当时依然发现,自己每次都是花别人几倍的时间在做,虽然自己把任务做完了,其实中途缝缝补补,反反复复的修改还是蛮多的,所以,只能通过拼时间,狂加班来向别人看齐。
这无疑是一个很危险的信号,如果遇到更大的任务,难度在复杂一点的,那自己就死翘翘了。
于是,开始给自己“定目标”:争取在每次写完一个方法,或者几个方法之后,代码一次性通过编译。
写代码更加用心了,不再犯不必要的低级错误。而且也感到自己的能力貌似真的有点长进,因为做任务开始有“多余”时间了。
于是,都开始给自己“定目标”:争取在写完每一个方法,类之后,功能是可以跑起来的,业务逻辑是正确的。
然后开始一步步的坚持,到了一定的时间,认为可以了,然后定更多的目标“写完几个类之后,功能OK”,“写完一个小模块之后,功能OK“。
慢慢的,很多的功能都一次写完,除了一些问题真的没有考虑周全,一般都OK了。在写代码过程中,之前总是拿到任务,想了之后,就开始动手,边想边写,如果不对,代码删除,重来。很显然,这又是一个作死的事情。
于是,自己拿到任务之后,不着急写,而是在纸上面画几下,然后大概的列出需要几个表,需要几个类,每个类大致有那几个方法,每个方法的基本逻辑是什么样的。开始的时候,不可能想的那么多,但是依然会想一些,然后边写代码边完善。所以,以至于后来,很多同事看到我一个在座位上面静坐很长时间,不敲键盘,然后过一段时间,就噼噼啪啪的狂敲键盘。
刚开始的时候,这样思考很难,而且时间过去了,思考的结果也不咋样,这样导致任务可能会完不成。所以,自己依然会每天起早摸黑的把这段时间补起来。
后来,慢慢的开始熟悉,发现“心里有谱了”,写代码的速度质量都提高了。后来才知道,原来自己的那种折腾就是所谓的“设计design”,原来“软件设计师”中的“设计”是有含义的。
思维,出击
经过自己不断的折腾,各种尝试,不断的把各种任务完成,自己的信心也有了,也开始敢于在团队中慢慢的说出自己的一些观点和想法。
但是,很多时候,毕竟自己各方面不足,不是所有的意见都会被采纳,其实很多时候,都不会被采纳,但是自己又认为是对的。
怎么破???
这个时候,肯定不要抱怨,更加不要谩骂别人是傻逼。毕竟刚刚毕业,很多东西都摆在那里。
信任需要一步步的积累,实力需要一点点的证明。
很多时候,自己也会认为项目中的某些功能,或者技术点可以改善的更好,如果意见不被采纳,那么自己就下班之后,自己一个人开始捣鼓,自己开始验证,自己的想法是不是对的。当然,捣鼓完了之后,代码不会合并,因为要考虑到整个团队,不能随随便便擅自做主。但是作为自己,依然会去验证想法,即便最后没有不能再项目中使用,但是起码自己动手了。
如果每次看到项目中的问题,我会问自己:如果这个功能是我来做,我会如何搞?
如果看到别人带项目,带人方式有些问题,我也会问自己:如果我带人,我会怎么搞?
通过现状,不断的反思自己。其实后来才知道:很多时候,不是因为你屁股上去了,你才对应的思考方法;而是你的思维先上去,等到有机会,你屁股就自然上去了,因为你一直以更高的角度在思考问题。机会是给有准备的人。
助人,助己
每天都会不断的学习,看技术相关的书籍,泡论坛,逛博客。看到很多不同的言论,不同角度的解析。有时候,看完之后,甚至发现:一个知识点,很多地方的讲解都是相互矛盾的。
搞的自己也很乱。因为自己一直在“吸收别人的想法”,最后很多的杂糅在一起,自己很晕。
于是,开始自己梳理知识点,通过自己的思考,各种求证,然后把某个知识点理解,至少让自己”自圆其说“,不至于被各种言论搅晕。
我常常用炼铁在比喻:把各种不同的矿石,丢在一个熔炉里面,这些矿石就是各种不同的知识点,各个不同的思维,流派。我们自己的到大脑就是那个炉子,需要把这些矿石全部融化,然后融合在一起,提炼出钢铁,然后把矿渣过滤出来。
自己开始不断的每天学习,也开始写很多的文章,基本是每天坚持写一篇,然后反复的推敲,看看是否有地方很牵强的,是否存在“含糊其辞”的地方。如果自己都讲不清楚,那么就不要发布,一直到自己的思路想通了,而且认为别人按照这个思路理解,可以最终想通,才把文章发布。
开始发现,通过不断的写文章,自己很多模糊的想法都变得很清晰。
也发现:一个知识点,你自己看懂了,那是一个层次;你会用,是另外一个层次;你写出来,你写出来让别人懂,那又是更高的一个层次;你用最通俗的言语,把知识点讲出来,让别人一下子明白,又是更高的一个层次。
【本文已经在InfoQ投稿,版本所有,未经授权请勿转载】