Hegel2011的博客

读书 - 工作 - 生活 - 笔记

《走出软件作坊》读后感

阿朱的这本走出作坊现身说法,很贴合实际,所以容易引起共鸣给人启发,也确实找到了很多问题过得去的解决办法。 尽管个人认为叫做走进 软件作坊更合适些。

首先说说阿朱的背景。从文章看的出来,阿朱走的是Windows的路线,他开发软件从C/S开始,也以C/S为主,现在也逐步有了一些B/S的东西。 由此背景,决定了他的很多开发观和实际操作的守则。他熟悉Windows的机制,熟悉SQL Server的内部情况,对UI那套比较熟,对MS的工具(Excel Word PPT) 很偏爱,但对console不熟,所以自动化操作方面不强大。然后他受微软的影响很深,所以管理团队喜欢把员工拆成螺丝钉,而不是独当一面的人才。 符合老外的发展思路。但又控制成本,因为能力弱的人成本自然低。从这点上来说,给他打工就不太值得。因为发展空间和薪水空间都有限。他自己也明言, 这样做主要就是为了控制成本。当然,以中国现实来讲这个策略也没什么不对。都像DHH那样,中国人能就业的就没多少人了。

他的背景的另一大特点就是他是卖软件的。这个模式也是微软的模式,而不是卖服务的。软件的销售主要靠售前和销售去打单,实施经理负责项目现场部署和培训, (ps. 大辉同学原来就是做实施的,说白了就是装机的做集成的,所以熟悉OS和Oracle) 他的软件有大量的培训工作要做。研发则在家里支撑。这个模式里面研发和电话支持(call center)确实很像。因为卖软件和实施的关系,这就使得他很善于同不同的客户打交道,见过的 经历过的人足够多,所以他在交际、沟通方面的能力是要强于大部分技术人员的。

他的技术特点是精通数据库和精通操作系统及其应用。对网络等实际一般般。在技术上,我想自己可以做的比他更好。当然,我的数据库还有欠缺。但和他 相比,最欠缺的是和人混熟的能力。虽然他自己也说不喜应酬,他能迅速要到全部联系方式、能迅速与人沟通(吃饭),这些说明他绝不是一个不善于同人应酬的。 这方面,我做的就比较欠缺了。

文章是很贴近实战,也相当直面惨淡的IT人生,是值得一读的文章。上面谈完对作者的基本认识后,将继续写对书内容的感受。

其次,这本书最有价值的地方在于作者真实地描述了自己的研发与管理的状况。仅仅冲着这份勇气,这本书就值得一读。不是人人都乐于或敢于把自己的工作经历 示人的。毕竟现实往往琐碎,有些话有些事情做做可以,说出来就未必敢了。不过作者冲破了这个限制,展现了相当真实的微软系、卖软件、低成本、多营销的 CTO的生活。包括同老板的关系,同下属的关系,同客户的关系,如何提升研发部门的地位等等,这些都很实在也很具体,基本上很多都可以立马借鉴运用。
拿软考的标准,有些内容像需求管理等都是直接可以作为论文的范文的。

回到自己身上。在对比大辉时,我觉得自己落后这个同龄人3-4年,这个数字和我的整个职业生涯前面脱掉的4年时间大致相等。个人的目标也是再用3年时间,可以 达到他们的成绩,做出和他们类似的事情,拿和他们类似的待遇,并拥有类似的影响力。

而在看了《走出》之后,个人也想对自己的成长关键点作一下小结。

学习期

我对计算机真正的认识是在大四下才开始的。在我读书的年代,资料并不多,影印版的流行是大三以后的事情。《The C programming Language》第一次让我意识到 程序书可以写的如此简洁清晰而又例子丰富,看了之后才明白C语言应该用来干些什么。可以说,K&R带我入了门,也使我开始习惯看原版技术书籍。 随后影响较深的是William Stalling是《操作系统原理》。这是我在即将赴公司报道前的半个暑假看完的。由此才对操作系统有了初步的认识,明白了操作系统发展 的来龙去脉。直到毕业,我的计算机知识才算入门。尽管我经历了我们国家位列前三的计算机系的4年培养,但真的入门的感觉是在毕业那年的7月份了。当然, 没有之前的基础和培养出来的毅力,这两本书不会带给我那么大的收益。而且在9年后的考研中,我进一步确信我的学校我的系确实不愧是中国前三。尽管也不那么完美, 但在比很多学校强大的多。

之后是作为程序员工作的2年。也还是以学习为主。期间用Power Builder写了点client的小东西,主要是用VC开发了一些采集程序之类的东西。跟了几个项目,学习了Java 的基础内容,但没有应用也没什么感觉。这段日子里,收益最大的就是看了Stevens的一系列图书,从《APUE》《UNP》,再到TCP系列。除了TCP第二册,其他的 都消化吸收的不错。看UNP的感觉更好,但APUE给我补充的进程等知识让我基本搞明白了OS是怎么回事情,而UNP造就了我的技术口味。后来去做Web能迅速提升, 和这也有很大的关系。

严格的说,这两年不能算荒废,只能说没有经历很好的项目成长的有点慢且漫无目的,针对性不够强。但随后的两年时间则是基本和之后的发展方向脱离的。

进入Web界

直到毕业4年后,我的工作重心开始转向Web应用的开发。那时候公司整个的方向也往软件开发转移了。系统从技术上讲就是Java的简单企业应用。技术难度上和业务类型 上和阿朱的公司也差不多,只是路线不一样些。开发工具自然是Java,运行的服务器普遍是Linux或各变种的Unix,数据库则是MySQL和Oracle。起初我对前端 和页面一窍不通,主要负责用Java写后端。有APUE的底子,我的Java能力没用多少时间就已经走在公司的前面。做Java Web用公司惯用的框架Struts做了一年半, 期间项目很多,当然技术上都类似,不过我也逐步从只做后端开始后端到前端通吃,写页面时长让我感觉很痛苦。一年半后,部门组织调整,我也不愿再做IPTV, 于是撤出繁忙的IPTV任务组后,我稍微有了点空闲时间。而在那一年半中,通过读原始的帮助文档及孙卫琴的Tomcat书籍,我基本搞清了Java Web的原理。但是我对 Struts的框架带来的痛苦很不满意。
07年开始,终于又有了一个跨越和突破,那就是开始学习并引入了Webwork。在读《Webwork in Action》的过程中,技术能力得到了提高,而且很多时候都会产生 我也是这么想的感觉,而且认为webwork所做的和我设想的类似,这样一步一步树立起来了对自己技术感觉的信心。随后的项目中,就引入了Webwork框架,确实提高了效率 减轻了不少工作量。从此之后的项目就再也没有回到struts。直到webwork更名为struts2,就更验证了自己的品味和技术感觉还是很出色的。

高速发展

而在应用webwork之后,也在07年,开始接触了Rails。而这使我的技术能力及解决办法坐上了高速火车。通过应用和熟悉这个框架,逐步熟悉了 Web/HTTP的方方面面,也进一步熟悉了Linux。开始接触了Nginx、Mysql、Ruby、Git/Github、Heroku、Redis、MongoDB、Node.js。Rails直接作为项目使用的主体工具并不多, 至今也只有六七个项目使用了Rails做框架来实现Web界面。出于成本和用人的考虑,部门领导最终还是决定走Java路线。但之后的工作就主要变成了架构师, 所以应用什么语言并非影响很大。反而是架构、设计间共通的东西可以带来更大的影响。在Rails熟悉的过程中,所掌握的设计方法及Web的关键元素,使得我 在应用Java技术时可以更加游刃有余,很多时候有种以高看远的感觉。后来写Rails的评测论文,使得自己对操作系统、性能响应的认识又更进了一步。
而从Rails引申出来的项目管理、Nginx等种种神器,对个人也有很大的进步,而且很多可以直接运用。也由此,我对自己的定位是技术管理人才。 以统管全体的技术为目的,解难题和立规则,从而提高集体的竞争能力。这个活应该说是最适合我干的。

转战云计算

考虑到公司提供的平台和我个人的喜好,希望可以在云计算方面有一番作为。我的硕士毕业论文也是写的这方面的相关内容。而Node.js的出现,也给云计算 的发展提供了进一步的条件。前路漫漫,事情多多,到底怎么样也只有继续努力下去。

Included file 'twitter_sharing.html' not found in _includes directory