| Michael's profileSugar的共享空间PhotosBlogLists | Help |
|
May 01 致共享软件同仁--转贴致共享软件同仁--转贴
CPULover(我爱C++) 很多的朋友要求和我聊天,我恐怕应付不过来这么多热情的兄弟,就在这里做一个统一的探讨。我是重庆人,边说边扯,没有固定的章法。你的反应就是我的创作冲动。
目前的信息基础设施和市场环境为共享软件的生存和发展解决了所有的难题。要是你精通英语,你就打通了走向海外富人市场的最后一扇门。要是现在还有人在怀疑共享软件的生存问题,我就会怀疑他是否在用屁股指挥大脑。共享软件有一个巨大的好处就是不交税,要是缴税的话,我的收入会剧减。另外没有办公费用和场地费用的支出(这又是一笔天文数字)。还有一个巨大的好处就是投资极小,见效极快,轻松上马,立竿见影。共享软件是现代工业背景下为各位勇敢的软件角斗士准备的最后一块古罗马斗兽场。即主要依靠个人的力量和智慧,而不是依靠分工与协作来获取生存与
荣耀。作共享可以让你的激情和创意得到最充分的释放,你可以体会到订单象雪片一样飞来时的极度快感;你可以体会到阅读用户来信感谢的最大满足;你可以体会到白手起家激情创业的尖峰时刻。这时你在公司干无论如何也体会不到的。你只要想一下连腾讯QQ、超级兔子这样的弱智级(原谅我用这个词语,纯粹为了搞笑,不是贬低)产品都可以赚大钱,你的产品为什么不能??? 先从市场营销说起,市场营销认为企业成功的第一步就是发现尚未得到满足的用户需求,这种需求就是市场。分析目标市场的各方面特点进行针对性的产品开发,一定要开发出优质的产品(Product)。这一步至关重要!市场营销的核心观念就是让推销成为不必要,让所有的推销员下岗。也就是说让用户来求你把产品卖给他而不是你求用户把产品推销给他,Intel就是这方面的例子。一句话,要让用户觉得非要你的软件不可,他会想方设法把钱送到你手中,不管这种跨国支付手续有多么复杂。当然这个要求对于一般产品来说相当高,但并非不可企及。这也是你一个月挣20万还是挣20元的关键所在。这就要求你去钻研高难的技术,比如,强真实感3D动态建模,火焰模拟算法,网上超市产品立体演示等等,不用我说,只要你有一样这种技术,那些房地产老板、广告公司老板、超市老板三天两头都会打电话请你吃饭!这些技术要说有多难也谈不上多难,但至少要求你在那个领域浸泡3年以上,专心致志地研究一个方向,也就是说要在一厘米宽的地方钻下1000米的深度。要是你抱着这样一个理想去读研究生,你会收获很大(记住:不要指望导师给你多大的帮助,哪怕是清华的导师。真正有价值的技术导师也会保密的)。很多人在论坛里蔑视研究生,我承认研究生中的水货的确很多,尤其是没有工作经验的研究生。但是,请你相信,绝大多数的高难度软件都诞生于研究生的电脑里,国内外尽皆如此。扯远了。
有了完美的产品(Product)、明确的目标市场。剩下的就是定价(Price)、销售渠道(Place)、促销(Promotion)。这四部分构成了市场营销中经典组合(4Ps理论)。定价一定要体现出你的自信,也就是说要就高不就低,要是你不明白什么叫定价自信,参考一下你去买衣服的经历,看看一件衣服是怎么定价的。经典的定价方法有两种:一种叫成本定价法,比如我生产了一个烧饼,成本大约五毛钱,我加上一个合理的利润5毛,就买1块钱。这种方法适用于买家知道你的生产成本,而且它能够在很多地方买到一样的烧饼。另一种叫需求定价法,比如我发明了一种衣服,穿上它可以自由自在地在天上飞,生产一件这样的衣服的成本是1000元,是不是定价2000元一件,赚它个对番呢?我想只有猪才会这么定价。你可以分析,用户愿意花多钱来买这衣服,我就订多少价。比如定价10万元一件,我相信销路也不会有问题。软件是最适合采用后面一种定价策略的。因为软件的成本不好计算,由作者说了算,需要你的软件的客户,加点钱他也会买,不需要你的软件的客户,你送给他他还嫌你的软件浪费他的下载时间。我的软件最初定价19.99$。1周后发现这是一个失误,后来统一定价为98.85$。销售根本没有受影响。很多客户来信说:“Thank you for your great work!”。没有一个客户来信抱怨价格太高了。
关于销售渠道和促销要特别重视搜索引擎和论坛推销,要多上目标客户关心的论坛,上去吹嘘你的产品,记住要以用户的身份去吹嘘。省掉一大笔广告费,还把你的英语操练得倍儿棒。
最后要特别强调一下英语的极端重要性。英语对一个程序员的重要性远远高于C++的重要性。英语不熟练的程序员我永远都不相信他是或将会成为一个高手。英语熟练了之后,你的另一个杀手级技能就是数学,(记住不是数学杂技,数学奥赛题对于你的数学修养的提高几乎没有帮助,因为太强调技巧而忽略了对数学美的认知)。数学的门类很多,大部分你都可以不去管他们。但作为一个程序员,要是你想开发出一套梦幻级的软件作品,以下数学分支你不可不精通(包括但不限于):1、矩阵论;2、概率论;3、空间解析几何;4、泛函分析、5、复变函数;6、傅立叶变换和小波分析;7、集合论及群论。物理学中的基本力学(想象一下你准备开发一款碰碰车游戏吧)。
记住:数学是你的老婆,你这一辈子的幸福就全靠她了;英语是你的情人,她会让你出去很有面子;C++之类的程序设计语言只不过是一群妓女,玩过之后就甩掉也没有什么留恋的,因为世界上的妓女多的是,而且玩起来感觉都大同小异。
最后就谈一谈“妓女”的问题吧:我目前主要用C和C++, Matlab, DDK, IFS, OpenGL, DirectX SDK是我的伴侣。在各种“妓女”中,我最喜欢C++, 她风情万种,让人欲罢不能。
最后向大家推荐一款经典的Game Demo: 3DMark2000(记住只能是2000,不是2001或2003)。那个是我迄今为止认为最优秀、最完美、最令人热血沸腾的3D游戏Demo。其精美的贴图、流畅的画面、伟岸的视角、再加上动感十足的背景音乐,让你身体内的每一颗神经细胞都有要爆炸的冲动,当之无愧是疯狂洋葱史无前例的鸿篇巨制。我不爱打游戏,但就是这个Demo让我当即发誓要拔剑杀入计算机图形学的辉煌宫殿,第二天我就上街把考研的复习资料买了回来,因为我知道,搞这玩意儿,不读研究生是不行的。3DMark2000到处都有下载的地址。用搜索引擎搜一下即可。
作共享软件就不要经常逛什么共享软件论坛,包括CSDN的这个论坛。这些论坛对你的成功并无多大帮助。要留心你的目标客户关心的论坛。另外我想对大家说的是:机会难得,当你还在犹豫的时候,别人已经走在成功的路上了。作共享之前一定要认真客观地评估自身的能力,要是你没有3年以上实际的软件开发经验,并且在某一个方面有丰富的开发经验,那么赚美金只能是一个美好的梦想而已。你最好有这样一种自信,在我的那个领域,我了解所有最前沿的技术,并且知道目前的问题在哪里。哪些问题急需解决,竞争对手做到了什么程度。不专注于技术就不要做软件,更不要做共享软件,看看国外的共享软件,哪怕是一个小小的屏保软件,人家都可以做得美轮美奂,你知不知道背后蕴藏着多少高难技术?在IT领域,技术就是王者的权杖!千万不相信什么技术不如市场、不如管理的谬论!我并不是一个共享软件的布道者,我相信并承认绝大多数的共享软件作者都没有赚到钱,但这个事实并不能掩盖很多人赚到了钱的事实,而且,这些人赚到的钱远比你想象的要多得多。这贴子发不发我也考虑了很久,因为我也才刚刚起步,我也害怕像周弈那样引来一大堆竞争者。我的软件虽然一般人无法模仿,但有能力模仿的人实在太多。真正赚到了大钱的作者都在保持沉默。真正的成功者都是勇于投身到一个普遍都不看好的新兴行业中去那类人。普遍都不看好意味着竞争者少,竞争者少,市场机会就会多得多,利润也会丰厚得多。这就是成功的秘诀。一个新兴行业有没有前景,需要自己用心去做独到的分析,绝不能人云亦云,独到的眼光是成功者与普通人的根本区别。例子就不需要我列举了。这个帖子我就不再参与讨论了。感谢大家的鼓励与参与。
技术门槛要高,市场嗅觉要灵敏,英语要精通,重点放在国外,一个月挣20万也不是什么梦想。多的我不说,半年前我还对共享软件的前景半信半疑。现在我只有一个感觉,“I find a gold mine!!!”记住:技术是最基础的,也是最重要的,不要妄想光靠市场手段去撬开财富之门。你的技术要不容易被复制,同时有购买力的需求者要足够多。互联网上的市场营销手段没有什么秘密,大家都做得来也做得起。重点放在一个有前景、有门槛的技术支点上。
真实经历,肺腑之言,姑且信之。
PS:我目前硕士研究生在读。三年的SCSI设备驱动程序开发经验。目前重点在计算机图形学。
我给大家介绍一位名不见经传的共享软件大富翁:王培兵(音译:Wang Peibing)。这位老兄是闷声发大财的典型。他从1995年就开始做共享软件。资格比周奕老多了,其个人资产早就超过*********了。周奕只不过是为数极少的,愿意将自己暴露在大庭广众之下的共享软件作者。大家可以去王培兵的网站看一看,把他的软件下载下来观摩观摩,自己去判断一下他的软件销量和收入,要知道,他的软件在他的那个领域可是世界顶尖的。没有对技术的潜心专注,做得出这样的软件吗?国内的什么优化大师之类的软件蒙蔽了许多人的眼睛,使人认为共享软件就只是这样些中学生都可以做的东西。
to All:
希望大家不要继续在我是否真的挣了20W/M这个问题上纠缠了。OK? 好像我没有反复强调这一点吧!况且做共享不像上班,每个月的收入是固定的。共享收入是有多有少,还有一点就是一个软件的市场容量是有限的,当一个软件的注册量达到一个峰值以后就会下降,这就要看你怎么升级了。 另外几个月前我才动手做的确是事实。但是绝非从头开始研究技术。做这个东西的想法我至少想了半年,并且在这半年中把所有的技术难关打通。完成之后我有怀疑这东西的前景可能不大,因为用户面很窄。所以我又想过搞一个用户面很宽的傻瓜型刻录软件。但面对Nero和Roxio的虎视眈眈,我放弃了。最后还是回到这个软件上来。从动手到发布软件,我只用了6天时间。要知道我之前已有三年的底层开发经验和一定的客户问题解决经验。我敢打赌,任何一个非常成功的共享软件作者在做共享之前都必定在某一个领域专注地进行过职业化软件开发。大学刚毕业,没有任何工程开发经验就想做共享成功,我认为极难。
另外不怕你们笑话,我至今没有办收费网站,用的是国外免费网站,从来没有提交到Download之类的站点,只在我的主页上有下载连接。当然,我非常清楚我的客户一般喜欢访问那些新闻组和论坛。而且我在他们印象中很有信誉。我再说一句,我搞的东西,没有在国际性公司里面呆过的人很难想得到,因为中国人没有这么做的习惯,但这种情况正在改变。
王培兵赚了多少钱我不清楚,所以用了一连串的*代替,我从来没说他赚了上亿的钱,我估计你是数的**个数吧!呵呵。作者的名字我是不能确定,但从Wang Peibing来判断,它是中国人无疑,另外可以用Google搜索Wang Peibing。你就可以知道更进一步的答案。
关于3D Mark,熟悉它的人都应该知道,它在每一个版本中都附带了一个Game Demo。很多人疯狂追捧3D Mark并非由于它的硬件测试效果,而是它那匠心独运3D动感演示。
关于交税的问题,反正我是不会主动去交。如果中国税务官的素质赶上了联邦调查局的FBI,那么我还是会老老实实地去交税。
国外的免费网站服务都很好,就服务而言,我想比国内的收费网站要好。我刚搞不久,而且我的软件很小,所以一直没有购买国外收费网站。不过下一步我还是要购买收费网站。免费网站对于共享软件新手锻炼还是有用,毕竟没有初期的投资压力。不行也没有太多损失。但是你的软件要很小才行,不能动辄几十兆,没有免费网站可以提供这么大的文件下载服务。
用的是freeweb,没有自己的域名,用的是二级域名。因为帮助文件里的网站连接是这个,所以一直没有改动。新版本出来之后才会申请一个国际域名。
freedomshi(我的酷震惊了党) 是一位破解高手,请参见他的帖子:
既然是高手,那么本人想讨教一下您的破解本事。我的软件是这样加密的,请问你如何破解?
我有一个驱动程序是在系统引导的时候加载进来的,其引导优先级比任何调试器都高,驱动程序的功能就是每隔1秒检查1号中断是否存在(INT 1),也就是说我检查是否存在任何种类的调试器,如SoftICE,TRW等等。一旦发现有调试器存在,我就退出程序。同时,我还有另外一个驱动程序,负责提取用户的机器指纹,比如硬盘物理序列号,根据用户的机器指纹和注册码,我在内核进行比对。在没有任何调试其存在的情况下,请问你如何跟踪我的比对过程?除此之外,我的这两个驱动程序还要相互检验对方是否存在,并相互检验对方的CRC校验值(采用变形CRC算法),你又怎么爆破?除了这两个驱动程序之外,我还有一个功能驱动程序负责所有的真正操作实现,这个功能驱动程序在执行每一步操作之前都要和另外两个驱动程序进行一连串通信(通信协议只有我知道),如果通信过程中有任何不正确的响应,我就会终止程序。请问你如何破解?
如果你能够在这个帖子里把破解思路提供出来(希望你不要对我说:没有源文件我破解不了),那么我会像所有的网友承认:我对VC只懂一点皮毛,对驱动程序更是只懂得一点皮毛,我必须向freedomshi(我的酷震惊了党)拜师学艺,并永远退出CSDN论坛。 February 15 《Java与模式》阎宏博士的《Java与模式》一书书序有句话讲的非常精彩: “软件是人类心灵和智慧在虚拟空间中的投射。软件的性能就是人类能力的扩展,它的活动就是人类心智活动的反映。软件直接表达出设计者对目标的理解,对用户的期待,以及对自己的定位。...一个设计师驾驭软件系统的能力,就像他统治一个虚拟王国,或者主宰一个虚拟世界的能力一样;而这些软件设计中的问题,其实就是人类自身心灵和智慧的不足在镜子中的倒影。它反映出的,不仅仅是技术的不足,还包括了科学、艺术、心理和哲学的不足。” 《代码大全(第2版)》集萃《代码大全》是一本写得很有意思的书,既有生动的比喻,偶尔也有夸张的表达,另外作者还时不时开开玩笑,读起来一点也不枯燥。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=598164 给计算机系学生的建议给计算机系学生的建议 作者: 周思博 (Joel Spolsky) 译: Chen Bin 2005年1月2日 虽然大概一两年前我还在夸夸其谈桌面应用程序是将来的潮流,大学生们现在还是偶尔向我请教职业发展的问题。所以我把我的建议写下来。以供学生们阅读,嘲笑,忽略。 大多数锐气十足的学生从来不向前辈征求意见。在计算机科学领域,这样做是正确的。因为前辈们很可能说些“在2010年前,市场对于那些只会敲击键盘的代码工人的需求将会超过一亿(因此前景是乐观的)”,或者诸如“Lisp语言现在真的很热门”。 我和那些前辈也差不多,当我给别人建议时,实际上我不知道自己在说些什么。我是如此的落后于时尚,以至于连AIM也搞不明白,而不得不使用 email(恐龙时代的产品,在那个时代,音乐是刻在扁扁的的圆圆的盒子上,噢,那种盒子叫cd)。(译者按:我认为祖儿这里在说反话,后文很多地方作者都在说反话,读者尽量理解这种美国式幽默吧。) 所以你最好不要理睬我将要说的,你应该立刻去制作某种在线交友软件。 然而, 如果你喜欢编程,那就感谢上帝吧:你属于幸运的少数人,这些人喜欢工作,他们的工作可以保证他们能过上舒适的生活。大多数人没有这么幸运。对大多数人来说,工作是不愉快的,忍受工作的目的攒钱,是为了在年满65岁退休后能过上自己想过的生活。如果他们想过的生活不需要灵活的膝盖,明亮的眼镜,轻盈的脚步的话。 现在让我回到主题,我将提供一些建议。 好了,不罗嗦了,下面就是Joel给计算机系学生们七条免费的建议: 1 毕业前学会写作 2 毕业前学会C语言 3 毕业前学习微观经济学(microeconomics) 4 不要因为某些非计算机课程枯燥无趣就敬而远之 5 学习有大量编程实践的课程 6 不要担心工作都跑到印度去了 7 好好做夏季毕业实习 让我逐条解释这些建议。但解释之前我要说明一下,如果因为这些建议是Joel的建议你就打算无条件地接受,以至于连我的理由都想跳过,那么你就太单纯,太容易被别人骗了。如果你是那种单纯的人,我还要给你第八条建议,找心理医生咨询一下如何培养自信(self-esteem)。 毕业前学会写作 如果Linus Torvalds不懂如何布道的话,Linux会成功吗? 正象每一个黑客,Linus精通写作,他知道如何准确地在email和邮件讨论组中使用书面英语表达自己的思想,所以他能够从全世界召集大量志愿者为Linux工作。 你听说过最近风靡全世界的极限编程(Extreme Programming)吗? 即使你不懂什么是极限编程,你至少听说过这个词。为什么?因为宣传极限编程的人都是天才的作者和演说家。 就看看你身边的那些小型的软件开发组织吧,最有权力和影响力的人是那些可以用自信,准确,舒适的英语交流的人。好吧,我承认这些人也许言过其实,但是你无可奈何。 一个合格的程序员和一个伟大的程序员的区别不在于知道多少种编程语言,不在于他们是喜欢Python或者Java,而是在于他们是否擅长表达。他们能够说服,所以他们获得权力。他们能够写清楚明白的评论和接口文档,所以他们使得别人不用重写,而可以重用他们的代码,否则他们的代码就是毫无用处的。他们也能够写出清晰的用户手册,于是最终用户可以理解他们的代码是做什么用的,明白了他们的工作的价值。sourceforge埋葬着许多精美的代码,这些已死的代码无人使用,因为代码的作者很少写(或者根本不写)用户手册。 我不会雇佣一个不懂写作的程序员。如果你擅长写,你就很容易找到工作,紧接着你就会被要求写技术规格文档,这意味着你已经被管理层注意到了。 大学里有一些课程,要求你做很多的写作练习,不要犹豫,赶快参加这些课程。不要错过任何要求你每周或者每天练习写作的课程。 给自己建立一个网络日志(weblog)。在上面写的越多,你会写地越容易。写地越容易,你就写地越多,这是一个正向地循环激励。 毕业前学会C语言 我可没有说是C++。虽然现在用C的工作不多,但是掌握各种编程语言的程序员事实上用C来交流(lingua franca);更重要的是,C比某些“现代”语言更接近机器语言。我不管现在大学里在教什么流行的垃圾语言(trendy junk),你至少得花一个学期接近机器。否则,你不可能使用高级语言写出高效的代码。这意味这你不会有机会写编译器或者操作系统,也许这是更好的编程工作;别人不会相信你能够为大项目设计架构。无论你知道多少高级的控制结构,知道如何进行错误处理,如果你不能解释为什么while (*s++ = *t++);的意思是进行字符串拷贝(而且对你而言这是世界上最自然,最易懂的代码),那么你就是在对编程一窍不通的状态下编程(programming based on superstition)。打个比方,就好比一个医生不懂基本的解剖学就给你开处方,如果你问这个医生为什么开这种药而不是那种药,他会说因为医药销售代表说这种药有用。 毕业前学习微观经济学(microeconomics) 我个人对经济学的一些理解:在经济学刚诞生的时候,它只是局限于有限的领域,在这些领域中人们发展和发现了很多有用的理论和很有趣的事实,这些理论和事实是从逻辑上是可以证明的。然后, 经济学开始走下坡路了。 “有限的领域”就是微观经济学,它对于商业可以进行有意义的指导。然后,事情就开始变糟了(以下部分你可以跳过),你接下来碰到的是讨论诸如失业率和银行利率之间关系之类东东的宏观经济学,很多时候宏观经济学讨论的理论都是无法证明正确或者错误的。接下来事态更加恶化了,经济学中的一些领域开始和物理学搭界,嗯,学习物理经济学也许你帮你在华尔街找到好工作。言归正传,无论如何请学习微观经济学,因为你需要知道什么是“供给和需求”,什么是竞争优势,什么是净现值(NPVs,Net Present Value,指项目经济寿命期内现金流入总和与现金流出总和之差额),什么是折扣和边际效用(discounting and marginal utility),如果你真想了解商业是如何运作的话。 为什么计算机系的学生要学习经济学?因为理解商业基本规律的程序员对商业界来说是宝贵的程序员。我记得无数个程序员使我非常沮丧,因为他们在代码中坚持某些疯狂的设计,这些设计从技术上来说,完美;从资本主义的角度来看,发疯。如果你是一个理解商业的程序员,商业会给你回报。这就是你要学习经济学的原因。 不要因为某些非计算机课程枯燥无趣就敬而远之 首先,你需要让你的学分平均分(GPA)看起来漂亮点。 不要低估学分平均分的威力。很多雇主和人事经理(包括我)阅读简历时首先看成绩,为什么?因为这代表了大部分的教授在很长的时期内对你的学业的一个平均的看法。托福成绩(美国的托福大致相对于我国的高考中的语文考试)?哈,几个小时的测验而已。当然学分不一定说明了一切,如果你修的是很难的课程,学分就有可能低一点。即使你的学分平均分很高,我还是要看各科分数是否一致。如果你应聘的是软件工程师职位,我为什么要关心你在大学里学的欧洲历史课程分数的高低呢?毕竟,历史很枯燥。那么要是你要编程的部分也是很枯燥的,你是不是要放弃了?事实上,有时候编程是枯燥的,如果你不能忍受编程中的枯燥部分的话,你就不能完成整个工作,雇主不愿意雇佣你这样的员工。 我在大学里修过一门叫做“文化人类学”的课程,因为那时候我也搞不懂我到底要学什么,听起来这么课程可能还蛮有意思的。 出乎我的意料。我不得不阅读大量讲述巴西热带雨林中的印第安人如何如何的书,让人真昏昏欲睡。听老师讲解也好不到哪去,我发觉看教室外的草如何长更有趣点。土著人如何烤蕃薯藤和我有什么关系?我为什么要去讨论如何烤蕃薯藤?但是期中考试马上就要到了,我暗暗下定决心,如果我能跨越“文化人类学”这个障碍,以后也许没有什么能难倒我了。我决心得A并且得到了A。以后当我不得不坐在林肯中心,连看18个小时的瓦格纳的《尼伯龙根的指环》时,我终于明白我为什么要学习“文化人类学”了,相比之下,我也能忍受这种歌剧了。 学习有大量编程实践的课程 我还记得决定不去读研究生的那一刻。 就是在学习《动态逻辑》(Dynamic Logic)这门课的时候,我记得是耶鲁的Lenore Zuck(一个天才的教师)教的。 修这门课的时候,我已经不再是雄心勃勃了。我可不指望在这么课程中得个A,我梦想的是混个及格。逻辑本质上是很简单的:如果结论正确,前提必须正确。例如,如果“所有读书好的人都能找到工作”并且“张三的读书好”,那么“张三能够找到好工作”。就这么简单。 但是我要学的是动态逻辑, 动态逻辑和一般逻辑差不多,但是要考虑时间因素。例如,“在你开灯之后,你可以看见你的鞋子”加上“过去灯被打开了”意味着“你现在可以看到你的鞋子” 动态逻辑学对于象Zuck教授这样的天才理论家来说非常诱人,因为这门学科的知识也许可以用来证明计算机程序是否正确。我记得在第一堂课上,为了证明“如果你有一盏关着的灯”并且“你按了一下开关”,那么“现在灯亮了”,Zuck教授就使用了两黑板加上边上的墙壁。 证明过程难以置信的复杂。我觉得如此复杂的证明过程很可能会有小错误,但是我没办法证明证明过程本身是正确的。事实上,写在黑板上的证明跳过了很多中间步骤,许多步的证明使用了演绎法,使用了归纳法,以及一些研究生才懂的证明方法。 作为课后作业,我们需要证明以下命题:如果灯过去是关着的,并且现在它是开着的,请证明有人按了开关 我真的试着证明它了。 我花了许多小时,试图证明这个命题。 在无数个小时的努力后,我发觉Zuck博士的原始的证明有一个逻辑上的错误,也许这个错误是我的笔记抄错了,我不知道。于是我终于认识到,如果为了证明一个简单的问题需要花三个小时写下几黑板的证明步骤,再考虑到这个漫长的证明过程中可能会引入种种错误,那么这种机制是不可能用来证明任何有趣的东西的。 对动态逻辑学家来说,有用是无关紧要的。 于是我退出了那门课程,发誓永远不会去读计算机系的研究生。 这个故事的主题是,计算机科学和软件开发不一样。如果你非常非常幸运,你的学校会开软件开发的课程。然而,他们也可能不开这样的课程,因为名牌大学认为教授实用技巧的事情应该留给那些二三流的技术学院或者某些释放犯人再安置计划。你可以在任何地方学习编程,我们是耶鲁大学,我们培养未来的世界领导人。你付给耶鲁16万美元的学费就是为了学习如何写循环语句吗?你把耶鲁当成什么地方了?Java速成班吗?哼。 问题在于,我们没有一个专业的学校教授软件开发。所以如果你想成为一个程序员,你可以进计算机系读书(当然计算机科学也值得学习),但是你学的不是软件开发。 如果走运的话,你可以在计算机系发掘出很多有大量编程实践的课程,就象你能在历史系找到很多提供写作水平的课程一样。这些课程绝对值得学习。如果你喜欢编程,不要为你不能上教授诸如lambda算子或者线性代数的课程沮丧,在那里你连摸一下计算机的机会都没有。找找看有没有名字中带有“实习(Practicum)”字样的课程,不要在乎Practicum是个拉丁语。有用的(无奈状)课程就是需要在课程名中塞一些拉丁语,才能从那些装模作样(Liberal Artsy Fartsy)管理层的眼前蒙混过关。 不要担心工作都跑到印度去了 啊哈,如果你人在印度,你就无所谓了。愿你享受外包带来的工作机会并顺祝身体健康。 但是我听说现在愿意读计算机系的学生越来越少了。据说原因之一是工作机会都跑到印度去了。我认为这种观点是大错特错。首先,根据眼前的商业时尚选择事业是非常愚蠢的。其次,即使工作真的都跑到印度和中国去了,编程对于其他有趣的工作来说都是极好的训练,例如业务流程工程(business process engineering)。第三,无论是在美国还是印度,好程序员仍然是非常短缺的,请相信我。当然,现在有许多所谓搞IT的人吵吵嚷嚷地说就业形势不好,工作太难找。但是事实如何?恕我直言,好程序员找工作还是很容易。第四,你还有更好的主意吗?历史系的毕业生找工作更容易吗?去法学院如何?据我所知,99%的律师恨他们的工作,每分钟都恨。而且律师一周工作90小时。正象我以前说过的,如果你喜欢计算机,那么感谢上帝,你将属于全世界人中的极少数的幸运儿,这些幸运儿热爱他们的工作,而且工作也可以提供体面的收入。 实际上,我也不认为报考计算机系的人越来越少有多大的意义。相对于internet泡沫时期大家都疯狂的往计算机系挤,现在的人数回落只是回归正常水平而已。在泡沫时期,我们这个行业涌入了许多对计算机毫无兴趣的南郭先生,他们梦想的是拿着高的吓人的薪水加诱人的期权,然后年轻退休。谢天谢地,现在这些人都跑了。 好好做夏季毕业实习 明智的招聘者知道热爱编程的人初中就为当地的牙医写数据库程序,高中就在计算机夏令营教课,为校报规划网站,在某个软件公司做实习。他们找的就是这样的人。 如果你喜欢编程,你最容易犯的最大的错误就是“有活就接”。我知道,其他专业的学生假期打工可顾不了这些条条框框。但是你不一样,你拥有一种特殊技能,不要浪费它。当你毕业时,你的简历上应该已经罗列一堆的编程工作实习。让其他人去“为大家提供租车服务”(Tom Welling是个例外,他业余时间去演超人)。 最后,为了让你的生活更容易一点,也为了说明我这篇文章是能够自圆其说的,我将给我自己的公司的做做广告。我的公司Fog Creek软件公司,可以为大学生提供软件开发方面的实习机会。在我们公司,你可以学习“编码,开发,商业”。去年在我们公司实习的Ben就是这么说的,可不是因为我给他什么好处他才这么说。二月一号截至,抓紧机会吧。 如果你听了我的建议,你就会太早地卖掉Microsoft公司的股票,拒绝Google提供的职位,原因是因为你已经拥有自己的公司了。到时候可别后悔,更别怪我,呵呵。 本文最先用英文出版,题为 Advice for Computer Science College Students 原文地址:http://chinese.joelonsoftware.com/Articles/AdviceforComputerScienceC.html |
|||||
|
|