V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
saharabear
V2EX  ›  问与答

怎么教别人编程入门

  •  
  •   saharabear · 2012-07-20 15:46:52 +08:00 · 4701 次点击
    这是一个创建于 4517 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这个假期,很多小字辈们要进入大学了,依然有不少计算机专业的。想利用这个假期,先学习一下编程。因为我自己是摸着石头过来的,所以不太清楚有什么好的办法能够教别人。

    首先有几个硬性条件:
    1,没办法当面指导,但是可以通过网络,语音,视频,协作白板之类的方式
    2,准备从Linux起步,不准备使用Windows平台。
    3,希望从兴趣开始。

    我想到的有这几个方面:

    正面:如果从普通的小工具开始,比如用Python/Groovy这一类的,写几个抓取网页然后用正则的方式入门,就很难让他们产生兴趣,他们不会认为这东西有用。毕竟刚入门写出来的东西,功能不会强大,成就感不强。

    反面:如果从Web开发开始,有两条坏处,其一是最容易入门的PHP却不是全能型语言,其二是从Web开发开始,就需要从至少两门语言开始,比如JavaScript+PHP, 还要有HTML,SQL 虽然更容易让年轻人产生兴趣,却不容易做出第一件有成就感的事情。

    不知道有没有这方面的经验,请大家谈谈。
    20 条回复    1970-01-01 08:00:00 +08:00
    saharabear
        1
    saharabear  
    OP
       2012-07-20 15:53:37 +08:00
    kendisk
        2
    kendisk  
       2012-07-20 16:14:39 +08:00
    一入編程深似海,從此蕭郎是路人。
    shiny
        3
    shiny  
       2012-07-20 16:30:36 +08:00
    还是觉得web的成就感来得快些
    可以试试js,管前端和后端(node.js),数据库再用mongoDB,还是bson(json分支)语法
    这样就直接免去了SQL,也不需要学习两种语言.

    至于HTML丑点没关系,这是最简单的了
    ygmpkk
        4
    ygmpkk  
       2012-07-20 16:37:38 +08:00
    @kendisk 好诗!!!
    nixzhu
        5
    nixzhu  
       2012-07-20 18:00:46 +08:00
    学Javascript, 在支持HTML5的浏览器的Canvas里画些图表之类的。而JS写法也可以多种风格。
    cyokvip
        6
    cyokvip  
       2012-07-20 18:03:48 +08:00
    锄禾日当午,不如coding苦,对着PHP,一调一下午;
    锄禾日当午,不如coding苦,调了一下午,BUG还得补;
    锄禾日当午,不如coding苦,Bug刚补完,结构需重组;
    锄禾日当午,哪有coding苦,Bug改不完,吃饭都嫌烦。
    Air_Mu
        7
    Air_Mu  
       2012-07-20 18:27:56 +08:00
    楼主 他们是谁啊?你的亲戚?
    colincat
        8
    colincat  
       2012-07-20 18:34:47 +08:00
    @cyokvip V5了!!!

    说下学习方法哈~
    首先得有兴趣,怎么才能有兴趣呢?我觉得你可以让他们一人建立一个技术博客,从买域名,到部署,然后再到自己写模板,这是一个很好的开头,可以把他们所学都放在上面,一方面是一个成果物,大家都能看到的东西,这样自信心自然培养起来了。

    其次是方向,如何才能找到正确的方向呢?
    让他们明确以后想干什么,游戏方面 web方面,移动互联网方面? 这些不是你指导他们,如果他们对什么感兴趣,放手让他们去开拓去吧。

    最后 加以适当的方法指导, 你不可能手把手去教他们,醍醐灌顶的方式是不可行的,主要是让他们在思想上认识到,在方法上学会学习的方法,懂得如何解决问题,如果通过各种工具去解决实际问题,这些正是中国很多大学生所缺少的,就是解决问题的能力。

    还有希望你让他们从最基本上上手,C语言开始,毕竟那个还是比较规范的,上大学也可以提前掌握一下,C语言做一个小游戏什么的,也是很有成就感的事情。一定要指出一条路,让他们自己摸索!
    MayLava
        9
    MayLava  
       2012-07-20 19:23:25 +08:00
    单说程序设计,
    相信编程入门的没几个不是从hello world开始,经历了一系列的经典老题,再慢慢的走上正规的吧
    这样教就挺好,能坚持下来的说明有兴趣,学这个全靠兴趣和自学;坚持不下来的就不要强求
    试试http://projecteuler.net/ 用程序做做数学题,这个算比较有意思的吧( ̄▽ ̄")

    至于Linux的使用我觉得算是系统方面的东西了,不算在程序设计范围内,不过有不少配置文件还是需要程序设计的基础的。教一下Linux应该很不错,不少人觉得用电脑=用Windows
    saharabear
        10
    saharabear  
    OP
       2012-07-20 19:27:17 +08:00
    @Air_Mu 有,也有朋友的弟弟妹妹们。
    saharabear
        11
    saharabear  
    OP
       2012-07-20 19:30:36 +08:00
    @MayLava
    @colincat
    多谢,这个思路不错。我不打算让他们从js开始的原因就是担心js的自由导致一些不良习惯。让他们用Linux的目的之一也是为了让他们能尝试cli
    cgduan
        12
    cgduan  
       2012-07-20 22:55:29 +08:00
    @MayLava projecteuler.net 这个网站有意思啊,还有类似的做题网站吗
    MayLava
        13
    MayLava  
       2012-07-20 23:03:37 +08:00
    @cgduan 不清楚了诶ww……usaco和poj算么orz……
    eric
        14
    eric  
       2012-07-20 23:30:44 +08:00
    我觉得 Udacity 的 CS101 就不错,用 Python 写一个很简单的搜索引擎:
    http://www.udacity.com/overview/Course/cs101
    Weakdancer
        15
    Weakdancer  
       2012-07-21 14:25:17 +08:00
    我觉得如果上来教linux的话会让人以为windows下很不好搞,之后想:我不用linux,还是算了吧。
    soulteary
        16
    soulteary  
       2012-07-21 17:00:28 +08:00
    @cyokvip ...v5
    for4
        17
    for4  
       2012-07-21 21:53:52 +08:00
    从盗QQ教起, 兴趣应该会很大吧.


    有什么样的需求, 就会去学什么样的技能.
    xiaowangge
        18
    xiaowangge  
       2012-07-23 10:06:30 +08:00
    infinte
        19
    infinte  
       2012-07-23 11:35:35 +08:00
    从 python 教起吧,当然如果他有数学基础就 haskell。Pascal 也可以,毕竟是教学语言。
    wuShiJingZuo
        20
    wuShiJingZuo  
       2012-12-30 15:54:27 +08:00
    国外知名大学入门都是python开始的...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2599 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:31 · PVG 18:31 · LAX 02:31 · JFK 05:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.