关于网络:没有经验的人怎么能学会编程?


How can someone with no experience learn how to program?

几年来,我和一个朋友一直在构思网站创意,大多数时候,当我们在浏览网页时,只要想出一个好的、有用的创意,就把它们记下来。在过去的6个月里,我们已经雇佣了几个不同的程序员为我们制作了几个站点,但是我们对它的发展感到失望。太慢了,太多的误解让我们喜欢。所以就像俗话说的,如果你想做正确的事,你自己去做,我们自己去做。

我对编程一无所知,我这辈子从没写过一行代码。我认为自己很擅长数学和逻辑,但我没有实际的编程知识。我们想要创建的网站都是相当"Web2.0"的,这意味着用户生成的内容、对文章的评论、动态变化的页面等。

下面是我的一些问题,对于以前去过那里的任何人:

你有没有建议先学的语言?这是一个很好的指标,大多数其他语言是如何工作的?

你推荐什么样的网络编程语言是基于现在和将来的流行程度而先学习的?我不想学一门到我成为专家时已经过时的语言。

你有什么特别推荐的书吗?

你会给一个从零开始编码的人一些一般性的建议吗?他打算长期待在这里?


不要。只是不要。

一般说来,那些认为自己可以首次编写复杂网站代码的业余网站会迅速陷入无法弥补的混乱。你可能会认为自己逻辑性强,数学能力强,但坦率地说,在直接从代码块中剪切干净的可维护代码时,这并不算什么。这不是精英主义,也不是说身边没有很多天才的自学编码员,而是像任何手艺一样,需要实践、错误和失败才能获得能力。

相反,看看你以前的尝试失败的原因:

  • 你雇佣了"廉价"劳动力吗?很常见的是,那些"做网站"的经验有限的人,坦率地说,他们对简单HTML之外的任何东西都没有深度。
  • 您没有正确指定吗?如果您与开发人员之间存在"通信错误"问题,那么问题更可能是您的规范问题,而不是开发人员的问题。对于像你这样的人来说,通过在一些"web 2.0"的例子中挥手来"指定"网站是很常见的,但是对于他们实际期望的内容,并没有真正提供一个严格的规范。失望不可避免地随之而来。
  • 你把设计师和编码员搞混了吗?除了非常小的场地外,这两个地方是不一样的,你应该为每一个区域雇佣不同的人员,并配备适当的技能。

我可以建议一些方法。如果你真的想尝试"开发",那么就使用像Drupal或Joomla这样的内容管理系统。他们提供了很多现成的服务,拥有可靠的社区,并且对几乎所有内容都进行了扩展。甚至可以通过使用Artitser或购买预先设计的模板在某种程度上跳过使用设计器。如果您确实需要创建一个新的扩展,因为您将专注于一个有限的模块,那么您将有更好的成功机会,因为您不必对代码结构做出更基本的决定,而这些决定将绊倒初学者。

或者,如果您正在寻找的内容不适合CMS,并且您确实需要定制开发,那么请确保您的站点完全指定。Balsamiq是一个非常好的设计布局可视化工具,但是您还需要大量的书面文档,也需要完全指定所有输入、输出和过程。一旦你有了这样的想法,就可以雇佣一个有着良好业绩的专业开发人员。语言是次要的考虑因素,但是要提防任何在PHP中开发的编码人员,因为它以易于使用而著称,因此往往会吸引经验不足的人。围绕一个稳固的、建立良好的框架部署也是一个优势。

最后要记住古老的工程格言:好的,快的,便宜的。选择任意两个。


从使用HTML创建网站开始。如果你被困住了,那就从中建立起来,慢慢地前进,直到你知道你需要知道的一切。冲洗并重复15年。

  • 学习基本HTML
  • 学习基本的CSS来设计HTML样式
  • 在遵循Web标准的同时,正确地重新学习HTML
  • 在遵循Web标准的同时重新正确学习CSS
  • 学习PHP(或一些服务器端Web开发语言)
  • 学习SQL
  • 学习如何正确地同时使用php+sql(避免SQL注入等)
  • 学习jquery或其他一些javascript框架
  • 当你知道的东西过时了,回到第一步。

  • 我想说的第一件事就是学习如何用HTML和CSS创建一个静态网站。也许学习一点javascript(看看jquery!!)做一个好看的网站。不管它是否真的"做"了什么。

    之后,是时候学习服务器端语言了。到目前为止,您可能已经对编程有了足够的了解(希望从您所做的javascript部分了解),可以做出合理的决定。一些著名的框架包括:

    • PHP
    • 红宝石钢轨
    • ASP.NET
    • C++ CGIs(我只是开玩笑)

    关于stackoverflow的以下问题包含了许多关于构建公共网站的有趣建议和起点:https://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site

    不要过于专注于语言的选择而去学习:如果你长期学习,你会学到很多。

    给所有初学者的建议:去构建一些东西。


    我可以通过分解其他项目来自学。以一些相对轻量级的开源应用程序为例,看看它们是如何工作的。改变周围的事情,看看它做什么,寻找关于如何添加东西的教程,并尝试为程序创建自己的加载项。

    最终,你将能够在没有其他程序支持的情况下自己写一些东西。


    如果你真的想学习编程,并且有兴趣把时间从"新生婴儿"变为成人,我会在社区大学上几节课。从编程类的介绍开始。当你刚开始学习的时候,有一位知道如何使用绳索的教授会很有帮助。在上计算机科学课的时候,自学HTML。

    一旦理解了编程的主要概念,从一种语言转换到另一种语言主要是学习新的语法。

    祝你好运!


    除非你真的认为网络编程将是你未来20年的热情所在,否则我不会开始学习它。最好的程序员对他们的工艺充满热情,他们是你想雇用的那种人/女孩。你需要2-3年的时间,才能有一个扎实的背景和足够的经验,足以胜任甚至开始考虑做一个像你这样的项目。

    如果你真的有资金做一个项目,那么去一个像Topcoder这样的网站,从头开始:

  • 进行概念化的竞争。
  • 竞争软件规格。
  • 参加设计/架构竞赛。
  • 竞争发展。
  • 进行测试竞争。
  • 按照上面指定的顺序执行,并且在每个步骤中使用前面步骤的结果。你将有10-15人参与你项目的每一部分的竞争,它将在一个固定的最后期限完成,你将选择几个竞争版本中最好的一个,它不会花费你超过一个独立的承包商/自由职业者完成整个事情。


    您的问题似乎是缺乏对可用技术的了解。要学会有效地使用它们需要几个月甚至几年的时间。

    我建议你研究一下你到底想做什么。很难找到可靠的程序员来为您完成这项工作,但是您需要能够指定您所追求的目标。

    解释你所追求的东西比自己学习要花的时间少得多。

    这并不是为了阻止你在编程中走上一条道路,而是要意识到,你需要花费数年的努力才能达到你想要的效果。


    试一试这本电子书:以最难的方式学习python

    The book is a very beginner book for people who want to learn to code. It's intended for people who have no coding chops to build up their skills before starting a more detailed book.

    你可以在这里下载这本书:学习pythonthehardway.pdf

    The book is very simple:

    • 52 exercises in all.
    • 26 cover just input/output, variables, and functions.
    • 26 cover logic (boolean algebra, if-statements, while-loops, etc.)

    Each exercise is one or two pages and follows the exact same format. You type each one in (no copy-paste!), make it run, do the extra credit, and then move on. If you get stuck, at least type it in and skip the extra credit for later.


    嘿,你和我一样!我对网站有很好的想法,想创建一个业余爱好。就在几个月前,我知道0%的HTML。现在我可以创建简单的Web2.0论坛、分类广告网站等。这就是我所做的,希望能对你有所帮助。(这是我对什么对你最好的意见)

  • 去W3学校。它是一个向您解释许多计算机语言的基础知识的网站。先看HTML部分。学习HTML是必须的。花2-3天的时间学习和创建一个基本的HTML网站。

  • 转到php部分。PHP专门用于Web开发(制作网站)。与其他Web开发语言相比,它非常容易学习。PHP在您的计算机(XAMPP)上非常容易设置。基本上,你可以在几天内建立和运行一个网站,这很容易,你只需投入努力。浏览一下该部分,如果PHP看起来很适合您学习,请转到步骤3。如果不是,请看其他语言,在Ruby/Java上的Python/Rails。

  • 获取XAMPP。这个程序基本上使你的电脑或笔记本电脑成为一个服务器,这意味着你可以运行网站。使用此YouTube视频帮助您安装它。(将一步一步地带你走)

  • 得到这本书。头一个php/mysql。如果您以前没有做过任何Web开发,这可能是学习php/mysql的最佳书籍。它就像一个"新生儿",告诉你点击这个,复制这个,什么都不要。完成本书之后,您可能可以创建简单的Web2.0站点。头一本书都不错。

  • 练习、练习和练习。


  • 好奇。尝试一些小的(可能比你认为有趣的小)。失败了。试试别的。犯一些错误。再试一次。找点小东西。对此感到高兴。再努力一点。重复。

    假设你不可避免地会遇到挫折,是因为你不知道的事情,而不是因为你的工具很糟糕。事实上,他们可能会吸,但他们可能比你吸的少。贪婪地阅读(书籍、代码、文章,偶尔读一些诗歌),这样你就知道,至少从广义上讲,与你相似的问题以前是如何解决的。

    我认为你不需要做出一生的承诺,但你确实需要做出承诺去学习一些你昨天不知道的东西。如果几年后,你仍然在学习,并且已经建立了一些有用的东西,但是如果你重新开始,你不会以同样的方式建立它们,那么你主要是在做正确的事情。继续走,直到它不再有趣。如果你认为你知道所有重要的事情,那就离开这个行业,因为在那一点上,你要么没有你认为的那么好,要么你没有做任何有价值的事情。

    对于Web编程来说,您选择的语言并不重要,但是如果您没有发现Ruby或Python的好处,那么您就没有太多希望了。通过学习C语言、Java语言或更多的"主流"语言,你不会做任何特别错误的事情。你需要学习足够多的HTML来制造一些丑陋的东西,足够多的javascript来迷惑你,可能还需要足够多的SQL来构成危险。


    我觉得你应该从鲁比开始。它非常容易学习,如果你遵循正确的教程,你可以很快得到一些令人印象深刻的结果。请参阅:http://www.ruby-lang.org/en/documentation/quickstart/

    祝你好运!!