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

学框架还是学基础,换句话说,程序员真的是一辈子都在学习吗?

  •  2
     
  •   jimiy · 2020-12-11 14:39:31 +08:00 · 8594 次点击
    这是一个创建于 1435 天前的主题,其中的信息可能已经有所发展或是发生改变。

    框架那么多,真的是越学越感觉到自己的无知,但是同时也发现,学那么多,工作上还是啥也用不到,有些技术、新技术在这家公司估计近几年都不会用到,学技术的初衷是为什么?

    我个人还是挺热衷于学习和研究的,尝试和研究了很多开源的项目,框架一个比一个溜,有的框架俗称,只要一个实体类注解,什么增删改查、各种层、数据库接口啥的帮你生成的近乎完美,程序员只要写点逻辑就好了。以后是不是大家只要了解一下业务,其他的都是框架帮你生成的妥妥的,

    但是框架太多,公司根本用不到!

    有些项目还是用 vs2010 写的,数据库还是 Sqlserver2005,还和我谈什么技术框架。 if 、else 能完成的事情,绝不 switch 。

    程序员创业真的很难,尤其是个人,难上加难。 公司里面技术的发展真的是刷新了我的三观,刚开始是重视 java,狠招 java 程序员,后来 java 程序员招不到了,来的都是 C#的,现在公司又改成 C#为主体,哎,心塞,到底该学什么?都三十几了还要怎怎么去折腾?

    难受+香菇。

    63 条回复    2020-12-14 11:47:36 +08:00
    Althas
        1
    Althas  
       2020-12-11 14:42:38 +08:00
    java 招不到招得到 C 艹艹
    resist
        2
    resist  
       2020-12-11 14:44:30 +08:00
    C#这玩意很难找到人吧
    taogen
        3
    taogen  
       2020-12-11 14:46:32 +08:00
    我全都要.jpg

    精通一门语言,其他不类似吗
    kiracyan
        4
    kiracyan  
       2020-12-11 14:47:47 +08:00
    不学习就会退步
    cmostuor
        5
    cmostuor  
       2020-12-11 14:48:51 +08:00
    如果是硬件工程师那不必终身学习因为硬件层面的东西几十年都没咋变过 软件工程师得看行业 越偏向底层的知识越稳固不必终身学习但岗位需求少工资也相对的低
    djs
        6
    djs  
       2020-12-11 14:48:59 +08:00   ❤️ 9
    当无双的强大成为你的追求目标时,你就没领悟到这点:
    这条路的尽头并不是巅峰,而是无尽的汪洋大海,根本望不到边际。
    zjsxwc
        7
    zjsxwc  
       2020-12-11 14:50:12 +08:00
    基础当然得学,
    框架要学有前途的框架,微软的东西就是没前途框架的代表,被微软坑死的开发者还少吗。
    cnygd
        8
    cnygd  
       2020-12-11 14:51:38 +08:00
    cmostuor
        9
    cmostuor  
       2020-12-11 14:53:53 +08:00   ❤️ 1
    @cmostuor 做技术的 99%的人都是跟随者和使用者 学习怎么用 但跟随者由于没有核心技术很容易会因为跟随技术潮流而被累死
    codespots
        10
    codespots  
       2020-12-11 14:58:30 +08:00   ❤️ 11
    @djs 庄子说过“吾生也有涯,而知也无涯,以有涯随无涯,殆已!已而为知者,殆而已矣!” 胡适说过“怕什么真理无穷,进一寸有一寸的欢喜”
    Mithril
        11
    Mithril  
       2020-12-11 14:58:59 +08:00   ❤️ 2
    所以说,学习是要有方向的啊。。。
    你要学的虽然是框架,但侧重的不是框架的实现细节,而是它在实现过程中体现的设计思想,做的权衡和考量。
    Spring 和 ASP.NET Core 虽然一个是 Java 一个是.NET ,但核心的设计思想,DI,请求的处理等等都是高度类似的。
    可能有些方面 Spring 做的好,有的地方 ASP.NET Core 做的好,但并不影响整体的设计思路。你真的学透一个,学另一个也很容易。

    更别说什么技术公司用不到了,公司技术选型肯定趋于保守。但你要想办法去推动迭代和更新。
    要做到这一点需要你能了解透彻现有的技术框架和你新的技术框架的优缺点,以及新的框架如何更适用于公司的场景。
    而不是领导问起就简单一句大厂在用打发了。

    而且 VS2010 和 SQL2005 也有技术框架的啊,拿着古董框架正好可以和现代框架对比一下。不同时代的技术都会有对应时代发展特点,正好可以学到这么多年来到底技术倾向有什么样的进步。
    brezp
        12
    brezp  
       2020-12-11 14:59:11 +08:00
    一辈子? 你想多了吧, 学到 35 岁你就可以去干别的了
    Jooooooooo
        13
    Jooooooooo  
       2020-12-11 15:01:11 +08:00
    有些东西都是通用的

    比如缓存这种概念, CPU 有缓存, 内存有缓存, 磁盘有缓存, 文件系统有缓存. 大小毕竟有限, 那淘汰规则就很值得考虑. 那这些都是咋做的呢? 自己实现类似东西的时候是否可以借鉴其中的思想.
    SuperMild
        14
    SuperMild  
       2020-12-11 15:02:03 +08:00
    能不能说说,哪个正常的工作,能拿高薪又不需要一直学习的?

    (正常的工作是指,没有特殊门槛或背景就能参与的工作,比如“收租”就不是正常工作)
    dantegg
        15
    dantegg  
       2020-12-11 15:17:25 +08:00
    读一读《黑客与画家》
    raaaaaar
        16
    raaaaaar  
       2020-12-11 15:20:57 +08:00 via Android
    @SuperMild #14 没有哪个工作这么依赖于网络,搜索引擎吧,而这些东西的存在本身就意味着信息的存在
    xx6412223
        17
    xx6412223  
       2020-12-11 15:31:33 +08:00
    要不都想找靠经验和资源赚钱的行业
    putaozhenhaochi
        18
    putaozhenhaochi  
       2020-12-11 15:37:09 +08:00
    @cnygd 同信管专业 被坑的没话说
    killeder
        19
    killeder  
       2020-12-11 15:38:23 +08:00
    基础不行,框架能看的真懂?
    zh584728
        20
    zh584728  
       2020-12-11 16:00:11 +08:00
    @brezp 35 岁之后要去学习骑电瓶车和抢单
    KuroNekoFan
        21
    KuroNekoFan  
       2020-12-11 16:06:37 +08:00
    学基础,查框架文档...
    xchaoinfo
        22
    xchaoinfo  
       2020-12-11 16:15:23 +08:00   ❤️ 1
    这就是典型的技术焦虑, 多看看基础, 构建属于自己的知识体系, 各种框架花里胡哨, 好多是新瓶装旧酒
    Jinnn
        23
    Jinnn  
       2020-12-11 16:17:40 +08:00
    持续学习是给自己一些底气, 还有即使丢了现在的工作也不慌的勇气
    lzlee
        24
    lzlee  
       2020-12-11 16:19:51 +08:00
    底层的东西, 很多都是通的
    学精一个东西, 其他东西上手, 就会快很多

    开公司的目的, 是为了盈利
    不是为了追技术, 是为了让业务给公司带来收益
    技术只是一种手段, 有效就行

    公司追求和个人追求有偏差, 是很正常的事, 毕竟公司不是自家开的
    而且我真的不信, 你自己当老板, 会亲自下场跟 打工仔们 谈论技术
    实在觉得自己不喜欢公司, 可以换个技术驱动的公司, 然后大展拳脚...

    当然, 很多东西说不清, 毕竟大家还是要生活
    tinyRat
        25
    tinyRat  
       2020-12-11 16:23:00 +08:00
    万物相通。
    okayan
        26
    okayan  
       2020-12-11 16:49:25 +08:00   ❤️ 1
    不管是不是程序员,对于有求知欲的人来说,应该一辈子都是在学习的。
    管他有什么用,进一寸有一寸的欢喜。
    echowuhao
        27
    echowuhao  
       2020-12-11 16:51:36 +08:00
    真的是一辈子都在学习,学习不是一件痛苦的事情。之所以现在这个局面,可能不是学习的问题,而是恶性竞争导致的。
    fengpan567
        28
    fengpan567  
       2020-12-11 16:52:44 +08:00
    35 岁失业后,送外卖就不用学了
    jimiy
        29
    jimiy  
    OP
       2020-12-11 16:57:19 +08:00
    @djs 等到你 35 、40 了你还会这么追求技术吗?
    jimiy
        30
    jimiy  
    OP
       2020-12-11 16:58:30 +08:00
    @zjsxwc 我们公司主流还是以 C#为主,工业项目偏多,java 输出不够,微软在工业这块市场妥妥的吧
    jimiy
        31
    jimiy  
    OP
       2020-12-11 17:04:30 +08:00
    @Mithril 您说的有道理,很多工业项目用不到太高深的技术,无非就是监测一下光电信号,传感器啊什么的,对接一下客户的接口,最多再加一点业务逻辑,感觉传统行业,编程真的没有技术挑战,更多的是能用保守的思想去做事,所以一些老项目都是岁数比较大的程序员在维护,因为传统行业,看重的是经验,编程次之
    shm7
        32
    shm7  
       2020-12-11 17:12:25 +08:00
    我不晓得其他的,2 个月前把关系抽取 近 2 年的中文比赛和 zhihu 讨论较多的 paper 都看了一遍,梳理了各个流派的方法。然后 1 个月前陈丹琦又发了 pipeline 的 sota,1 周前 jay lou 又发了他 chip2020 的关系抽取三冠的实践,这些东西你看好实践下可能要花掉一个月的时间。前提是比较熟。不需要工作。

    这仅仅是一个 NLP 任务,如果你要跟踪几个任务,看看 CV 的问题,那对不起了。一天 60h 不太够用。
    nthhdy
        33
    nthhdy  
       2020-12-11 17:29:21 +08:00
    以解决问题为目标,知识相比之下是次要的。解决问题需要各种技能,不能让自己被知识限制死。知识那么多,框架工具层出不穷,学不完,好用、用对才是关键。
    ofooo
        34
    ofooo  
       2020-12-11 17:49:14 +08:00
    学了新东西用不上,为什么不跳巢呢?
    如果给你一个工作,一点不用学习,那也无聊的很。我倒觉得总需要学习是一个职业的优点。
    hjyjzsn
        35
    hjyjzsn  
       2020-12-11 18:06:45 +08:00
    学习跟职业没关系
    yzbythesea
        36
    yzbythesea  
       2020-12-11 18:07:32 +08:00
    学习也得分主动学习和被动学习吧。一般 Tech Lead 之前都是被动学习,基本公司怎么整,你就去学明白,用好(刚工作沉淀不深,你自己学很可能在瞎学,易入坑)。然后升到 Tech Lead 了,就慢慢依赖主动学习。因为你话语权重了,可以安排使用自己看上的技术,也可以一定程度参与对公司未来软件架构的策划。
    so1n
        37
    so1n  
       2020-12-11 18:09:26 +08:00
    我是觉得都学 比如在学消息队列的时候 假设先学了 RabbitMq, 你会从头开始学,并学会了消息队列的思想, 之后你换了 kafka 就觉得很多都是通用的 只是有些概念不太一样
    JerryCha
        38
    JerryCha  
       2020-12-11 18:15:39 +08:00
    只要你只想钻研不想当程序员,你的技术实力就会上升
    NonClockworkChen
        39
    NonClockworkChen  
       2020-12-11 18:21:40 +08:00
    你举个在互联网行业,不用一直学习的。运营,产品都是得一直学习的。
    libook
        40
    libook  
       2020-12-11 18:31:03 +08:00   ❤️ 3
    绝大多数的职业,要想提升自己的专业能力,都是需要持续学习的;即便是种地,要想提高产量、降低风险、提高农产品经济价值,同样要涉猎植物学、生物化学、地理学、管理学、经济学……

    只不过计算机相关技术发展比较快,像服装工艺上可能数年才会有新的技术出现,但计算机相关领域会把这个周期缩短到一周。

    框架会帮你解决多数常见问题,但是用得深入了,遇到框架解决不了的问题了,你就得用基础知识去改造框架或者另辟蹊径。

    基础知识和实践知识缺一不可的,当然一个人不可能把所有知识全学会,但可以有一棵知识树,从计算机组成原理出发,软件和硬件就可以分出两个分支,然后每个节点又可以继续分支;你学习的过程其实就是在不断为自己的这棵计算机知识体系的树添枝加叶。

    所以过去的知识(基础知识)要不断地补,这些知识可以在你学习表层知识的时候更加得心应手;最新的知识也要了解,为你解决工作中的问题提供更多的思路。

    有些知识,我知道有这个东西,也知道大体上是用来解决什么问题的,但我目前用不到就先不深入了解,等以后遇到问题了我能想起来有这么个东西可能可以作为解决方案,这时候再深入了解就行了。

    如果你觉得你现在学的东西没有用武之地,那说明你自己的成长已经比工作业务成长要快了,这是个好现象,意味着你具有更多的主动权来换工作,总比有的人感叹的因为工作业务发展慢导致自己发展慢要强得多。

    最后,既然看了很多东西,就要懂得归纳整理,学一个新的框架不只是学怎么用,而是要了解其思想,而思想是可以跨框架、跨语言、跨领域的,思想积累多了,很多同质的框架就可以看做一种了,而且可能也具备了解决框架解决不了的问题的能力。
    invinci
        41
    invinci  
       2020-12-11 19:33:08 +08:00   ❤️ 1
    楼主所说的开发框架,是为了提高开发速度,像仓储层,服务层,DTO,单表的增删改查等等,纯手写毫无意义,既无法提高自己的代码能力又浪费时间,所以开发者熟悉业务,能够熟练写出业务代码即可,开发者能力高低其实在于业务的处理能力,能够快速理解需求,拆解业务才是能力的体现,即使换了语言,也能够凭借自己的经验给出解决方案,最后再转换成代码。
    hgjian
        42
    hgjian  
       2020-12-11 22:56:46 +08:00 via Android
    @libook 种地好难
    Lemeng
        43
    Lemeng  
       2020-12-11 23:06:44 +08:00
    这种事问别人,不如问自己。
    但是,学无止境,是不会变的
    araaaa
        44
    araaaa  
       2020-12-12 00:13:24 +08:00 via iPhone
    喜欢啥就去学啥
    ElmerZhang
        45
    ElmerZhang  
       2020-12-12 00:20:43 +08:00
    学框架,但不要只学怎么用,去学它的源码,学它的设计思想,学它一些小细节为什么是这样写的。
    这些东西学到了,才是能沉淀下来的,通用的知识。
    POPOEVER
        46
    POPOEVER  
       2020-12-12 03:32:47 +08:00
    人一辈子都在学习,更何况程序员
    mumbler
        47
    mumbler  
       2020-12-12 04:26:42 +08:00 via Android
    工作 20 年的英语编辑,工资 10K
    工作 30 年的会计,工资 5K
    刚毕业的程序员,15K

    凭什么比其他职业高那么多呢,就因为需要不断学习啊,很多职业是一个经验吃一辈子
    laike9m
        48
    laike9m  
       2020-12-12 05:03:42 +08:00 via Android
    Java 程序员是最好招的,这还招不到估计你们公司有点问题
    ChrisLi1018
        49
    ChrisLi1018  
       2020-12-12 07:45:11 +08:00
    @resist unity
    shlabc
        50
    shlabc  
       2020-12-12 08:33:05 +08:00
    基础最重要,举个例子,一个三本学生,毕业时什么也不会,我带了她一年半,就只做 html+CSS,一年半之后去了北京,半年内涨薪到 2 万,各种框架轻松学会。打好基础,学会方法。
    c2const
        51
    c2const  
       2020-12-12 08:58:08 +08:00 via iPhone
    0.建议学基础,比如硬件开发:本科大概是学数电、模电、逻辑电路、电磁场与电磁波、复变函数等七八门理论和精通 c 语言、vhdl 、汇编这三个语言,再有几年工作经验实战,学历不差,最后进个国企、央企的,终生学习压力没那么大,比互联网稳定多了。
    1.而且硬件既也可以走嵌入式,也可以偏软件的底层开发,毕竟硬件会了,对汇编原理熟悉、C 语言精通,再捡起 intel 和 amd 白皮书,win linux ios 安卓的底层都能玩得转。
    2.缺点是硬件薪资没那么高,而且不好入门,即使是科班出身,大多也转行了,因为混子依然存在,但相比互联网不好混下去,钱还少,学习门槛又高,还要接触实物。
    c2const
        52
    c2const  
       2020-12-12 09:02:26 +08:00 via iPhone
    至于互联网应用类,学什么都无所谓,薪资高就行,干个十来年赚够了一辈子的钱,退休养生、肉身翻墙、创业都行。
    crclz
        53
    crclz  
       2020-12-12 09:55:49 +08:00
    其实框架这些东西只占很小的一部分,并且很多东西都是互通的。后端学了 asp.netcore 后,spring 无师自通,只需要查查搜索引擎即可。前端学了 angular 之后,感觉 vue 和 react 都是小菜一碟。
    namelosw
        54
    namelosw  
       2020-12-12 10:08:16 +08:00
    编程不是汪洋大海没有边际,诸位又不是做形式化证明或者 Sentinent AI 的,工业界的东西掌握得差不多也不是不可能的。

    C#和 Java 给我的感觉基本上就是一个语言……
    securityCoding
        55
    securityCoding  
       2020-12-12 10:15:05 +08:00
    我经常念的一句话: 有道无术,术尚可求;有术无道,止于术。
    zaima
        56
    zaima  
       2020-12-12 11:31:41 +08:00
    这就是做游戏的好处了,一个引擎一辈子都研究不明白
    leewendao
        57
    leewendao  
       2020-12-12 14:57:56 +08:00
    对知识的求取是贯穿人一生的主题
    pkupyx
        58
    pkupyx  
       2020-12-12 18:56:53 +08:00
    不是“程序员真的是一辈子都在学习”,而是任何高薪岗位 or 核心岗位都是一辈子都在学习
    xiaobai557
        59
    xiaobai557  
       2020-12-12 23:13:33 +08:00
    我觉得基础就像武侠小说里面的内力,框架相当于招式,内力太低就算给你绝世神功的秘籍你也发挥不出威力
    nerocc
        60
    nerocc  
       2020-12-13 05:57:03 +08:00 via Android
    科技是通过进步来提高生活的。做这个行业不进步就不在这个行业了。
    snappyone
        61
    snappyone  
       2020-12-13 17:30:10 +08:00
    学基础啊, 基础好的随便什么框架分分钟上手
    dany813
        62
    dany813  
       2020-12-14 09:28:09 +08:00
    基础要学习,框架也要学
    atwoodSoInterest
        63
    atwoodSoInterest  
       2020-12-14 11:47:36 +08:00
    @codespots 因为目的的不同所以导致了手段的差异,庄子求的是结果,胡适求的过程。

    如果厌烦过程,而只想要获得学习技术带来的收益,那么庄子的话就格外入耳。如果真觉得学技术去了解背后运行规则是一件快乐的事,胡适的话也格外入耳。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2745 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:04 · PVG 23:04 · LAX 07:04 · JFK 10:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.