接案市场,缺乏一致的定价方式
熟悉编程的人,或多或少,都曾经帮人家写过一些程式吧!其实我发现,编程的世界里面,根本没有一个正式的市价可谈。我曾经问过我的朋友,某些程式要开价多少,他的回答是:“你能拿多少,就开多少!”
也就是因此,一个普通的程式,有人可以开两百元,有人开到一千元!总之混乱之极,毫无规律可言。这样不但对于客户不公道,对于写程式的人,也一样不公平,盈利全都归于你是否愿意狠狠地敲诈顾客一笔而已。
1) 业余的程式人员,开价必定会低于专业的编程公司(software house):毕竟,办公室的租金省了,固定的薪水支出省了,正版的开发软件也省了。
2) 不能以开发时间来决定酬劳:有的人功力差,简单的程式也要花上一个月,这样决定价格对于顾客是很不公道的。
3) 开发人员的成本应该是时间来衡量:基本上,程式开发除非要买参考书及上网之外,几乎不需任何时间之外的任何成本,尤其是现在 Streamyx开始普遍,上网费用每月最多几十元。
4) 不能以供需情况来决定酬劳:顾客不会理会你用什么程式来开发,他们不会懂什么是 DELPHI,VB,VC,他们所要看到的只是效果。一千人中可能只有你能做到用VC来开发WINDOWS 程式,但如果效果没有差别,那也不应该拿更高的酬劳。
造成价格混乱,还有一个原因,就是程式重制的成本几乎为零。
我们有两个程序员,一个是程序员A,一个是程序员B,程序员A曾经在学习的时候开发过一个资料库显示的程式。有一天要客户要他们报价,程序员A只需要修改一下之前的程式,就能再次运用,程序员 B 则需要重新开发。很显然,在两人都是业余的情况下,前者的报价一定远远比后者低。
haryewkun:想问您一个问题,如果想学习编程技术的话最好先学习那些必要的知识?还有,目前学习哪一类语言比较合适初学者?
liuzisen:看你学习编程的目的是什么。如果目的是为了接案,那么你必须对商业结构、管理、data entry的习惯有所了解。
编程本身,其实是没有用途的。它只是一种“语言”,一种实现的方法。
好像我们学中文、英文,编程功力高,就等于中文语文能力好,可以玩弄文字花样。但最重要的,还是你打算写一些什么文章、小说。
一般人都是在写作的过程中,文笔慢慢进步的。编程也是这样。
haryewkun:如果是应用程序开发,比如用来做游戏的或者做网站的话,需要学习哪些基础知识和语言呢?
liuzisen:应用程序开发、做游戏、做网站,这其实是三个不一样的领域了。
或者这么说,编程语言其实可以做的事情很简单,if…then…else决定了一切流程。所有程序,都不会超出这个范围内。
所谓编程,其实就是输入“如果这样,那就怎样”、“如果那样、那就怎样”。
如果click这个按钮,它会跳出一个视窗,上面写着一行字。如果click那个按钮,它会把某怪物的HP从二十减到零……
你可以设计一个游戏,让用户猜测一个数字,如果用户猜对了,你就说对;如果用户猜错了,你就说错。
这样也算是一个完整的“软件”。即使是WOW,它做的东西和上面所说的也没有差别,只是WOW比这个复杂千万倍。
编程不难,难在你到底要设计一个怎样的游戏、软件。你要训练自己,把抽象化的游戏感觉,可以具体化成为数据及一条条的程式。
所以很多高手都会说,用什么编程语言(programming language)对他们来说并不重要。
只要掌握住了“抽象的感觉具体化成数据”的能力,他们随时可以在不同语言间切换。
haryewkun:恩,也就是说,程序设计本身就是一种把自己的想法用另外一种语言描述出来的意思(呵呵大概),所有的编程语言虽然不尽相同,但是他们都可以用来描述程序的构成。不过,我还是想问一下,程序设计对于基础知识有没有什么硬性的要求?比如:英语、数学、几何等等……
liuzisen:差不多就是这样。更精确的来说,是把自己的想法,用数学及逻辑描述出来。
英语……能够看得懂php之类的原文手册应该是Ok了。如果是做游戏的3D引擎,那么肯定需要懂几何学。
编程不需要复杂的数学,越复杂的数学,实现起来越慢。能够用加减实现的算法,绝不会用乘除来实现。
编程更注重逻辑,比如 for ($i=1;$i<1000;$i=$i*2) 会总共计算几次之类。只要你心里算多一次或者算少一次,就会造出一个bug。
当然上述只是我的看法,让高手们见笑了。
了解!谢谢大哥~~不过,目前有什么好的编程入门方法么~~
liuzisen,像版主所说的,编程更看重的是逻辑。
如果有心要打好基础,找个“古典”热门的语言(如C、C++、Java等,因为资料多,问人也比较容易),然后跟着书里的教程走和做大量的练习。
编程语言大都有共通的地方,如variables, operators, expression, statements, control flows(谁可以翻译这些?)等。然后就可以尝试看object oriented的concept。
网上有很多编程教学,Java的看[url=http://java.sun.com/docs/books/tutorial/]这里[/url]。
个人建议先避免从web programming着手,除非天资过人,不然又多一个不会变通的programmer。
WK:谢谢,不过,难道那些C、C++、JAVA之类的语言现在已经不能用了么?还是说新的语言已经超过他们太多了?
顺便问一句:所谓的programmer到底是什么意思……谢谢!
C、C++、Java还在用啊,说他们“古典”因为它们
1. 古:出现到现在已经很久了(C自1972年、C++自1979、Java自1995年);
2. 典:到现在还在广泛的使用着。
新的语言会有它们没有的特点,而它们也随着时间的变迁而演变。
Programmer就是指写程序的人啊(编程员)。
有空多拜访谷歌大神和维基百科吧。
WK:谢谢,主要是听你说programmer这个词儿的时候用的好像是贬义词……,看来我是误会了~~
wk:想当年,自己接触的编程语言是BASIC、Turbo Pascal。后者的书,我到现在还收着呢。真是一个漫长的岁月……