熟悉編程的人,或多或少,都曾经幫人家写過一些程式吧!其实我发现,编程的世界里面,根本没有一个正式的市价可谈。我曾经问过我的朋友,某些程式要开价多少,他的回答是:「你能拿多少,就开多少!」
也就是因此,一个普通的程式,有人可以开两百元,有人开到一千元!总之混乱之极,毫无规律可言。这样不但对于客户不公道,对于写程式的人,也一样不公平,盈利全都归于你是否愿意狠狠地敲诈顾客一笔而已。
1) 业余的程式人员,开价必定会低于专业的编程公司(software house):毕竟,办公室的租金省了,固定的薪水支出省了,正版的开发软件也省了。
2) 不能以开发时间来决定酬劳:有的人功力差,简单的程式也要花上一个月,这样决定价格对于顾客是很不公道的。
3) 开发人员的成本应该是时间来衡量:基本上,程式开发除非要买参考书及上网之外,几乎不需任何时间之外的任何成本,尤其是现在 Streamyx开始普遍,上网费用每月最多几十元。
4) 不能以供需情况来决定酬劳:顾客不会理会你用什么程式来开发,他们不会懂什么是 DELPHI,VB,VC,他们所要看到的只是效果。一千人中可能只有你能做到用VC来开发WINDOWS 程式,但如果效果没有差别,那也不应该拿更高的酬劳。
造成价格混乱,还有一个原因,就是程式重制的成本几乎为零。
我们有两个程序员,一个是程序员A,一个是程序员B,程序员A曾经在学习的时候开发过一个资料库显示的程式。有一天要客户要他们报价,程序员A只需要修改一下之前的程式,就能再次运用,程序员 B 则需要重新开发。很显然,在两人都是业余的情况下,前者的报价一定远远比后者低。
也就是因此,一个普通的程式,有人可以开两百元,有人开到一千元!总之混乱之极,毫无规律可言。这样不但对于客户不公道,对于写程式的人,也一样不公平,盈利全都归于你是否愿意狠狠地敲诈顾客一笔而已。
1) 业余的程式人员,开价必定会低于专业的编程公司(software house):毕竟,办公室的租金省了,固定的薪水支出省了,正版的开发软件也省了。
2) 不能以开发时间来决定酬劳:有的人功力差,简单的程式也要花上一个月,这样决定价格对于顾客是很不公道的。
3) 开发人员的成本应该是时间来衡量:基本上,程式开发除非要买参考书及上网之外,几乎不需任何时间之外的任何成本,尤其是现在 Streamyx开始普遍,上网费用每月最多几十元。
4) 不能以供需情况来决定酬劳:顾客不会理会你用什么程式来开发,他们不会懂什么是 DELPHI,VB,VC,他们所要看到的只是效果。一千人中可能只有你能做到用VC来开发WINDOWS 程式,但如果效果没有差别,那也不应该拿更高的酬劳。
造成价格混乱,还有一个原因,就是程式重制的成本几乎为零。
我们有两个程序员,一个是程序员A,一个是程序员B,程序员A曾经在学习的时候开发过一个资料库显示的程式。有一天要客户要他们报价,程序员A只需要修改一下之前的程式,就能再次运用,程序员 B 则需要重新开发。很显然,在两人都是业余的情况下,前者的报价一定远远比后者低。
寻找适合写模拟类软件的程式语言





编程本身,其实是没有用途的。它只是一种“语言”,一种实现的方法。
好像我们学中文、英文,编程功力高,就等于中文语文能力好,可以玩弄文字花样。但最重要的,还是你打算写一些什么文章、小说。
一般人都是在写作的过程中,文笔慢慢进步的。编程也是这样。
或者这么说,编程语言其实可以做的事情很简单,if...then...else决定了一切流程。所有程序,都不会超出这个范围内。
所谓编程,其实就是输入“如果这样,那就怎样”、“如果那样、那就怎样”。
如果click这个按钮,它会跳出一个视窗,上面写着一行字。如果click那个按钮,它会把某怪物的HP从二十减到零……
你可以设计一个游戏,让用户猜测一个数字,如果用户猜对了,你就说对;如果用户猜错了,你就说错。
这样也算是一个完整的“软件”。即使是WOW,它做的东西和上面所说的也没有差别,只是WOW比这个复杂千万倍。
编程不难,难在你到底要设计一个怎样的游戏、软件。你要训练自己,把抽象化的游戏感觉,可以具体化成为数据及一条条的程式。
所以很多高手都会说,用什么编程语言(programming language)对他们来说并不重要。
只要掌握住了“抽象的感觉具体化成数据”的能力,他们随时可以在不同语言间切换。
英语……能够看得懂php之类的原文手册应该是Ok了。如果是做游戏的3D引擎,那么肯定需要懂几何学。
编程不需要复杂的数学,越复杂的数学,实现起来越慢。能够用加减实现的算法,绝不会用乘除来实现。
编程更注重逻辑,比如 for ($i=1;$i<1000;$i=$i*2) 会总共计算几次之类。只要你心里算多一次或者算少一次,就会造出一个bug。
当然上述只是我的看法,让高手们见笑了。
如果有心要打好基础,找个“古典”热门的语言(如C、C++、Java等,因为资料多,问人也比较容易),然后跟着书里的教程走和做大量的练习。
编程语言大都有共通的地方,如variables, operators, expression, statements, control flows(谁可以翻译这些?)等。然后就可以尝试看object oriented的concept。
网上有很多编程教学,Java的看这里。
个人建议先避免从web programming着手,除非天资过人,不然又多一个不会变通的programmer。
顺便问一句:所谓的programmer到底是什么意思……谢谢!
1. 古:出现到现在已经很久了(C自1972年、C++自1979、Java自1995年);
2. 典:到现在还在广泛的使用着。
新的语言会有它们没有的特点,而它们也随着时间的变迁而演变。
Programmer就是指写程序的人啊(编程员)。
有空多拜访谷歌大神和维基百科吧。