哪个会更好地为一个崭露头角的程序员服务:一个经典的计划书或像python这样的现代语言?

Gna*_*ats 6 scheme

我真的很想成为一个认真的程序员,人们钦佩黑客的类型,而不是一个甚至无法完成FizzBu​​zz的企业无人机.

目前我已经掌握了几种语言,我的大多数经验都是在Perl和Shell中,而且我在Ruby中略微涉足过.

但是,我不禁觉得虽然我知道一点点语言,但我不知道如何编程.

我真的不急于立即学习一种能让我找到工作的语言(虽然我很快就会这样做),而且我正在考虑使用PLT Scheme(现在称为Racket)来完成如何设计程序或计算机程序的结构和解释,本质上是计划经典之一,因为我一直听说他们教人们如何编写高质量,可用,可读的代码.

然而,即使麻省理工学院也将其入门课程从使用SICP和Scheme改为使用Python.

所以,我在这里要求许多有经验的程序员提供有关以下内容的圣人建议:

  • Scheme(以及那些书籍)是否真正教会如何编程?如果是这样,你推荐哪两本书?
  • 这种学习方法是否仍然具有相关性和适用性?我是在正确的轨道上吗?
  • 我最好花时间学习像Python这样更实用/通用的语言吗?
  • Scheme(或一般的lisp)真的是一种学习的语言,只是永远不会使用吗?或者那些经常了解lisp代码的人呢?

谢谢,抱歉漫无边际.

Ada*_*and 11

如果你想学习真正的编程,那就开始做吧.退出dabbling并编写代码.选择一种语言并编写代码.解决问题并发布应用程序.与经验丰富的程序员一起开发开源项目,但要做到.很多.

  • +1,人们如何擅长吉他?跳舞?撑杆跳?什么?他们做了很多.编程也不例外. (4认同)

Pau*_*han 8

  • Scheme(以及那些书籍)是否真正教会如何编程?如果是这样,你推荐哪两本书?

大概.可能比Y Timespan书籍中的任何Learn X更好.

  • 这种学习方法是否仍然具有相关性和适用性?我是在正确的轨道上吗?

是.

  • 我最好花时间学习像Python这样更实用/通用的语言吗?

只有你打算找到一份工作.Scheme会给你一个更好的基础.

  • Scheme(或一般的lisp)真的是一种学习的语言,只是永远不会使用吗?或者那些经常了解lisp代码的人呢?

我做emacs elisp摆弄调整我的emacs.我也使用功能语言来试图保持灵活性.

我个人认为,在学生声称对编程有所了解之前,基本上需要走两条曲目.跟踪一个是机器本身,即计算机.您应该从这里开始组装并了解计算机的工作原理.经过一些工作和理解 - 不要吝啬 - 你应该学习C然后学习C++; 真正理解资源管理和真正发生的事情.Track 2是非常高级的语言轨道 - Scheme,Prolog,Haskell,Perl,Python,C#,Java以及在VM或解释器上执行的其他语言位于此区域.这些也需要进行研究,以了解如何以不同方式抽象和思考问题,而这些方式不涉及真实计算机的繁琐部分.

然而,是什么无法正常工作是学习编程的时候是一个语言外行.你需要找一种语言 - 方案是可以接受的,虽然我建议先从低级开始 - 然后至少坚持使用那种语言好一年.


erj*_*ang 5

Scheme中最重要的部分是您可以接受的编程语言概念,现代语言现在只是采用或添加支持.

在大多数其他语言之前,Lisp和Scheme支持了当时通常具有革命性的特性:闭包和一阶函数,continuation,卫生宏等.C没有这些.

但它们越来越多地出现在今天获取东西的编程语言中.为什么你只能在JavaScript中声明函数?您在函数中引用的外部变量会发生什么?PHP 5.3 刚刚获得的这些新"闭包"是什么?什么是"副作用",为什么它们对并行计算有害?Ruby中的"延续"是什么?LINQ函数如何工作?什么是Python中的"lambda"?F#有什么大不了的?

这些都是学习计划将回答的问题,但C不会.