c#之类的程序语言怎么学最有效?

0 条评论


  • 2

    OwenTsai游戏设计,Web开发

    趁着午休的时间对原答案进行修正和补充:
    * 编程是一个十分需要热情的工作,我也强烈建议设计师们都学习编程,这样就可以独立进行简单的prototyping,节约开发成本。

    对于问题的描述,我归结于下面几点:

    1. 具备一定编程基础的人如何进阶?
    2. 如何将学到的编程知识转变为实际开发成果?
    3. 如何更有效地学习编程?
    针对这三点回答如下,是一些学习方法而不是心态。一切脱离方法论的回答都是耍流氓。仅为一家之言,如果不结合自身情况造成自己的学习效率低下,本人概不负责(逃)
    • Learn by doing,对于有编程经验的程序员,这种方式毫无疑问是最有效果的。所谓的Learn by doing就是边做边学。举个例子,经常有一些视频教程,是速撸游戏的,即利用最短时间开发一个游戏的prototype 或者 playable version。跟着这些教程走一遍,你很大程度上就对开发的流程和思想有一定了解了。虽然在这个过程中你的代码很像是game jam中写出来的那样混乱或者dirty(不知道如何翻译dirty最传神,就是基本功能都实现了虽然结构不清晰明了),但是你依然可以从中轻易获取成就感和经验。
    • 实践 [1]。编程最重要的就是动手做。如果你是初学者,你可以在每一个课时或章节结束后自己写习题,在习题的基础上扩展你能想到的功能;如果你不知道如何运用这节课的知识,那么你应当跟从一些实战教程完成一个完整的项目,又或者把之前用其他语言实现的项目用刚学的语言重写。在这个过程中你不仅能学到一些API是如何运作和使用的,还能对项目开发中的流程和规范有更深的了解。
    • 阅读源码。在陷入瓶颈期的时候很多人会显得烦躁——可能是因为某个功能不知道怎么实现,可能是某个算法存在着各种各样的问题,可能是因为工作压力大看不到希望。这个时候很难静下心来写代码或者读代码。但是我依然建议找一些可读性较高的源码来读一读,比如Unity3D的官方tutorial,这一系列教程的脚本写的十分清晰明了,结构明确,可读性强。有针对性地阅读源码甚至能够帮你解决开发中的问题,同时也能帮你积累足够优秀的变成习惯和思维方式。一旦积累足够,加之其他方面的努力,度过瓶颈期就很容易了。

    【1】关于上面提到的实践,应该分为两个阶段。初学时的初级阶段和进阶时的高级阶段。

    在初级阶段建议大家实践选择小程序。所谓的小程序就是能够用不到一百行代码实现的小功能,目的在于练习语法、数据结构和最基本的算法。

    在高级阶段大家应当找一些实际的问题解决,网上搜索一些实际问题抽象成模型来写,或者真正动手去仿照教程做一个游戏出来。这一阶段的目标已经不是巩固语法了,你要掌握一些第三方库和接口,并且清楚编程范式代码风格。学会了C#和能不能在Unity里做个游戏还是有很大区别的。

    Github中有很多针对两种不同实践阶段的练习,可以找来练一下。

    更新于 2017-06-21 13:55:09 1 条评论


  • 0

    和谐小小游戏玩家、评论者

    我就是自己C#学起来的。

    我的过程大约是这样的:

    搜索各种简单实例 — 尝试仿制,在过程中习得一些知识 — 尝试用学到的知识自己做一个东西 — 自己做东西遇到做不到的去搜索怎么做 — 根据已经增长的知识,决定下一个要做的东西。

    做出一个东西时,也可以不断更新这样东西,让它变的更强大,更好用,同时获得知识。

    举个最简单的例子,做个计算器,先从加减乘除开始,渐渐的增加各种数学运算,增加记忆功能,增加解方程功能,优化图形界面,增加音效……

    随着做的东西变多,就会对算法、数据结构、设计模式等东西有粗略的感悟,这个时候去阅读相关书籍,能立刻发现这些知识在你所做东西中的应用点,从而快速接受这些知识。把学到的知识应用于更新自己做的东西,能很舒服的记住它们。

    最后开始形成对编程的真正系统化概念。


    英语和数学对编程本身帮助不大,主要是对阅读相关资料、理解相关书籍帮助很大,但不建议为了学编程专门去提高这两项。

    总的来说知识是立体的,多做杂七杂八的东西,多总结,当这些东西交织起来时就会有不一样的提高。我当初遇到瓶颈时,做些其他杂七杂八的东西,过一段时间回来看,就已经知道原来那处瓶颈如何解决了。

    发布于 2017-06-24 18:11:12 1 条评论


  • 0

    1怪物1不羁吟游人

    有三个先决点我要说明 

    1我不是程序员可能我说的点只是我在实际生活中理解的点而不是里面的玄机

    2我至今觉得学习程序语言需要非常牛逼的英语以及对英语的熟悉程度如果这些点不够对编成缺乏很大的加成属性。

    3时代的进步你今天学的说不定就是明天报废的所以学应该学最有用的而不是全学


    如果你已经有一些底层了 推荐直接实践哪怕照着做 做一些实际的功能或者跟一个完成的项目从新写一次从应用开始掌握

    如果你已经决定要编成了,推荐你在学习了足够的基础以后进入工作或者是研发环境进行学习,因为你会遇到很多会的懂的人指导你,他们教的东西远远比你自学甚至是书本学的东西更实际更效率更易懂。而且认识越多大神你可以问问题的人也就越多而根据我的了解,往往厉害的程序员都特别喜欢教别人写代码和做功能甚至是炫耀自己掌握的技巧和知识

    最后实践是唯一学习的途径已经进步的基础。所有理论知识都只有当功能做出来了东西做出来了,并且达到效果满意了 才会有意义。

    发布于 2017-06-21 20:31:35 0 条评论


  • 0

    nishikino_maki啥都玩的工科汪 / 独立游戏爱好者

    以目标为导向的学习方法是最好的,先想好你想干什么,然后再想你要干这个事情需要完成哪些任务,接着再想完成这些任务你需要哪些知识,去学习你需要的编程知识,接着依次完成你起初的目标,这样就能够掌握的很好啦。

    个人不建议直接找本教材开始学,当时可能学明白了,但是如果一阵子不用,相当于又忘掉了,还不如不学。

    发布于 2017-06-21 13:33:41 0 条评论

  • 登录奶牛关账号即可参与讨论

{{question['follower_count']}} 个玩家关注

...

相关元素

相关问题

EA公司的Procedural Foot Planting系统是如何实现的?

2人关注 0个回答

关于上下场景移动 如何实现及保持性能问题探讨?

2人关注 3个回答

除了ID发布的之外还有哪些开源且优秀的游戏代码?

3人关注 2个回答