1
Livid MOD 先从 Python 开始吧。
非常适合初学者的语言。 |
2
BB9z 2011-03-18 10:38:37 +08:00
不太严格地点一下。
可以这样划出三层:机器,语言,思想。 编程的直接目的是用程序语言操纵机器,根本目的其实是解决*人*的问题,机器和语言其实都是工具,至于上层思想——殊途同归。 不同的语言有它们所适用的领域,我建议你有两种方案: 1. just 选一个*你自己*喜欢的语言 2. 决定好你将来的发展方向,然后选择语言 有可能的话了解下相关语言的发展史,对选择语言应该有帮助。 |
3
xiluo 2011-03-18 10:52:45 +08:00
想更了解计算机,选C
想更快写出一些项目,Web或桌面之类的应用,选Python或Java --拙见。 |
4
TheOnly92 2011-03-18 10:56:07 +08:00
首先想想你到底要编些什么程序,再选择比较简单的语言入门。掌握好之后,要选择其他语言也行,继续保留也行。如果是 Windows 的话 Basic 入门也可以,其他系统 C 比较好吧,对基础来说。最重要的是,你必须知道自己究竟要写些什么,然后一直朝着那个方向前进,慢慢学习。
|
5
xiaojay 2011-03-18 11:11:35 +08:00
python +1
无所不能的python啊 |
6
dreamer 2011-03-18 11:19:40 +08:00
建议你学习编程的时候顺便看一下《Unix 编程艺术》这本书。
这篇文章也值得一看:http://coolshell.cn/articles/2439.html 个人觉得了解一下 Hacker culture 会增加你对编程的激情。最近我对 hacker 文化很着迷。 |
7
momo5269 OP @BB9z 我是这样想的,基础知识与深入的语言:编码的奥秘→深入理解计算机系统→计算机程序的构造和解释→Lisp语言。这是针对你说的第一点。
而第二点,这才是我的难点........我不清楚发展方向,也不清楚那些语言适合新手学习,因为说这种语言好,那种语言好的太多了,不知道信谁的...Python我之前就开始学,但是刚看了几章,又听见别人说学xx才好...................我一开始是准备做点桌面应用、独立游戏的方向去想的。 |
8
levn 2011-03-18 11:54:04 +08:00
|
10
momo5269 OP 谢谢大家,我是准备做一些小的应用和独立游戏,之后就是用于工作。那么,我学Python就可以了,对吗?
|
11
liuxurong 2011-03-18 12:29:37 +08:00
英语好不好?英语好倒是上手很快
|
12
sqbing 2011-03-18 12:58:41 +08:00
@momo5269 我觉得python虽然上手快,功能强,但是还是应该从c开始,倒不是因为真的用c来干嘛,c里很多处理问题的方法放到别的地方一样实用
算法也适当了解一些,配合你学习的语言 |
15
chloerei 2011-03-18 13:16:36 +08:00
@momo5269 小的应用和独立游戏对应什么平台?直接找对应平台的的API的原生语言。比如iphone是ObjectC(我猜的,不懂iOS),用python写应用和游戏可能遇到怎么部署的问题。
推荐C,Lisp,算法,计算机系统,编译原理那些什么的是向着计算科学方向去的,我倒觉得这些深层的不如自己觉得需要时候再补,应该直接往目标去。 |
16
momo5269 OP @thewei 这是我想要买实体书的书目:《软件随想录:程序员部落酋长Joel谈软件》《Python基础教程:第2版》《C程序设计语言(第2版·新版)》《C程序设计语言(第2版·新版)习题解答》如何?
|
17
momo5269 OP @chloerei 那是第二部分,我的想法是这样的:
①————————————————————入门语言与基础 ② ———————————7楼的内容 ③—————— 更深入 因为我不知道该如何构建学习框架,能给出什么建议吗? |
19
Mianco 2011-03-18 13:30:33 +08:00
要不从html/css/javascript学起,上手快,学完就能做东西。
|
20
momo5269 OP @chloerei 实际这是一个折中的办法,因为既然Python适合新手,C不得不学,那么都要就好了。先学Python,然后学C,C我是在高中NOIP小组学过一丁点点。
7楼的只是用来到一定程度之后填补知识空缺的,是一个朋友给我的建议,不过“计算机程序的构造和解释→Lisp语言”是我自己加的。 |
21
chloerei 2011-03-18 13:33:02 +08:00
|
22
chloerei 2011-03-18 13:42:25 +08:00
@momo5269 Python对你的好处是这样
一是胶水语言,什么方面都可以沾上。很多库都有python的接口,比如gnome的gtk库是用C写的,但是它提供了python接口,提倡小应用用python这样的语言写而不是用C。 二是跨平台,虽然跨到手机难点。这样不会捆绑在某个公司的私有技术。 三是书多,数据结构和算法什么的也有python描述的书。 学python的话,你会知道写一个程序是怎么用的,逐渐会知道写一个应用其实很多时候是调用别的库提供的接口。然后你发现你找到了自己想要写的东西,但是用python写在部署的时候会有麻烦(比如用户不愿意在手机安装一个python),你就开始研究该平台本地的语言。在你开发的过程中发现有个部分特别慢,你就开始研究底层,开始混合语言编程,这个时候你会逛逛 v2ex,回答别人”怎么学习编程“的问题…… |
23
chloerei 2011-03-18 13:43:29 +08:00
你会知道写一个程序是怎么用的 => 你会知道写一个程序是怎么样的
|
24
momo5269 OP @chloerei 谢谢了!那我就继续学python吧!虽然还没学多少呢....入门书籍《Python基础教程:第2版》就可以了吧?我有很多电子书但是看不下去,这也是没学下去的原因之一。
|
25
BB9z 2011-03-18 14:00:40 +08:00
好热闹。
@momo5269 补一本数据结构的《数据结构与算法分析 —— C语言描述》Mark A Weiss的,C描述好处就是比较纯粹,没有像C++,Java那么多“包装”的讨论。 “基础知识与深入的语言:编码的奥秘→深入理解计算机系统→计算机程序的构造和解释→Lisp语言”——这个路子我认为可能有问题,但不好说…… “不知道信谁的”,“但是刚看了几章,又听见别人说学xx才好”—— 这个能理解,其实他们说得都对,但这是在特定情况下的,单看表面矛盾的言论实在太多了。现实中很多问题没有对错、好坏之分,只有在特定情形下合不合适。开发中也一样,要处理很多折中问题。 需要自己作选择,并承担起一切后果。而且现实中最终能不能成,也要靠运气。 像Joel,37signals的经验是不能直接照搬的,东西方环境有差异。巨大的成功离不开时代背景,决策时不要被少数成功的光环所迷惑,总体的情况才是可信的。 居然说了这么多空话…… |
26
chloerei 2011-03-18 14:02:00 +08:00
@momo5269 这本书我没看过,看其他pythoner意见了: )。挑书可以相信直觉,翻翻目录看充不充实,看看作者的文字合不合胃口。有人喜欢严肃的书,我就喜欢语言比较轻松的书。挑好了就一本看到底不要三心两意,当然,发觉自己真的被坑了就上豆瓣打个一星。
别看这本:《dive into python》,专门用苦涩的语法晒优越。 |
27
Aragon 2011-03-18 14:05:23 +08:00
@momo5269 电子书能不看还是不看为好,阅读,特别是学习,最好还是纸质书。如果偏要看电子书,那么最好用Kindle或者iPod Touch这类设备看。
我自己就是个用电脑看电子书看到后来成看网页的过来人。后来还是购买实体书看,觉得踏实。 |
28
bigzhu 2011-03-18 14:09:04 +08:00
用 python 是对的.适合初学者,但是也可以学的很深.
不要死看书,自己写些小程序和脚本. |
29
momo5269 OP |
30
xsmile 2011-03-18 14:12:23 +08:00
关键要动手,在实践中自然就会发掘和学习到深层次的东西。语言什么的,真的要看你的工作性质了...
|
31
Sean 2011-03-18 14:13:00 +08:00
我觉得学习编程从选择哪门语言开始入手,不是好的开端。
学习编程是为了让计算机按照我们要求去运行,那么我们的要求就不能异想天开,要在计算机能力范围内的,所以要了解计算机的"能力"。 明确自己的要求,"为了学习编程",找到与自己要求相近的一些应用。了解这些应用都是使用什么语言开发的?如果开发的?这些语言比较的话各有哪些优缺点? 然后,选择一眼就相中的那个语言,去边学习边实现自己的相法。 选择语言的时候,只要你相中,就觉得舒服就可以了。与选女朋友一样,不需要说出来一、二、三点理由的。我就是喜欢,怎么样着吧。有人觉得python优雅、有人觉得丑陋。只要你喜欢就行了! |
34
momo5269 OP |
35
Aragon 2011-03-18 14:25:40 +08:00
@momo5269 对于选择语言的问题,楼主看看这个,可能有点启发http://www.cnblogs.com/bitfan/archive/2011/03/13/1982744.html
|
36
momo5269 OP @Aragon 谢谢,看来就是Python了。我因为高中离校,所以数学不行,我有本教我老师上大学计算机系时的Pasca程序设计(第二版)l,却看不懂稍微深一点的问题(涉及到线性代数与图论)......
|
37
ray58750034 2011-03-18 14:42:28 +08:00
Java适合初学,因为严谨。 学Java有两个结局, 一是有了编程思想, 以后改任何语言都可以; 二是没学到编程思想, 以后只要按部就班还是可以写简单的程序。 学Java基本上不会出现彻底不会编程的人。
Python适合已经有程序思想的人, 它比Java更像编程语言,说白了,用好Python要天赋。 Java设计的目的就是为了批量学习、批量生产。 而Python Ruby 这类很动态的语言是由一群很有个性的人组织起来的,所以要想加入他们,就必须先接受他们的思想,不然很难有进展。 然后语言的诞生都是有其应用目的的,可以从自身需求出发,找到适合自己的。 如果是以编程入门为主,Java挺好的, 尤其是Java的设计一直很规矩,日后转其他语言都用的上。 |
38
spark 2011-03-18 16:33:47 +08:00
纯WEB而言,php和python哪个更适合入门?
|
39
chone 2011-03-18 16:51:38 +08:00
python好,容易上手却又强大。
如果觉得python直接上有点难,不妨先学学html先建立一个认识。 c不太推荐 |
40
xsmile 2011-03-18 17:12:09 +08:00
@ray58750034说的非常好,非要选个语言的话,就选择java吧。掌握了java,其他语言不在话下。
|
41
bigbrother 2011-03-18 17:17:29 +08:00
学C打打基础吧
我遇到一个半路学编程的,直接学PHP,居然不知道对一个变量重新赋值,会覆盖掉原来的值,悲剧啊 |
42
chloerei 2011-03-18 17:34:45 +08:00
@bigbrother 函数式编程没有变量,算不上悲剧
|
43
bigbrother 2011-03-18 17:37:16 +08:00
@chloerei 函数式编程没有变量是啥子意思呢,第一次听到这个说法,不要笑我菜。。。
|
44
chloerei 2011-03-18 17:43:51 +08:00
@bigbrother 比如 Erlang 里面,它给一个变量赋值
> A = 1. 1 之后这个变量就不能再赋值,否则会抛出一条异常 2> A = 2. ** exception error: no match of right hand side value 2 实际上 = 号不是赋值操作,是匹配运算。对于只学过数学的人,可能对这种 = 号更容易理解。 |
45
Jet 2011-03-18 17:52:45 +08:00
1、不管学什么语言,不要偷懒,把书上的每个例子都敲一遍。(python我用这个方法3天搞定。)
2、C是必修。 3、不要学C++,无比垃圾的语言。 |
46
too 2011-03-18 19:07:39 +08:00 via iPod
本帖很多信息,请允许我mark一下
|
48
Ricepig 2011-03-18 19:41:04 +08:00
看《计算机程序的构造和解释》书和相关OpenCourse视频
至少学习一门命令式的语言(Imperative Language),比如C 至少学习一门函数式的语言(Functional Language),比如javascript或者Lisp 然后动态语言啥的就看爱好了 |
49
momo5269 OP |
50
momo5269 OP 除了用Python 2.7,JetBrains PyCharm怎么样?
|
51
kejinlu 2011-03-19 14:09:38 +08:00
@momo5269 决定下来之后,不要顾虑这样顾虑那样。 不管什么时候你都无法绝对的做好准备。从现在开始,安装好编译器运行环境,找一段代码运行起来,然后慢慢理解。这个时候你必然回去翻看语法
|
53
leafsong 2011-03-19 14:29:16 +08:00
哈哈,好好的论坛不做,跑这里来发,鄙视一下
如果你真想学编程,首先要问自己的一件事 我学编程想做什么,或者说是,假如自己已经是个编程高手,第一件事要做什么 |
56
momo5269 OP @leafsong 做什么答案不是说了吗?游戏和应用。应用主要是我以前总是感觉手头的一些工具不好用,想自己做,还有很多需要解决的问题什么的,这些都是做应用的目的。游戏则是独立游戏,这个不用我多说吧?
|
57
lychee 2011-04-05 21:35:10 +08:00
其实啊 就个人感觉C和python都很值得学习的 楼主就大胆开始吧 有时候制定太遥远的计划根本没什么用 计划赶不上变化 学完书上的基本知识之后就可以找个结构良好的小程序 研究一下他 试着扩展它 或者重新实现一个 实践出真知呢
|
58
OnlyBlue 2011-10-03 20:06:59 +08:00
单纯讨论哪种语言好有意义吗?我觉得重点是这一句话:"我是准备做一些小的应用和独立游戏"。所以我建议楼主应该看看开发小的应用和独立游戏的主流的语言和工具是什么,再从中选出适合自己的,这样不好吗?
|
59
Echoldman 2011-10-03 20:18:14 +08:00 1
如果是长期学习、不是快速突击的话,先学习C语言是非常正确的,你看看其他什么C++、Java、Python、Objetive-C等等,完全是都需要C语言的基础知识的
|