V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lbc307
V2EX  ›  Java

新手,我在自学编程当中遇到的一些问题。

  •  
  •   lbc307 · 2017-04-29 19:38:00 +08:00 via iPhone · 7308 次点击
    这是一个创建于 2547 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人学历是高中毕业,在外面有过几年工作经验,现在准备系统性的学习编程。第一个问题就是:学 JAVA 学了大概有 5-6 个月左右了,每天 6 个小时左右的学习,理解了一些基础的东西,但是我学习的过程中也只是反复地对着视频中的代码去敲,自己不会独立的去写,如果要自己独立能够完成一个小小的项目,需要具备哪些 JAVA 知识?感觉越学越迷茫不知道该怎么办。第二个问题,我知道英语很重要,我英语也不好,想要学习计算机方面的英语,如何开始,有什么好的意见?第三个问题:我看了一下网上说要系统性的学习的话,要学习计算机组成原理、数据结构、算法、计算机网络,那么这么多的知识哪些是最重要的,哪些是暂时不那么重要的?那些应该优先去学习去多花时间,哪些只需要稍微了解一下就可以了?希望看在我诚心诚意求救的份上能有大神赐教,谢谢
    60 条回复    2019-11-05 12:31:49 +08:00
    lbc307
        1
    lbc307  
    OP
       2017-04-29 19:41:37 +08:00 via iPhone
    目前学习 JAVA 就是自己不能根据自己的理解去独立地写代码,总是觉得还有很多不足,对着视频里面的学习,总觉得代码懂了,但是自己想写一些什么东西还是写不出来,很苍白无力,最大的希望就是自己能独立写出来一个小软件,这样会有很大的收获,但是目前就跟无头苍蝇一样,无从下手。
    MealPlanSilver
        2
    MealPlanSilver  
       2017-04-29 19:45:09 +08:00   ❤️ 2
    我学 java 的时候就是把 core java 第一本看了看,第二本按需查,然后把官方的 tutorial 读了读。基本上够用了。
    补基础的话可以先读 csapp,基本能有个感觉。数据结构算法可以读 Sedgewick 的算法第四版。这两本是你避不开的。
    网络的话可以看自顶向下方法。有需求再读。
    gulu
        3
    gulu  
       2017-04-29 19:45:48 +08:00 via Android   ❤️ 1
    想象自己在玩一个游戏,里面有很多成就,你可以按自己的兴趣一个个来做
    yang2yang
        4
    yang2yang  
       2017-04-29 20:10:38 +08:00
    为什么我感觉报个班最快?。。。最好是我的错觉。。
    lbc307
        5
    lbc307  
    OP
       2017-04-29 20:13:48 +08:00 via iPhone
    @yang2yang 先自己学一下,到时候再看情况决定要不要报班
    lbc307
        6
    lbc307  
    OP
       2017-04-29 20:14:05 +08:00 via iPhone
    @MealPlanSilver 谢谢,很有用的回答
    ke1e
        7
    ke1e  
       2017-04-29 20:15:43 +08:00 via Android
    just do it.想做什么就去做,你就会知道你需要学什么了
    lbc307
        8
    lbc307  
    OP
       2017-04-29 20:16:03 +08:00 via iPhone
    @gulu 主要还是希望能指点一些学习心得,我现在的情况就是依葫芦画瓢,对着视频,视频上面讲什么我就对着打一遍,还是感觉很迷茫……
    lbc307
        9
    lbc307  
    OP
       2017-04-29 20:16:17 +08:00 via iPhone
    @ke1e 谢谢
    gulu
        10
    gulu  
       2017-04-29 20:24:45 +08:00 via Android
    @lbc307 我也是新手,肯定谈不上指点了,因为我自己最近也有这方面的疑惑,我就是这么开导自己的。

    楼主可以试试自己做一些项目呢?然后再按需学习。
    gamexg
        11
    gamexg  
       2017-04-29 20:51:00 +08:00
    学习就是这样,
    我一般学习新语言就是把手册看一遍,写一下例子,之后就是直接自己写个项目,碰到问题再学习。

    项目可以随便想个,不经过实战光看手册是学不会的。
    duan602728596
        12
    duan602728596  
       2017-04-29 21:03:18 +08:00 via iPhone
    没需求,有个需求就好了
    dabney777
        13
    dabney777  
       2017-04-29 21:07:48 +08:00
    因为你没项目,你要给你的需求想一个架构,但是项目不会凭空来的
    先找个实习试试?
    lbc307
        14
    lbc307  
    OP
       2017-04-29 21:11:06 +08:00 via iPhone
    @duan602728596 这个说的很对,没需求,要有个需求,刚开始的新手订个什么需求比较好呢
    lbc307
        15
    lbc307  
    OP
       2017-04-29 21:14:11 +08:00 via iPhone
    @gulu 好的,这样可以,谢谢,一起进步
    kokutou
        16
    kokutou  
       2017-04-29 21:16:44 +08:00 via Android
    先换个 ide,比如 intellij idea,好处是代码提示 /调试功能非常爽。
    这样你不用记那些方法,打个.就全出来了。

    然后是面向对象的思想,这个意思其实就是所有的东西都能打.

    然后就是面向 Google/stackoverflow 编程,比如写个模拟 web 登录查课表的工具,写个打砖块小游戏,写个游戏的数据文件解包工具等等。

    开始写感兴趣的小工具吧。
    就算是批量重命名也算个小工具啊。

    等你电脑里到处都是打包成.jar 的小工具后,搞些大项目写写。
    kokutou
        17
    kokutou  
       2017-04-29 21:22:01 +08:00 via Android
    intellij idea 的 debug,你在字串上打断点,就能看到 str 在内存里怎么存的,字串最后有个 \0,List 里面有哪些东西,为什么这样做和那样做结果不一样,打断点看看相关变量,for 循环 while 循环跑的顺序,等等,这对学习一些基础是很有帮助的。
    duan602728596
        18
    duan602728596  
       2017-04-29 21:51:32 +08:00 via iPhone
    @lbc307 最好贴近自己的生活。比如我吧,我就是追国内某女团,为了能够搞到直播的视频用来剪 cut,我就用 python 写爬虫然后抓视频流,后来为了让非程序员也能用,就搞了爬虫+gui 界面+ffmpeg。虽然说技术难度不高,但是有人用,有需求,这就是项目。你也可以这样,找到生活中可以用代码解决的问题,然后写一个小项目。而且不是说项目就是代码多复杂,解决问题优先
    orange2016
        19
    orange2016  
       2017-04-29 22:01:02 +08:00
    建议楼主先自学一段时间,先看适不适合学 Java,然后如果自已自律性不够好,还是建议报班学吧。。。兴趣是最好的老师!
    iot
        20
    iot  
       2017-04-29 22:08:52 +08:00   ❤️ 1
    计算机网络要先学,因为这个有意思、好学、能很快用到,其次是数据结构与算法,也是最重要的一个,操作系统和数据库可以最后学,计算机组成可以不学。

    英语不好的话,看到一个单词就要掌握一个,我英语很好,当初第一次看 delphi 英文文档,也是啥也看不懂,看个几年就几乎不用翻译工具了,重在积累。

    遇到不懂的百度或者通过 wikipedia 的相关知识,逐步形成知识体系。我当初刚学时候电脑都没有,全靠把这些知识下载到 mp4 里,每天有空就看,充分利用碎片时间。

    熟能生巧,重复是知识之母,没有基础的时候多看文字性的,增强感性认识,我也是自学计算机的。
    Mutoo
        21
    Mutoo  
       2017-04-29 22:43:41 +08:00
    看视频学编程 -_-#,你能在屏幕上演算推导吗. 还是看书实在一点。
    lbc307
        22
    lbc307  
    OP
       2017-04-29 23:04:10 +08:00 via iPhone
    @iot 谢谢,您说的很有用
    yanjinbin
        23
    yanjinbin  
       2017-04-29 23:30:08 +08:00
    如果你学习能力不强 要么报班 虽然坑爹 但是好过你自学

    除非你改进自学方法

    java 学习 集合框架 IO 多线程 泛型 反射 xml 就可以了

    然后用框架写代码
    IDE 当然用 idea

    关键在于你的学习方法 有没有效果

    算法和数据结构 推荐 《算法 4 》
    hjwasai
        24
    hjwasai  
       2017-04-30 00:15:25 +08:00 via Android
    发现我和的情况差不多呀,虽然早就在学了,但由于时间的原因学学放放的,最近正在系统的自学 java,准备到后面看看要不要报班
    Mitt
        25
    Mitt  
       2017-04-30 00:43:50 +08:00
    学习需要一个目标,可以自己给自己定个小项目做,即便是网上已经有大把大把的源码的东西,就像我学 PHP 一样,就是先设定了一个要做网站的目标,比如个人博客,论坛,等等,然后再冲着这些去学习相关的东西,然后慢慢不满足现有的简单网站想增添更多东西,学的东西也就更多了,慢慢扩展下去基本就可以开始上其他项目了,系统性学习如果太迷茫是学不进去的,很容易放弃,计算机这东西自学的人占大多数的原因就是因为兴趣驱使的,一开始就有目标才去学的。

    Ps: 仅供参考, 本人不会 JAVA
    Cryse
        26
    Cryse  
       2017-04-30 03:07:22 +08:00
    @kokutou Java 字符串并不以\0 结尾,除非你自己赋值
    msg7086
        27
    msg7086  
       2017-04-30 04:03:36 +08:00
    我们小时候学编程是从简单的数据结构和简单的算法开始学起的。
    Antidictator
        28
    Antidictator  
       2017-04-30 08:02:03 +08:00 via Android
    @Cryse 我擦,是这样吗
    kokutou
        29
    kokutou  
       2017-04-30 08:50:21 +08:00
    @Cryse #26 好吧。。和 c 搞混了。。。
    humor66
        30
    humor66  
       2017-04-30 10:36:50 +08:00
    qwerzjy
        31
    qwerzjy  
       2017-04-30 11:32:50 +08:00
    感觉就是苦读苦练
    fhefh
        32
    fhefh  
       2017-04-30 13:01:47 +08:00
    看培训机构的视频 然后照着敲(写)一遍 一定要写 一定要写

    如果自制能力不好 可以去线下培训班去

    这样就会为了花了几万块的学费而好好学习(毕业那会儿 我好多同学都这样)

    楼主 你写多了 就知道了 现在不要想这么多 你就只管看着视频照着敲

    等你真有某个时候要用到了 你就会想到这个代码我写过额 可以拿过来改改在用
    tlday
        33
    tlday  
       2017-04-30 13:58:11 +08:00 via Android
    坦白讲,追求速成的话,github 上找一个 star 高的 Java 项目,clone 下来,尝试修改它,给它加功能。代码里面哪里不懂搜哪里。如果按你所说,系统性学习的话,按照楼上推荐的书按部就班也不错。
    darrenliuwei
        34
    darrenliuwei  
       2017-04-30 16:32:11 +08:00
    我和楼主有过一点类似经历,不过我是自学 PHP 和 Python,自学了很久,比楼主还要久很多很多,也是自学中感到很迷茫,看到楼主的帖子,让我想起了当初的自己,那时候我也是照着视频学,感觉都学会了,可是什么都不会写,最后还是选择了报班学习,现在五个月快结束了,感觉进步了很多,有时候也会后悔当初为什么不早一点报班,其实报班和照着视频学都差不多的内容,只不过报班可以让你学的更快一点,更贴近未来的工作,因为培训机构也希望自己的学员能找到一份好的工作,所以培训机构拼命的想办法让学员找到一份工资很高的工作,因为学员毕业工资越高,对培训机构的宣传就越好,总的来说,参加线下培训班还是挺不错的,当然,这只是我个人观点,而且我也只对自己就读的这个培训机构比较了解
    darrenliuwei
        35
    darrenliuwei  
       2017-04-30 16:35:04 +08:00
    我也是高中毕业,也是在外面有过几年的工作经验,现在马上就要开启新的人生了,正式成为程序员,很期待也很激动,一起加油吧!
    snsd
        36
    snsd  
       2017-04-30 17:15:55 +08:00 via iPhone
    @duan602728596 你说这团不会是某 48 吧?(#手动滑稽)
    qignfengxulai
        37
    qignfengxulai  
       2017-04-30 17:36:14 +08:00
    初学者最好跟着学习路线图学习: http://edu.51cto.com/roadmap/view/id-86.html
    im67
        38
    im67  
       2017-04-30 18:16:24 +08:00
    这软广我服…………
    ai0by
        39
    ai0by  
       2017-04-30 18:35:59 +08:00 via iPhone
    我觉得可以试试做题,然后从小项目开始做起
    zyEros
        40
    zyEros  
       2017-04-30 18:41:00 +08:00 via iPhone
    只看没用,请敲起来直到你开始可以脑子一过就知道怎么写为止
    jh623
        41
    jh623  
       2017-04-30 19:19:19 +08:00 via Android
    别报班,别报班,当然你钱多可以报班。我也是零基础自学的,找培训班流出的视频学的,然后两个月左右把他们半年多的视频学完了,不说学的多好,起码跟他们培训班毕业的没差距。一个主动,一个被动,积极性不一样。当然要是自学没积极性说明不适合这行。
    NonClockworkChen
        42
    NonClockworkChen  
       2017-04-30 19:25:17 +08:00
    哪怕是口碑比较好的传智播客, 经典视频教程里的老师,和实际给你上课的老师的水平,真的也差很远.....
    peneazy
        43
    peneazy  
       2017-04-30 21:07:11 +08:00 via Android
    最好是自学,起步可能慢,要过很多坑,但到后期,你会发现自己的学习速度越来越快。我这个月学 java 只用了 4 个晚上,掌握到面向对象抽象类,接口类继承,多
    peneazy
        44
    peneazy  
       2017-04-30 21:09:34 +08:00 via Android
    态那一块,我学 java 完全是为了看算法 4。
    duan602728596
        45
    duan602728596  
       2017-05-01 01:23:58 +08:00 via iPhone
    @snsd 对,就那个,为了抓直播和录播,自己写工具,顺便造福一下社会(滑稽)
    snsd
        46
    snsd  
       2017-05-01 08:18:16 +08:00 via iPhone
    @duan602728596 直播是不是以 m3u8 或者 flv 的形式出现的?
    duan602728596
        47
    duan602728596  
       2017-05-01 09:05:28 +08:00 via iPhone
    @snsd 对,b 站是 flv,官方自己是 m3u8,app 是 flv
    snsd
        48
    snsd  
       2017-05-01 10:16:11 +08:00 via iPhone
    @duan602728596 想不到这中国山寨翻唱团居然能把你搞得五迷三道,神魂颠倒的(#手动斜眼)
    shmilypeter
        49
    shmilypeter  
       2017-05-01 10:27:39 +08:00
    一点一点的加需求。
    比如,最简单的,先查一个单表。
    查了单表之后,实现一个分页,在分页的基础上,实现一个下拉框,可以选择每一页显示 10 条还是 20 条还是 50 条记录。
    实现查询之后,试试做一个登录注册。
    登录注册又是一门学问,首先注册的时候要用正则表达式验证邮箱吧,要用 ajax 验证这个用户名是否用过吧,要用验证码吧(建议自己用图形库画一个验证码),如果涉及到手机验证,要学会怎样用短信接口吧。

    实现查询登录注册之后,是不是得做不同权限的账号,比如管理员账号能修改删除,其他普通账号不能增删改,管理员账号能看到所有用户的表,其他账号看不到。这个不同权限该怎么实现呢?
    onice
        50
    onice  
       2017-05-01 11:13:23 +08:00
    回答这个问题之前我得先说下我不是大牛。我想你可能和我大一的时候差不多,大一的时候我也是学了一些编程基础,和你有一样的渴望。希望自己能做点东西。
    然而那个时候只学了基础,也做不出来什么东西。例如 Java 这块,面向对象,集合类,IO 流这些你都学会了,但你不会 servlet,你依然做不出来一个网站。
    所以,我觉得首先应该给自己订一个目标,我想要做什么。然后再去分解,要做这个需要哪些知识。然后按照这个去学。
    如果不知道从何下手和如何分解,去找一找项目实战的视屏,跟着视屏做一遍。做一遍后就能触类旁通了。一个最简单的例子是:当时我跟着视屏做了一个电商的后台管理,然后我就用学到的技术弄了个博客的后台管理。
    duan602728596
        51
    duan602728596  
       2017-05-01 11:20:31 +08:00 via iPhone
    @snsd 要不然没意思啊,wow 肝不动了,大菠萝不更新
    lbc307
        52
    lbc307  
    OP
       2017-05-01 12:05:24 +08:00 via iPhone
    @onice 谢谢,您的回答,对我帮助很大。
    snsd
        53
    snsd  
       2017-05-16 11:24:23 +08:00 via iPhone
    @duan602728596 能不能给个联系方式,求帮忙
    duan602728596
        54
    duan602728596  
       2017-05-16 18:50:15 +08:00 via iPhone
    @snsd 602 那个就是我 QQ 啊
    superXiong
        55
    superXiong  
       2017-05-24 14:41:21 +08:00
    @peneazy 大神,你自学时看哪本书?
    peneazy
        56
    peneazy  
       2017-05-24 20:29:24 +08:00
    @superXiong CSS 权威指南 精通 CSS DOM 编程艺术 JS 高程 3 锋利的 jQuery 这几本是刚开始用的,后面还有好多的
    storypanda
        57
    storypanda  
       2019-01-03 23:34:42 +08:00 via Android
    @MealPlanSilver 可以交流一下书籍 core Java 吗?
    MagicBoy
        58
    MagicBoy  
       2019-11-05 12:25:49 +08:00
    @MealPlanSilver 大佬你好,请问 core java 是 Java 核心技术吗?看第几版卷 1 还是卷 2 ?
    MagicBoy
        59
    MagicBoy  
       2019-11-05 12:30:11 +08:00
    @kokutou intellij idea 的代码提示是差不多自动补全吧?调试功能是哪里好?
    MagicBoy
        60
    MagicBoy  
       2019-11-05 12:31:49 +08:00
    @orange2016 楼主学 5-6 个月了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1094 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:18 · PVG 07:18 · LAX 16:18 · JFK 19:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.