独立游戏开发者开发者分享经验:为什么要学游戏编程

2017年1月 总版技术专家分月排行榜第三
2017年2月 PHP大版内专家分月排行榜第一2017年1月 PHP大版内专家分月排行榜第一
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。作为独立开发者,有哪些可以分享的经验?_无心_新浪博客
作为独立开发者,有哪些可以分享的经验?
转:/question/
独立开发者或个人开发者,即
independent developer 或 indie developer.
也就是独立软件或独立游戏的开发商。
,共享软件开发者, SOHO一族
谢邀。我曾经有9年做独立开发者,开发shareware,主要销往欧美,客户中不乏五角大楼,美国海军学院,微软,惠普,
美国众多州政府等等。(很可能有人觉得我在吹牛,完全理解:)。我的软件网站有几个,有个知道人比较多的,在Web Log
后来有了孩子后就出来工作了,以CTO身份参加过一次移动互联网创业。现在因为家人身体原因,离开了北京在珠海工作,
搬家过程可参见搬家珠海。
下面分享一下做独立开发者的经验,想到哪里就写到哪里,缺乏条理,见谅:
不要总做外包,要有自己的产品外包无论价格多高都还是苦力钱,要形成自己的产品。
每年给自己制定学习目标和计划做独立开发者后,就失去了和同事们交流学习的机会,而作为Programmer不停的学习新技术是必须的,所以这方面要特别加强。
工作计划可以和大众的节奏错开做独立开发者最大的好处就是时间的自由。很多地方,例如美术馆,电影,旅游胜地,在周末人满为患,周一到周五则几乎空无一人。
所以我常常是周末工作,周一到周五抽一到两天休息。做独立开发者的时候,黄金周是绝对不出去玩的,都是在家工作,旅游淡季的时候出去玩。
尽量购买或外包一些非核心工作现在网上有很多成熟的各种服务,比如template
monster的网站模板,可以让你简单填写内容就能搞出一个很漂亮的网站。 这种工作不需要自己做,尽量外包或直接购买。
自己做最核心的东西。 但这个核心并不等同于核心技术, 而是你的核心竞争力。
当你的核心能力是整合能力的时候,甚至所谓的核心技术都可以外包。
要养成规律的生活习惯如果生活没规律,工作也就缺乏计划性,那工作的拖延不可避免,拖延多了,人的状态,心气都会下降,最后形成恶性循环
养成体育锻炼的习惯体育锻炼一个是有助于保持身体健康外,对你保持心理健康,保持积极的心态很有帮助。
我在做独立开发者期间,养成了长跑的习惯,那9年的北京马拉松除了有次因为在国外没能参加外,其他全参加了。&
要重视社交生活对这9年的生活非常满意,如果要说有什么不足的话,就是开始没太重视社交,后来才开始重视。如果有机会重新来过,一定会更积极的参加社交活动。我这个人原先就比较孤僻,
自己一个人工作后,就更有点离群索居了,和客户和朋友都是靠email,IM联系。
虽然经常去旅游,甚至一年有半年在路上度过,但大多是自己一个人背包到处转。过了几年才意识到问题,感觉自己脱离开社会太远了,才开始在亲友帮助下重新开始积极参加各种社交活动。关于社交活动有几个建议:
多参加积极向上的群体的活动在北京的时候,长期参加了阳光志愿者,后海龙舟队,古逸读书会的活动。这些组织,尤其是阳光志愿者,人们都很有正能量,又都很友善,认识了不少很好的朋友,他们是我这辈子最好的财富。
和积极向上的人多交流有助于自己心态的调整。
觉得不擅长沟通可以参加培训班我不擅长与人当面沟通,于是就总是有意无意躲避与人沟通,结果越来越糟糕,做独立开发者后就更愈演愈烈。
后来听从朋友的建议,参加了一个关于如何沟通的培训班,确实有效果,关键是从此树立了不惧怕当面沟通,重视沟通,积极沟通的态度
建立自己的Network(应该叫关系网,但中文的这个词有点贬义)不要以为个人开发者不需要Network,其实应该是更需要,这个道理我今年才明白。
多参加技术聚会一个对学习新技术有帮助,还有就是能认识一些朋友,有助于拓展自己的交际圈。
看楼主是深圳的,我去参加过深圳的Startup Grind认识了不少有趣的人,推荐。
、陈瑞怡、故事自己写&等人赞同
好像很少有人谈及华人独立开发者的海外生存情况,我来谈谈吧。我说的独立开发者是被其他公司以自雇合同形式工作,不是靠开发自己产品生存。独立开发者在欧美国家非常流行,我是一个全栈工程师,曾在伦敦和纽约从事freelancer开发工作(现全职于startup)独立开发者优势是报税自由,我经历的伦敦日薪大约300-450磅,纽约日薪500美金,可能有人更高,但我基本平均。报税上你需要一个注册快计师,然后一家自己的公司,我公司开在伦敦,公司资本1英磅。接下来猎头会与你接触帮你安排公司,一般合同为3个月起,如果工作顺利,项目基本都会继约,认识的朋友里有直接一家公司合同形式雇佣2年以上的。你的收入是以分红形式给自己,好处是美英的公司税都低于个人所得税,所以税收上是优惠的,缺点是有的公司不定时发工资,有的甚至3个月一结账,如果银行里钱紧张,是比较难受的。在做独立开发者的时候你还会碰到那种全球到处飞的开发者,多见于澳洲,与欧美之间,他们的目的是为了避税,因为你可以享受各地的免税区域,具体可以咨询你的报税师。工作方面,前台工作较多,但全栈能力很重要,因为公司很可能无人懂技术,需要你从服务器到维护各方面的控制另外
你的假期是没有工资的!你得要自己购买各种商业保险,公司不会给你买。还有什么,想到再说好了。-------来回答些问题每天工作没啥区别,但合同工的notice
period一般只有1天到1周,也就是你活干的不好,明天可能就让你滚蛋,我见过无数来3天就滚蛋的朋友,最牛一次上午来,下午公司就让他走了,因为他坦诚一个技术不会.但我感觉第一个月认真些干,问你行不行都说行,一般都能撑下去,因为雇佣你的一般不是技术类公司,他们只要看你做出的成果.工作类型大量为无超技术含量的前台工作,CSS/HTML/JS最多,java/C#/python/ruby各种活都要能干,手机android,iso都会些最好,行的话最好还能来个design,另外是各种做电商网站/企业网站的居多,或者有的项目吃紧人手不够,你会被叫去干.有时候买域名,买服务器的事都要你来决定,反正杂,就是重复重复,学不到什么东西每年的话要报个税,给自己放假是没有薪水的,放一周假感觉自己少赚了几千磅,都会感觉不太爽.伦敦或纽约项目的话太多了,如果linkedin上猎头多,一个项目快结束在linkedin上喊一声有活吗,电话立即被打爆,不用太操心..一般只有你干到太累想放假,没有你想干没活干的事发生.
,僵尸爱好者、独立游戏制作人
知乎用户、
、alex00zoe&等人赞同
排名第一的哥们说的很好,基本也是这个感触,谢谢了!&@崔英杰
&。独立开发2年以来比较深刻的有几点:
1&不要试图做所有的事。作为独立开发人一般都具有多面手的能力或者有自己搞定所有工作的倾向。但是时间长了就会发现这样会造成很大的时间浪费,很容易在某个工作面(尤其是会但是不太擅长的方面)的小细节卡住,而最后又发现这一个小点其实对整个工作没有太大的提升。我后来的方法就是把跨专业的工作(比如你专长是开发,但是也会用ps做点界面)控制在1-2个小时可以完成的范围,当做是工作之余的休息。而超过这个层面的工作就全部外包。
2&控制期望。独立产品本身就是自己理想化的实现,所以很容易纠缠于一些过于理想的东西。就我个人来说是做手机游戏开发,第一个作品最终没有开发完成。因为在设计之初添加了太多的东西远远超过独立开发所能承受的工作量。
3&坚持但是设置底线。独立产品的开发周期一般比较长(动辄以年计算)。随着时间的增加一些声音会随之而来,比如朋友会问:开发到什么程度了?怎么周期这么长?这么长期的投入是不是值得?久而久之你也会对自己产生疑问,这个时候唯有信念可以支撑你走下去。同样的,各方面的声音很可能是客观而务实的,那么在这种情况下就需要为自己设置底线,到底什么是不能越过的?给自己设置一个底线非常重要,可以是时间,比如投入2年时间。也可以是金钱,比如计划投入50w。超过自己的底线也许就真是该松一下的时候了。举个例子:拍《赛德克巴莱》的导演魏德圣一直想拍这个片子,但是最初的尝试在耗尽了130w的集资之后还是忍痛冻结了计划。后来在拍了《海角七号》后无论是能力还是资金都有了更好的准备才拍出了《赛德克巴莱》。所以坚持很重要,但是了解自己能坚持到什么程度在某种意义上说更为重要,因为那是你韧性的表现。
4&寻找同伴&相信我,找到同行的人会让你的计划更容易被实现,也能让你的视野更宽阔一些。
制杖青年朱纯
,独立游戏人
、青弦、Anchor娘&等人赞同
:)作为独立开发者来说,被开发过程虐的死去活来是必须的,非自己专业的难题也是家常便饭。不过我认为能克服的都不是问题,甚至解决问题的方法我觉得都不太重要,因为每个人有自己的行事风格。会成为问题的只有那些不能解决,让你彻底被击垮的,罗列一些你感受一下。1.
饿死。非常实际的问题,程序员需要面包。当你预期自己的存款够用一年,而实际上大半年过去了还没完成/上一个产品没卖出钱/开发需要的开支远大于预算,你是要继续开发,还是找份工作?2.
社会地位很多独立开发者没法得到家人/朋友/亲戚的认可,和NEET划上了等号。这种情况可能会一直持续到你成功之前。“没问题,我不在乎别人的眼光!”是的,但是你的家人可能在乎。3.
社交成为独立开发者,你的时间会变得非常宝贵,因为要处理很多的事情。相应的,用于社交的时间会显著减少,然后你会发现很多朋友日渐疏远。一年、两年,周围的人都离你而去,只剩下孤身奋斗的你。4.
焦虑独立开发的过程中,焦虑是几乎每个我认识的人都碰到的。因为自己全盘掌握了所有细节,每个暂时难以解决的问题都会变成一把剑悬在你头上,让你食不下咽,夜不能寐。随之而来的是胃炎带来的消瘦、失眠带来的消极,如果你工作太久得了前列腺炎,更糟糕,你连坐下来好好写代码的福利都失去了。“没问题,我会坚持运动!”嗯,也许你会在运动完后想着要是刚刚那一小时没跑步,用来写代码就好了……5.
人手虽然是独立开发者,但是很多时候你还是需要小伙伴来替你处理美术/音乐/策划/xxx...、“没问题,我能外包出去”是啦,现在外包行业那么发达,不过我举个栗子——外包美术出去,需要一个美监和对方沟通进度吧?外包音乐出去,需要写需求文档吧?什么?你连策划案都要外包?o_O...这时候你会衷心觉得,要是有多一个人帮忙就好啦!一起创业士气倍儿棒!可惜现实是,在你成功之前,独立开发者这个头衔几乎不能为你吸引来任何强力帮手→_→...凑了5条感觉我回答这个问题的时候也是蛮拼的...→_→我不会劝你去做/不做独立开发者,你要自己考虑好自己的前途。一旦决定就果断去做,你会发现你的选择永远是对的
,You guys rock!
Zhu、李明亮&等人赞同
谢邀。这个邀请放了几天不知道该答些什么,有很多前辈在,我也没有太多的经验好讲,说说我自己的一些故事吧。目前来说,除了一些在做的不方便透露,和一些太过简单的不好意思说,真正独立制作的
App 应该只有&Look — Photo is Reminder
& Todo on the App Store on iTunes
做于我大学申请前的一个暑假。就是上午去上课准备学校申请,下午回家开始写代码的节奏。全星期无休,早上七点左右起床,中午十二点左右吃完饭回来干活,到晚上十一二点的样子。如果给你看
GitHub 的泡泡图的话,你会看到每天下午到夜里的区间都布满了大大小小的泡泡。
除了要早起很不爽之外,我还是很喜欢这样的生活的(我不是指上课啊喂)。
自己做应用时候,是可以真正自己随心所欲的。除了可以做各种新奇大胆的实验(详情可以看这里Look for iOS -
知乎专栏),还不需要容忍自己的毛病。比如 Look 的大小只有 500KB
左右。为什么这么小?因为我没有用任何第三方的开源代码——是的,我没有用
Cocoapods——所有的代码都是自己写的(唯一用的就是微信分享 SDK,而且 iOS 8
来了我可以把它移除了)。用到的也都经过我完全的重写。
因为我还不是以此为生,所以我不需要强制用户给我评分,不需要添加统计 SDK 记录用户习惯活跃度,不需要添加广告,不需要推广…
所以我也不会赚很多钱,其实,成本都收不回来的。把 Look 设置为付费,也仅仅是因为我觉得大家会更珍惜付费应用罢了。
只是因为我真的很喜欢啊。
另外,近期很忙,在很多事情之中,还有一个 App 在准备。好开心!
,朝九晚九super麻麻
Qi、油人曾&等人赞同
供独立游戏开发者参考的2D美工教程(一)
供独立游戏开发者参考的2D美工教程(二)
我就mark一个,你们随意
条评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
,喷人绝不匿名的独立游戏开发者
、海子、早起的鸟儿有枪擦&等人赞同
果然改了一下自己的备注立刻就有人邀请我了。
我目前也不能完全算是独立游戏开发者,只是以前上学时曾经和同学合作做出过一个毫无名气的独立游戏而已。现在过去两年多了,上个月也才刚刚集结小伙伴打算重新开始,而且还是用业余时间。
上面前辈们总结的都很不错,我看了之后多少也学到了一点东西,我没什么成功的独立游戏可以拿来晒,不过作为商业游戏的从业人士多少能知道这中间的差距,能分享一点开发独立游戏需要注意的地方,虽然方式方法可能会比较倾向于商业化游戏的开发模式,不过我觉得多少还是应该可以看一下的:
①要有明确的开发方向
你可以忽然脑子一热想到一个很GOOD的IDEA,但是只有IDEA还不行,你必须要为这个IDEA量身定做一套具体实现它的方法和路线。如果你没有明确规划出你的计划,那么实际实行起来将会浪费极多的时间和精力。
如果你不是一个人而是一个小团队的话,那么这个东西就更重要了。这个计划将决定了你的小队的开发效率。
②不要有拖延症
你有了最初的计划,你即将开始制作你的游戏。可我今天遇到一个问题。哦,解决它需要用一个多小时,这将影响我的睡眠。于是你把它拖到第二天?最好不要这样,如果只是小问题的话最好就在当天解决,哪怕会稍微牺牲一些个人时间。第二天还有第二天的事情,如果你总把事情拖到明天,你会发现你的开发周期永远都是在弥补昨天没做完的工作。
③不要堆积小麻烦
无论是独立游戏还是商业游戏,很多游戏开发者都会犯这样一个毛病:今天出现一个不起眼的小麻烦,但是不想立刻就解决,因为它太小了,等这种问题累积到一定程度之后再一起解决好了。这样是不可以的,人的记忆力有限,特别是对小事情记忆力更是没得分配。像我这种撸管撸到记忆力衰退的人,刷完盘子之后连刚才吃的是什么都会忘记。不要以为记在本子上就没问题了,过几天之后看到自己简略的缩写你肯定不会记得那是什么玩意。而且如果你有详细记录的时间,相信你肯定可以利用这段时间解决这个小BUG了。
④不要盲目乐观
无论是开发周期还是完成发售,都不要盲目乐观。乐观的给自己的项目定下两个月完成的目标,按照平均分配每天只需要做一定量的工作就可以如期完成?不要想这种好事了!你会发现你根本不可能按照原定计划完成的,因为会意想不到的状况太多了,比如测试事出现预料外的BUG,调好的动作放进去觉得很不协调,画好的人物立绘在游戏里和背景放一起真他喵的丑。好吧如果你不注重游戏品质也许这些并不是大问题。朋友邀你去玩,家人要你回家看看,女朋友和你闹分手,你还会有很多私事应接不暇。如果你已经不食人间烟火,为了做独立游戏做到无情无义,那可以无视我的意见。
而至于发售之后的情况和玩家反馈,更不要盲目乐观。不要以为自己用心去做了就一定会被大家喜爱,独立游戏再怎么说也只是表达一个人或者一个小组的想法而已,它不像商业游戏那样是为了取悦大众才出现的。首日发售一份没卖出去?连浏览都没有几个?发售日里你的游戏不在任何显眼的地方,甚至连翻几十页都看不见自己的作品?这些都很正常,你的游戏发出去之后哪怕能在第一天收到十几条差评这都是幸运的,至少有人玩过你的游戏了。所以,开发独立游戏,一定要把心态放平,一定要有一切最差状态的心理准备。
⑤完成比什么都重要
很多前辈好像都说过这个问题,我也觉得是这样,而且实际经历过之后才真领会到这里面的真谛。完成比什么都重要,无论是对你个人还是对你的开发小组。完成是对你努力的一个最直观的反馈,是你一直以来时间精力甚至金钱的投入而形成的最终产物。它就像十月怀胎之后生出一个宝宝是一样的感觉。没人能接受十月怀胎临产时流产的。如果你说你是男性不好理解,那就脑补一下自己单身了二三十年好容易找到个女朋友时却因为车祸被压碎了睾丸的情况吧。
我见过太多连一个项目都没做完就半途而废的人了,他们通常都会抱怨这个社会不公平,或者抱怨领头的人没有能耐,而往往他们自己都没尽到最大的努力。也有很多独立游戏制作者因为无法将游戏完成而丧失了对游戏的热情。
以上都是个人从业两三年的一点小经验,个人化成分有点重,不能说就是权威的意见,不过新手可以看看,至少无论是独立开发还是商业开发,这个套路肯定是没有错的。
再次,感谢邀请。
条评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
,程序员客栈&http://<
知乎用户、
一个独立做游戏的
Qiu&等人赞同
独立开发一般都是在远程的状态,作为远程开发者你需要避免的
个大坑,以下摘录&@喵在野
写在「程序员客栈&
http://www.
web和APP都已完成&#8203;的现在,给我们团队前面8个月的工作和观察经验做个小结。
从2015年1月份我们程序员客栈远程协作团队组成到现在,这8个月我们发布了4个web大版本和不计其数的小修改;iOS和Android分别发布了8个版本,从1.0到2.0,其中1.0用了2个月的时间(包含春节);2.0上线用了2个月的时间(包含从业务逻辑探讨,到最后web,
iOS & Android端全部上线)。中间小版本的迭代,基本是2-3周一次。
所有这些事情的完成,全部基于远程协作。
经过这么一段时间的尝试,不能说多成功,但起码有了不少经验,踩过了不少坑,可以分享出来供大家参考。所有经验适合于需要通过团队协作来完成产品的各位。
坑一:没找到正确的人,时间的浪费以月来计算
这也是最重要的问题。是我们一开始遇到的问题。现在看来,找人的时候,以下几点都需要考虑到:
有经验是前提条件,对于你要实现的产品,他有过类似开发经验,80%的开发需求他已经了然于心,不仅能够实现想法,还能够基于自己的经验给出更优的建议;另外20%他也知道去向谁求助。
很聪明,善于学习,是第二条。总有他没有做过的部分,但没关系,他会轻松告诉你,我去看下文档就会了。(目前我的亲身体会,我们开发团队童鞋们简直就是神笔马良,能想到,就能做到#_#)
l 同时,他还要有时间有兴趣,愿意来做你的项目。
以上三点,缺一不可。
这样的人肯定不便宜。是的,他们的正常薪水比平均水平高50%-100%。
那么要不花少一点的钱,找个便宜点的新手?
那意味着你将承受更大的成本:需求往复修改的时间翻倍,开发的时间翻倍,测试之后再修改的时间翻倍,他走了之后别人因为读不懂代码而导致产品不得不全部推翻重来……我还是建议你不要做这个尝试了,因为最后你会发现:成本并没有降低,也许更高,因为他薪水虽然是高手的一半,但他的用时却是高手的2倍;你还花了更长的时间让整个团队付出了更高的时间成本,得不偿失。
从去年11月份开始,这样的人我们花了3个月,才找到,1月底才组成我们自己的开发团队,然后开发速度飕飕的就上来了。
在做程序员客栈的远程项目功能时,我们对所有申请签约的开发者,都像8个月前为自己找开发团队一样仔细筛选,然后再加上匹配算法,确保需求方的项目发布后,我们可以用12个小时,就为你对接到过去我们用了3个月才找到的优秀开发者。
如果去年11月我们就有了程序员客栈的远程项目这个产品,我们的发展时间,可以再快3个月。
坑二:协作的顺序没安排好,将导致时间以周为单位被浪费
一个产品的简单顺序如下:
原型(一般需求明确的情况下,所有文档一周左右)-&设计(根据页面而定,一般简单的产品1-2周)-&后端(根据功能需求而定,一般简单的产品1-2周)-&前端开发(2-4周)-&测试-&上线。
对于我而言,每个版本,从原型到最后上线,都是在一个完整的时间段里面。作为创业小团队的产品负责人,同时还是测试负责人,意味着只有当产品上线了,这个版本的活才干完,然后才有精力开始计划下一个版本。
但这恰恰是之前效率低下的原因之一!在我们早期某个版本,需求,原型被同时传达给了设计和所有开发者。导致前端小伙伴足足等了一个多星期,才拿到可以开工的文档。我们的上线时间也因此延误了一周多。
实际上,当设计和前端交接完,你就应该请设计师开工准备下个版本的设计了。当然,这意味着你此时已经完成了下个版本的原型,准备好了和设计师探讨下个版本他需要做什么。
详细来说,一个更高效的流程应该是这样
产品开发协作流程
l 当你的前端开始开发1.0版本的时候,你已经在准备1.1的需求和原型;
l 当你的前后端在进行联调的时候,1.1的设计已经开工;
l 当1.0版本最终发布的时候,1.1的后端接口已经完成。
这样,项目才会无缝运行下去,大家都能高效运转。
坑三:以为日子到了?事情就发生了
远程协作,意味着大家没有面对面工作的机会,不会有这样的瞬间:他抬起头来,看到你,想起你这边的任务Deadline快到了,于是快马加鞭一气呵成。
l 设计师会等产品原型确定;
l 后端会等产品逻辑,流程和文档确定;
l 前端会等静态设计,产品交互,流程文档,以及后端接口确定。
是的,每个环节都在等,而作为产品负责人的你,是拉动整个机器的引擎,是链条,是润滑剂。你不能等。
人只受眼前事物的影响,这是必然的心理状况。因此,作为远程项目的负责人,你可以学习Scrum的方式:
每天和你的远程团队开一场虚拟立会。每天主动去提醒他,项目进展如何?要完成项目,还需要什么支持?什么到位了,什么没有到位?
l 每周有可交付任务,每周进行回顾总结,上周完成情况,本周计划如何。
我们的周会总结
我看到过有项目,负责人在项目建组的时候和大家打了个招呼,问了项目执行时间,然后就不再过问。前面一周组内都非常安静,没有人主动发言,待到预定的第一个Milestone,不出所料,全面延误。
坑四:以为对方随时都等着和你互动?别忘了你们有时差
远程协作的团队,一般都有时差。
也许你在中国,他在美国,你睡觉时他正好上班;
也许你是全职,他是兼职,你下班了,他才开始上你的班。
即使你们都是全职,可你喜欢白天,他夜晚最有灵感,白天需要补眠。
这些问题都可能碰到,所以做Milestone的时候就要考虑到,所有需要沟通协作的节点,都要提前协商好时间。
我们的经验小结
l 高质量的人才是高效率完成项目的基础,选对了人,就是节省了时间和金钱。
l 根据项目流程提前做好人员安排,严格遵守原型-设计-后端-前端的顺序,是多方协作的基础。
l 项目负责人要主动推动每个环节前进,而不是等待。
l 提前协商好milestone和共同工作时间,能提升协作效率。
我相信远程协作是未来的趋势,也是远程的坚定实践者。国外已经有非常值得学习的对象,创造了Basecamp,Rails on
Ruby的Basecamp公司(前37signal)是一个典范:他们的员工分布在两个大洲8个城市,他们同时享受着生活和工作的乐趣,他们不用等到退休以后才去做自己想做的事情。希望有一天,我们也能实现这样的目标。
条评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
FANTASY SNAKE
,独立游戏制作人 捍卫核心玩家联盟
、冰河、long&等人赞同
谢邀 严格的说作为独立游戏开发者,不算严格意义上的“独立开发”(only
one)自认为没有这个实力,个人认为最重要的:爱与坚持!&作为完全个人开发角度来说个人不是很赞同,单兵作战不是本行业趋势,精兵团队才是目标。这里只说一下单兵开发的可发挥领域。(1)原型实验:这个我一直在玩我自己发明
称为40小时(一周工作日)极限设计的锻炼就是只能用40个小时来编码,快速迭代,做出一个小游戏:)非常锻炼对游戏设计的理解(2)技术点深入:可以把一个技术点做到极致,我一个朋友就是不断在优化光线跟踪算法(神人)个人不建议报有太大商业目的的完全独立游戏开发,还是有执行力的小伙伴最重要。
&添加评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
,iOS Developer
、Albert、Zhibo
Luo&等人赞同
1、不要贸然离职。最好在业余时间,自己做做东西,找找感觉。也许独立开发者并不是你想像的那样。2、最好不要做外包。把自己的创意,做成产品,提供给几万、几十万、几百万的用户使用。进,可拉投资创业。退,可每月赚几千块,补贴家用。
条评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
,INTP/J-A
、mearydi、郭勇&等人赞同
谢谢邀请。首先扔接活网站:&1.&http://
2.&http://
3.&http://
然后谈谈入行准备:1. 足够的面包。2. 个人网站:
一个显示你个人涵养,介绍你过往经验,展示你个人项目的平台。我挺喜欢weebly的。3.
skype,facebook,paypal账号,用以沟通与付费。(国外)为自己添加credit:1. 个人github项目。2.
一份具有亲和力、显示个人优秀的沟通与理解能力的自我介绍。自我管理方面:1.
时间表:个人的时间表喜欢按“本日类型”定制,比如说今天是A日,我专注学习;明天是B日,我专注做事。另外,如teambition等的项目管理工具可以作为个人任务管理工具使用,很有帮助。2.
情绪:找一种在大部分情况下可以放松的方式。 卡项目出现的焦躁需要及时治疗。。。3.
人生:尝试只接能提升个人价值的项目;拥有自己梦想的项目。注意事项:1.
留住好雇主,多结交同行不同特长的朋友(比如美工,设计师,网站编辑),特别是geek们,可以随时让你学到很多东西。2.
三餐定时防疾病、每天运动免体弱、多照阳光好精神、打理房间不邋遢。
条评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
,居然真的正式杀入游戏界了
、李慧&赞同
老天,头一次有人邀我,先谢邀。其实我在IT业的经验几乎是一点没有,和题主相比根本就是一个天上一个地下,我不过就是自己拿rm做过几款姑且被玩家认可的游戏而已。看了一下楼上车轴草的答案,我是完全认同的。以下的东西仅是以我个人碰到的经历进行补充:如果第一次尝试独立开发,千万别想着去做一个规模恢宏,气势庞大的游戏——你拿个小的练练手就好。本人第一款rm是一个打算做到时长12小时以上的游戏,后来我的序章和第一章加起来达到了游戏时长2小时,足足做了半年之久。之后……之后由于分支过于庞大,导致我现在那个工程连碰都不想碰了(狂汗ing)一般头一次开发,你做一个时长一小时的游戏就好了(这都至少两三个月出去),主要是给自己树立信心,并且发现一下自己哪方面有不足。所有方面都好那是不可能的啦,你想做的游戏如果想出彩,也不一定需要样样都好,但在某一方面,你一定要亮眼。题主似乎没有说清楚,到底想做什么方面的游戏呢。要是可以的话要不要提供更多一些的信息呢?
条评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
、张二狗&赞同
谢邀。刚做独立开发一年挂零,我是来学习经验的。貌似独立开发者如果不打算接外包的话,死磕产品是唯一的出路,所以在产品成功之前,还是应该无所不用其极。过程嘛,就像马拉松一样,再苦再累再郁闷,也要向前跑,哪怕速度再慢也不能停。我的马拉松才跑了一半,主打产品还没上市,暂时没什么成功经验可分享。祝各位美梦成真!
&添加评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
,CryEngine独立游戏开发者
、匿名用户、long&等人赞同
谢邀。本人正带着自己的团队进行一个独立游戏的开发,遇到了不少问题,也有一些心得,但不知是否有参考价值。以下建议主要针对独立游戏开发
,无论如何先说一下吧~
1.如果是自己开发项目,作为团队的核心,需要了解和学习的东西绝不仅仅只是自己的专业知识。游戏开发涉及到各个方面的知识,最常见的比如美术,音乐,程序和策划,而一些可能想不到的比如心理学(研究玩家心理),建筑学(建筑学的一些理论可以借鉴到游戏设计里),甚至演讲技巧。在《The
Art of Game
Design》一书中,作者列出了23项游戏设计师应该掌握的技能,丰富的知识储备能让你与团队成员极为高效地进行交流,这对游戏的整体素质的提高是非常非常有帮助的。所以呢,尽管开发会占据大部分时间,但也一定要抽出时间看书,学习。
2.不要想着把独立游戏做成3A。确定自己游戏想表达的东西,或者是一个系统上的突破点,把这个亮点做到最好,独立游戏打的是利基市场,不要想着与各种3A硬碰硬,放平心态就好。当然,不与3A竞争并不意味着你的独立游戏不需要创新不需要迎合市场,你得确定好游戏在市场上的落脚点,毕竟这是要让人愿意掏钱的东西。
3.不要害怕全栈。目前我在团队里身份类似全栈,策划,程序,场景,关卡,建模都有参与,我觉得在小团队中,身兼多职是很正常的,不过这并不意味着独揽所有任务,把最多的时间花在你最擅长的任务上,其余的,如果能快速完成,那么去做,否则,交给团队。
为什么中国的游戏开发制作技术那么落后?
这个问题中,有一句话我觉得值得参考:“游戏制作团队里,往往一个流程负责的人越多,越难保证最终质量。”
4.注意团队交流,充分调动积极性。团队成员必须是真心想做出这个游戏的,如果仅仅是当外包,当任务,当琐事在做,没了激情,一切空谈
。调动团队积极性,保证效率,充分交流感想,积极采纳成员的优质建议,非常重要。
5.你需要有一张蓝图,一个长期计划,但认真做好眼下的工作才是让项目发展下去的唯一动力。
6.无时无刻地调整好心态。不自信的心态无时无刻会出现,战胜它。7.注意体育锻炼。跑跑步打打球健健身,身体第一。鄙人拙见,如可参考,深感荣幸。
条评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
,游戏制作人
、班普将军、誼子&等人赞同
以下列举的仅是几个即将踏入独立开发领域的人应该关注和思考的问题, 至于它们的具体解决方案和实现细节,
我想每个个体都会有不一样的答案, 楼上诸位也已提供了很多非常好的例子以供参考.1.
为什么要做独立开发?从个人生活/意识形态/追求和梦想这些方面或许很容易回答这个问题.&但既然做独立开发,
就要充分发挥独立开发者的优势. 产品独有的特点是什么? 它一定要是像阿基米德的杠杆那样,
用很少的力(个人可以在合理的时间内独自完成)就可以撬起地球(可以获得行业内和用户的一致肯定).
虽然很少有人能在将产品推向市场前断言它是有魔力的,
但它们中的大多数的确在登场之前就已经可被断言"毫无希望".很多人为了实现自己的梦想或是为了将自己所学不受限制地付诸实践,
从而踏上独立开发者的道路. 但他们交出的作品却只是完成了自身的一项成就, 对这个社会而言却全无吸引力.
所以在从事一个独立项目之前就要反复确定这一事宜——它独有的特质为何?在项目中无论遇到任何挫折, 我都不会放弃的又是什么?2.
你的出路是什么?在IT行业和游戏行业内, 有无数的创业者和独立开发者潜藏其中.
但他们中的很多人存在的理由并不只是因为在行业中容易获得成功, 而是因为入行的门槛实在太低了.为了和他们有所区分,
独立开发者在一开始就应该对一些事情有所思考: 项目的大致开发周期是多久? 我的个人投资可以支撑自己做多久?
我想要发展合作伙伴和团队么? 代价是什么? 我是否想要一个或多个投资人在某个阶段参与其中? 项目做到可以吸引投资的阶段大概需要多久?
项目的各个部分可实现性有多大? 可否有一部分功能在上线之后以更新的方式完成? 我对这个项目的"正常"期望回报应该是什么?
项目的换现方式有任何问题么? 如果项目在商业上彻底失败, 那么在这个过程中我又获得了什么?如果对其中一个或多个问题的回答是模棱两可的,
那么你对项目的控制力就自然无法确定.&3. 项目管理和自我管理对于很多在大企业工作的朋友而言,
他们的事业和生活一开始被父母照看, 之后被学校照看, 最终被企业照看, 一直无法断奶.所以对于独立开发者而言,
不仅意味着事业上的独立, 也意味着生活上的独立. 你不仅要自己控制事业的方向,
也要重新寻找生活的方向.&你需要在项目的一开始就关注它的技术难点, 和所有非常重要又不确定的因素.
你需要做一个又一个Prototype, 以确定项目开发的各种边界. 你需要将它们糅合在一起,
然后在不断的迭代中寻求它内在的和谐完美.同样, 你需要开始关注自身在获得突如其来的自由后面对的各种问题: 你的腰围可能会疯长,
你的表达能力或许会骤降, 你的生物钟可能在向美国靠拢, 你的异性朋友或许会突然增多或减少——有的人为了生活而工作,
有的人为了工作而生活. 但无论如何, 你需要以一个自己满意的方式活着.&永远不能后悔.
&添加评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
,开发者,创业者,iOS+Android+Web
、赵寒烁、guo
jin&等人赞同
我现在是一名快大二的学生,但是我也在做Android
App开发,8月15日我把我的应用提交到了360市场,审核通过之后就在应用商店上线了。这款App是我一个人做的,第一次做,没有什么经验,走了很多弯路。不是很权威的叙说,只是想分享一下自己的经历。之所以想做这个App最初也是因为自己有这个需求。上学的时候无论是在图书馆自习还是在宿舍写代码都会常常犯困,初高中的学霸生活已经使我对咖啡茶这类提神的药物免疫了,趴在桌子上小睡一会儿反而会很有精神。记得原来看到卡耐基的书中也曾说,小睡一会儿可以让人有精神,工作得更好。但是上闹钟是一个麻烦的事,特别是在及其困的状态下,而且手机上个闹钟还要拨那么多的键。我觉得很麻烦,我就在想我为什么不能拨动一个开关就开启闹钟让它10分钟之后提醒我呢?有时在图书馆上自习,假如用自带的闹钟即使在静音的情况下也会发出声音,这在图书馆显然很不好。那时Android才学一点,但我就有了做这个App的想法。于是在暑假中,我花了差不多15天的时间做了这么个简单但却实用的App(趴会儿【原小睡闹钟】:小睡闹钟_360手机助手
最开始的时候软件做得很复杂,从小睡拓展开的就是稍后多少时间提醒,我又认识到只做这个太简单了,于是又加了定时的提醒。我知道,我的编程水平并不是很高,想做出好的产品就要在产品方面下功夫,让用户体验好,让App有一些人文的东西,于是我又加,加了比如三天洗一次澡啊,生日提醒什么的。功能做得越多,我越迷茫,技术上的难度也越大。我有时又在想,我到底要做什么的。我当时要做的那个东西,是一个定时提醒,一个ToDo提醒,一个变相的日历,还是什么?弄来弄去,不知道自己要做什么了,整个App就是一个四不像。
之前我在知乎上看到过&@贾物体&做的Look,我觉得图片提醒这个idea很不错,于是又在自己的App加上这个功能。可是越做越大的同时,也觉得这个App一点亮点都没有,就是各种各样乱七八糟的东西拼在一起。I
it!我自己都不喜欢的东西,用户会喜欢吗?我没法把一个自己都不喜欢的东西分享推荐给我的朋友。于是我想去看看Look到底做得怎么样,于是在网上查了资料,也在App
Store下了这个App(我开发android,但是平时用iPhone)启发我的是,在Look的知乎专栏里有人评论这个图片的Todo能不能代替原来的Any.do&teambition等。作者说不会,但是Look可以做一个补充。我也在反思,我完全没必要做一个与时间有关的功能全部集成在一个App里面,作为个人开发者那样是不适合的。所以我觉得,作为个人开发者,应该&抓住一个小的需求,把它做到最好!我最初为什么想做这个App?为了趴桌上睡觉方便一些,那我做其他乱七八糟的干嘛。于是我只做了一个功能,那就是小睡,做到最简单,拨动一个开关就可以开启小睡。如果用户想用ToDo应用可以下Any.Do,几天洗一次澡完全可以通过日历设置重复提醒。就这样,走了很多弯路之后,我回归正途,把乱七八糟的功能全部砍掉,只留下一个功能“趴会儿之后提醒”作为个人开发我觉得很重要的就是&
CSDN上面都有很多开源的代码,这些代码是大家用来学习交流的,而很多时候自己开发的App的一些功能完全可以从开源项目移植过来。这时,你就不是一个人在开发,是全世界最优秀的工程师和你一起开发。这也大大减少了工作的强度和难度。
我曾经一天除了吃饭就是写代码,结果写了一整天,一点进展都没有,问题反而越来越多,就像毛线团越来越乱。晚上倒头就睡,第二天早上一起又继续写,打算再写个一整天。但是同前一天,完全没有进展,反而越来越烦躁,最后索性不写了!我去看了一部电影,陈木胜导演的《扫毒》,还看得挺感动的。看完之后歇息了一会儿又开始写代码,!!!原来错综复杂的问题突然找到了简单的解法!所以以后每天我都会安排好时间,劳逸结合好。&我做了一个APP,我当然想把这个分享给和我有同样需求的人,想着别人能用上自己做的软件心里都会不由地笑起来。于是我去了Android吧,用几张截图和一些文字介绍了自己的APP。我希望吧友们能够用到我的软件,同时能够给我提一些意见。其实我对自己原来那个版本的APP挺满意的,但是,没想到吧友们提出了那么多好的建议。我一想,对啊,我原来确实做得不怎么好,界面也很粗糙。其实我最想不到的,大家可能会对这个APP产生误解。我的本意是做这样一个APP,当我工作学习累了,打开开关,趴桌子上睡一会儿,一会儿APP会提醒我。但是有的同学就理解成了早上贪睡时小睡一会儿(其实小睡本来也有这个意思)还有同学理解成了睡午觉的APP,说是不是20分钟太少了,午睡30至40分钟比较适合。假如我不和用户交流的话,我永远不知道自己的不足,我也永远不知道用户会对产品有不同的理解。所以我认为,开发者,即使是独立开发者,做出来的东西是要给人用的。不能自己想当然地认为用户怎么怎么样
,而应该多和用户交流产品,多听用户的反馈意见,和用户成为朋友,让用户和我们一起完善。我想之所以小米有很多发烧友也是因为小米尊重用户,听用户意见,和用户成为朋友。所以大家也愿意提出自己的意见,成就更好的小米。我虽然是一个小的开发者,但我也相信小米的精神。
还有一点,也是吧友提到的。说我的手机上已经有了闹钟和计时器了,为什么还要用这个APP呢?而我的回答是,这个简单,只需要打开开关。而无论是闹钟还是计时器,都要设置好几下,我自己觉得麻烦,特别是在特别困的状态下就想直接趴着睡。其实这个APP也不是什么了不起,只是让生活方便简洁一些吧。
最后,感谢所有吧友和所有帮助过我的人,希望我的这个小APP能为大家生活带来一点点简便。
条评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
Summery丶Han
,走在独立游戏开发者的路上。
、觉多、小儿难养&等人赞同
谢邀&仔细阅读了上面的回答,受益蛮多的。目前毕业两年,还并没有成为一位独立开发者,但是信仰一直在,并正在为之努力。还是大三的时候,在学校带过七人小团队,主要是带新人,做网站项目,不过整体执行力太低下,最后基本都是自己一个人做下来了。那时候觉得人在没有压力的时候,真的很难做事情高效起来,拖沓算是目前大部分人的一个通病吧(自己也是T_T)。上班两年,也积累了一些经验吧。最近一年是每周七十小时上班时间(游戏创业公司),有两个月一天假没修,经常一天十四个小时,近期准备离职中。到不是觉得累,而是觉得成长遇到瓶颈了,换个环境,先试试自己做的游戏能不能有些收益,毕竟成为游戏独立开发者最初的愿望还是更早的实现财务自由,做更多自己喜欢并且愿意去做的事情。经验到谈不上,算是有些感悟吧。做外包真的不适合独立开发者长久和长足发展,例如,会做网站(普通的那种,不涉及大数据的处理)之后,再去做网站,其实就是体力活(对码农而言),收获会很小,而且同样的重复工作很容易让人感觉疲倦什么的,而且要知道,做外包一旦没有收入,就会陷入一种很糟糕的状态(家庭富足除外。。),经济压力,生活压力,以及对未来的迷茫什么的要有足够的执行力和自我约束能力吧。,每个人可能都或多或少有些想法,但是成功不会属于只有想法而不去实践的人的。一旦有想法就立马去做,结果你无法预料,但是过程中的收获肯定只有你自己懂,所获得的收获绝大部分来源于这个过程。一旦决定要独立开发了,就要好好约束自己,毕竟没有工作任务的压力,没有人催出你出产品,也不会有人责备你,所有一切都在你自己,好或者坏。强有力地自我约束,做什么应该都不会差。综合能力要强。做独立开发者的话,应该努力让自己成为一个多面手吧,作为我这种码农的话,码力肯定要很过关才行。在创业公司待久了,真的能学到很多东西,比如产品出来后的运营,推广,合作什么的,除了码代码都能接触到。而且领导对市场的把握和走向什么的,有时也会跟我们分享,稍微留心一点就会发现这里面很多都是干货,自己去研究的就比较难了,所以我还是比较赞同在自己独立以前,多在创业公司学习,对经济和经验都有些积累,而且可以知道相对我们更早走出来他们是怎么样的眼光在分析问题。人际方面的话,自己没有发言权。现在的老板,因为是最好的理科学校出来的,应该有自己的人脉吧,所以感觉他也虽然是那种不善社交的人,但是能接触到很多算是比较成功的和上乘点的人吧。自身优势没办法了。。其实个人觉得最终让你坚定下来走独立开发者这条路的,还是你对这件事情到底有多渴望。我自己是对早日实现财务自由充满了向往,而且觉得会因为自己是独立游戏开发者而感到骄傲,能自己做属于自己的游戏,让很多人玩并且喜欢自己做的游戏是多么令人开心的事啊。[以前一直固执的认为,做游戏是写程序最全面的体现,现在看来,远远不是呢。但依旧认为是最酷炫的事情]。除了自己,没人能阻挡前进的步伐!&也希望自己能更快一点走向完全独立的游戏开发之路,即使这条路并不是一条坦途。我也要走下去!与题主和有共同梦想的朋友们共勉![有点乱,见谅!]
&添加评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
,养家糊口
、知乎用户、伊洪亮&等人赞同
有过一次失败的2年SOHO经历,想听听失败的经验么?我后来想起来自己失败的主要原因大概有这些:
过于乐观地估计工作量,貌似大多数码农都会犯这个错。
项目太大 ,一个人承受不起。应该先做几个quick &
dirty的东西出来,先能糊口再说其他的伟大理想。
缺少压力,工作效率低下。我曾经用统计当前活动窗口停留时间的软件观察过,平均下来我每天写代码的时间不超过2小时,其他时间都在刷SNS,看网页等等。
不会做市场。硬伤,致命伤。
其他方面比如缺妹子之类的就不多说了。
条评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
反对,不会显示你的姓名
,互联网大叔一枚,营销/摄影
哈利路亚猪
、让我睡个懒觉、矢呼&等人赞同
A.教材上的知识这部分内容来自计算机专业的课程教材。也有可能会涉及一部分来自其他相关专业或者相关课程的内容。B.编程语言每一个程序员只有在会使用一门语言的情况下才有可能从事开发工作,所以学习并掌握一门语言是最低要求了。C.SDK光有一门语言是不够的,从事任何实际的软件开发都需要一个类库或者开发包才可以完成。比如C语言中的库函数,C#中的.NetFramework类库,Windows的API等等就属于这个范畴。这方面的资源有个平台DevStore可以关注下,收录了很多的sdk服务
评测,直接搜索就可以了。D.开发工具以如今的情况来说,没有开发工具理论上也是可以开发软件的,但效率就是一个问题,所以掌握并使用一个开发工具完成开发任务应该也是一个最低要求。E.领域知识软件总有用户,于是开发这些用户使用的软件,那么程序员就需要了解用户所在行业的知识,至少需要知道一些基本的必须的知识。还有一部分的内容也划分为领域知识,比如从事Photoshop这类软件的开发那么图形相关的知识就必须了解一些,从事工控软件的开发,那么对控制方面的知识也要有所了解。以上的分类是在本文中我对知识的理解,一个程序员知道这些知识后从事一个软件的开发应该是没有问题了。下面分别来讨论一下这些知识的学习问题。一.教材知识的学习做为一个已经从业的程序员来说,我不认为计算机专业的所有专业课程(包括专业基础课,我在读大学的时候还有这个说法)都是有用的。实际上对于大部分程序员来说,只需要很少的一部分知识就足够了。这些知识主要由三门课程组成:数据结构,编译原理,操作系统。对于大部分的程序员来说,其他课程的内容不是没用,而是在实际工作中用不上。数据结构这门课程的重要性,可以理解为是程序员的圣经,怎么如何形容其重要性都是不过过分的。这门课程中需要掌握的内容,我个人观点如下:1.
掌握所有线性数据结构的知识,比如表,栈,队列等(广义表可以不作要求)2. 二叉树的基本操作和基本使用3.
图中需要知道遍历和了解最短路径算法,以及相关的一些概念当然对于某些程序员来说,这是不够的,因为从事的具体的软件开发工作会有不同的要求。但是对于大部分从事MIS软件开发的程序员来说,这些知识够了。掌握这些知识可以有两个层面的要求。第一个是完成足够的习题,从而可以熟练的答题,第二个是能够在实际工作中使用数据结构描述实际的事物。做到这两点要求应该说不算太高,注意多加练习就可以了。目前来说这门课程的经典教材也不少,相信只要按部就班的学习完就是合格的了。编译原理这门课程主要是学习方法和思想而不是课程中的知识本身。因为毕业出来能从事编译器开发的人实在是太少太少了。这门课程需要掌握了解的东西不多,我个人的观点主要是以下几个:1.
确定有限自动机和非确定有限自动机的使用2. 词法分析程序的实现3.
语法分析的方法自动机在实际应用中的体现就相当于是状态转换图,这个工具非常的重要,希望能够务必掌握。我们在开发EntityModelStudio时,设计界面交互部分的内容就是先设计出状态转换图然后再写代码的,否则直接开发的话就会面临开发失去控制的风险,同时重构和维护也会相当麻烦。所以这个工具极其强大,非常实用。另外提一下,非确定有限自动机,这个工具的能力和确定的有限自动机是等价的。但是由于它的不确定性,更符合人的自然思维习惯,从而在某些设计场合相对会方便很多。这一点是很实用的,也是很吸引人的。掌握词法分析程序的实现,可以大幅度拓展开发能力和思考能力。这部分东西理论上描述可能比较麻烦,但是实际使用时还是很容易上手的,所以非常值得学习一下。语法分析程序不需要掌握了,毕竟开发编译器的机会是微乎其微的。但是相关的方法和思想希望能够了解,这可以帮助程序员用电脑的思维来思考问题。操作系统需要掌握的东西只有两个:1.
五大管理的基本方法,尤其是涉及内存管理的策略2.
线程或者进程的同步技术操作系统是复杂的,但是教材中介绍的这些管理方法相对来说是简单易懂很多了。这一难一简之间体现了基本知识的重要性,基本知识在实际开发中的应用的广泛性。好好的体会,就可以明白用简单方法解决复杂问题的技巧。线程进程的同步,这个就不用多说了,大家都知道它的作用,如果实在不想掌握的话那我也非常愿意相信你的理由一定是充分的,否则你绝对不会那么做。最后我想强调的是,无论你如何看待这些知识:可能觉的没用,可能觉的太难,可能是不感兴趣,但是如果你想做程序员的话,那么请你务必最大可能牢固,最大可能熟练的掌握它。二.编程语言对于一个程序员来说,一般需要掌握2,3门语言是基本的,并且学习一门新的编程语言也是基本功级别的能力,所以这部分主要谈谈快速学习一门新的编程语言的方法。我学过的语言有这些(这里编译器和语言的概念等同了并且不按先后次序):Foxbase,C,C++,汇编,Visual
C++,Delphi,FoxPro,VB,C#。就我个人的体会来说,这些语言可以分为三种类别:非面向对象的,面向对象以及支持可视化设计的。这三种类别的语言有一些共同的内容,而这些内容也是我们在学习一门新的编程语言时首先需要知道的,可以说是关键的知识点。这些内容大致如下:1.常量,变量,数组,不同的数据类型这部分需要掌握常量,变量,数组的定义,初始化,不同数据类型的使用。数组中元素的读写,作为参数如何定义,作为返回值如何定义。有些语言还支持数组大小的重新定义。2.函数(或者叫子程序)函数如何定义(比如参数和返回值),如何调用(这里存在异步调用和同步调用的问题),全局的还是非全局的。3.流程控制分支结构:if语句,if
else语句,switch语句;循环结构:for语句,while语句,do…while语句,有些语言可能是Loop。4.最基本的输入输出和文件操作最基本的输入输出语句可以帮助你在学习语言的过程中完成简单程序的练习任务,比如:输出到控制台,dos操作系统中输出到屏幕等等。文件操作也要知道,至少以后写个程序生成日志文件就会了。以上内容在学习一门新的编程语言时,希望能首先掌握,这能让你很快的入门,并尽快使用新语言写出代码。另外还可以关注一下其他方面的内容,比如:1.了解语言的新特性这个阶段只需要了解,不需要掌握,记住有这些新特性,在需要用的时候想起它们就可以了。2.了解一下帮助文档中,该语言的所有关键字这部分内容有可能让你发现一些很有用的东西。好了,知道这些内容差不多一门新的语言就算入门了。当然还有其他很多东西,但是这些内容可以在具体开发中遇到时再去找例子就可以了。下面谈谈这些语言的差异。对于面向对象的语言来说,需要知道面向对象三大特征:封装,继承,多态在具体的一门编程语言中是如何表达的或者等价表达的。对于支持可视化设计的语言来说,还需要知道如何设计窗体,以及常用控件的使用。按照这个方法,从一门已经会的编程语言到学习另一门新的编程语言应该是比较快的。对于还在大学中学习的人来说,我的建议是C++或者Pascal中的一个,VB或者C#中的一个或者其它可视化开发语言中的一个学习一下。如果可能学习一下汇编是最好的。三.SDK掌握一个SDK才能使程序员在掌握一门语言的基础上进行实际的开发,如果仅仅是一门语言那是不够的。所谓SDK举例子来说就是Foxbase的命令和函数,C的库函数,C++的类库(比如微软的MFC),Windows的API,.NetFramework,这些都是我所说的SDK。程序员可以根据自己的实际开发需要,有选择的学习相关的内容。我最初的做法是先google,然后查文档,一般的问题都可以很快解决的,慢慢的也就逐步掌握了。但是搜索的过程中难免会搜索不到你想要的东西,需要SDK服务的话就去DevStore平台上找,像一些日常遇见的问题可以去百度,每个人对同一个问题有不同得看法和解决方法另外一个建议是买一本书学习也是可以考虑的,这也是一个不错的方法,只是买到好的书需要缘分。就我个人来说,绝大部分的情况下是看电子书,直接从网上下载的。四.开发工具除非你只用独立的文本编辑器写代码,并且用命令行编译,否则你一定需要一个开发工具,尤其是一个带IDE的开发工具。对于你使用的开发工具而言,需要了解的基本内容如下:1.
项目或者工程的创建,属性修改,打开关闭等基本操作2. 具体开发时的环境设置3. 项目中的文件组织及管理4.
常用功能的使用,比如:编译,执行,断点设置,代码跟踪,调试信息输出,实用的快捷键,调试时变量查看,查找/替换等等5.
从帮助文档中了解IDE的新功能。因为这些功能有可能对你是非常有帮助的。6.
帮助文档的获取如果有自己的使用习惯的话,还可以了解一下如何定制IDE环境以满足自己的开发习惯。首先了解这些内容可以帮助你相对快一点适应一个新的IDE。五.领域知识一个从事技术工作的程序员需要了解与技术不相干的领域知识,确实有点无奈。但是在具体的开发中,不了解这些知识就无法更好的理解用户的需求,也无法更好的完成开发任务以及与同事领导的沟通。所以这个步骤是重要的必要的,有时候有可能还会带来更严重的后果。在有些项目中如果不能很好的了解这些领域知识,项目中的成员有可能会被替换掉,我个人就有过这样的经历。所以这里特别列出来强调一下。差不多这些知识应该够用了,下面再提几个额外的内容,这几点虽然和开发不是太直接相关,但是确实也很重要。它们是英语,数学,读源代码和读书,有余力的程序员可以尽量提高这几方面的水平,这是很有用的学习途径和方法。对于英语而言主要是读和写,这样就可以阅读英文资料并用邮件,论坛或者聊天工具和老外沟通。由此获得的帮助是非常显著而高效的。这里要说明一下,微软论坛上的回复的质量非常之高。对于数学我的理解主要是三个部分,都是很具体的:1.中学里学过的知识这部分知识很重要,这是我们用简单方法解决复杂问题的基础,同时使用的几率也非常高。如果全部忘记的话,建议多少复习一下,或者用到的时候回顾一下。2.离散数学我需要承认在开发中直接使用离散数学知识的场合我一次都没有遇到,但是如果没有离散数学的知识,那么我就无法思考,很多问题就无法解决。3.组合数学这门课程属于研究生级别了,相对难度会大一些。我的观点是你不需要全部掌握,知道一部分就可以了,比如:鸽巢原理,母函数,以及常用的计数方法和技巧。尤其是技术方法这部分在问题的分析简化,工作量的评估,算法设计以及软件测试方面都有非常实用和具体的应用价值,是很值得掌握的。是否可以使用这部分知识,在实际工作中表现出来的效果至少相差一个等级。一个好的源代码具有不可估量的价值,潜心学习一下可以让你从一个门外汉变成一个开发老手,所以注重培养从读源代码学习编程知识的能力。我的体会是,阅读源代是一个非常有效(有用并且高效率)的方法来提高自己的开发水平或者解决实际问题的能力。我第一次认真学习的源代码来自当初的程序员大本营。一个例子是实现Visual
6.0中Workspace的界面,另一个是如何实现给主菜单加入图标。两个例子大概花了我一个半月的时间并且写了几篇心得,记录下学习的内容。应该说收获很大。再比如,下一个版本的EntityModelStudio中会加入代码编辑器,这个支持语法高亮和行号的编辑器就是在读懂开源代码后我们自己独立重新开发的。在阅读源代码的时候希望能注意两点:1.
最好能配置好环境可以单步跟踪代码,这样理解代码的速度和效果会好很多。2.
快速的定位那些自己想看的代码。这里建议可以使用IDE提供的查找功能,看文件名,类名等方式来定位。如果实在不行,考虑注释代码,来快速定位。第四个内容是读书,阅读是学习的一个最基本和最重要的途径。在这里我不想列出任何需要阅读的书目,这是因为当下流行的所谓经典或者著名的开发书籍我读得很少,所以也说不出体会。我看过的书都比较老了,比如:1.
BorlandC++4.5使用及开发指南这是我的C++的教材,C++部分先后看了不下6次2.
一本1970年发行的软件工程的书,这是我第一次接触软件工程3. 代码大全第一版,我觉得第二版没有第一版好4.
用于面向对象的设计和分析方法,这是美国哥伦比亚大学的一个教授写的。是清华大学原版教材中的一本,非常好,是OOD的绝好教材。目前有印象的就这些,以后想到了再补充吧。其他读过的书还有很多,都是具体的编码的书就不再一一列举了。有些书需要仔细阅读的,比如讲设计,讲方法的书,有些书需要很快的浏览完,比如讲具体编程的书。我的体会是,一本几百页的书,你应该花1,2小时就能过一遍,最好是20分钟到40分钟就能过完。在实际开发中,用到的时候再看书,查找需要的内容。如果你需要花很长一段时间全部学完一本书的话,那么你看的第一本书可以这样,否则我觉得你的学习方法就有问题了。至少一本书中不可能所有的东西都是你马上要用到的,你没有必要立刻学习,所以应该学会快速阅读的技巧。当然这是个人观点,取舍对错自行判断吧。你不能寄希望于一次就能买到一本理想的书,也不能希望在一本书中学到自己需要的所有内容。遇到一本好书是需要点运气和缘分的。我的总体感觉是,外国知名出版社的图书的质量明显好一些,还有台湾一些出版社的图书也还不错。建议大家可以买一些绝对知名和权威的书籍,这样相对风险会小一些。对于那些书名为XXX大全,XXX宝典,精通XXX,XXX权威这样的书,我是很不看好的,当然这是自己的看法,仅供参考。最后说一下不要学习的东西,几天前在群里聊天,一个人说想解析暗黑的通信协议,然后做外挂。我对这方面很不在行,但是这明显是一个非常耗费时间,难度也非常大的事情。我在这里给出的建议是,一个职业的程序员需要知道自己的价值,自己的知识和精力应该花在能够创造实际价值的地方。不要仅仅出于爱好或者热情去做一些成本很大的事情,与其炫耀自己的能力,不如踏实的做好本职工作。如果实在想做可以作为业余爱好,适可而止。
安卓开发学习学习网站
推荐你关注DevStore还有csdn和开源中国,都是程序员经常聚集的网站。
DevStore(开发者服务商店
)整合开发者会用到的服务,可以实现在线对比评测,省去自己去网上搜索寻找的过程,还有sdk配置过程,很方便的,嘿嘿,我还在这个网站上写评测挣过外快呢。
csdn(中文IT社区
)中国最大的开发者技术社区,牛人还是很多的
开源中国是目前国内最大的开源技术社区,主要是软件下载,源码托管
自学的话平时就多看一些官方文档,帮助文档也是一个很好的参考资料,多看看,平时多敲代码,多看住哟啊哈斯看规范,看完之后去敲代码主要是在实践过程中发现错误,多做项目自然多遇见问题,遇见问题解决问题,下次自然就知道怎么解决,在实践中发现真理。
条评论&感谢&
分享&收藏&&&没有帮助&&&
&&&作者保留权利
,开发者/app推广/电影
janisns sinsids
、david-wei、张帆&等人赞同
踏入程序员这个行业,你就注定要学习一辈子,新技术层出不穷,技术体系更新快速,这是和其他行业最大的区别之一。所以,如果你想在这个行业混出点样子,那么请你随时做好学习的准备,如果你想成为优秀的程序员,那么一定要有正确的学习方式,下面推荐几条开发者的最佳学习方式,希望能帮你事半功倍。
书籍和期刊是必不可少的
无论你是新手菜鸟还是高级程序员,你都离不开书籍,当然我们要有选择的读书,尽量选择一些经典的书籍来看,如果你英文水平比较好,那么读一些老外撰写的书籍是最好不过的了。书籍能让你在繁杂的互联网上总结出一些对你有帮助的知识体系,能让你在某方面变得越来越精通。
期刊则能让你的技术知识更加广泛,作为优秀的程序员,你最好每一个领域都要能够涉猎一些,知识面越广越好,因为编程这东西都是相通的,也许有一天你用Java的设计思想实现了智能家居。
建立自己常用的类库
这是积累知识的一种有效手段,有时候可以帮你大大提高工作效率。不要认为你写过的代码没有用处,有些常用的工具方法一定要收藏起来,整理出属于自己的工具类库。比如:文件操作类、序列化类、数据库操作类、字符串处理类等等,时间久了,你会发现他们对你的帮助不是一般的大,这里不多说,自己去实践一下就知道了。
推荐一个网站DevStore
,可以关注一下,这个平台主要是针对开发者做的第三方服务的集合平台,可以下载源码和服务包。
花更多的时间分析问题
花更多的时间理解和分析问题,然后再设计方案吧。你会发现剩下的事情很容易了。设计不是说要用建模语言和工具,可以是仅仅看看天空在脑子里构思。那些在遇到问题就开始敲代码的人往往会最终偏离需求。
作为程序员,当你在编写代码之前,尽量把问题分析透彻一点,这不仅能提高你编码的效率,更重要的是能提高你的分析问题能力。
学会帮助别人
许多人都有个共同特点,只有当他需要帮助的时候,他才会求助于论坛或者群。优秀程序员不同之处在于他们会经常浏览论坛去帮助他人。相比较于靠别人帮助解决问题,他们帮助他人让自己学到更多。在一个团队中也是一样,帮助他人解决问题收获更多。相信我,了解他人的问题,思考并最终提供解决方案吧,你会比之前学到的更多。
和领导处理好关系
这点是技术之外的技能,也就是人际关系。无论是小组组长,还是部门经理,你都要想方设法和他们搞好关系,尽管他们不可能教你很多知识,但是他们会给你很多学习知识的机会,比如将重要的项目交给你做,或者是一些公司的培训。
处理人际关系是大部分程序员的弱点,在领导面前少一点吐槽,不要黑你的产品经理。
博客等级:
博客积分:0
博客访问:263
关注人气:0
荣誉徽章:

我要回帖

更多关于 独立游戏开发者 的文章

 

随机推荐