查看: 5069| 回复: 13
跳转到指定楼层
上一主题 下一主题
收起左侧

[资料信息共享] 零基础学编程,VB / Java / C / C# / C++ 等哪个更容易上手?

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 xiaocao 于 2012-6-13 15:19 编辑 .--

从知乎网看到的帖子,作者思路很清晰,最近结合编程算法版和这篇文章在学习编程,希望对大家有用!
原文链接 http://www.zhihu.com/question/19740053/answer/13159419

其实主流的语言C/C++, Python, Pascal,Basic, JAVA, C#都可以作为入门的编程语言。因为它们都存在一个具有足够表达能力的语言子集,优秀的入门书籍,成熟的库,以及强大的社区的支持。所谓选择最好的入门语言可能是一个伪问题,而真正的问题是当你选择了其中一门语言后,如何选择合适的学习方法。
  
学习一门编程语言,应该是容易的,因为计算机语言本身的特性只是它的语法。而计算机语言的语法无外乎是表达以下几个方面的概念:
. 1point3acres
1. 数据的表达
常量的定义 ..
变量的定义
结构体的定义
类的定义

2. 控制流的表达
顺序语句
条件语句 ..
循环语句
. 1point 3acres
3. 封装和抽象
函数的定义和调用
类的定义和调用 . 1point3acres
库,模块,命名空间的定义和调用
. 1point 3acres
而当对这些概念有了基本的印象并学会了用一门计算机语言表达这些概念之后,接下来对于初学者来说最为重要的应该就是三件事情,掌握:
  • 编程范式
  • 基本的数据结构,算法
  • 对应语言系统库常用的API

常见的编程范式有:
  • 面向过程的范式,这个应该是对于初学者而言最为容易理解的方式,几乎所有的主流语言都支持这一范式,初学者应当首先学会这种范式
  • 面向对象的范式,这个应当是最为主流的编程范式,从软件开发的角度看, 它的优点在于能够用面向对象的方式贯穿软件开发的整个生命周期,包括软件的设计、编码、测试
  • 函数式编程,在并行计算的时代,函数式编程的范式将会成为另一大主流,推荐对其做一些了解。. 1point3acres.com
. 1point3acres

算法是计算机科学的灵魂,它的意义在于让你理解计算机的工作方式的本质。对于初学者而言,不需要掌握过于复杂的算法,但是应当熟练地掌握基本的排序、检索、遍历的算法。数据结构亦是类似,初期掌握数组,链表,栈,队列,哈希表,栈即可。

系统库的意义在于可以大幅提高你的开发效率,虽然重造轮子是程序员的一大乐趣。但是在实际工作中,我们可能更多地需要追求效率,而系统库是过去优秀的程序员的经验的结晶,往往在性能和强壮性上都做了大量的优化,一般来讲都会比我们自己的实现要好得多。正因如此,学习和掌握系统库虽然枯燥(初期要记忆大量的API细节),但是却是一笔非常值得的投资。

以下想说说关于学习曲线的问题,初学者最大的障碍可能就是遇到问题得不到解答。不过,如今的学习条件跟当年互联网不发达的时候相比已经好得多了,有这么多优秀的问答网站,学习资源,百科全书可供使用,比如:
1. 知乎
2. stackoverflow
3. wikipedia
4. 美国一流大学的开放式课程

我推荐的学习方法是:
1. 选择一套优秀的学习资料,它可以是书亦可以是视频     
    坚持从头到尾学习下来,遇到问题通过google来寻找答案或者上问答网站提问  .
   
部分语言的优秀的入门教材
C: C Programming Language
JAVA: Java Programming Language, Stanford's the programming methodology
C++:  C++ How to Program
Python: Dive into Python, Learn Python the Hard Way . 1point 3 acres
. 1point3acres.com
2. Practice Makes Perfect,提高编程水平一定要勤加练习,推荐使用在线测评网站练习。
    比较适合新手的在线测评网站:
    USACO
    Euler Project
    TopCoder

当你成功地写出自己的程序并通过测试之后,停下来,想想是否还会有更好的实现方法,总结自己在实现过程中遇到的困难,并且阅读比你更聪明的那些程序员的方法,阅读优秀的代码会让你学到很多。然后再尝试用更好的方法去实现。
     
3. 多分享,写博客或者来知乎,SO上回答他人的问答,帮助别人不但让你感到有成就感,其实也是提升自己的手段,因为只有当你能解答他人的问题之后你才是真正地理解了这个问题。

最后, happy coding!


上一篇:CMU的VLSI怎么样
下一篇:求教:电动汽车方向
全局:
C Programming Language不适合作入门教材吧
回复

使用道具 举报

🔗
 楼主| xiaocao 2012-6-13 16:07:42 | 只看该作者
全局:
氖氩氪氙氡 发表于 2012-6-13 16:02
C Programming Language不适合作入门教材吧

这是我的想法:对于非科班出身,我入门不会选C,所以也不会看这本书。可能对于学习能力比较强的人能选这书吧。
回复

使用道具 举报

🔗
halolk1 2012-6-13 17:09:53 | 只看该作者
全局:
不错,顶一下
回复

使用道具 举报

🔗
 楼主| xiaocao 2012-6-13 17:17:21 | 只看该作者
全局:
halolk1 发表于 2012-6-13 17:09 .1point3acres
不错,顶一下

谢谢啊。在论坛里泡了这么长时间,发的第一篇干货啊,虽然是转的。
也是对自己最近学习CS的一个鼓励吧。
回复

使用道具 举报

🔗
halolk1 2012-6-13 20:28:27 | 只看该作者
全局:
xiaocao 发表于 2012-6-13 16:07
这是我的想法:对于非科班出身,我入门不会选C,所以也不会看这本书。可能对于学习能力比较强的人能选这书 ...

我也觉得,入门不应该学C,C不够好使,可能会打击人编程的积极性。另外C Programming Language这本书不适合新手入门,太难了。
回复

使用道具 举报

🔗
hxf0801 2012-6-15 03:28:46 | 只看该作者
全局:
C++选Bjrne Stroustrup的《Programming - Principles and Practice Using C++》,这个是专门为零基础入门者编写的,作者还讲述了很多好的编程实践,为什么要这么做,原因都说明的很清楚。个人觉得学了C++,C随便找本看看语法,注意下差异就差不多了。. .и
.google  и
java的学习还是看 《Java编程思想》吧
回复

使用道具 举报

🔗
wzs9988 2012-6-15 22:13:49 | 只看该作者
全局:
不错,支持一个!
回复

使用道具 举报

🔗
austinls 2012-6-16 20:00:18 | 只看该作者
全局:
java编程思想有些东西讲的挺深的
回复

使用道具 举报

🔗
 楼主| xiaocao 2012-6-17 15:06:30 | 只看该作者
全局:
austinls 发表于 2012-6-16 20:00
java编程思想有些东西讲的挺深的
. Χ
同感。 入门时还是看的视频学的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表