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

有点迷茫,应届毕业怎么提升?

  •  
  •   backfrw · 2018-08-06 12:02:24 +08:00 · 2906 次点击
    这是一个创建于 2327 天前的主题,其中的信息可能已经有所发展或是发生改变。
    应届毕业,大学期间家里发生了很多事,延期了一年,比同届同学不足,比同级同学又有余,现在刚工作,做后台,用 Java,在成都,试用期加上餐补什么的能有 5k 多点,因为不到一个月,不知道会不会扣什么,到手就不好说了

    进公司入职培训还没完,第二天就直接跟项目,一个税务改造,据说很急,跟组连续加班半个月,没有周末,基本每晚都是赶末班地铁,偶尔几天三四点下班,我觉得还好,但一起入职的另一个应届直接辞职了,之后项目也正常上线,但是感觉这样的加班强度也没有学到什么东西

    一直听说应届生出来要做两个项目才能成长,这也算小半个了,没吃出一点味,所以问题出在什么地方了?麻烦大佬们指点一下,谢谢啦
    第 1 条附言  ·  2018-08-06 16:12:09 +08:00
    得嘞…还以为上周交付之后召回公司还专门给了一天休息时间美滋滋的,今天下午突然就给我调运维了…一点通知都没有,连个跟我商量的人都没有,部门老大没说,项目经理没说,人资都没说一句,突然运维来跟我说他们搬办公室,部门老大让我一起过去…然后运维这边就给安排座位了…一脸懵逼,难道不是录用什么职位就做什么吗?想问下这种情况怎么办啊?
    第 2 条附言  ·  2018-08-06 20:43:28 +08:00
    二更~~~补充一点,因为税务系统,所以跟项目以后都在税局开发,然后我们的服务器在这边,也是因为项目性质,只能内网访问,所以运维也是在税局这边

    这边税局办公室弄得差不多了以后,我问这边负责的那个运维,什么情况,他说不知道,只知道安排我过来了

    直接找人资,人资一脸懵逼,没有接到人员调动,然后过了一会给我回话说是之后这边有新需求,过来贴近需求,内网也方便开发,录用是什么岗位就是什么岗位,是开发方向没有错

    然后部门二把手又来了个电话,说税局人事调动,重新分配办公室,我就先划到这边占座,多申请几个工位,等项目完了再做安排,还让不要给运维说,过来的开发不是转岗。留我一脸弟弟,像个二五仔

    但是进组这么半个月,也认识了一些同事,也知道这个公司确实有无协商就通知转岗的事情,所以更加懵逼

    唉~问了身边的同学朋友,没有遇到过这个状况的,难道毕业第一份工作就这么狗血了吗?
    15 条回复    2018-08-07 10:57:47 +08:00
    ppyybb
        1
    ppyybb  
       2018-08-06 14:00:10 +08:00 via iPhone   ❤️ 1
    不是大佬
    我认为问题在于两点:
    1 是否有时间来反思写过的代码?一般来说 code review 对自己提升还比较大的,无论是别人还是自己 review

    2 是否对用到的技术进行加深了解?比如用到 mysql,是否对 mysql 事物级别,mvcc,各种锁的机制了解?是否了解索引对应在磁盘上的数据结构?
    用到 java,是否对 jdk 集合的原理有所了解?对多线程的各种坑,线程池,future 等原理有所了解?

    如果只是简单的外包+加班,能够直接获益的可能不多,考虑下班有时间自己学习,争取去一些有较大数据量和一定并发量的公司写业务。
    backfrw
        2
    backfrw  
    OP
       2018-08-06 16:14:43 +08:00 via Android
    @ppyybb 感谢前辈,知道应该再学习什么了,之前一直觉得应该往框架上努力,但是有新情况了…😂😂😂
    coderluan
        3
    coderluan  
       2018-08-06 17:04:33 +08:00   ❤️ 1
    所以问题出在什么地方了?
    文章信息太少,所以看不出来哪出了问题,但是信息太少本身就是问题,说明你不知道自己对项目的整体把握不够,不知道自己在项目中起到什么作用,所以只能说自己加了多少班。做两个项目能成长起来这个说法没问题,但是项目来说没有 0.5 约等于 1,或者 0.5 加 0.5 等于 1 的说法,0.5 基本是 0,只有 1 才是 1,所以只有你对项目整体足够了解,也就是只要时间够,自己就能独立完成的情况下,这种才算一个项目。

    难道不是录用什么职位就做什么吗?
    双方协商一致才能转,但是你没过试用期,所以没啥协商的资本......

    想问下这种情况怎么办啊?
    一般来说应该走人了,开发给你转运维,明显是不承认你的能力,做运维更不会让你得到提升......
    ppyybb
        4
    ppyybb  
       2018-08-06 18:15:26 +08:00 via iPhone
    @backfrw 往框架上努力没有问题,但是这个时候最重要的其实是形成一套自己的知识体系,这是你在某个领域的核心竞争力。要达到这个目的第一基础必须很扎实,第二必须在一个有一定难度的项目里面长时间的参与开发,同时尽可能扩展业务边界线,涉及核心的技术。

    你要做到 2 就必须做到 1,否则面试就过不了,更不要说去个不错项目了。而做到 2 最忌讳的就是一个项目做三个月然后就又换一个,这样你的知识体系会很零碎,没什么机会把理论和实践结合起来,总是在和一些琐碎的表层知识和新的业务做斗争,很难成长。

    你目前公司太水了,让你搞东搞西的,你又根本没有话语权,你只能利用业余时间加班学习,争取做到扎实基础,业务用到的框架熟悉基本原理(至少看看网上的文章解析这种),然后造几个小轮子什么的。然后跑路。
    CoderHugo
        5
    CoderHugo  
       2018-08-06 18:27:59 +08:00 via Android   ❤️ 1
    我也刚毕业,现在做 Java card 平台的测试开发,平时就是调整脚本,或者参考旧脚本写个新脚本。其实我更想去做 Java 后端开发,所以我的规划是在这边读 jvm 原理,读 spring 代码,尝试着重构他们,做一些自己理解的优化,然后跳槽:D
    tianxingzhishang
        6
    tianxingzhishang  
       2018-08-06 18:38:01 +08:00
    同样成都刚毕业,不过我是 5 月份辞了快半年的实习( C#方向,公司也不是很好),现在准备回深圳广州找,就是基础太不扎实了,难受
    backfrw
        7
    backfrw  
    OP
       2018-08-06 20:59:28 +08:00
    @CoderHugo 大佬见谅,信息太少有两个原因,首先是并没有技术求助的意思,其次是因为我握不住,坦白说,这个项目就是很多公司正在使用的税务系统一部分,我看不到全貌,也没胆量透露,只是改造的这部分备份出来就近 200Mb,我确实没这个实力半个月时间掌握它
    而且大佬说的对,我其实不明白,应届进公司第二天就做这么紧急的项目,我能起到什么作用,但是项目经理分给我的那一部分弄完了,测试过了,转正式环境上线之后一点小问题也更正了,所以我觉得还是起了一点作用
    开发转运维这部分,又更新了,不知道什么表情比较形象┑( ̄Д  ̄)┍
    backfrw
        8
    backfrw  
    OP
       2018-08-06 21:03:06 +08:00
    @ppyybb @CoderHugo 还好先来吐槽了,不然行差踏错,想起一起入职那个应届生,差点想明天就去提离职的事
    感谢大佬们提醒我
    backfrw
        9
    backfrw  
    OP
       2018-08-06 21:10:55 +08:00
    @ppyybb 不好意思,不是很明白,怎么才算一套知识体系呢,可以理解为运用某一套技术栈的能力,比如 ssm 加 maven 加 easyIU 加 MySQL 这样,或者是解决某一种应用场景的能力,比如一个高并发的电商网站?

    扩展业务边界线又该怎么理解啊,可以理解为横向扩展吗,比如关系型数据库能解决的需求,考虑到更高的访问和安全需要,而引入 Nosql 并进一步读写分离这样吗?

    可能我会的比较少,前辈多担待
    backfrw
        10
    backfrw  
    OP
       2018-08-06 21:19:23 +08:00
    @tianxingzhishang 这段时间应该还是应届生黄金期,加油
    ppyybb
        11
    ppyybb  
       2018-08-06 22:07:58 +08:00 via iPhone   ❤️ 4
    @backfrw 我也不是啥前辈,工作也才 1 年多,也是准备从成都往北京跳的。

    我回答你的问题:
    1 我定义的知识体系,就是你从事的这个领域,你能从头到尾的理解整个流程。能把各个层的东西融汇贯通并加以扩展。举个例子:做 web 后端开发(这里含领域知识,比如支付,直播,搜索),以浏览器为分界线,
    http 层面要懂(各种 header,code 的意义和使用,以及遇到问题能否判定是这个层出了问题)
    接着 tcp 要懂(遇到网络异常能否判定是不是传输层面出问题了,比如服务器 timewait 状态很多导致链接失败是怎么回事?),可以写个 io 多路复用的程序可以吗(比如用 netty 写个多线程异步调用的 client 去做某些业务能做到吗?)

    负载均衡怎么做的?(了解 nginx 原理吗,具体怎么配置?需要自己写第三方的负载均衡模块吗?)

    然后框架原理,比如你用某个框架,从它 parse 出 http 包开始,到你的 controller 层是怎么个情况,出 bug 了能定位问题吗?能直接看源码找到问题吗?

    然后到框架的 orm 大概是什么原理,怎么映射到后端的数据库,如果需要支持某个 database 但是你这个框架又没有合适的开源组件,能自己搞定吗?数据库客户端的链接池特点是什么,对开发的影响。各种 filter/hook 是怎么实现的,怎么应用?出问题能定位吗?

    然后到数据层面,先是缓存,redis 的基本原理要懂,如果有周期性的卡顿能通过日志分析出原因吗(这里还考验逻辑推理能力),主从有什么坑,集群原理,有什么坑。最关键的,怎么针对业务涉及一套合适的 cache 体系(这个挺难,没实战积累感觉和经验很难做到),还需要对各种命令的复杂度有所了解(这也附带要求理解内部数据结构)

    然后到 db,这种一般源码太复杂了(比如 mysql innodb ),所以看看文章了解基本原理,比如 insert 并发怎么导致了一个死锁?(要求对 mysql 加锁机制非常熟悉,这个还需要去查资料) update 语句会锁哪些地方(反过来思考索引)查询怎么走索引( selectivity 怎么样?),排序 /分组怎么走索引(能利用索引的两种优化机制吗?)自带分区表能不能业务中用上,有哪些坑?应该怎么分表(冷热数据对缓存友好,但是有可能业务中不方便带分区参数) column 类型的选择,text/blob 的存储模型(影响取数据),int,mediumint,smallint,bigint 可以选哪个?各种参数(如果走阿里云一般默认的就很好了)主从,集群有什么坑?(这个我目前也不懂)出问题了怎么迅速恢复数据(至少恢复大致数据然后靠应用层逻辑校对)
    你搞统计还得设计一手好 sql,数据量大了就要上各种大数据工具。

    再有 cdn,具体的 api 熟悉吗,上传不同类型数据有什么坑(比如有些上传了不是马上见效),怎么加速?

    还有应用内,项目用的什么 rpc,原理了解吗(网络,线程模型,编解码,重试,负载均衡),有哪些功能,需要自己 hack 能做到稳定可用吗?各种中间件( mq,log,proxy 了解吗?我也不了解哈哈)

    语言,best practice 了解吗?(知道这样做的原因吗?,知道这样做的场景吗?)各种内置的数据结构原理了解吗?并发呢?(各种并发模型,这个我也不太懂)各种坑就不说了。调优也是有可能的。

    然后就是算法和数据结构,这个往往涉及到一些比较复杂的业务(硬骨头)时候可能用到,比如让你做成给产品可配置化的界面,让它们设定任意树状结构的统计分类,你怎么弄?现在需求改了,你需要合并两颗树(相同路径合并,同时有复杂的业务条件限制),怎么弄?
    数据量太大,能不能搞个 bitmap 代替 set ?放 redis 还是直接放内存里面( db 做持久化?)
    有时候可能需要来个桶排序你能想到吗?如果需要在内存里面做可持久化的数据结构怎么弄?比如 bk 树,avl 树 /rb 树 /skiplist (现在有 redis 可以替代了),怎么序列化?(自带的序列化机制原理?慢吗?可以优化吗?开源的原理?性能够用吗?)
    万一需要动态规划 /搜索算法来算个最优解(这个往往出现在游戏里面,或者一些调度问题)能想到吗?字符串匹配怎么做?能针对业务优化吗?(往往内存放不下)

    最后也是很重要的领域知识,这个只有去对应的项目才能积累了(直播,支付,ai 底层平台开发,中间件开发等等)

    还有系统架构能力,这个挺吃天赋和经验的,我也不懂,只能多反思自己的代码,多看看别人的设计,多想想能不能迁移 /抄袭这些设计。

    逻辑思维能力,这个感觉比较难提升,但是通过熟悉业务和领域知识应该可以一定程度弥补

    以上就是近几年(初级到中级)自己进步的思路,但是具体来做,肯定还是业务优先,先把业务搞熟悉,做到按时按质量交付,然后考虑怎么写更好,然后就有机会做更核心的,理论实践结合,下班可以花时间自己造轮子玩玩。
    backfrw
        12
    backfrw  
    OP
       2018-08-07 01:54:00 +08:00
    @ppyybb 又是临时改东西,才下班,一看回复,比我先工作的都是前辈,没毛病,实在太困了,只看了前面几条,本科学的网络工程,面试的时候也看了一些框架原理方面的博客,mysql 看过底层数据结构,也看过几篇悲观锁,乐观锁的文章,但是没想过各种锁和索引关系,负载均衡会一点点,Io 多路复用就大眼瞪小眼了,白天我再仔细看看(这下得学几个月了吧),跪谢前辈
    aLazarus
        13
    aLazarus  
       2018-08-07 08:44:02 +08:00 via Android   ❤️ 1
    同是应届毕业生,现在成都工作,我的水平就是那种楼上说的大部分都接触过或者用过,但仅仅只是在表面了解,完全不懂这些框架的优势和理论,感觉要学的太多太多了
    backfrw
        14
    backfrw  
    OP
       2018-08-07 10:21:20 +08:00
    @aLazarus 路漫漫啊~同在成都,一起闭关吧,我们江湖再见
    aLazarus
        15
    aLazarus  
       2018-08-07 10:57:47 +08:00 via Android
    @backfrw 加油(ง •̀_•́)ง
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3405 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:50 · PVG 18:50 · LAX 02:50 · JFK 05:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.