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

入职近半年的程序员应该怎样提升?

  •  1
     
  •   CyberShadiao · 268 天前 · 4238 次点击
    这是一个创建于 268 天前的主题,其中的信息可能已经有所发展或是发生改变。
    去年十月份入职了一家外包公司,不做民用项目,要出差驻场开发。面试的职位是 Java 开发,但是来了公司除了刚刚几天看了下文档,其余时间一直都在写页面,layui+JQuery 这些。现在 Java 快忘光了。自己的基础也不是很牢,纸糊的一样,框架(只会 SSM)也忘得差不多了。
    在公司半路加入项目组,做了一个项目,是拿之前做的一个系统改的,入职的时候后端改完了,只要写页面。
    目前这个项目只等验收了,然后我又不要出差,所以每天有时间可以带薪学习,请教一下各位大佬,我现在的情况是把基础补好还是复习框架?还有 Java 基础有哪些内容(看网上那些机构的视频感觉都差不多,都是教怎么用)?什么样才算基础比较好或者说什么才是 Java 基础?请各位前辈大佬不吝赐教。
    27 条回复    2021-03-15 17:36:17 +08:00
    zengming00
        1
    zengming00  
       268 天前   ❤️ 7
    趁早转行,写程序这行业已经不行了
    securityCoding
        2
    securityCoding  
       268 天前   ❤️ 7
    1. 系统性的学习数据结构与算法。这个非常非常重要,不然很多源码根本看不懂,这是搞懂很多高级组件的前置条件。比如:ArrayList/LinkedList/HashMap/AQS/epoll 不懂数据结构和算法基本上是看了也白看,看也看不懂

    2. java 底层知识 jvm 。比如 java 内存模型,jvm 运行时数据区, 有 jvm 相关的知识储备你才能看明白。像 volatile 为什么能保证内存可见性不懂内存模型是真的很难理解这玩意。还有垃圾回收,gcroot 等等

    3.计算机体系,这块的东西很多很杂,老实说这块知识我也非常碎片化。比如你说你要学习 netty,你得把 bio 、nio 、selector ( select,poll,epoll )这几个 io 模型演进过程搞清楚吧?上来就 nio+多路复用容易把人搞懵逼

    对于学习我自己一般遵循:
    1.背景。前因后果搞不清很多概念会显得很突兀难以理解
    2.怎么用。计算机领域不缺高级词汇,不要停留在纸面上,结合实际好好理解和运用。
    3.总结。不写总结根本不明白自己到底搞懂了没有,总结就是考试,你说你学的非常好了,来,我们来考试一下
    steveEvan
        3
    steveEvan  
       268 天前
    本人双非一本,非科班出身,目前就职于某独角兽公司,可能我的经验会给你一点帮助
    可以用思维脑图列出 Java 需要的技术栈,比如 Java 基础,并发编程, 分布式系统,MySQL,网络,中间件等,每一块涉及的知识点列得越细越好,然后一段时间专攻某个点,这样逐步形成由点到面的思维,我把我的一些学习路线总结在了这里: https://github.com/allentofight/easy-cs,希望对你有些帮助
    steveEvan
        4
    steveEvan  
       268 天前
    上面的链接没有写好,重发一下: https://github.com/allentofight/easy-cs
    L0lita
        5
    L0lita  
       268 天前
    写代码写到头秃 你在公司就可以呼风唤雨了 有人狠不下这个心 认为颜值很重要 但是过来人告诉你 钱更重要 那些劝你转行的 只是不想让他人来抢这块蛋糕而已 切不可听信谗言 半途而废
    CyberShadiao
        6
    CyberShadiao  
    OP
       268 天前
    @securityCoding 加入了一个群,和群友一起做算法题,签到题都不会做。学习新知识就是看视频,视频里怎么做我就怎么做,没有主动思考过,过一段时间就忘了。现在也开始做笔记,把每天学的东西总结,之前都没有做笔记的习惯,很多东西看了就忘,也没有形成体系。非常感谢老哥的指点。
    CyberShadiao
        7
    CyberShadiao  
    OP
       268 天前
    @steveEvan 前几天把一些公司用到的 主流技术做了个思维导图,按照上面的去学习。之前学习就是要用了哪里不会就去看一下哪里,过了几天就忘了。
    CyberShadiao
        8
    CyberShadiao  
    OP
       268 天前
    @zengming00 我感觉还好吧,我在的城市还行。
    NexTooo
        9
    NexTooo  
       268 天前   ❤️ 1
    @CyberShadiao 做笔记很重要,看的时候会感觉“我懂了”,落到笔记上就是“额……?”,然后把学到的东西梳理整理成起码自己觉得有条理的能看懂的笔记(都不要求可阅读性),是个很痛苦的过程。
    一般痛苦完了憋出来了一块东西才算真懂了,我个人是这么觉得的。。。学个新东西很快,能写出笔记很久。
    虽然一样会忘,但是写笔记过程中思考的东西才是真正属于你的,短时间没感觉,日子久了真会感觉出和以前不一样
    myBatis
        10
    myBatis  
       268 天前   ❤️ 1
    @zengming00 #1 再几把搁着宣传自我危机我打死你
    myBatis
        11
    myBatis  
       268 天前   ❤️ 4
    @zengming00 #1 你自己一条菜狗学啥啥不会底层又不懂怪这个行业?
    geekaven
        12
    geekaven  
       268 天前
    光看没用的,还要多练习和复习,要不然过段时间一样忘记。
    zengming00
        13
    zengming00  
       268 天前   ❤️ 3
    还抢蛋糕,我就直接告诉你们,别说 35 岁退休,就是 30 岁现在都难找工作,现在的互联网公司里面那些技术有什么难的,多少没学历的人照样可以做,人家培训几个月就可以做事了,要的钱还比你少,加班人家还比你积极
    花精力去深耕的人有几个能出头? 1000 个程序猿里面有几个能熬到最后,你会是这里面的一个?

    别不承认,初中生培训几个月同样能写得了程序,而且人家不一定比名校出来的人差
    别不承认,送外卖同样拿上万工资
    别不承认,现在在职的公司再牛逼,出来后公司和你没半毛钱关系
    别不承认,创业公司很难活过三年,什么股份期权最后啥都没有

    红利已过,如果不是真的喜欢编程,真不建议做这一行,去看看现在那些三四十岁的人做什么赚钱,什么职业越老越吃香,往那个发展才是正确的道路
    raaaaaar
        14
    raaaaaar  
       268 天前
    最重要的自然是基础,计算机的基础就那么几个东西,哪个不足补哪个。然后就是深入你自己工作中用到的技术,这点很重要,也能提高你的工作能力,技术也自然提升。

    说起来,我在没有上学校的课前,只是实践开发也会有这些问题,就是一头懵逼,不知道自己不知道哪些知识,也就是没有一个知识最基础的架构,现在学了不少课后,视野就慢慢建立起来了,虽然同样有很多东西不懂,但是知道自己不懂在哪里,自然知道怎么去学。

    所以如果不是科班的,还是建议慢慢补基础吧,那几个东西我想只要在这个行业里吃饭,总是逃不掉的。
    vincexu
        15
    vincexu  
       268 天前
    上面那个没事吧,受啥刺激了
    MoHen9
        16
    MoHen9  
       268 天前 via Android
    要看目标,比如短期目标是跳个好点的公司,就看大公司的面试,会学到很多。

    长期目标就要系统学习,以系统的看书,看文档,梳理源码为主,看文章或博客太单一,且不系统。比如你要学 MySQL,可以先看高效能 MySQL,学 Redis 可以看看 Redis 技术设计与实践
    L0lita
        17
    L0lita  
       268 天前
    @zengming00 培训几月就能超你 自己不努力怪不得别人 培训完也就入个门而已 你要是以为培训完直接满级 那你还是送外卖去吧
    eternitym31
        18
    eternitym31  
       267 天前
    思考下当前的商业模式,可以想想怎么出去单干。
    jones2000
        19
    jones2000  
       267 天前
    能力提升是靠项目和代码堆出来的,什么教程,刷题都扯蛋。 没有真实的应用场景项目给你实践, 今天看了过几天就忘了。
    zengming00
        20
    zengming00  
       267 天前   ❤️ 1
    @L0lita 我觉得你应该再仔细研究下我说的,任何行业都不是你努力就能成功的,企业里面有一两个挑大梁的就够了,当然不努力是一定不会成功的,运气的成分要远大于努力,到头来一场空,还不如趁早深耕其它行业,有相当多的程序猿工资是和其它行业持平甚至不如其它行业的,有意义吗?
    Blessing1
        21
    Blessing1  
       267 天前
    学习了

    对我帮助挺大
    zengming00
        22
    zengming00  
       267 天前
    企业里面有一两个挑大梁的就够了,其它的找培训班出来的或者找实习生就行了,稍微带一下就能干活了,便宜,开 5000 块都有大把人干,你再牛逼工资要那么多要你干啥?进大厂?进去还不就是颗螺丝钉,年龄一到就滚蛋,大厂里面的宫斗就像电视剧那么好看,确定你在里面能活得过两集?
    QBugHunter
        23
    QBugHunter  
       267 天前
    我的流程是这样的,当然我是做 C++的,所以仅供参考

    0.学英语
    1.买各种进阶书籍,Efftecive c++等,然后看书
    2.学习 C++的类库,包括 Qt,OpenCv 等。
    3.做程序,从基本的扫雷,记事本(都是用 Qt 实现的)开始。
    4.开始学习模板,并开始自己实现 C++标准库,STL 等
    5.学习算法

    程序员 35 岁退休也是实情,就看你平时是否学习并紧跟最新技术。昨天看 V 社有个人法律个关于程序员 35 岁退休的帖子(标题最长的那个,不知道现在还在不在了),其实我觉得他那帖子话糙理不糙。

    这个社会竞争很激烈,你啥事都不敢,35 了别人为啥话高价请你而不是找个刚毕业的学生,毕竟你会的和刚毕业的学生会的也差不多,最多编码比较熟练而已。

    如果你真的要精通编程的话,10 年时间真的不太够,我刚开始啃算法导论,那一部书的厚度我就瑟瑟发抖了,其他不说,那些喊着 35 退休的人里,有几个学完整部书的?
    QBugHunter
        24
    QBugHunter  
       267 天前
    去年公司招个安卓开发,来了个人,某水利工程硕士学位,年龄 34,7 年编程经验,要求月薪 20K+,然后我问了他如下几个问题

    Q:手机和某设备通信,设备发送的消息,有一个字段为 4 字节,类型为无符号 int , 那安卓如何处理该字段?
    A: 不知道

    Q: ActivityA 启动 ActivityB,然后 ActivityB 启动 ActivityC,那如何将 ActivityA 的某些数据,传递给 ActivityC
    A:用 Intent

    Q:有没有做过项目,最好是上线过 APP,或者技术性博客
    A:都没

    Q:安卓滚动控件,你一般如何实现(我开了一个 APP 演示给他看)
    A:ListView
    Q:这个用什么实现(我 APP 左右滑动切换 Activity,类似 ViewPager )
    A: 不知道,我之前负责某个 Activity 的

    Q:List 和 Vector 有啥区别?
    A : 没有
    ihgoo
        25
    ihgoo  
       266 天前
    @QBugHunter 不可能吧,这人是个傻子?
    jmyz0455
        26
    jmyz0455  
       266 天前
    @QBugHunter 坐标哪里?
    stillsilly
        27
    stillsilly  
       266 天前
    @QBugHunter
    为啥做了 7 年没上线过 app……
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2800 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:45 · PVG 20:45 · LAX 04:45 · JFK 07:45
    ♥ Do have faith in what you're doing.