一开始自学 C ,看 KR ,一直死啃看到 Structure 那里,因为之前看过另一本《 c 语言解析》,所以都没什么大问题。(但是那个 quicksort 排序算法跳过了,自己掰着指头演示了一下,能工作,但是没仔细研究原理,因为觉得正在学语言,不想耗费精力研究算法)。偶尔网上看到人讨论,说入门不要看 KR ,太晦涩,会走太多弯路。于是现在很犹豫是不是该改成 C Primer Plus 来入门。
另一个问题,好多人说学会了 C 看其他的就很简单了,大家说说是这样的吗?到底是先看 C 然后再看其他的快,还是先学其他的,最后来研究 C 呢?我的目标是学会 C , python , php ,数据库。
补充一下,也看了很多国外的讨论,最使我震动的是这样一段:
“ I think not, be careful to jump on the K&R bandwagon. K&R does not address good program design nor good programming practice, mainly because it was originally written before anyone knew what good programming practice was. It does not mention which parts of the C language that are superfluous or even dangerous. The book is correctly listed as a reference manual, it should not be used for teaching/learning modern programming.”
2
roychan 2015-10-03 22:49:10 +08:00
C
|
3
cloudqq 2015-10-03 22:50:53 +08:00
PYTHON
|
4
tammy 2015-10-03 22:50:59 +08:00
我觉得都不好,建议《计算机组成原理》
|
5
chenggiant 2015-10-03 22:52:36 +08:00
Java 好! (我是来捣乱的...)
|
6
codeforlife 2015-10-03 22:52:56 +08:00
建议学汇编
|
7
zjqzxc 2015-10-03 22:57:37 +08:00 3
如果目标不是计算机工程师,前往不要从 C 开始学。。
对于不想当码农的人来说, C 的学习曲线太陡峭了,,以至于学习了好久都无法写出自己想要的东西。然后学习兴趣就没了。然后就没有然后了。 对于非计算机专业的人老说,编程最重要的功能是解决遇到的问题而不是给自己找麻烦。效率,程序可读性甚至是可维护性都可以扔一边,把问题解决了才是最关键的。 如果想写一个网站,直接上 php 会比较快。 Python 相对来说比 PHP 稍慢,毕竟 php 除了当动态网站语言之外几乎干不了太多的事儿了,人家专业做这个的。 总结:对于非程序员来说,码代码是用来解决问题的,不用纠结底层的东西,能短平快解决问题才是最关键。 以上观点可能会有大批程序员不赞同。。所以再次强调,这个说法是针对不想成为程序员但有编程需求的 人的。 |
8
zonghua 2015-10-03 23:13:23 +08:00
楼上说的好,不是计算机专业的不建议从 C 开始
|
10
ru20150601 OP @zjqzxc
谢谢你这么晚了还写这么长篇,问题是我已经看到 structure 了,这本书从厚度来看已经看完了 2/3 了,有点不舍得。。。。老司机们,过来人们,来告诉我下后面还有多少吧。 |
11
Paranoid 2015-10-03 23:19:49 +08:00
天下武功,唯快不破
天下语言,唯 C 不纯 要看你所在的阶段,中学,高中,大学? C C C 工作了? 先掌握吃饭的技能,再学 C C C |
12
movtoy 2015-10-03 23:20:26 +08:00
先 PHP ,感兴趣了,写个小论坛,有成就感了。再慢慢深入学 C 。。
关键是 PHP 教程多。低端到高端只是都有。。 |
13
limbo0 2015-10-03 23:25:43 +08:00
我觉得 c 必然得学的, 这关系着理解计算机底层的概念, 对以后很有帮助.而 Python, php 是应用层了, 关系更高层面的东西, 也是以后能够接触的.
当然, 感觉 c 是最简单的了, 因为是最基础的, 语法结构也是比较简单的, 学 c 很简单, 但是编程思想, 方法一系列的东西还是靠慢慢养成的 |
14
Comdex 2015-10-03 23:27:45 +08:00
学 golang
|
15
Threezj 2015-10-03 23:33:17 +08:00
C 这关必过的吧,结构化编程套路,指针的思维。对你将来的学习都有很大的帮助。然而 C 并没那么难学吧? 网易云课堂翁恺老师的课跟一下,作业做好,肯定能理解,编程也就算入了门了。到时候可以再按需求来学习语言。然而功夫在语言外。
|
16
skydiver 2015-10-03 23:35:30 +08:00
C 本身没有太多东西啊。。没必要花那么多时间在这个上面。
看书不需要看得那么仔细,不求甚解最好,先掌握整体,然后遇到实际问题再去看对应部分。要不然一本书都啃不下来…… |
17
yxcxx 2015-10-03 23:36:40 +08:00
C 必须学,但是建议不要一开始就学。学 Python 或者 PHP 很容易能作出东西比较有成就感和兴趣。学到后面你不得不去学基础知识(算法,数据结构,操作系统)的时候才开始去学 C 。
|
18
anubiskong 2015-10-03 23:38:24 +08:00
javascript
|
19
simon7 2015-10-03 23:41:19 +08:00 via iPhone
Python 妥妥的
|
20
pmpio 2015-10-03 23:41:24 +08:00
还是 BASIC 最好入门。。。。
|
21
zts1993 2015-10-03 23:41:49 +08:00
半吊子程序员很多都是从高级语言开始。。。我说很多绝对,不要碰我。
|
23
minvacai 2015-10-03 23:43:51 +08:00 1
我就是先会 C 再会其它的。总的来说觉得 python 最简洁上手也最快,学 C 得益最多, PHP ?嗯我知道这是最好的语言了,那又怎么样,用起来毫不愉悦啊。
|
24
Jaosn 2015-10-04 00:31:03 +08:00
我也好奇的一点,为什么现在高中都开始学 VB 了?
|
25
543400 2015-10-04 00:34:22 +08:00 via Android
php 比较简单,而且是最快赚钱的
|
26
Sabermadao 2015-10-04 00:35:03 +08:00 via Android
我们一开始就学 C++!心累
|
27
blackcloak 2015-10-04 00:37:27 +08:00
从 Haskell 开始学起吧
|
28
moooookey 2015-10-04 00:37:34 +08:00 1
从现在开始
|
29
realityone 2015-10-04 01:11:35 +08:00 via iPhone
@moooookey 从现在开始
|
30
lenran 2015-10-04 01:17:01 +08:00
偶尔看到的,不是偶的观点:
学习如何编程 http://translations.readthedocs.org/en/latest/hacker_howto.html#id11 其实,我是比较同意 7 楼 @zjqzxc 的观点的 |
31
hbkdsm 2015-10-04 01:22:05 +08:00 2
Scheme/racket 函数式才是王道
这是非科班相对于科班的优势,科班出身的都是从 C, C++, Java 学过来,命令式编程、结构化编程的思想已经形成思维定势,没有编程基础的人学函数式反而没有障碍。君不见国外大学大一新生都是先学 SICP ,从 Scheme 开始的! |
32
chengzhoukun 2015-10-04 01:48:26 +08:00
C/C++必须要学的,因为大部分互联网公司笔试都会考的
|
33
orFish 2015-10-04 01:52:44 +08:00
c
虽然以后有些方向跟 c 没啥关系。。。 但是 c 有些东西学到还是挺有用的。。 |
34
ilotuo 2015-10-04 01:54:24 +08:00
非常不同意 7 楼
说的好像搞网站搞 web 才是程序员一样. 个人觉得对 C 都不了解就对程序的构造,原理更不理解了.连程序的编译,链接,执行原理都不懂何谈程序员. |
35
ilotuo 2015-10-04 01:58:06 +08:00
好吧 我没看到最后一句...
但是明显楼主不是 "不想成为程序员但有编程需求的 人" |
36
wwwap 2015-10-04 01:58:49 +08:00
ruby,javascript
|
38
msg7086 2015-10-04 02:20:23 +08:00
从 Python 学起,然后再转到其他更有意思的语言去。
|
39
icedx 2015-10-04 02:27:15 +08:00 via Android
去海边烧沙子 从手工雕刻 CPU 学起
|
40
ryd994 2015-10-04 04:33:24 +08:00
@hbkdsm 您说的是哪国哪校的学生啊?
在我所知的范围内,多数用 Python 入门,后面跟 Java/C++的数据结构,然后是算法 /组成 比国内用 C/Pascal 入门要简单,算法也以知道复杂度为目标 |
41
hbkdsm 2015-10-04 04:53:44 +08:00
|
42
wolfan 2015-10-04 04:57:45 +08:00 via Android
从语言风格来讲好像三都是同缘的吧,如果是爱好,那从, c,py ,如果生产那还是 php 吧。
个人看法 |
43
a358003542 2015-10-04 08:33:59 +08:00
不是有一句这样的话吗,对于程序员来说,学习任何一门新的语言都能对自己有所提高,除非你已经学过 lisp 了。
|
44
chenhui7373 2015-10-04 08:36:06 +08:00
CPlusPlusPlusPlus
|
46
linux40 2015-10-04 08:45:28 +08:00 via Android
c 语法很简单,只是容易乱搞而需要长年的努力。。。
|
47
zhicheng 2015-10-04 09:05:20 +08:00
全学
|
48
Fortran 2015-10-04 09:07:43 +08:00
不建议先学 C ,但 C 一定要学的
|
49
Leu 2015-10-04 09:29:09 +08:00
定一个上端的目标,然后查询需要实现这个目标需要获得哪些技能,然后制定一张技能表从底层一层一层往上点技能点。不管学习什么语言,最重要的是要知道你想用这门语言干嘛,这样才有动力学下去。
|
50
assassinpig 2015-10-04 09:30:22 +08:00
如果学 c 就坚持学,如果不学 c python 之类快速入门干活的即可
|
51
Jocktaa 2015-10-04 09:41:09 +08:00
先学一门高级语言 很容易获得成就感,,然后再学 c
|
52
jukka 2015-10-04 10:10:47 +08:00
个人认为,关键的问题在于,如果你先学了其他语言,比如 python 之类的,你就已经能干很多事情了。到时候你根本不会有兴趣去学 C ,因为大多数需要 C 的地方,都有前人写好 lib 了。
如果努力,想在技术这条路上继续走,很快就会走到需要 C 的那一步。到时候就不知道能不能 *静下心来*了。 |
53
llhhss 2015-10-04 10:14:57 +08:00 via iPhone
半路出家: python
一时兴起: php 其他: c |
54
c24c4fe8 2015-10-04 10:38:00 +08:00
入门学习 python 吧 等有了兴趣可以再学习其他的,相对于 其他的路太陡峭了,容易失去信心 半途而废。
|
55
ljbha007 2015-10-04 10:41:13 +08:00
Python 十分适合入门
等有一定水平了再研究 C/C++会有很多好处 虽然不一定用得上 |
56
haogefeifei 2015-10-04 10:44:31 +08:00
遇到的好多前辈都是 basic 起步的(小霸王学习机。。)
而我嘛,是 Python for S60 起步的(在塞班手机上写程序) 国外初中高中课程教的是 VB (玩游戏不小心进了海外党的群) 学校正儿八经的教的是 C ,只作为编程基础 高级语言学的 Java , C#,我自学的 Android 。。 Web 方面一开始写的 JavaWeb ,后来用的框架里的 Spring 把我恶心到了 如果不是写 Android 估计现在全面倒向 Python 了 |
57
haogefeifei 2015-10-04 10:48:59 +08:00
个人觉得语言不重要,关键是计算机和网络方面的基础知识要学牢。
|
58
glchaos 2015-10-04 10:56:42 +08:00
没人推荐 C#?这东西学了基本上什么都能写了,很快!
|
59
wizardforcel 2015-10-04 11:00:13 +08:00 via Android
如果在这几个里面选的话,我支持 python 。
|
60
yuchting 2015-10-04 11:03:36 +08:00
当一个程序员回答我,一个 C 的 char 占 2 个字节的时候,我仰天畅谈,内流满面……
|
61
foxkiller 2015-10-04 11:04:27 +08:00
@ryd994 呃= = UCL 本科大一的 programming principle 是用 Haskell 教的= =确实是上来就一门函数式让你练练胆。。外加看 Church 的 Lamda 演算的 paper 看到想上吊。。。
|
65
redvoilin 2015-10-04 11:29:15 +08:00
先学 c ,再学 ruby
|
66
YuJianrong 2015-10-04 11:30:30 +08:00 via iPad 1
"好多人说学会了 C 看其他的就很简单了"…这谁说的简直胡说八道! C 那么简单而奇葩的语言学会了看其他也没多大用啦。 C 其实是比汇编高一点,但比其他语言低很多的中级语言,学习 C 一个重要的地方就是要体会这段代码编译成机器码的时候应该是什么,和其他语言不同, C 对机器嘛的翻译比较直白,所以很适合理解底层实现,学 C 也就对写底层实现有点好处而已。指针啦宏啦很多语言都没有,你学会了又有什么用?
所以说你要定目标的话,不要定成学会什么语言而是应该定成什么方向!就比如 php 和 c ,这几乎是不会同时使用的东西一起学会你是要干什么?先选好方向,再去找这个方向需要的语言和环境,才是正道。 当然 OOP 还是应该掌握的,所以可以找一门还算简单易学的 oop 语言学学看,建议语法 C 风格的 java 或者 c#。 |
67
liboyue 2015-10-04 11:30:54 +08:00 via Android
不从 C/Cpp 开始连内存是什么都不知道吧?
|
69
onlyxuyang 2015-10-04 12:00:05 +08:00
python...
|
70
HentaiMew 2015-10-04 12:08:06 +08:00
php 只是脚本语言 很多静态编程语言特性都没有的 不建议上手
|
71
XadillaX 2015-10-04 12:26:09 +08:00
C
|
72
wezzard 2015-10-04 12:32:45 +08:00
x86 assembly is your friend. :doge:
|
73
superhxnju 2015-10-04 12:33:56 +08:00
先学静态类型语言比较好
|
74
zog 2015-10-04 12:37:26 +08:00 1
结论: python
这个问题在 how to become a hacker 里面有阐述。英文链接: http://www.catb.org/esr/faqs/hacker-howto.html 。中文翻译: http://zer4tul.github.io/docs/hacker-howto.html#hacker-howto 。文章作者是: Raymond, 著有大教堂与集市。 |
75
ru20150601 OP @YuJianrong
谢谢长篇回复,看到您能直述自己的观点,感觉到 V2EX 这地方确实不错。 也谢谢各位站友的回复,让我得了不少铜币 :) 我仔细想了一下,决定先把 C 看完,我是从 C 入门的,以至于看 C 现在很亲切,没有 Yujianrong 所说的“ c 语言奇葩“的感觉,但是 python 看了两章反而感觉不是很友好。可能是思维暂时转不过来吧。但是我决定暂停 KR ,转向 C Primer Plus ,原因如下: KR 本身并不高深,它只是说的不详细(它可能很详尽,但是不详细),很多东西都是点到即止,所以看起来困难。更像是一本 reference book ,如果选择这本书来学习,那真是 “没有困难,创造困难也要上”了。 能够用白话文看明白而又不失去原意的东西,没必要看文言文。毕竟我们要看的是内容,而不是古文的美学。把逻辑结构写的很简约以至于到了新手看不懂的程度,如果我硬啃下来,除了速度慢,有可能锻炼一下自己的悟性之外,似乎也多学不到什么东西。 不知道有没有赞同我的想法的。 |
76
snnn 2015-10-04 12:46:08 +08:00
@ru20150601 "能够用白话文看明白而又不失去原意的东西,没必要看文言文" 这句话我很赞同。
|
77
RqPS6rhmP3Nyn3Tm 2015-10-04 13:06:17 +08:00 via iPad
楼上在说什么呢,当然是 LISP 啊
|
78
charlie21 2015-10-04 13:35:03 +08:00
喜欢看视频学 C 语言的,可以看看这个
http://xuebiancheng.cn/course/55 |
79
chairuosen 2015-10-04 13:38:37 +08:00
从与非门开始。。。。
|
80
asp 2015-10-04 13:39:50 +08:00
c 和 python 一般选一个就好了,个人建议选 C 。然后在再学学 C++。 php 断后。
|
81
adrianzhang 2015-10-04 14:02:19 +08:00
@zog 很好的材料,多谢!
|
82
asahi 2015-10-04 14:54:15 +08:00
至少我是不建议学 c++入门, c 语言本身语法特性不是很多,抽象也比较少,但其中指针的概念会让你在学习其他语言的时候受益匪浅, python 也是极好的,语法很简单,理解起来也很容易。一点拙见,欢迎来喷
|
83
ityike 2015-10-04 15:02:53 +08:00
PHP 是第一好的语言, golang 是第二好的语言。。。。你们别喷我
|
84
ophunter 2015-10-04 15:04:27 +08:00
学 C 啊,然后你就会觉得学什么都好了
|
85
Robling 2015-10-04 15:38:07 +08:00
C#吧
语法特性特别多,学完了再接触其他语言会有“啊,我见过”的感觉。 |
86
pythoner 2015-10-04 15:46:10 +08:00
看完这个帖之后,楼主需要再发一贴,标题我都给你想好了:
《学编程,到底是从 C 开始好,还是 Python , PHP , C++, C#, golang , javascript , ruby , haskell , lisp , java , basic , VB 开始好?》 |
87
dqh3000 2015-10-04 16:08:21 +08:00
我觉得看以后想干嘛吧
学来玩的话, javascript 就挺好, javascript 万能,任何可以用 javascript 写的程序最终都会用 javascript 写 ……当然 PHP 是世界第一的语言这个无法改变 |
88
hienchu 2015-10-04 16:09:30 +08:00
C 语言好就好在能让你深刻理解机器真正的运行方式,一旦了解了这一点,其他语言都不是问题。
|
89
Neveroldmilk 2015-10-04 16:10:39 +08:00
有超强毅力和远大目标的,可以从 C 开始,但是头几年肯定不少碰壁或者比较迷茫,坚持 3 到 5 年就能学有所成。
|
90
snailsir 2015-10-04 16:11:48 +08:00 via iPhone
只学过 c ,现在在做 PHP
|
91
ryd994 2015-10-04 16:17:08 +08:00
|
92
hbkdsm 2015-10-04 17:05:48 +08:00
@ryd994 你是对的
近年来 MIT 入门课确实从 Scheme 换成 Python 了,不仅如此, Python 在其它美国高校也是风头正劲! http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-us-universities/fulltext 这篇报道说, Python 现在是美国顶级大学最流行的入门级教学语言 2014 年依然使用 Scheme 做入门教学的有 Brown, Yale, U Minnesota, Northwestern, U Chicago |
93
kran 2015-10-04 17:55:21 +08:00 via Android
第一门学 c 一般不会知道做什么,建议学个和 c 紧密的,比如 lua😃
|
94
ch3rub1m 2015-10-04 19:28:25 +08:00 via iPhone
建议学 C(非 C++,这是两门完全不同的语言), Python 有太多可替代语言,如 php 、 ruby 、 lua ,但是 c 在 unix 编程方面无可取代,大部分语言的编译器 /解释器都是 c 写成的,你以后的工作可以说 90%跟 c 没什么关系,但是学了 c 有助于你理解底层的东西。我认为编程是一项很难的工作,偏激点说,我认为一点不懂 c 的程序员是不合格的。
|
95
wendzhue 2015-10-04 20:39:19 +08:00
当然是建议先学 Python 等脚本语言,当你差不多啃完一本 Python 语法书后,可以继续 Python 同时开始学 C 。
|
96
iyangyuan 2015-10-05 06:41:39 +08:00 via iPhone
vb
|
97
yang2yang 2015-10-05 11:34:46 +08:00
不管学什么,直接学比较好
|
98
iau 2015-10-05 19:01:25 +08:00
楼主既然已经看到 struct 了, C 语言基本快看完了,怎么能半途而废呢。个人认为学 C 主要是学指针,底层实现的原理。如果对两者掌握透彻了,对学其他的语言很有帮助的。对于 C 语言的文件操作,各种库函数等只要了解大概就可以,不需要深究。
|
99
huage 2015-10-06 09:12:05 +08:00
楼主多少岁了?时间宝贵啊!
我虽然不太懂技术,但我在带团队,我的观念是面向问题的编程,老板客户要的是解决问题, who care what the fuck you are using?! |
100
ru20150601 OP |