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

自学编程,希望各位指点下学习路径。

  •  
  •   BouleDeNeige · 2020-08-27 04:29:09 +08:00 · 3548 次点击
    这是一个创建于 1310 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先介绍下自己,本人男,90 年生人,今年 30 岁,未婚。08 年高中毕业,拿到杭电软件学院录取通知书,由于家庭原因未能上学。随后辍学在底层打工,环境原因也没人点拨,浑浑噩噩混了 10 年。随着年龄增长突然觉得自己应该做点事情摆脱这种困境。

    18 年时鉴于自己生性内向,不善处理人际关系,觉得应该学点技术。网上说学 python 入门快,于是自己利用打工之余,自学了一本《 python crash course 》,跟着敲了点范例,学了点基本的语法知识。就这样由于没什么可以预见的成效,只是学了语法没有用武之地,又荒废了一段时间。学 python 的时候加了几个电报群,听他们群里聊天发现 C 语言是绕不过的门槛,当下正在自学《 c primer plus 》。

    我这种盲人摸象式的学习方法,自己也没有信心。想着上网找有工作经验的前辈,指点一下学习路径。比如如何找项目练手,或者说一下能胜任工作的知识结构。

    我的目的也不一定非要找到程序员的工作,毕竟自己的条件很差(指学历和年龄),但是希望自己能参与到 github 的项目,融入这个圈子。

    28 条回复    2020-08-28 11:03:33 +08:00
    msg7086
        1
    msg7086  
       2020-08-27 05:40:41 +08:00   ❤️ 1
    C 语言是绕不过的门槛,不等于没多少经验就要直接上手学 C 。
    基础不牢直接上手指针环境是会被绕晕的,然而就算是起手的 hello world 也是要用到指针的(字符串就是字符数组,打印时降解为指针)。
    考虑到你几乎零基础起手那最好还是顺着 Python 这条路走,真要学 C 也最好从 PHP 学起,回头再转 C 会熟悉很多。
    入门的时候一定要给自己定一个小目标。比如你学 Python,那传统点的比如说做一个学生管理系统,图书管理系统,等等。定下来以后,去看有哪些做法( Web,GUI 等),然后去了解要用到的相关技术( Web app stack,前端等),然后再去针对短板学习。我初中的时候学编程,基本也就是做个类似学生管理系统的东西,关键看你有没有这个想法去完善、改进你的项目,学更多的知识,然后逐步去迭代自己的代码。
    还有 C#也是个挺好的入门语言,语法相对比较干净和先进,如果 Python 做 Web 上手感觉要学的东西太多,C#直接撸 WinForm 也是可以的。
    qianyin925
        2
    qianyin925  
       2020-08-27 08:27:29 +08:00
    hehhe1
    miv
        3
    miv  
       2020-08-27 08:34:58 +08:00 via iPhone
    没啥圈子不圈子,如果单纯想学建议不要学低级语言, 直接学高级语言。
    比如 nodejs,php 这一种可玩性比较高的,好出活
    sinkdwt
        4
    sinkdwt  
       2020-08-27 08:40:44 +08:00 via iPhone
    推荐 html+css+js
    340244120w
        5
    340244120w  
       2020-08-27 08:43:38 +08:00 via iPhone
    如果是 Java 的话 推荐一个 b 战 up: 狂神说

    前后端运维全栈线路都帮你安排好了
    chfight
        6
    chfight  
       2020-08-27 08:43:47 +08:00
    @msg7086 大学不都是直接学 C,感觉没什么问题

    不过当前环境的确可以直接学高级语言,语言+常用的类库学的差不多就可以直接找工作,不要嫌弃工资低,跟这项目慢慢好了
    LiuSha
        7
    LiuSha  
       2020-08-27 08:46:33 +08:00 via Android
    @chfight 对于没什么基础的人来说,学 C 的时候指针是真的很难,反正我们大一学 C 的时候没几个人弄懂指针了的…
    msg7086
        8
    msg7086  
       2020-08-27 08:58:18 +08:00
    @chfight 大学直接学 C,首先你是全职学生,一星期两三节课,老师系统性地讲,回家有作业,旁边有室友每天可以交流,隔壁寝室说不定有大佬可以手把手指导,不懂还能去办公室问。其次大一 C 语言课程结束以后有多少人能达到可以用 C 写简单项目的程度的。我同级的同学毕业的时候不会写 C 的还一大把……

    而且在此之前,很多大学入门用的是 Pascal,虽然有指针但是只需要用在链表里,日常使用完全碰不到,我相信那时候的编程入门比用 C 语言要简单太多了。
    cmdOptionKana
        9
    cmdOptionKana  
       2020-08-27 09:09:11 +08:00   ❤️ 2
    学吧,楼主,给你一个建议,遇到难点不要死磕,研究一天搞不明白的地方就跳过,把难点先记下来(做笔记),你先学别的,学着学着回头再看就会发现很容易理解。

    学 C,学算法和数据结构,但不要死磕,实在学不下去了可以去学前端,前端比较好玩,一段时间后再回头重学 C 和算法。
    miv
        10
    miv  
       2020-08-27 09:09:33 +08:00
    另外推荐一个学习宝地,就是 b 站。上面好多免费的视频教程,按照上面评价好的课程来,过一遍,再去看书巩固,基本就好了。
    一开始学习的话直接看书,没有人讲授太枯燥无味了,所以一个好的课程或者一个好的老师(比如讲课幽默),的的确确可以让你事半功倍。
    cmdOptionKana
        11
    cmdOptionKana  
       2020-08-27 09:14:41 +08:00   ❤️ 1
    业余学编程玩的,遇到难点千万不要死磕,继续学别的知识点就是了。学个一两年或三四年(具体时间看个人天赋和努力程度)之后,还有一些难点解决不了的,并且这个难点很关键影响很大,可以上论坛来问。
    jay4497
        12
    jay4497  
       2020-08-27 09:44:19 +08:00
    Administrat0r
        13
    Administrat0r  
       2020-08-27 09:50:31 +08:00   ❤️ 2
    emmm 我觉得你还是最好先弄清楚你学来要做啥,手机 app ? web 网页?服务器?桌面软件?有一个大致的方向比较重要,时间没那么多,不可能啥你都学,确定了方向,主流的语言工具就那几样,慢慢学。
    interim
        14
    interim  
       2020-08-27 09:52:02 +08:00
    真的想学,我觉得你去知乎多看看建议都比这里好..
    Jirajine
        15
    Jirajine  
       2020-08-27 10:46:40 +08:00 via Android
    误人子弟,程序员有几个会写 C 的。
    darkkylin
        16
    darkkylin  
       2020-08-27 10:56:02 +08:00   ❤️ 1
    楼上有人的建议是比较好的,先选择高级语言,第一是能有产出,给你的学习积极性起到正反馈作用;第二是能尽快入行,在工作中快速积累。既然有心要改变自己,坚持住吧。
    crella
        17
    crella  
       2020-08-27 11:00:18 +08:00 via Android
    融入这个圈子有啥好的,不如看看能不能提升技术或者做副业,学好 office 都好一点。

    我也是类似的“失足”人员。
    crella
        18
    crella  
       2020-08-27 11:11:13 +08:00 via Android
    我不懂编程,上面说的偏激一点。我只是根据我看到的回帖,感慨一下为工资编程和为兴趣编程真的不是两回事,前者劝退了我……
    whyrookie
        19
    whyrookie  
       2020-08-27 11:13:00 +08:00
    如果是 C 语言推荐郝斌老师的 C 语言教程,如果是 Java 同推荐 B 站狂神说 Java
    across
        20
    across  
       2020-08-27 11:15:34 +08:00 via iPhone
    学小程序
    saltbo
        21
    saltbo  
       2020-08-27 11:35:05 +08:00
    92 年野生程序猿,11 年开始自学。不请自来回答一下。

    首先,就像楼上说的,要搞清楚你是为了提高收入,还是兴趣使然。 如果是为了提高收入,真不建议现在这个年纪转行来搞这个。成本太高了。 大概率后面会被劝退。

    如果是兴趣更多,那么要明确学编程的目的是什么?做个 app ? 做个网站? 做个小程序? 现在开始学,没那么多时间给你试错了,选择一个方向很重要。 做 app 又细分安卓 ios 网站又分前端后端 前端后端又细分各种语言。。。

    所以,强烈建议先确定目标,再规划学习路径。

    我始终认为:自学要以目标为导向。所谓以目标为导向就是比如我想做个什么东西,那么你就去了解做这个东西需要什么技术,然后就定向去学这个技术。而不是去学那些很基础的东西,因为你本来就不是在上学,而是在自学。自学就要有目标导向,这样学习的过程会有成就感,会有继续学下去的动力。而你去学那些很基础的东西,像 C 语言,一方面学的很痛苦,另外,你学完了你知道能干啥么? 没有目标就会劝退~~

    以上
    wqzjk393
        22
    wqzjk393  
       2020-08-27 12:49:46 +08:00 via iPhone
    学数据结构算法 写项目 读源码 看技术博客,学编程无非就这几样
    ironMan1995
        23
    ironMan1995  
       2020-08-27 13:42:37 +08:00
    C 语言入门 Java 入门 数据结构 狂吹浙江大学出的教材和 MOOC 上面配套的视频。我现在把 C 语言的教材(C 语言程序设计第三版)都快自学完了,每章课后习题做一遍,还有配套的设计实验与习题的书。我感觉智商正常跟着边学边敲一遍基本没啥难度,我只自学过前端指针那真没啥难度
    ironMan1995
        24
    ironMan1995  
       2020-08-27 14:01:09 +08:00   ❤️ 1
    《 C Primer Plus 》我也有买,实话实说这本书太厚了,一开始用这本书入门就是劝退用的。我的规划就是先入门 C 教材用《 C 语言程序设计第三版》浙江大学翁恺老师,入门完了学数据结构《数据结构(第 2 版)》浙江大学陈越老师。这两本都有配套的习题书记得买。然后看《编码:隐匿在计算机软硬件背后的语言》这本书了解下大概计算机原理(很通俗易懂豆瓣评分 9.2 ),再之后看《深入理解计算机原理》(里面也都是用的 C 语言,期间用 C 继续刷刷题)。后面就是学 Java 了,入门就是用《 Java 语言程序设计教材》也是浙江大学翁恺老师的另外也有一本配套的习题书。
    划重点:浙江大学这几本教材都有视频在 MOOC 上面,真的很通俗易懂。其实如果嫌弃看视频慢完全自己跟着书都能学会,我就是跟着书自己敲,等后面整本书学完再把视频快速过一遍复习下
    azcvcza
        25
    azcvcza  
       2020-08-27 14:40:59 +08:00
    编程学到最后总要过 数据库;编译原理;计算机网络;计算机系统 四门课
    levelworm
        26
    levelworm  
       2020-08-28 08:22:15 +08:00 via Android
    可以先看想做什么,然后一边学一边做,千万别看大部头,两个月肯定 burn out 了,我就是。
    Jinnn
        27
    Jinnn  
       2020-08-28 10:18:18 +08:00
    建议首先把计算机考研用到的四本书《数据结构与算法》《计算机网络》《计算机组成原理》《操作系统》学习一下,也有很多网课方便学习,这是比较重要的基础,能看下来的话说明你自学能力还不错,然后再根据你想要求职的方向学习细分的知识
    overthemoon
        28
    overthemoon  
       2020-08-28 11:03:33 +08:00
    鉴于你的基础和想快速摆脱目前的困境,我建议你还是别去死磕什么所谓的基础了,没个一两年是没办法系统性的学完的。特别是 c 言语,你没硬件基础语法学了没用的。
    现在市面上流行的编程语言是 java,php,golang 之类的,别学什么 Python 了,就一脚本,很难找到正式工作基本上要依托其它学科基础。建议你学 java,java 的生态现在很完善了,网上一大堆资料,你要做的是把 java 的基础语法一个个敲一遍熟悉一下,然后记个大概去看视频学项目,记得,想要学好一门语言一定要上手,最好的上手就是做项目。
    等你做了几个小项目之后对语法和框架有了一定了解,就去外包公司投简历,为什么说外包呢,因为外包要求低,先混个一年,然后在跳槽。差不多这样就正式进入编程行业了。
    如果学的不错再看看其它语言,前端啊还是后端,在规划一下。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2874 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:46 · PVG 21:46 · LAX 06:46 · JFK 09:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.