不久前,我决定开始编程。我真的,只是跳到了一种语言(Perl),并从那里走了。令我遗憾的是,我跳了进去:
我没有学习基本知识(如果你把它们称为基本知识的话)。
我没学过计算机科学。
我相信,这个问题阻碍了我真正的潜力。我应该在哪里“重新启动”?有我应该读的书、文章等吗?有经验的程序员应该知道什么主题吗?你的建议是什么?
发布于 2011-11-08 02:04:24
我会这么做:
路径A:半典型方法
路径B:乔尔·斯波斯基的启蒙之路(或死亡,请选择)
就该方法而言,方法1将以更规范的方式教您编程。计算机科学的概念在某种程度上(相信我,还没有复杂的理论),并为你提供了一种更好的语言,用于与其他人一起进行项目工作,并做出更大的应用。
方法2是更硬的,它更多的是一种基础方法,“代码”解释基础,K&R引入机器级的东西,而SICP引入更高层次的概念。这是一条更难但更专注的道路。
在任何一种情况下,给自己时间。罗马不是一天建成的,编程技巧也不是,即使你是个天才。彼得·诺维格10年来的编程是我通常指给人们看的一篇文章。
增编:
就可用的免费内容而言: Python (如下面所列)是一个好的开始,从那里开始,如何像计算机科学家那样思考是一个合理的延续。
有很多关于算法的资源,老实说,您很可能可以在没有问题的情况下切换步骤3和4。记住,这是数学真正开始出现的地方,所以当你到达这个阶段时,千万不要害怕寻求帮助。这似乎是一个合理的自由导轨。
虽然代码就像Pythonista看起来非常可靠,但实际上并没有一个与代码完整相对应的内聚自由。最重要的是,一旦掌握了基础知识,就可以集中精力使代码可读性。这并不是“必要的”,因为你的所有代码语法都是正确的,但是一旦你超越了小程序,或者在长时间内做一些事情,它会让你的生活变得容易得多。
您可能会发现,我主要关注Python,因为在这三个方面中,找到编写得很好的免费内容是最容易的。我认为Oracle编写的Java教程很好,但它们有点枯燥,对初学者来说不是很好。C#也处于类似的情况,尽管两者都没有文档支持。
另外,你的第一个CS笑话/双关语:你想要“重构”你的教育,而不是倒退。
发布于 2011-11-08 02:21:29
我想说的是,瞄准用艰苦的方法学习Python,这是一个很好的方法。从那里出发,你需要足够长的时间去寻找其他的资源。
在我看来,在另一个答案中提到的“路径B”在现阶段是不合适的。
发布于 2011-11-08 20:20:47
嗯,我一开始是出于同样的原因,因为我在硬件方面有一些知识,并且对编程很感兴趣。我喜欢学新东西。
我从DOS批处理文件开始,然后是QuickBasic,然后是Visual、VBA、MASM,在获得第一份工作之前访问数据库工作。对我来说,这是最好的道路,从简单开始,然后再从那里开始。
我会说,决定什么是你最喜欢的编程,并遵循这条路线,脚本,网页开发,windows编程,等等。如果你不知道,那就开始使用一些语言来看看你喜欢什么。不过,你需要时间。要用5年左右的时间才能真正掌握像Java或C++、IMHO这样的语言。
作为一种帮助学习web开发的语言,JavaScript无疑是很流行的,但是这是IMHO。假设您将了解或学习HTML/CSS。我确实低估了javascript,尽管我从2001年起就使用了它。我对CSS也做了同样的事情,并不认为这很重要。我也改变了我对此的看法。
当我试图确定一个趋势时,我会转到http://www.indeed.com并点击页面左上角的趋势链接。然后,我输入了一些关键字,比如PHP和Python,看看哪些是被记录在互联网上的实际工作岗位上。
不过,这是从职业角度出发的,而且是基于给客户(雇主)带来最大价值的因素。不仅仅是从学习的角度。
https://softwareengineering.stackexchange.com/questions/118391
复制相似问题