新手,我在自学编程当中遇到的一些问题。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lbc307
V2EX    Java

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

  •  
  •   lbc307 2017-04-29 19:38:00 +08:00 via iPhone 8061 次点击
    这是一个创建于 3091 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人学历是高中毕业,在外面有过几年工作经验,现在准备系统性的学习编程。第一个问题就是:学 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 的算法第四版。这两本是你避不开的。
    网络的话可以看自顶向下方法。有需求再读。
    HFcbyqP0iVO5KM05
        3
    HFcbyqP0iVO5KM05  
       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 谢谢
    HFcbyqP0iVO5KM05
        10
    HFcbyqP0iVO5KM05  
       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     Solana     5651 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 03:28 PVG 11:28 LAX 20:28 JFK 23:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86