如何一夜之间成为一个牛的软件开发者(转载)
转自:http://www.cppblog.com/softko/archive/2010/07/02/119157.html
总是有一些朋友看到我的作品受到刺激就问我如何像我一样到这种水平, 这些问题一般是这些:
我如何成为一个像你一样牛B的开发者?
我如何才能做出像你一样牛B的项目?
我怎么学C#才能像你一样牛B?
微软认证有用么? 我应该去考么?
你是怎么成为微软MVP的, 我也想当.
我现在也23(24)岁, 而且我也想像你一样牛B, 我该怎么办?
一般他们问的问题就是这样, 每个人都问我有什么捷径可以成为一个真正牛B的Developer. 好吧, 下面就是我如何达到我现在的成就的秘密:
每天工作18小时, 一周7天, 每年360, 坚持13年.
哈~ 这就是我的窍门~ 很简单是吧? 你唯一要做的事情就是除了工作什么都不做, 然后你就会想我现在一样! 真的很简单~ 你也可以的! 小菜一碟~
如果你不想走捷径, 想走"长"路, 你可以看看下面的:
加入开发一些开源的项目, 也做几个你自己的. 这是学习一些有用的东西的最好的方法.
如果你可以的话, 试着创立自己的公司. 到现在我已经开了3个公司了, 两个不是那么太成功, 但另外一个是很成功的, 这个公司让我学到的了很多很多东西, 那些东西决不是你在别人的公司里干活所能学到的.
每天看一些文章. www.codeproject.com 和 msdn.microsoft.com 上 有几千篇的文章你可以看. 如果你每周看10篇文章, 这样坚持一年, 你就有480篇文章的知识量啦! 那时候谁能有你牛B?
不仅文章要读, 它附带的源代码你最好也看看. 写一些类似的项目并且在你自己的项目中尝试一下这些文章中的方法. 我每天都会花1小时来尝试一些新的技术. 这不仅增加了我的知识还让提高了我的动手能力, 让我在平时的工作中做的更好还更有效率.
去一个让你有激情, 而且可以让你做各种不同的事情的公司工作. 例如它能让你自由去设计你自己的模块, 开发, 测试, 编撰文档等. 这个过程让你可以经理软件开发的整个阶段. 然后要确定你的公司里有足够的比你还牛B的人来让你去学习他们. 否则你只是一个大奶牛场的另外一头奶牛而已, 你什么也得不到.
别以为你好像做了很多但只得到一点点薪水就离开一个公司. 要有耐心. 好好干, 总有一天你会得到你应得的. 曾经我在我的第一个公司做一个美国大公司的外包项目, 我一个月才拿250美元. 在那个公司的7年中, 我一共做了8个项目. 但我并没有因此而离开那个公司, 只是因为我可以在那里学和做很多东西. 特别是在那里我可以用到很多种不同的技术. 但当我终于离开的那家公司并加入的另外一个, 由于我在前一个公司学到了大量的东西, 我在新公司里的薪水是每天200美元. 看到不同了么? 如果当时我离开了前面的那个公司而只图一个稍微高一点的薪水, 我不可能学到那些那么Cool的东西, 而且我也不会像现在一样有钱.
下面是对那些现在已经每天挣200美元的人说的, 很重要: 即使你已经赚了那么多钱也不要改变你自己, 依然做当年每月挣200块的你. 记住, 就是当时的那种态度和你不断燃烧的学习欲望才让你像现在这样. 如果你心中的学习欲望再也不燃烧的时候你只会变成一根烧尽的蜡烛, 你挂了.
别去那种有很好的职责划分的公司里开始你的事业, 在那种公司里, 也许你只要叫你手下的那些程序员去决定所有的输入/输出/伪代码, 你有一个固定的QA(质量评价)团队去测试, 你还有一队经理和管理员去关心每个管理和操作的问题, 等等. 在那种公司里, 你只是一个"聪明的打字员"而已. 你只是简单的把英语翻译成C#. 你的右脑根本没有在动. 去一个有很多挑战并且有很多机会你可以开动大脑和动手的小公司工作吧, 烧焦的大脑的味道总比那些从华丽装修的Office中的小格子的味道好.
在我那么多次的的面试里, 我已经看到了一个开发者进化的过程, 看看自己属于哪一类:
初学者: 他们没没穿皮鞋, 穿着凉鞋, 看上去很镇定. 衬衫在裤子外面. 当你问他, 你知道.NET事件和代理么? 他们说: "呃, 嗯.... 不, 我好像不知道, 跟生日事件有关么?"
初学者+: 无论你问什么关于编程的问题, 他总是回答"我全都知道". 他们穿着亮堂堂的鞋子, 长袖的衬衫很漂亮的扎在裤子里. 整齐的头发上搽着"Set Wet"的发胶, 带着价值300美元的太阳眼镜. 当你问他: "你知道什么是.NET事件和代理么?" 他们说: "事件和代理实在是太COOOOL了! Man~ 你到处都可以用它, 注意了老兄~ 是"到处"! 我在那~~~么多的项目中都用了~ 难道你只学了.NET事件和代理么?"
中级: 衣着稍微有些低调, 太阳镜是老款的. 没有发胶. 只要你一提到一些关于EJB, Spring, 设计模式之类的问题, 他们的眼睛就会像11月的天空中最亮的星星一样发光. 他们开始可以在办公室做些自由的事情, 开始去一些在线论坛, 和朋友一起做些开源的项目, 也开始看MSDN Magazine. 但你一问他: "你能干么?" 他们总是回答: " 当然~ 你明天就可以拿到." 但一般他们会在一个月后做完.
中级+: 一般你会看到他们比计划晚1~2个星期做完.
高级: 他们总是每天都穿着带有"I am a Geek"或者"Microsoft Windows Xp"标志的T恤(直到穿到发臭, 而且当他们进入办公室你可以闻到), 穿着光亮的运动鞋. 他们开始谈论一些软件开发过程, RUP, 极限编程, 敏捷编程等等. 当你要他们做些事情, 他们回答: "给我一个功能规范, 技术规范, 测试方案, Milestone, 发布计划, Mockup, 还有N个程序员, 我就能做完了"
相当高级: 他们没没穿皮鞋, 穿着凉鞋, 看上去很镇定, 衬衫在裤子外面. 当你问他: "你知道.NET事件和代理么?" 他们回答: " 事件和代理总是会造成双向的强引用, 导致GC无法收集事件监听者属性, 唯一能释放这个引用的方法就是关闭这个AppDomain."
如果你在考微软认证的时候不作弊, 你可以学到很多
写一些文章或者Blog, 共享你所学到的. 哪天也许谁就会从你的文章中获益. 不要犹豫, 觉得你懂的不多而不去写.