如果您必须返回并重新学习技能,该怎么做?[关闭]


16

我的弟弟希望开始编程。他14岁,技术上很熟练,但没有编程经验。他正在向我寻求指导,但我觉得我的经验还不够,所以我想在这里问一下。

他对Web编程更感兴趣,但对台式机/移动设备/服务器应用程序也很感兴趣。

对他来说,什么是一条好的学习道路?我要给他买一堆圣诞节的书,以使他入门。问题是,他应该学什么,以什么顺序学习?

从我的角度来看,他需要学习理论和代码。我想用Python或Ruby或PHP开始他。如果他想进入网络,那么他还需要学习HTML,CSS,Javascript等。

在这三个领域(语言,理论,标记/等)中,您认为学习的最佳顺序是什么?另外,我有什么遗漏吗?

谢谢!


18
除了购买书籍,还可以购买一年的托管站点订阅。网上有很多免费的初学者。对于青少年来说,将站点放在家里的计算机上只有这么酷的因素。
JeffO 2010年

哈哈,我运行了许多我为他设置的VPS,所以他去那个部门应该很好!
vorbb 2010年

Answers:


10

为他注册一个StackOverflow.comProgrammers.StackExchange.com帐户

并让他进入的习惯,浏览不同的时问题,他是无聊。从热门/最受欢迎的问题开始。

帮助他提出他想要创建的东西的目标,这是他无法企及的,一个简单的游戏,一个可以发送推文的应用程序?它一定是令人兴奋的。这将有助于指导他向自己展示的主题,并通过他创造的有形输出为他提供动力

如果可能的话不要买的实物形式的书籍 ,如果他与数字印刷效果很好,我的你肯定拥有一个Android或iPhone或黑莓或iPod touch?获取ibook或kindle应用并购买数字版本

必须处理一本物理书会减慢知识获取的过程。数字阅读器中内置的工具为技术阅读提供了很多好处

注意:正如评论中所提到的,数字书籍与印刷书籍相比有弊端,因此请谨慎对待


15
我不同意数字阅读。实际上,我给学生论文并让他们阅读。在计算机上,它们很快就被所有其他糖果分心了。根据我的经验,最好不要在任何数字设备上学习概念。另外,在手机上阅读会杀死您的眼睛。计划和数字怎么办?唯一的优点是链接,但这并没有对我们的学生有太大帮助。
Joris Meys 2010年

1
@乔里斯·梅斯(Joris Meys),我承认移动阅读对眼睛来说更难,并且“被其他糖果分散注意力”将是一个问题,但是与此同时,当我能够轻松寻找失踪者时,我能够更快地吸收信息。件...当研究新内容时,我什至无法开始估计浏览器中产生的选项卡数量。
instanceofTom,2010年

6

真的很喜欢编程的方式。我唯一能想到的变化就是我对书籍的访问权限。我的家人没有钱买得起的所有书,我们小的乡村图书馆也没有完全存储技术手册。在宏伟的计划中,这是一个小问题。

我完全不同意那些说您在14岁时不会学习理论的人的观点,越早学习理论越好。我在14岁时读过《计算机编程的艺术》,尽管我已经编码了一段时间。

您可以为您兄弟做的最好的事情是为他提供追求他的兴趣的工具,并在可能的情况下将他包括在黑客/编码器社区中,以便他可以学习出色的编码器的思维定式。

  • 尽可能使他远离专有工具。在开源世界中,他有更多可用的东西。我之所以表现出色,很大程度上是因为我从开放源代码社区中更有经验的人那里得到了指导。

  • 如果您负担得起,请给他一个Safari帐户,或在需要时帮助他购买书籍。甚至借出您已经拥有的资产也可以提供帮助。

  • 确保他可以使用体面的台式机或笔记本电脑以及服务器或VPS进行实验。如果要使用移动应用程序,请确保他可以使用手机或演示设备。

  • 告诉他如何查找IRC频道,邮件列表等,以了解他感兴趣的工作方式。

  • 确保他知道如何提出聪明的问题,反之亦然,要知道支持水ech的细节,以便他知道不该做什么。

  • 他的第一门编程语言不是最重要的因素。他所学的编程语言的全部极其重要。一种语言的编码器从不通过特定级别(相对较低)的编码foo。


绝对同意。我在14岁时就可以接受汇编程序培训,对于一个聪明的孩子来说,绝对还不算年轻。我14岁生日时有RISC OS PRM。(computinghistory.org.uk/userdata/PRODPIC-12025.jpg-上帝,我喜欢那些书)。但后来我开始在7
Orbling

3

我会去学习手机领域的东西,那是那里的主要房地产。让他使用具有电话仿真器的IDE进行设置,并为他提供可以将应用程序推送至的电话

为他设置一些现实世界的用法和黑客知识,并从书中提供一些理论指导。确保他们有好的样本。


+1提供所需的硬件。与信息相比,这将是更多的问题。
Joris Meys 2010年

2

如果上大学,我会去上学的。如果高中年龄,我会选择高中。

我要执行任务,并在14岁时相应地调整课程。

很多人会为此而拒绝我,但是对于某些人来说,Visual Basic .NET似乎更容易些,只是说一句。对于许多不在同修中的人来说,似乎就是这种方式。


3
如果哥哥可以帮助或当地的高中使用它,那么可能会带来更多好处。现在,我认为.NET IDE使构建网站变得更加容易,而不一定是选择的语言。初学者可以同样轻松地学习C#吗?普通话是一种很难的语言,但是中国的幼儿还可以。
JeffO 2010年

2

从Web开发人员开始是一个好主意。即使您是真正的初学者,也可以得到结果,如果您搞砸了,也没关系。

我会说HTML / CSS + PHP。正如Jeff在评论中所述,托管他的网站很重要,Php托管者并不昂贵,甚至免费。

至于理论,我暂时会忘记。按照我的理解,他主要是想开心,而面对现实,理论并不是很有趣。此外,如果他喜欢编程,他将在学校里大量学习编程。

显然,我们都在乎漂亮的代码,但是如果他只是想玩转,如果他的代码很乱怎么办?


+1值得一提的是,对于初学者来说,需要快速取得成果,并且弄乱不会引起麻烦。
2010年

2

Web /桌面/移动/服务器编程?在我看来,他对一切都感兴趣。但问题是,他必须从某些方面入手。

许多人会不同意,因为当然对此没有“正确”的答案,但是我会给他买一本关于Python的书(学习Python足够详尽,足以让他长时间忙碌),这肯定是语言,这将使他学到的东西与可口的糖果(即可以用它实现的东西)的比例相当高。这也是上述许多方面的一个很好的起点。

在那之后,看看他最喜欢上面提到的什么,并在这个方向上进一步指导他。


2

他的高中是否开设计算机科学课程?例如,在美国,Advanced Placement程序具有一个计算机科学课程,它涵盖了相当多的基本计算机科学概念(控制流,基本的面向对象的开发实践,循环等)。

我能够上一所高中,基本上提供了四年的计算机科学课程(从入门课程到基本的LIPS,MIPS和Open GL)。我最终在大学阶段进行了基础测试,然后在高级别课程中重新学习了许多其他语言和主题。我可以告诉你,与18-22岁的大脑相比,14-17岁的大脑在缠绕理论上有更多的困难。递归,指针算术,低级编程,网络拓扑和函数式编程等主题使我花了很长时间才上高中,但是第二次上大学时,我发现它们很轻松,也许是因为我

尽管很困难,但从14开始思考CS还是很有帮助的。在没有老师的情况下这样做似乎很复杂。我本来会花时间开发有趣的网页,因为那是我当时(和现在)喜欢做的事情,但是那时我从来没有自学过指针,递归和LISP。


1

我个人不会从硬性理论开始。我将从将理论的某些要素混合在一起的实用程序设计开始。它可以使一个人保持更大的动力,而不会吓到他。

例如音乐学校就是一个例子。很大一部分学生退出是因为他们对理论感到无聊,最终失去了兴趣。

此外,如果在实践之前弄不懂它,那理论就不好了。您将不知道何时以及如何应用它。

但是,如果您掌握了一些理论知识,然后进行了很多实践,那之后,认真学习IT课程就可以将您推向另一个层次。否则,在大学里度过的岁月只会充斥聋哑的一年。

以该顺序:

  1. 有关硬件,计算机体系结构和对该硬件进行编程的一些基本理论。只是基本的。

  2. 然后开发实用的东西。基本应用保持兴趣。首先是本地的,然后是带有图形的东西。尚无Web页面,因为您想演示服务器端编程,并且如果没有数据库,它通常是无用的。

  3. 给他一些数据库知识

  4. 将本地应用程序与数据库接口。然后尝试Web开发。

  5. 随手调整路线。


0

我的逻辑偏好基于我现在所知道的:

  1. 弄清楚现在的工作方式-当您说他有技术倾向时,他现在对计算机的工作情况了解得如何?例如,他是否了解标记和脚本之间的区别?编写一些小脚本来做到这一点又该怎么办?这是我的出发点建议,因为鉴于所有可以自由探索的东西,揭开我们周围的神秘面纱是一个很好的出发点。

  2. 选择一种语言,IDE和源代码管理。现在,虽然这似乎吸引了很多人,但这些是相当基本的工具,他只要稍加练习,就可以从事更大的工作。弄清楚如何制作“ Hello World!” 如果希望在此处更具体一点,则将消息嵌入JavaScript的网页并不是一个不好的起点。

  3. 现在开始添加一些更难的东西。如何做循环或条件?这还不是真的那么花哨,但是我们仍然在这里理解构建阶段。最后介绍类的概念以及该概念背后的一些思想。

如果有人想获得我的技能基础,那将是我的起点。


0

我从没想过要这么说,但是给他爱丽丝3.0版

我讨厌爱丽丝(Alice)带着一千个太阳的狂怒,但是当结合了不错的教程时,它绝对可以很好地教授编程的基础知识(循环,语句,函数等)。

一旦他扎实的基础知识,请继续学习更实用的基于文本的语言。


0

我想用Python或Ruby或PHP开始他。如果他想进入网络,那么他还需要学习HTML,CSS,Javascript等。

这似乎是合理的。传授一些基本技能,并帮助他充实他仍然会感兴趣的具有挑战性的项目的想法。

他的最初经历并不一定是完美的,事实上,如果他提早犯了很多错误,这将有所帮助。您只想确保他仍然对扩展他的知识感兴趣。当他遇到限制时,他会请求帮助,如果他还没有扩展参考资料,您可以为他指明正确的方向。


0

给他买一本关于测试驱动开发的书。这将使扎实的单元测试成为他的第二天性。我希望我从一开始就把测试作为我编程的核心。


0

我将以基于C的语言开始。我发现有更多对他们有用的资源。您也可以寻找一本有关如何设计和格式化代码的书,以便他开始使用良好的编码原理。我有一堂课专门讲这个课,如果我没记错的话,我们用了一本书叫做“清洁代码”,另一本书叫“软件开发:设计原理”。我也希望能早些被介绍给这个站点。

不过,对我最大的帮助是在我的大学生涯早期就开始了实习。我以新生的身份参加职业展览会,并在大二时获得了实习机会。我还尝试着一个我一直在从事的项目,我喜欢做一些以前从未做过的事情,这样我就可以继续学习。现在,我正在使用Raspberry Pie并为家庭自动化系统实现Apple的Siri。

基本上,尽一切努力保持乐趣。不要沮丧。休息一下。不要太着迷于书本。有时,最好的学习方法是坚持尝试并使用试错法。

哦...学习如何使用Google :)


0

  • C
  • C ++
  • python基本编程
  • 然后是HTML
  • 的CSS
  • javascript
  • 努力使用CSS非常重要,而javascript则要达到最低验证级别
  • 然后将srart python用于html并获取url
  • 然后框架,如果所有阶段都可以


    级别如下

  • 基本级别,带有命令提示符以了解基本解剖结构
  • 应用程序级别
  • 鼠标图形级别
  • 网络级别
  • 设计水平
  • 数据库级别


    当您教书时,不要忘了对事物进行模块化,取消描述,直到他知道c / c ++或python等,他才会懂JavaScript。

  • 一旦他知道基本的编程,他就可以轻松地做HTML
  • 一旦他知道html他就喜欢CSS
  • 但是停下来尝试使用CSS,以便产生新的想法,他觉得他需要帮助才能开始项目,然后他将尝试通过数据库学习javascript和python以完成项目。



    添加于04/07/2013

    在14岁时,您首先要尝试编程时,您需要了解完成任务或项目或基本准则所需的资源,以及我在博文中首先提到的学习基础编程的知识,它将为您提供帮助要了解程序或软件如何在循环和条件下工作,当您下次以为我了解所有内容,但是我不知道如何访问鼠标或在单击某处时执行某些操作时,您将尝试一些图形库和鼠标库,以便您理解这是如何工作的,下一个问题将浮现在脑海,如何放置我的按钮和添加事件,以便它们可以与我的代码进行交互,因此您将要学习事件编程,然后在完成本阶段时,下一个问题将会引起我很大代码,我不知道如何调用函数有点复杂,然后您将尝试模块化,应用程序的对象和类,

    之后,您会认为我知道如何构建基本的应用程序,但是我想为数据库创建应用程序,然后想到了数据库,您想学习,但是问题是您感到很难与代码建立联系,因此可以在数据库上工作命令提示符,

    它是一种编程方式,相信我可以用相同的方式做事和学习,而且我的基础知识也很清楚,因此我可以理解例程或程序是如何工作的,
    一旦理解并充满信心,便可以使桌面应用程序尝试相同的HTML技能。


    当您尝试html时,您会觉得比以前学到的东西容易得多,因为您花了很多时间在基础知识上。
    在html中,了解结构和代码的工作原理,一旦知道了这些,就可以为应用程序进行验证和数据库连接,尝试并成功一天,您可以轻松地建立放置按钮并进行验证。 javascript,然后您会问自己一个问题,我做了一切,但外观与我在互联网上看到的不匹配,因此请尝试使用CSS,我敢肯定,如果您致力于使用最佳IDE或Dreamweaver尝试使用CSS,与hTML / css相爱。

    它足以使您使用HTML创建简单的应用程序或Web,
    在某个时候,您将问自己另一个问题,当您知道超链接很好地工作时如何使其动态化,然后动态地进行了什么,让我们思考数据库,您就可以从中学到,


    是的,这就是我的观点,显示记录,插入记录,删除记录并使用javascript和服务器端编程在本地播放数据库,然后其他概念将自动出现在您的脑海中,包括创建用户,验证,会话,用户历史记录,国际化等
    ,您会在没有指导的情况下继续进行,因为您的基础很明确,并且您知道该怎么做以及完成任务所需的资源


    多数民众赞成在所有阶段。基础很重要,正确的步骤也很重要。一旦您了解了基础知识,就可以轻松学习另一种语言或从一种语言迁移到另一种语言,
    感谢您的阅读

    添加于04/07/2013

    程序只是一套指导和例行程序,例如我们的日常工作,我们醒来,洗澡,午餐,工作,晚餐,睡觉。
    但是如果我们错失了任何一项任务,那我们就感到难以理解,那就是如果星期天是您没工作或休假,情况发生了变化,日常工作也变得如此,因此您与其他事物相匹配,那就像编程方法,学习一样。从实践而不是书本上不能告诉您的是,书本可以很好地用作参考,但可以理解我们的自然反应方式,并借助if-else语句进行工作,例如:假设我们有两项工作,两者都很重要,但我们只能做一次选择一个,然后选择第一个完成,然后可以回家,如果选择第二个,则需要下一个5个小时的工作,否则,如果两个工作都完成,您将获得1天的假期,那就是编程方法


  • 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.