学编程,到底是从 C 开始好,还是 Python, PHP 开始好?

2015 年 10 月 3 日
 ru20150601

一开始自学 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.”

14325 次点击
所在节点    程序员
102 条回复
foxkiller
2015 年 10 月 4 日
@ryd994 呃= = UCL 本科大一的 programming principle 是用 Haskell 教的= =确实是上来就一门函数式让你练练胆。。外加看 Church 的 Lamda 演算的 paper 看到想上吊。。。
lenran
2015 年 10 月 4 日
@glchaos 抄 java 的。以前不开源,现在刚开源。再看看。。。
封装的比较厉害,要深入研究,不易
glchaos
2015 年 10 月 4 日
@lenran 天下文章一大抄,如果只是用的话,还是非常不错了,而且有些好些扩展是要花钱的,质量有保证。
lenran
2015 年 10 月 4 日
@glchaos ‘要花钱的,质量有保证。’,这逻辑,不敢认同
redvoilin
2015 年 10 月 4 日
先学 c ,再学 ruby
YuJianrong
2015 年 10 月 4 日
"好多人说学会了 C 看其他的就很简单了"…这谁说的简直胡说八道! C 那么简单而奇葩的语言学会了看其他也没多大用啦。 C 其实是比汇编高一点,但比其他语言低很多的中级语言,学习 C 一个重要的地方就是要体会这段代码编译成机器码的时候应该是什么,和其他语言不同, C 对机器嘛的翻译比较直白,所以很适合理解底层实现,学 C 也就对写底层实现有点好处而已。指针啦宏啦很多语言都没有,你学会了又有什么用?

所以说你要定目标的话,不要定成学会什么语言而是应该定成什么方向!就比如 php 和 c ,这几乎是不会同时使用的东西一起学会你是要干什么?先选好方向,再去找这个方向需要的语言和环境,才是正道。

当然 OOP 还是应该掌握的,所以可以找一门还算简单易学的 oop 语言学学看,建议语法 C 风格的 java 或者 c#。
liboyue
2015 年 10 月 4 日
不从 C/Cpp 开始连内存是什么都不知道吧?
glchaos
2015 年 10 月 4 日
@lenran 要不拿什么来支持他们做更好的东西呢,至少我愿意相信物有所值!
onlyxuyang
2015 年 10 月 4 日
python...
HentaiMew
2015 年 10 月 4 日
php 只是脚本语言 很多静态编程语言特性都没有的 不建议上手
XadillaX
2015 年 10 月 4 日
C
wezzard
2015 年 10 月 4 日
x86 assembly is your friend. :doge:
superhxnju
2015 年 10 月 4 日
先学静态类型语言比较好
zog
2015 年 10 月 4 日
结论: 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, 著有大教堂与集市。
ru20150601
2015 年 10 月 4 日
@YuJianrong
谢谢长篇回复,看到您能直述自己的观点,感觉到 V2EX 这地方确实不错。

也谢谢各位站友的回复,让我得了不少铜币 :)

我仔细想了一下,决定先把 C 看完,我是从 C 入门的,以至于看 C 现在很亲切,没有 Yujianrong 所说的“ c 语言奇葩“的感觉,但是 python 看了两章反而感觉不是很友好。可能是思维暂时转不过来吧。但是我决定暂停 KR ,转向 C Primer Plus ,原因如下:

KR 本身并不高深,它只是说的不详细(它可能很详尽,但是不详细),很多东西都是点到即止,所以看起来困难。更像是一本 reference book ,如果选择这本书来学习,那真是 “没有困难,创造困难也要上”了。

能够用白话文看明白而又不失去原意的东西,没必要看文言文。毕竟我们要看的是内容,而不是古文的美学。把逻辑结构写的很简约以至于到了新手看不懂的程度,如果我硬啃下来,除了速度慢,有可能锻炼一下自己的悟性之外,似乎也多学不到什么东西。

不知道有没有赞同我的想法的。
snnn
2015 年 10 月 4 日
@ru20150601 "能够用白话文看明白而又不失去原意的东西,没必要看文言文" 这句话我很赞同。
RqPS6rhmP3Nyn3Tm
2015 年 10 月 4 日
楼上在说什么呢,当然是 LISP 啊
charlie21
2015 年 10 月 4 日
喜欢看视频学 C 语言的,可以看看这个
http://xuebiancheng.cn/course/55
chairuosen
2015 年 10 月 4 日
从与非门开始。。。。
asp
2015 年 10 月 4 日
c 和 python 一般选一个就好了,个人建议选 C 。然后在再学学 C++。 php 断后。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/225462

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX