首页 > 教育学习 > 为什么 > 高三毕业,暑假要学编程,要先学什么?

高三毕业,暑假要学编程,要先学什么?
2012-01-19 19:57:38   来源:   点击:

    高三毕业,暑假要学编程,要先学什么?我比较倾向于网站开发或者手机软件。。

    6 个答案

    • 答案 1:

      毕业接下来还是会继续深造,而不是马上工作吧?若是,不知你选择的专业是不是计算机相关的专业,换言之,有没有打算走计算机专业发展的道路呢?目标不同,答案也会不一样。如果打算以计算机专业为主业走下去的话,还是建议先打好基础,而不必急于出成果。大约有两类进阶路线:

        从底层到高层的编程学习:

        先学习最基本的C语言,主要是为了把编程语言中最基础的变量、表达式、流程控制语句、函数、模块化这些小方面打通。因为,基本上所有的流行语言(纯函数式的除外)都包含了这些要素,通过学习C,可以把它们的共性都集中学习了,之后再学其它语言的时候,就不需要从新学习if..else.../while这些概念了,大部分都可以触类旁通。另外一个比较重要的理由是C比较接近底层,把指针相关的概念弄清楚了,会有助了加深对内存管理相关的了解。不少高级的语言,如Java等,都把内存操作给自动化或封装起来了,简则简矣,但如果作为初学者所用语言,则失去了一个了解底层的机会。另外在C学习阶段,顺便也可以把简单的算法打个基础,不需要有《算法导论》的要求,但基本的排序、查找什么的经常用得上,都可以在此阶段解决掉,多少留个印象。C阶段不需要花太长时间,没有编程经验的话照着书上机学习两到三个星期就够了。

        比C更高级的语言,视发展路线而定:比如做网站开发,可以选由Java/C#入手;做手机软件,则看具体平台,Android的仍然可选择Java,iOS则为Objective C,Windows Phone则可考虑.Net平台的比如C#。但由于假定的是专业路线的学习,所以此阶段仍建议专注语言本身体现的设计思想,比如基于对象的封装,OO的多态,等等。这个阶段选对一两本好书是比较重要的,一般可以考虑一主一辅,比如一本讲Java,一本Effective Java辅助加深之类,视具体语言而定。

        应用开发相关的学习:此阶段才开始侧重于应用相关的学习,比如做网站,可能网络相关的基础得掌握,再就是相关的库函数、框架,等等。手机应用亦是类似。

      从抽象设计到具体工程开发的编程学习:

        所谓抽象设计即指编程过程中体现的设计思想。此路线的主旨就是先把程序设计过程中所可能面临的问题,目前发展出的解决方案(抽象啦、封装啦什么的),都给你讲解清楚,过一遍,至于说用“如何反转内存x偏移处字节低4位的值”这些低阶概念在这阶段基本上是忽略的。此路线典型的入门教材是MIT的《计算机程序的构造和解释》,俗称SICP. 说是入门,实际估计会啃崩不少老鸟的大牙。初学的话能把前三、四章看懂就已经难能可贵了。后几章偏组成原理、编译原理,若能真坚持实践下来,内功可以PK掉一大片科班出身的本科生了,不过不应抱太高期望。(话说MIT前些年把这门课取消了,改用Python玩儿机器人去了。MIT教材没看。话说Python入门的确也是不错的选择,前提是有合适的教材指引,不然又变成玩儿应用、玩儿库了。加之Python灵活度很高,面向过程、面向对象、函数式都有支持,教材合适的话是很好的,但反之不合适的教材可能会导致初学者写码过于随意,楷书没练好直接狂草可能就不大妙相较之下Java作为初学语言在约束性方面倒不错,模块、包之类的概念贯彻得比较成功,包括要求主class名必须与文件名一致之类的。)

        当#1的心法练成之后再接触具体的应用开发。毕竟像SICP直接走Scheme,在现实世界中做应用开发还欠点火候。此时再转像Python/Java/C#之类的工业语言,投入到热火朝天的社会建设中去。有SICP的基础,再去上手什么OO、design pattern、FP之类估计不是太大问题。再花点时间熟悉熟悉相关领域的库就差不多了。

        C一层的硬件级别机制,其实如果在SICP把后几章搞懂,也差不多了,不过那书太不好啃,所以也可以空着,在应用开发的过程中再慢慢以其它渠道逐渐了解,比如垃圾回收做了什么事、内存通常使用的管理策略,等等。

      前面写了两大类,都是稳扎稳打的计算机专业一条走到黑路线,练成了就比较牛了,但是相对枯燥,从学习到出成果的激励周期太长。尤其第二种路线,多少也得在Lisp世界中浸淫许久,不问世间API,跟闭关差不多,自学的话估计只适合少数geek. 回头看看似乎不够务实。所以如果不打算以CS为主业,或者只是为了把心中的idea给实现了其它甭管,那么还有偏应用的路线,适合业余开发人员入门:

        面向应用的学习:

        先从Java或者C#这样的语言入手。理由:

        语法简单:至少“做事所必不可少”的那部分语法,比起C++建一个class还要考虑要不要处理copy constructor/operator=之类的语言,简单得多。

        框架丰富、高阶:大概一天之内就可以照着书搭个界面美观专业的小程序,激励周期非常短,很适合小晚辈自学。不似C语言,学了两个星期也就只能写写丑陋的、基于字符输出的农夫和狼和羊和菜过河的demo(如果你觉得这类程序很cool很美那只能严重恭喜你)。

        IDE/文档齐全:Eclipse/VS可以把你伺候得从头舒服到脚,文档支持、社区支持也是健全。这也是为什么没有在这里选Python的原因(考虑到初学门槛,需要配置才舒服的不算)。

      应用骨架搭出来之后,再按需学习。一些共性的东西,像design pattern之类,都可以边实践边学。另外就是领域相关的,写游戏的可能要关注性能、底层、算法方面的知识;网络的可能就可以开始关注基础、中间件、数据库,或者前端的HTML/JS/CSS等等。这时候要注意小步前进,因为底子不牢,所以不能操之过急。尽量做出一个小东西之后就放到骨架中立刻看反馈,发现不对头就及时回过头来改。

    • 答案 2:

      这就要视你往哪个方面发展而定。如果你想从事web方面的开发,学习php和java是一个不错的选择。现在的大学在计算机专业里都开设了C语言和java的课程,所以你现在可以先开始学习C语言,有了C语言的基础之后再看看java和php,从中决定一个你要学习的编程语言,这样的话会比较好。做网站开发还要涉及很多方面的知识,如div+css布局,javascript和一些javascript框架(jquery、extjs等),数据库查询语言(sql)等等。慢慢来吧,先规划好才是重点。
    • 答案 3:

      网页开发先学HTML,手机开发先学C/C++或Java。
    • 答案 4:

      虽然你比较倾向于网站开发或者手机软件,但我觉得你不妨先对相关的各种语言了解一下先。不可否认兴趣是很好的导师,但不是所有我们有兴趣的事都能做好的。我觉得选上适合自己的,以自己的能力将来有很大发展空间的才是重要的。就像我们高考填写志愿一样,还没读的时候,觉得自己对这门学科很有兴趣,但真的进大学读过之后,你又可能不是这样想的了。不知道你是否是对网站或手机软件开发有兴趣才去选的,还是出于一种表现自己而去选的都好,只有适合自己的才重要,别跟风。网站开发,可以asp、asp.net、php,也可以是perl、python、ruby等。手机软件,那就要看是什么平台的了。语言很多,但无论学哪一种,精通了才是硬道理。
    • 答案 5:

      先学 C语言,再学 Java,其他大多数编程语言都是由 C 演变来的、现在较为流行的倒是 Python 和 Ruby、
    • 答案 6:

      如果没有基础,随便买本书,把题目做一遍。。剩下定个目标开始做。。中间遇到困难,不要放弃。。多和其他人交流。。网上爱好者很多。。

相关热词搜索:

上一篇:大家如何看待网易做的itown这个平台?itownsdk这个开发包呢?你们觉得itown前途如何?
下一篇:在哪能买到三毛的书的英文版或西语版?