首页 > 代码库 > 三年IT感悟
三年IT感悟
当初毅然辞职转行投入IT行业,转眼已三年。最近内心萌动,想换份工作,做些更加有意义的事情,抬首四顾,五味陈杂,感概这三年,有种荒废的感觉,写在这里,供君品尝。
一、努力很重要
我在投入IT之前,没有写过一行代码。写第一行代码是很艰难的,我克服它整整用了一个月。从进入公司,整整一个月没能写出一行代码,坐在办公位上,仿佛油煎火炸,压力非常大。期间老大私底下跟我谈话,建议我换部门做测试,我硬着头皮拒绝了。当时特别想哭,为了理想,还是忍住了。我坚信付出总会有回报,即使落后在起跑线,只要付出他们两倍、三倍甚至很多倍的努力,我一定能追上!然后就是追赶的过程,每天加班到最后,下班看书,做梦都在想技术,一直拼到现在。不知不觉,付出换来了回报:做项目经理已经一年多,团队里的技术都是我在带,解决方案的演进都是我在推;html、css、js、C#、ASP.NET MVC、EntityFramework、SQL等等,几乎项目组用到的所有技术都是我走在前面。整个部门都知道我们这儿有个做web的还行,公司产品上有关web的问题寻求解决方案都会问问我。人在做,天在看,努力了,就会有收获。
二、有个好领导很重要
接到前面老大建议我做测试的事情,我拒绝了,这是我跟老大间的第一次裂痕。从这次之后,我在老大眼里被打上了“你不行”的标签,后面很长一段年时间技术方案讨论从来不带我玩,直到现在,我给他的印象也只是有所改观,没能摘掉这个帽子。
第二个裂痕是关于开发方式。老大的理念是追求“短、平、快”,坚信只有快速的出了成果,吃到果子才是事实,其他的问题优先级一概靠后,而我则认为这样是牺牲未来,而且对开发人员的职业成长也有害。事实就是,前人用短平快开发出来的项目一身毛病,丢给我,我维护了两年还没完;他带的项目也是危机重重,亲自带的项目后期的时候基本是BUG不断,手下的人加班无数,特性越来越没有计划,离职率很厉害。
第三个裂痕是职业发展。我们老大一直追求短平快,对下面的人的职业发展和技术培养很少过问。我三年来,是一本书一本书啃过来的,要用到或者觉得要用到的技术就会买好多本书,回家啃。下面的人没有啃书习惯的,技术基本维持在原有水平。说实话,我们的老大技术是很牛的,那个维护了两年还一身毛病的项目核心的模块是老大用C++写的,两年了,硬是没在他那儿出过问题,我们都佩服的很。可是,我们却几乎没有得到过他技术上的指点,很奇怪是吧。关于第三个裂痕,引出了下面的这条感悟。
三、团队氛围很重要,有个导师很重要
看了上面的两点的内容,可能会有朋友觉得很奇怪,这么多年了,难道就没有一个人能跟你一起成长,为你分忧,又或者有个导师或者前辈,提点你一下,不至于这么苦?也可能是我不够客观,我的感觉确实是这样。很多时候,我为了一个解决方案夜不能寐,灵光一闪间兴奋不已,第二天杀到公司跟同事讨论,却发现无有和者;有或者是我曾经苦苦思索的解决方案或者架构,到半年甚至更长时间以后才有同事问我,跟我讨论,然后我直接告诉他可行的解决方案。这种没有共鸣,一直一个人走的感觉,很孤独,对不对?我真心在工作上希望有这么个人或这么一群人,共我欢心共我优,也希望能有个导师能给与指点,就算每天清茶淡饭,也情愿。
四、从业技术很重要,专注很重要
我这里谈的方向不是行业方向,视角比较小,可能不会得到某些朋友的苟同,但是这是我这几天找工作的感受。我的工作让我成为了全能性选手,样样都会,可是样样都不精通。可能有些朋友会说,学到一定程度,语言只是个工具,这话是不错的。可是我是屌丝,没有好学历,不是专业计算机出身,不能像那些明星同学一样,毕业就进BAT,从事搜索引擎、大数据这些高大上的工作;我也不是天才,花半天时间解决别人一周的问题,然后做自己喜欢的事情,不局限在语言和技术上。我只是一个普通人,跟大多数人一样,找工作的时候依然要接受招聘要求的束缚:从事Java服务端3年、要求至少一年IOS工作经验、要求至少一年Android工作经验、要求精通html5/css,精通psd,会photoshop。。。他们需要专家专才,不要样样都会样样不行的“全栈工程师”。如果事先选择一个蓬勃的语言,如Java、IOS,深入挖掘进去,然后触类旁通,至少不会有我现在的困惑和困境。这里也引申出来最后一点。
五、技术理论很重要
我去年下半年将ASP.NET MVC 3引入项目,刚投产做了两个项目,ASP.NET MVC 5都出来了,还有angularjs、git等等好多工具和技术,学习明显跟不上,而且有雾里看花的感觉,这是一方面。而最近也纠结在职业发展的问题,在知乎上寻求了一下答案,一个朋友的例子很触动我:他有个朋友,在360,就用python写写服务器,其他不会,然后学了ios,兴趣所致,写写ios应用,后来不想干了,给百度挖走。这里疑问就来了,为什么他们那么自在,不会局限在具体的技术或语言上呢?我和他们的区别在哪里?我想答案在技术理论的差异上。在IT领域,每天都有新的技术和工具如雨后春笋般冒出来,一个技术还没学透可能就被其他技术取代了,而拨开明雾,在这些技术之下,设计模式、算法、数据结构、计算机原理几十年却很少有变化,这是他们共通的东西。有这些技术理论做支撑,无论是做产品还是学技术,都事半功倍。我最近在补充设计模式的知识,虽然只看到了一部分,也给了我很多启发。
以上是我的一点感受,希望能给有类似经历的朋友一些启发,也希望园友们指点一二。