下周就要去新公司报道了,换城市(离开北京)+换职业(不作开发),这个决定下得其实仍是蛮艰难的。最近一直在反思本身毕业后的这五年工做,自感惭愧,找个地方记录下(主要是这里谁都不认识我),也算是本身的一种反醒以及给过来人提点建议,少走点弯路吧。数据库
08年顶着名校硕士的光环加入了一家很是有名的非软件公司作软件开发,刚开始一切其实都很美好。大外企的各类好在头一年给本身带来了不少光环,固然本身也学到了不少(主要是非技术的东西)。但是从第二年开始,当本身被各类邮件,开会和扯皮的事包围后,技术能力急转直下。然而本身当时还没意识到这个问题,感受钱还行,也不忙,再加上原本就很迷茫,就得过且过了。直到去年,不少清华北大同事的离职,日复一日的简单重复工做,明显的天花板,不涨的工资,以及家庭缘由的集中爆发才让本身后知后觉,才开始反醒,才开始下决心作转变。c#
然而转变是痛苦的,这五年技术上主要是在windows平台上作一些企业内部业务的处理和展现,主要用一点c++/c#,还有 MFC,Winform,WPF,WCF。技术基本上是作的皮毛,通常问题用MSDN,google和stackoverflow就能基本解决。用不到数据库,也用不到什么数据结构,用到一点点网络知识,主要精力都在业务展示上。这一切在我看来招个应届生用一年也能有和我同样的开发能力,惟一懂的多的业务,也长进很少,都是繁杂的重复。因此在本身开始面试和找工做时被bs了不少次,顶着光环人家通常都给你面试机会,可是一旦聊到技术细节,本身不少都答不上来,也曾经一度很是沮丧。庆幸最后找了个技术相关的职位,可以兼顾到家庭和本身后面发展的想法,还算能够,这是后话,暂不讨论。windows
总结这五年不成功的开发经验,如今想一想主要问题以下:网络
1.目标不明确,因为学的专业不是纯软件,本身误打误撞的进来作软件开发,本身一直没想清楚本身的目标,结果致使本身浑浑噩噩的作了5年开发还停留在原地。数据结构
2.缺少坚持,没能坚持一件事情作到底,本身其实在这五年也自学了一些东西,包括HTML,JavaScript,CSS,Python,Java......也看了很多技术的东西。可都很肤浅,同样也没有深刻坚持下去,什么都懂一点皮毛,结果就是什么都不懂。架构
3.不够勤奋,我从小成绩优秀,学习能力很强,缺少须要很是勤奋投入才能作成事情的锻炼,因此养成勤奋的习惯,到了工做中才发现要取得成功无不须要加倍的努力才行。框架
此外从一个非科班出生搞软件的角度,谈谈本身对软件开发的了解:学习
1.作上层开发学了这么多所谓的语言,框架,技术,其实如今想一想万变不离的倒是底层的数据结构,操做系统,网络通信和一些其余的基础的东西。本身也算半路出家,之前老是不屑基础的东西,总认为我懂了 WPF,能画出很炫的界面什么就很好了。其实倒是认识太肤浅,只有掌握了不变的东西才能应付好上层的技术,不然只会被微软牵着鼻子走。因此对新人来讲,打好基础是多么重要,惋惜我后知后觉了。
2.除了基础的东西,我认为其次重要的是软件架构,好的架构可让事情事半功倍,让下面实现具体代码的感受很轻松。说得过度点,一个好的架构师能够带一群实习生的干活都能出好东西。软件开发愈来愈不须要咱们懂底层的东西,不少现成的轮子能够用,可是要知道怎么搭积木就须要好的架构师了。因此我以为日常要多看好的开源架构,多学习框框的东西,固然轮子和积木知道哪里能拿到。最怕的是像我同样,只会google找积木搭,这就是所谓的纯码农了:(
3.其次是业务,开发不少时候要懂业务,不少开发的很不屑业务,认为技术才最重要。其实不少时候业务才是王道,软件开发在我看来大部分时间都是给业务作服务的,作支持的,公司都是靠业务才能赚钱的。因此开发人员也要懂业务,特别对那种不是很想一直作开发的来讲,懂业务又懂技术也许会给你更多的机会。
4.最后是软件开发的职业发展,我的的见解是码农能爬上去作架构师和经理的其实不多,基本一个萝卜一个坑,我见到开发能一直作到退休的都是老外,人家基本没有title的,这样的我观察无非两种人。一种是对业务很精通,同时对技术系统又很懂的,公司少不了他。一种是对技术很热情很钻研,能力很强,又不想去要什么title的,基本能够挑大梁。我想国内的状况虽然不太同样,不过基本能够借鉴下老外。固然不作开发还有不少能够作,我想说的是开发是能够作一生的,就看我的的想法了。这个问题我本身也一直在想,目前只有一条模糊的路,也得摸石头过。
以上是做为一个经验尚浅的码农对工做五年的反思,基本是想到什么就写什么,思路有点乱,敬请谅解。
补:早上过来看到竟然上首页了,也看到好多同行的点评,谢谢你们的鼓励,我会加油的!