V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
PorUnaCabeza
V2EX  ›  程序员

职业发展上的困惑,虚心求教

  •  1
     
  •   PorUnaCabeza · 2018-03-23 00:25:00 +08:00 · 7156 次点击
    这是一个创建于 2460 天前的主题,其中的信息可能已经有所发展或是发生改变。
    楼主 2016 年 6 月毕业,一毕业就进入南京某创业公司直到现在,职位是 java 开发。工作了接近两年。

    目前遇到了一个职业发展上的困惑:我该走后端还是前端的路?还是说这两者并不是割裂的?

    java 算是我的老本行,从大学到现在一直在写,基础还算不错。经常用 java 写一些自己的小工具,小项目。目前公司的技术栈是 springboot+自研的持久层框架,这一套我已经用的很熟练,但是诸如 spring 源码、java.utils 包下类的源码等,自己没有吃透。一些分布式、大数据、高并发的场景,在目前的公司内遇不到,这方面的经验,我基本为 0。

    前端是从实习时才接触的,从 backbone 学起,到现在 es6 新特性、css3、vue 全家桶、webpack 打包、部署、移动端屏幕自适应布局等,前端算是“用的很熟练”,node 也写过,electron 也写过,但是因为没有经历系统的学习(算是野生生长),一些原理性的东西,我是“朦胧”的(比如 vue-router 的实现机制、Promise 的实现原理等)。

    linux 这一块,也有一定的基础,常用的命令自然不多说,nginx 的配置、ci 的搭建部署也都会,后来学习了 lua,了解到 openresty,用 openresty 也写了一些业务模块。

    我可以基于公司的技术栈,独立搭建前后台工程、做好前后端分离、配置 ci、部署到服务器,但是自己知道,这只不过是“熟练工”而已。

    在刚工作的几个月,怀着一颗热情的心投入到代码中,一切都是新的,一切都要学习,学习 vue,学习 redis、rabbitmq,学习 springboot,当时那几个月,我的 github commit 是一片绿草原,公司新招的美女长什么样子?我不知道,因为没有多余的心思去关注。现在想想,当时真的是一段很美好很单纯的时光,也是进步最快的时候。

    在近期几个月,我完全没有意识到自己陷入了舒适区,每天上班写写业务,下班跑步打游戏,沉湎于自己所谓“技术强”、“前后端通吃”的自大洋洋得意中,技术实力曲线的导数,已无线接近于 0。

    在最近半个月,也许是吃的生发药刺激了大脑,或者是逼哥李志听多了终于跳出了无边幻海,意识到了自己所处的舒适区,是一个怎样无比凶险的心境;自己的洋洋得意,是基于同事整体技术实力不强、公司业务规模不大的前提;自己的技术积累,处在一个虽然前后端都会,但是均“知其然不知其所以然”,既没有广度,也没有深度的境地。

    那么楼主想问:
    1、下一次跳槽(应该快了),我该走后端还是前端的路?还是说这两者并不是割裂的?不知道大家有没有什么好的建议。
    2、一个工作经验近两年的 coder,应当具有怎样的技术广度与深度?我应当做哪些改变?

    附上博客与 github,感觉自己进入了一段迷茫时光,当局者迷旁观者清,希望各位提些建议,虚心接受
    http://www.cabeza.cn/
    https://github.com/PorUnaCabeza
    41 条回复    2018-03-24 17:54:26 +08:00
    jeffAAA
        1
    jeffAAA  
       2018-03-23 00:57:22 +08:00 via Android
    YuuuZeee
        2
    YuuuZeee  
       2018-03-23 04:39:59 +08:00
    同感 我也是这个状态 学校教授建议我转产品岗 我自己想看看消息序列的 东西
    jethroWush
        3
    jethroWush  
       2018-03-23 05:46:01 +08:00   ❤️ 2
    业务是否是值得深挖的方向?行业是否是值得沉淀的方向?前后端通吃个人觉得不矛盾,问题在于重心在哪?想一下子一次性一块吃不现实,再说前端后端不应该是看自己兴趣使然么?如果没有过多的生活压力,倒是可以从心,如果有一定生活经济压力或者述求从钱也是应该,认清楚这个再去考虑广度、深度是不是会更现实 更细节一点呢?
    xiaobai012
        4
    xiaobai012  
       2018-03-23 07:18:58 +08:00   ❤️ 2
    说实话,我个人不怎么赞同前后端并行,要不着重后端,要不着重前端,一个人的精力毕竟有限,一天也就 24 小时,另外你既然 java 基础比较深,还是着重后端吧,前端既然会用暂时来说是够了
    a1237a
        5
    a1237a  
       2018-03-23 07:26:52 +08:00 via Android
    马克
    751327
        6
    751327  
       2018-03-23 08:05:02 +08:00
    同感,6 月份离职
    albertofwb
        7
    albertofwb  
       2018-03-23 08:17:27 +08:00 via Android
    2017 届毕业生,猛然发现也进入了舒适区,天天盼望有妹子加入,哈哈哈
    deepred
        8
    deepred  
       2018-03-23 08:45:23 +08:00
    同困惑,现在前端和后台 node 均是熟练工,但都只限于会用的程度,哪样都不深入。本来是前端出身的,进公司后,大部分时间反而去写 node 后台的增删改查去了。
    luoway
        9
    luoway  
       2018-03-23 08:56:44 +08:00 via Android   ❤️ 1
    多看书吧。

    系统地学习一块内容后,就会发现自己的知识深度具体有多么不足,而不像现在这样只是觉得不足,却没有动力去填补。
    Paddington
        10
    Paddington  
       2018-03-23 09:04:10 +08:00
    默默立个槽点吧
    要想技术有发展,前端和后端肯定是撕裂的
    就我做后端而言,我发现后端也有很多分支,每个分支都足以让我职业前 5-8 年去深入精通。
    qa2080639
        11
    qa2080639  
       2018-03-23 09:15:24 +08:00
    马克
    hxsf
        12
    hxsf  
       2018-03-23 09:19:52 +08:00   ❤️ 3
    其实说到底还是深度广度的事情。
    有些事情,光有广度是不够的。(某些专业的事情是需要深度的这个没毛病吧)
    在有些情况下,光有深度也是然并软的。 一个纯后端和一个纯前端,两人没有共同涉猎部分的话(如 web 前后端的传输协议),也是鸡同鸭讲。

    就看你觉得自己知识的广度广到什么范围、深度深到什么位置比较适合自己所想的模样。

    比如未来规划是分布式服务,那前端的 browser 相关的东西都不用了解。
    如果是一个有一定架构能力,能协调各个部位的全栈,那么对广度就有一定的要求了。

    PS:
    程序员往一个方向干久了,就会变成了针对某一个位置的非常好用的齿轮(专家),然后一旦环境变了。。。。。。
    如果是啥都懂。拥抱变化就比如方便,不过一旦遇到某些非常深的问题,要么硬啃,快速学习变成半个专家,要么直接找专家。。。
    所以两种人都是被需要的。最后还是要看你自己的未来规划。

    最后,保持学习,个人认为最重要的不是当前的能力水平,而是快速学习和保持不断学习的能力。
    leekafai
        13
    leekafai  
       2018-03-23 09:28:52 +08:00
    入职 nodejs 开发,兼着做前端。
    个人发展自主掌控,我现在开始学 golang,以后要么反哺公司,要么跳槽。
    Codewj
        14
    Codewj  
       2018-03-23 09:34:01 +08:00 via iPhone
    这就是你徐州郑恺不靠脸吃饭的理由???
    sulang
        15
    sulang  
       2018-03-23 09:58:05 +08:00
    楼主有兴趣来深圳么~
    PorUnaCabeza
        16
    PorUnaCabeza  
    OP
       2018-03-23 10:40:56 +08:00
    @jethroWush 感谢!目前没有过多生活上的压力,这也导致自己丧失了一些动力,我要再认真审视下自己兴趣所在了~


    @xiaobai012 谢谢!你说的很有道理,吾生也有涯而知也无涯,是需要确定一个主攻的方向了

    @hxsf 感谢老友,观点很独到,受用了
    PorUnaCabeza
        17
    PorUnaCabeza  
    OP
       2018-03-23 10:41:12 +08:00
    @sulang 你好,怎么联系呢~
    mss0
        18
    mss0  
       2018-03-23 10:42:34 +08:00 via iPhone
    吃生发药有效么?
    PorUnaCabeza
        19
    PorUnaCabeza  
    OP
       2018-03-23 10:46:31 +08:00
    @mss0 角度刁钻。因人而异,保法止了解一下?
    JamesRuan
        20
    JamesRuan  
       2018-03-23 10:59:51 +08:00
    楼主和我好像,区别是楼主只是还用的上 rabbitmq,想必业务流量一定有一定规模了。
    而我们团队连 redis 都用不溜……
    Just1n
        21
    Just1n  
       2018-03-23 11:07:21 +08:00
    想换.NET 玩玩嘛?
    shuang
        22
    shuang  
       2018-03-23 11:59:50 +08:00
    我毕业也是做 java 的,工作经验比你多几年,我也遇到过选前端还是选后端的问题。
    就我的经验来看,学后端太依赖于平台了,分布式、大数据、高并发的场景,如果所在的公司用不到,只靠自己在那摸索不能够在项目中实践,很难有成果,所以需要找个好的公司好的平台。当然我水平比较差,可能别人自学能力比较好没这个问题。
    前端的话上手比较简单,只要一个浏览器就可以了,而且大部分内容都是开源的,很容易取得成果产生正向激励。有的后端在遇到困难后,尝试改做前端,一开始感觉还不错,但后面学了一段时间后也会遇到前端领域的问题,最终就会变成后端和前端该选哪条路线的问题了。
    前端后端孰优孰劣没有定论,很容易引起争吵。就个人而言,还是要根据自身的情况选择一条线路主攻下去,不要两个都抓。你可以两个都了解,但心里一定要确定主攻哪个方向,做个清晰的职业规划。曾经我也是两个都喜欢,两个都想学,随着年龄增大难度增大,精力上也开始不能兼顾了,最后成了个四不像,走了不少弯路。
    Panic
        23
    Panic  
       2018-03-23 12:08:13 +08:00
    南京。。 南京工资对得起房价吗...
    jimi2018
        24
    jimi2018  
       2018-03-23 12:11:11 +08:00
    其实这个问题没必要问,核心是学习能力的问题。不要讨论这个没意义,应该是总结自己的学习方法和反馈连线。如果可以做到这样的话,就算目前不会,但是思路和学习能力有就 ok 了。多看东西多动手,不用太纠结。思路打不开,学习能力没搞上来,就算你偏重一门也是没用的。
    jimi2018
        25
    jimi2018  
       2018-03-23 12:14:31 +08:00
    另外你提到 vue-router 的机制,分享一个 Vue.js 2 的全家桶系列教程,其中的《 vue-router 入门与提高》我想应该对你有帮助:

    http://xc.hubwiz.com/course/5983d3aeff52d0da7e3e3d50?affid=20180323v2ex
    v2Panda
        26
    v2Panda  
       2018-03-23 13:26:41 +08:00
    同感,楼主加油💪
    yoqu
        27
    yoqu  
       2018-03-23 13:39:05 +08:00   ❤️ 1
    我也是后端和前端走能开发,基本中小型 web 项目我可以一个人全部搞定.
    前段时间我其实和楼主的想法一致,感觉待在舒适区,不知道怎么去提高自己了,仿佛有一个瓶颈.
    不过最近有所突破是因为自己去实现后端的一些中间件的时候(自己撸了一个 rpc 框架)遇到了一些挑战,比如 dubbo 的实现原理,zk 的同步机制等等.会逼着自己研究中间件的一些源码,同时让自己写代码的思维得到极大的提高.从一些现有的中间件做深入.越深入,你会发现前面有一大片广袤无垠的好风光.
    mandex
        28
    mandex  
       2018-03-23 13:43:06 +08:00
    我也是,上班两年多,一直写 PHP 和前端,现在已经不知道自己到底是前端还是后端了。
    ColinWang
        29
    ColinWang  
       2018-03-23 14:38:49 +08:00
    楼主加油
    abnerustb
        30
    abnerustb  
       2018-03-23 16:26:58 +08:00
    同状态 哎哟喂 可怎么办
    bryanly
        31
    bryanly  
       2018-03-23 16:45:42 +08:00
    一样 2016 年毕业,推荐你出去面个试,哪怕不准备跳槽,面完试之后就知道自己缺啥了。至于后端前端,后端懂前端,前端懂后端不都是正常的吗,选一端深入就好啦
    itfanr
        32
    itfanr  
       2018-03-23 16:54:01 +08:00
    楼主很厉害 就成果来说,已经很佩服了
    lizz666
        33
    lizz666  
       2018-03-23 16:58:09 +08:00
    同 16 年毕业,同南京,我就比楼主差不少,加油。
    huluhulu
        34
    huluhulu  
       2018-03-23 17:22:08 +08:00
    多希望 你们赶紧进入舒适区啊...
    这样年轻人都不 996 了,我们老年人也就不用这么被拖着 996 了....
    fakevam
        35
    fakevam  
       2018-03-23 17:33:07 +08:00
    自己尝试去撸个能解释执行 java 字节码的项目玩玩看,然后越撸越复杂起来
    st157285231
        36
    st157285231  
       2018-03-23 17:35:19 +08:00
    楼主,可否透漏下大概的薪资水平?
    ryerh
        37
    ryerh  
       2018-03-23 23:04:05 +08:00   ❤️ 1
    南下去沪杭,北上来京,去一家成熟的技术型公司,写核心代码,前端作为一项技能跟进社区的方向就可以,主攻后端,逐渐收敛技术面,挖掘技术深度,通过高并发业务磨练技艺。
    会的东西多是个人的技术修养,不代表牛逼,公司是不会给一个优秀的人安排一堆杂活妨碍他的产出的。
    不想呆在舒适区,就换,不要试图通过 YY 悟道,勿自我感动,勿自我吹捧。
    sulang
        38
    sulang  
       2018-03-24 10:02:50 +08:00
    weieyuan
        39
    weieyuan  
       2018-03-24 11:47:04 +08:00
    和楼主情况比较像,过去 4 年,前端、后端都做,但是都不够深入,哪一端都舍不得丢弃。但从跳槽角度来看,前端、后端是分开招聘的,并且面试也更加注重端的基础和深度。目前准备主攻前端、平时有时间学习后端。
    dl2k
        40
    dl2k  
       2018-03-24 12:49:36 +08:00   ❤️ 1
    感觉方向应该不是向前端走还是向后端走的问题,而是向上走还是向下走的问题。 其实楼主现在的阶段应该就如同他说的。中小型的项目自己一个人可以基本搞定。其实这个话的有几个层面的意思:
    1、项目规模不大,涉及到分布式负载均衡啥的搞不了
    2、在职业定位里达到了可以实现需求的一个程度
    3、因为知道了一些知识,也知道了更多自己还没有掌握的知识的存在

    解释上刚才说的向上走还是向下走的问题。
    其实如同之前也有朋友指出的,简单说向上走就是向业务靠拢。以更加全面的视角来阅读业务需求和形态,甚至是跨业务形态来抽象。举例来说就是理解不同类型的系统设计(电商、社交、直播、OA、ERP 等等)的问题。这个方向其实总体是架构师、CTO 的方向,需要大量的知识结构,是广度型发展方式。因为学习量太大,确实深度有限。当然从业前景相对比较宽广,但是个人水平的程度较难量化,通常从业经验和口碑比较有代表性。
    另外一个向下走的方向就相对会难走一点了,简单说就是找一个领域钻进去。比如说去研究分布式存储、大数据分析、AI 算法等等。这个方向下去基本上就是在跟数据结构和算法以及通信打交道,解决的是把一件事做到极致的研究。突破自己和系统的极限以带来的成就感比较强,当然突破不了挫败感也是难免的。走这条路通常代表着你不太可能全面性的懂很多的东西,所以你的从业适配性就比较差。所以选对领域就非常的重要,而且一般提供这种职位的公司都是体量特别大的公司。其实相对来说走这条路的人不是特别多。

    最后说一点,其实楼主走到今天的位置其实应该说也是很不容易的。能够主动意识到自己的风险,并且寻求突破这就更不容易。不管以后走那一条路,如果都可以始终保持清醒的头脑,不断努力,都不会差到哪里去的。
    yifeng1212
        41
    yifeng1212  
       2018-03-24 17:54:26 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2872 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:41 · PVG 21:41 · LAX 05:41 · JFK 08:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.