我真的很想成为一名严肃的程序员,这是人们对黑客的崇拜,而不是一个连FizzBuzz都无法完成的公司无人机。
目前,我已经接触过几种语言,我的大部分经验都是在Perl和Shell中进行的,我还稍微涉足了Ruby。
然而,我不禁觉得,虽然我懂一些语言,但我不知道如何编写程序。
我并不急于立即学习一门能让我找到一份工作的语言(尽管我希望能尽快做到这一点),而且我正在考虑使用PLT计划(现在称为Racket)来研究如何设计程序,或者如何构造和解释计算机程序,从本质上说,这是该计划的经典之一,因为我一直听说他们教人们如何编写高质量、可用的、可读的代码。
然而,甚至MIT也将其入门课程从使用SICP和Scheme改为使用Python中的一个。
因此,我请求在座的许多有经验的程序员就以下几点提出明智的建议:
谢谢,也为你的闲话感到抱歉。
发布于 2010-07-28 16:30:56
可能吧。可能比Y时代的任何一本学X的书都好。
是。
。
除非你打算在里面找份工作。不过,计划会给你一个更好的基础。
我会用电子邮件来调整我的电子邮件。此外,我还会使用函数式语言来保持思维的灵活性。
我个人的观点是,在学生能够声称对编程有所了解之前,基本上有两条轨道需要走。第一轨道是机器本身,计算机。您应该从这里开始组装,并学习计算机如何工作。经过一些工作和理解--不要吝啬--你应该学习C,然后学习C++;真正了解资源管理和实际发生的事情。第二轨是非常高级的语言轨道-- Scheme、Prolog、Haskell、Perl、Python、C#、Java和其他在VM或解释器上执行的内容都位于此区域。这些也需要研究,以学习如何抽象和思考的问题,以不同的方式,不涉及到一个真正的计算机的细节。
然而,不起作用的是在学习编程时成为一个语言爱好者。您需要找到一种语言-- Scheme是可以接受的,尽管我建议您先从低级别开始--然后继续使用该语言至少一年。
发布于 2010-07-28 15:57:02
如果你想真正学会编程,那就开始做吧。不要乱动,写代码。选择一种语言并编写代码。解决问题并发布应用程序。在开源项目上与有经验的程序员合作,但要做到这一点。很多。
发布于 2010-07-28 17:52:01
Scheme最重要的部分是您可以学到的编程语言概念,现代语言现在只是采用或增加了对它们的支持。
在大多数其他语言之前,Lisp和Scheme支持的特性在当时常常是革命性的:闭包和一阶函数、延续、卫生宏等等。C没有这些。
但是,它们越来越多地出现在编程语言中,这些语言在今天已经完成了一些工作。为什么您可以在JavaScript中的任何地方声明函数?从函数中引用的外部变量会发生什么情况?PHP 5.3刚刚得到的这些新的“闭包”是什么?什么是“副作用”,为什么它们会对并行计算不利?Ruby中的“延续”是什么?LINQ函数是如何工作的?Python中的"lambda“是什么?F#有什么大不了的?
这些都是学习计划会回答的问题,但C不会回答。
https://stackoverflow.com/questions/3354713
复制相似问题