学习发展算法[关闭]


16

这是一个相当普遍的问题。我对Perl和Python有所了解,并且希望能更深入地学习编程,以便一旦掌握了这些知识,就可以开始开发应用程序,然后开发网站。

我想知道一种算法(步骤顺序:),它可以描述我一般学习编程的方法。我在Perl / Python上发布了一些小问题,并且得到了大家的大力帮助。

注意:-我不着急学习。我知道这需要时间,没关系。

请提供您认为有效的任何建议。另外,请不要强迫我学习Lisp,Haskell等-我是初学者。


您是否想学习任何特定的语言?我知道您提到过perl和python,这是您要了解的内容吗?
杰森

所以,您要的是……到底是什么?您学习特定语言的过程?编程本身?使用什么?
glenatron 2010年

我认为这是一个好问题。我进行了编辑,使其更加清晰。
加里·罗

Answers:


28

学习新编程语言的11个步骤算法

我目前正在学习Lisp,并且建议使用以下算法:

  1. 询问周围的语言是否值得学习,以及在哪里可以找到好的资源。如果专家对该语言给出了肯定的答复,请继续执行步骤2。
  2. 创建一个初始的编程环境。保持简单:文本编辑器和编译器/解释器。最低限度。考虑使用特殊配色方案的计算机上的特定用户帐户,以提示改变心态。
  3. 创建“你好,世界!” 应用。
  4. 学习一般的语法和控制语句(if-then-else,repeat-until等)。创建沙箱以验证简单的控制案例(对/错评估等)。尝试每种原始类型(int,double,string等)。执行货币计算。数字猜谜游戏(如@Jeremy所建议)对此非常有用
  5. 使用几种方法/功能创建类(如果适用)。在函数之间进行调用。应用控制语句。
  6. 了解数组和集合。创建适当的复杂示例,以创建可供您使用的每个类/函数/基元的数组和集合
  7. 学习文件IO。创建读取,操作和写入基于二进制和字符的文件的示例。
  8. 询问有关语言中惯用编程的更多问题(指针,宏,monad,闭包,支持框架,构建环境等)。
  9. 选择(或改编现有的)IDE以使用推荐的惯用法。
  10. 编写各种使您(或老板)满意的应用程序。
  11. 一年后,返回另一种语言的步骤1,同时保持对刚学习的语言的兴趣。

1
我发现“数字猜测”游戏是编写的绝佳第二程序。(在步骤4。)它使您可以了解整数,布尔值,文本输入/输出,循环和条件。
Jeremy Heiler 2010年

@杰里米好的建议,我已经把它放在那里了。
加里·罗

嗨,加里-谢谢您提供详细的说明,我将尝试使用python进行映射-很好的逐步说明,这就是为什么我喜欢这个论坛链... @Jeremy是的,我在这里:)
user9057 2010年

特殊的配色方案可以提示改变心态,您能否对此有所了解?
2013年

在使用Lisp时,我倾向于选择较深的配色方案,但对于Java使用浅色。颜色提醒我改变思维方式。
加里·罗


2

对于您想学习的每种语言 L

  • 步骤1:了解的语法L
  • 第2步:使用L您喜欢的语言编写的编译器。
  • 步骤3:为您喜欢的语言编写一个编译器 L
  • 第4步:惯用地编写一个主要项目 L
  • 奖励:确保步骤2的结果与步骤4的结果兼容。

差不多可以解决这个问题,并在十年内给我们提供进度报告。

如果您只是想学习Web开发,并且已经了解Perl和Python,那么您几乎有足够的起点。我会说开始学习Apache(特别是mod_perlmod_python)的来龙去脉,然后开始练习。也许拿起一两本有关CGI编程,网络通信等的书,而不是一本特定的语言手册。

最后一点,作为初学者,没有理由不学习Lisp。去看看SICP视频讲座。两者都不具备任何开发或计算机专业知识的水平。实际上引用了视频讲座的介绍

我欢迎您参加计算机科学课程。[写在黑板上]实际上,这是一个糟糕的起点。计算机科学是这项业务的可怕名称。首先,它不是一门科学[划掉“科学”]。它可能是工程学,也可能是艺术。[...]关于计算机的问题也不是很多[删除“计算机”]。物理意义与粒子加速器的意义并不相同,这与计算机无关。生物学并不是真的与显微镜和培养皿有关。-哈尔·阿伯森(Hal Abelson)


听起来很有趣。十年后见!
Jeremy Heiler 2010年

为步骤2 +1为L编写编译器!大脑...好痛.......太多...现在。
加里·罗

-2

除了两个步骤,我不想多说。

  1. 学习数据结构
  2. 了解算法简介

PS编程是您的日常任务。


在程序员方面,建议您“多说”,不要害羞:)给出一些有关您建议的详细信息,例如资源,参考资料或来自您自己经验的示例。
Matthieu

-2

最好的方法是学习编程语言的基础知识/基础知识,然后以初级开发人员(承包商)的身份加入公司。这将是您同时学习和赚钱的最快方法;)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.