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

学习编程,先学习函数后学习变量顺序是否正确?

  •  
  •   eagleweb · 2019-01-16 19:40:44 +08:00 · 2734 次点击
    这是一个创建于 2143 天前的主题,其中的信息可能已经有所发展或是发生改变。

    此处的“学”指真正理解并运用它,而不是对概念简单地进行了解。 C 语言的主函数,PHP 的 echo()函数这一类开始老师都会手把手教你用的特例除外。

    33 条回复    2019-01-17 12:17:42 +08:00
    ThirdFlame
        1
    ThirdFlame  
       2019-01-16 19:43:22 +08:00
    开局不都是 hello world 么? 第一个不是函数?
    1a0ma0
        2
    1a0ma0  
       2019-01-16 19:51:54 +08:00 via iPhone
    可以先从汇编讲起
    niubee1
        3
    niubee1  
       2019-01-16 19:58:15 +08:00
    开始要先从微机结构学起比较好, 计算机体系结构, 操作系统, 数据结构, 算法, 软件工程........
    niubee1
        4
    niubee1  
       2019-01-16 20:02:53 +08:00   ❤️ 1
    还有网络原理, 数据库原理. 不然好多半路出家的 coder, 由于现在的现成库越来越多, 网络基础都不了解就开始做网络应用了, SQL 都写不清楚就用 ORM 搞数据库了, 索引啥的都不懂, 数据量大了跑不动都不知道丢索引了. 搞不清楚并行并发的概念, 搞多线程不懂线程安全............是不是很可怕
    eagleweb
        5
    eagleweb  
    OP
       2019-01-16 20:19:21 +08:00
    @niubee1 但是我只想知道先学函数还是先学变量啊😂
    codechaser
        6
    codechaser  
       2019-01-16 20:26:27 +08:00 via Android
    这就跟先鸡还是先蛋的问题,而且我还第一次听说先学习函数还是学习变量,这两个能分开吗?
    GeruzoniAnsasu
        7
    GeruzoniAnsasu  
       2019-01-16 20:29:27 +08:00
    先学怎么输入输出

    学变量是什么鬼东西,都不明白你想表达什么
    niubee1
        8
    niubee1  
       2019-01-16 20:30:42 +08:00
    @eagleweb 还要分先后? 你先变量吧
    Taojun0714
        9
    Taojun0714  
       2019-01-16 20:31:27 +08:00 via iPhone
    有你在这扯淡的提问的功夫语法入门教程都能看完一遍了。你以为学个语言语法需要多久?虽然你没基础,但不要把时间浪费在扯淡的地方上来。花半个小时就能读完一遍的事儿。
    rabbbit
        10
    rabbbit  
       2019-01-16 20:41:40 +08:00
    怎么算学会?
    要说深入理解 js 变量怕不是要懂得

    作用域
    执行环境
    原型链
    隐式转换
    变量提升
    暂时死区
    ...

    那一时半会是没法"学会"了...
    eagleweb
        11
    eagleweb  
    OP
       2019-01-16 20:42:19 +08:00
    @Taojun0714
    @GeruzoniAnsasu 同学要学 C,下载 IDE 花了一小时,剩下的 6 个小时一直在理解函数的概念,我不纠结这个问题因为我早就学完了,我先学的变量,只是现在他赖我说我劝他先学函数有错,来找神奇的网友问问。(我学的 PHP )
    stillsilly
        12
    stillsilly  
       2019-01-16 20:51:16 +08:00
    函数也是变量的一种…… var func = function(){ } 变量 func 就是一个函数……
    xiri
        13
    xiri  
       2019-01-16 20:52:23 +08:00 via Android
    额,,,变量怎么才能单独学?不停的定义各种变量?
    ayase252
        14
    ayase252  
       2019-01-16 20:58:17 +08:00
    跟着书学下去啊,总会都懂的。莫非是面向搜索引擎学习?
    hhhsuan
        15
    hhhsuan  
       2019-01-16 21:01:17 +08:00 via Android
    不知所云,建议你写过 1 万行代码以后再来问问题。
    eagleweb
        16
    eagleweb  
    OP
       2019-01-16 21:04:20 +08:00
    @hhhsuan 您的寿命怕是达不到那里。
    hundan
        17
    hundan  
       2019-01-16 21:04:55 +08:00 via Android
    @stillsilly 这个得看语言
    msg7086
        18
    msg7086  
       2019-01-16 23:00:50 +08:00
    要从 C 语言函数的真正理解和运用开始说起的话,怕不是要把 OS Kernel 和汇编读一遍了。
    学习编程刚开始就是要懂得简单的程序是怎么写的就行了。
    后面那些深入的东西是你接下去五年十年甚至几十年要探究的东西了。
    光一个函数,在 C 里就可以玩出函数指针、函数指针数组、指向函数指针数组的指针……之类的东西。
    只是入门的话,知道有函数这么个东西,知道变量是存数据的标识符,那就结了。尽快开始撸程序才是重要的。经验是从撸代码中积累出来的。

    对了,入门编程别学 C。
    codechaser
        19
    codechaser  
       2019-01-16 23:08:18 +08:00 via Android
    @msg7086 我觉得入门学 c 是最好的了,为啥不能学 c 啊😂
    SuperMild
        20
    SuperMild  
       2019-01-16 23:16:14 +08:00
    变量和函数同时学,并且之学其中的一部分,不可能一上来就学透。

    但是一般来说是跟着一本教材学,教材怎么教就怎么学,不需要自己选择先后。

    至于你朋友怪你指点错误,他也就随口说说,不必较真。另外,一般来说,指点别人的时候尽量多说几句 “我个人意见不一定对” “因人而异” “最终还是你自己决定” 之类的话。
    reself
        21
    reself  
       2019-01-16 23:20:42 +08:00 via Android
    @codechaser 学 C 的话,要想做出酷炫 or 实用的东西,涉及的知识太多。没有正反馈的话,难以建立信心,很容易半途而废。
    msg7086
        22
    msg7086  
       2019-01-16 23:22:18 +08:00
    @codechaser 干扰太多。最后你花下去的时间,20%在学编程,80%在和 C 语言搏斗。
    msg7086
        23
    msg7086  
       2019-01-16 23:24:42 +08:00
    别说刚入门了。我们这些写了十几年程序的人,突然要让我去写 C 或者 C++,至少还有 20%的时间是在和 C 语言类库或者编译器搏斗中度过的。所以除非是特别有必要去用 C 或者学 C,否则我都是推荐用别的语言入门和开发。你需要懂 C,但你没必要从入门就开始懂。
    azh7138m
        24
    azh7138m  
       2019-01-16 23:32:12 +08:00 via Android
    @rabbbit 现在最惨的已经是 java 了,jdk12 就要 release 了,半年一个版本,比 js 还要刺激(
    secondwtq
        25
    secondwtq  
       2019-01-17 02:31:57 +08:00
    楼主还真歪打正着了,在 Lambda Calculus 里面,let (更接近通常意义的“变量”)就是一个语法糖扩展
    aijam
        26
    aijam  
       2019-01-17 06:26:10 +08:00
    @secondwtq 对的,学 lambda calculus 就不用纠结 lz 的问题了。
    busfool
        27
    busfool  
       2019-01-17 06:34:29 +08:00 via Android
    这都是很简单的东西,一晚上两个都学会了,不行再加一晚上
    yuanfnadi
        28
    yuanfnadi  
       2019-01-17 08:26:18 +08:00 via iPhone
    先学 if for 然后 学 while switch
    然后学函数。
    DesertCamel
        29
    DesertCamel  
       2019-01-17 09:05:53 +08:00 via Android
    不是很明白你要表达什么?函数变量这些不是高中就学过吗?编程语言的语法特性了解完了记住,然后就是大量练习。要论先后,肯定是变量啊,函数入参就是变量吧?不学怎么继续?搞清楚变量概念,常量,局部变量
    GeruzoniAnsasu
        30
    GeruzoniAnsasu  
       2019-01-17 10:48:15 +08:00
    @eagleweb 为什么不按照书的进度来?
    连子过程的概念都还没有让人上哪去理解函数,特别是,“参数”是什么鬼东西
    学编程先从照猫画虎写得出能跑的东西开始
    然后才继续认识各种语法成分和特性
    liuminghao233
        31
    liuminghao233  
       2019-01-17 11:19:10 +08:00 via iPhone
    学个 c 语法哪来这么多事情
    人家书都看一半了,你还纠结变量函数哪个先学
    看教材书从头看到尾就是

    另外请定义什么程度才算是 “真正理解并运用它”
    熟练使用 printf 吗
    littleylv
        32
    littleylv  
       2019-01-17 11:22:48 +08:00
    第一次看见“先学变量还是先学函数”这种问题
    Sanko
        33
    Sanko  
       2019-01-17 12:17:42 +08:00 via Android
    学变量????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1267 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:21 · PVG 07:21 · LAX 15:21 · JFK 18:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.