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

工作快一年的程序员,应该如何摆脱 CRUD?

  •  
  •   Keppel · 2019-09-11 14:00:23 +08:00 · 12680 次点击
    这是一个创建于 1933 天前的主题,其中的信息可能已经有所发展或是发生改变。

    平时每天下班回去会晚上看一个小时书,不过由于没有实践的关系记忆不深刻,看视频感觉太浪费时间。 我应该如何高效的成长?

    87 条回复    2020-12-19 18:59:57 +08:00
    z550665887
        1
    z550665887  
       2019-09-11 14:13:32 +08:00
    跳槽 or 找领导申请非 CRUD 工作
    wunonglin
        2
    wunonglin  
       2019-09-11 14:15:42 +08:00   ❤️ 1
    这不是基础么?最好自己给自己布置项目才能有提升,依赖公司做的东西是肯定不够的
    Keppel
        3
    Keppel  
    OP
       2019-09-11 14:17:03 +08:00
    @z550665887 明年年初打算去试试水,我也参与过面试,面过几个三四年的感觉还不如我。。。
    mynamewang0
        4
    mynamewang0  
       2019-09-11 14:17:23 +08:00
    我也有同样的困惑,希望大佬指明路。
    Keppel
        5
    Keppel  
    OP
       2019-09-11 14:17:40 +08:00
    @wunonglin 我一直想自己做个小东西,但是感觉自己不知道怎么设计一个应用
    omniversia
        6
    omniversia  
       2019-09-11 14:23:26 +08:00   ❤️ 1
    我都快四年了照样大部分工作内容还是 CRUD,但是我还同时做前端工作。如果深度感觉不合适或者暂时没动力,我觉得你可以试试提升广度。比如学前端,跟领导申请比如,弄大数据,爬虫或者其他语言工作。业余时间可以找找有没有自己感兴趣的技术方向之类的。有一本书叫《软件开发者路线图》我觉得可以翻翻试试。不过话说回来我觉得一年的话可以学和做的事情还是挺多的。往上也有很多学习路线可以参考。我个人主要还是跟着书籍学习,视频觉得太慢,博客知识太散,质量不一,官网文档有点像技术手册,不太合适初学入门,只适合参考和补充。
    areless
        7
    areless  
       2019-09-11 14:28:30 +08:00
    告诉你一个秘籍,不使用数据库
    Keppel
        8
    Keppel  
    OP
       2019-09-11 14:29:35 +08:00
    @omniversia 嗯,谢谢,我平时也是看书,但是看完感觉就是看完了,没记住太多内容, 你平时看书是怎么记住书中的内容的呢? 学习前端的话,是有这个想法,感觉自己做个小玩意前后端都自己写的话感觉能提升很多
    omniversia
        9
    omniversia  
       2019-09-11 14:32:19 +08:00   ❤️ 1
    @Keppel 边学边用用导图总结,比如 xmind 或者 mindmaster,特别是那些学了很难或者不能致用的知识。然后我说的那本《软件开发者路线图》里也提过,多分享,多记录自己的学习经历是有好处的。我觉得 1 年左右这本书很适合看看的。
    ackfin01
        10
    ackfin01  
       2019-09-11 14:33:26 +08:00
    同问,工作快四年的程序员,应该如何摆脱 CRUD ?
    yidinghe
        11
    yidinghe  
       2019-09-11 14:34:09 +08:00
    自己想办法将工作自动化,减少工作量,这样才能摆脱 CRUD
    wunonglin
        12
    wunonglin  
       2019-09-11 14:34:48 +08:00   ❤️ 1
    @Keppel

    #5 比如我前端的,我看 mac 上没有喜欢的音乐播放器,pc 上虽然有 foobar2000,但是 mac 版本实在是鸡肋,所以我自己基于 electron+angular+dexie.js 写了个本地音乐播放器,现在能实现播放列表、文件添加删除,音乐 meta 信息解析,下一步准备做歌词解析,如果没有合适插件那就自己写正则解析。

    所以我可以通过这个项目来积累 angular 的经验,新学习了 electron,新接触了 IndexedDB,还准备接触令人崩溃的正则。所以要自己给自己布置需求才行
    tabris17
        13
    tabris17  
       2019-09-11 14:36:59 +08:00
    该行当前端
    Keppel
        14
    Keppel  
    OP
       2019-09-11 14:47:10 +08:00
    谢谢前辈,我尝试去总结学习历程到博客上
    Keppel
        15
    Keppel  
    OP
       2019-09-11 14:49:05 +08:00
    @wunonglin 明白了,谢谢
    hkitdog
        16
    hkitdog  
       2019-09-11 14:49:57 +08:00 via iPhone   ❤️ 1
    做底层活。写游戏脚本。做外挂比 CRUD 爽很多
    Droi
        17
    Droi  
       2019-09-11 14:53:20 +08:00
    我是看到了草莓果酱 ox 头像进来的。不想 CRUD 那就看看源码呗。sqlite 源码 编译原理 LEMON 语法分析生成器。很枯燥。
    dadieshaonian
        18
    dadieshaonian  
       2019-09-11 15:11:54 +08:00
    没字幕的视频我开 2.5 倍速,有字幕的 3 倍速,感觉和看书效率差不多。。
    StarkWhite
        19
    StarkWhite  
       2019-09-11 15:13:38 +08:00
    可以用 Facebook 的 GraphQL 自动解决一些接口问题,腾出时间干别的事情
    https://www.v2ex.com/t/589138?p=1
    zjsxwc
        20
    zjsxwc  
       2019-09-11 15:15:45 +08:00
    不想做后端 crud 的话,
    当然是写前端调 css 了,

    233333
    lolizeppelin
        21
    lolizeppelin  
       2019-09-11 15:18:20 +08:00
    能啃下 openstack 包你脱胎换骨,比现在强一大截
    murmur
        22
    murmur  
       2019-09-11 15:27:13 +08:00
    CURD 我认为比前有挑战,当然是纯前端,计算机图形学、艺术、3d 建模这些不算
    xkeyideal
        23
    xkeyideal  
       2019-09-11 15:30:39 +08:00   ❤️ 5
    工作第一年领导只分配你做 CURD 的任务很正常,想提升还是靠自己。

    1. 是不是你做的所有项目都仅仅只有 CURD 的功能,如果还有其他高级功能,能不能去读一下同事的代码,了解别人的编程思想,了解整个项目的架构思想,从而提升自己
    2. 项目使用的相关技术,深入了解,读一遍源码,优质的源码多读几遍
    3. 思考一下,整个项目如果自己来设计会怎么做,能否用更好的架构,获得更好的功能和性能,为此付诸实践,写个 demo 验证自己的想法
    4. 找准机会,把自己的思想真实的付诸实际项目中,成功后回报会很大,在此之前需要很多技术储备

    等等,提升的方式有很多,自己要懂得思考,不是一味的询问别人如何提升

    另外补充一下,虽然工作了,还是要多了解算法,关键时候很有用
    geekdocs
        24
    geekdocs  
       2019-09-11 15:33:51 +08:00
    工作 2 年了,才开始 CURD。。。
    sunny1688
        25
    sunny1688  
       2019-09-11 15:46:46 +08:00
    应用层还想咋样
    Keppel
        26
    Keppel  
    OP
       2019-09-11 15:48:21 +08:00   ❤️ 1
    @xkeyideal 谢谢,我们目前做的是一个积分平台,我负责的是管理端的功能,我们这个项目比较有技术的就是规则那一块,我经常会看我们组的一个大佬的代码,模仿他的风格,现在感觉也提升不少。
    源码的话感觉没有注释看不太懂,不知道从哪里切入去看,现在用的技术比较主流,就像你说的用的太浅,看来自己需要深入,但是还是需要实践,算法的话打算要看,但是不知道优先级是钻研算法还是深入学习框架。
    Keppel
        27
    Keppel  
    OP
       2019-09-11 15:48:36 +08:00
    @geekdocs 那你之前干嘛
    taogen
        28
    taogen  
       2019-09-11 15:50:26 +08:00 via Android
    把基础学好,修炼内功。其它的看官方文档一把梭。参考计算机基础书单 https://github.com/tagnja/resources-of-learning/blob/master/%23cs-foundations.md
    12tall
        29
    12tall  
       2019-09-11 15:53:00 +08:00
    写一个拜托 curd 的轮子啊
    xkeyideal
        30
    xkeyideal  
       2019-09-11 15:54:45 +08:00
    @Keppel 啥,看代码还要注释?我英语不行,有注释我也看不懂,代码非常细节才需要注释。
    第一遍读源码是了解架构思想,第二遍读源码是了解核心部分的功能实现,能否移植到自己项目中,第三遍读源码是纠结下核心部分为什么要这么写,能改的更好么?第四遍读源码,第五遍读源码 .....

    另外发现一点,很多人都喜欢深入学习框架的使用,暂能不能学学如何写框架
    x7395759
        31
    x7395759  
       2019-09-11 16:00:38 +08:00
    摆脱不了,对不起
    wangkun025
        32
    wangkun025  
       2019-09-11 16:07:27 +08:00
    我都六年了。
    Keppel
        33
    Keppel  
    OP
       2019-09-11 16:08:40 +08:00
    @xkeyideal 可能自己太菜了,我看 HashMap 的 putVal 方法看的有点晕,一堆 ifelse,你说的是对的吧,我想看看 Spring 的源码,但是不知道从哪切入
    StarkWhite
        34
    StarkWhite  
       2019-09-11 16:10:15 +08:00
    @12tall ORM 库? Prisma 还不错,可以搭配 GraphQL 来用
    xkeyideal
        35
    xkeyideal  
       2019-09-11 16:17:06 +08:00
    @Keppel HashMap 都看不懂,说明算法功底欠缺,我不会 Java,此类 HashMap 都带自动扩容和缩容策略,那么怎么操作,怎么解决 hash 碰撞问题,同时还要解决并发安全,这些都是很基础的知识,看这个都吃力的话,那你需要沉淀的东西还很多。提升是需要时间,不要着急,切记今天一个想法,明天一个想法。
    可以先从中上层开始,跟着项目去思考架构和代码思想,从代码思想去了解实现逻辑和需要算法,用到哪些补哪些
    0xljh
        36
    0xljh  
       2019-09-11 16:20:21 +08:00
    我 5 年了,都还没摆脱
    geekdocs
        37
    geekdocs  
       2019-09-11 16:26:07 +08:00
    @Keppel 前端~
    akira
        38
    akira  
       2019-09-11 16:34:19 +08:00
    整天写 crud 很烦 >>> 痛点

    写一个提升 写 crud 效率的工具 >>> 解决痛点
    Beeethoven
        39
    Beeethoven  
       2019-09-11 16:41:52 +08:00
    @yidinghe 工作中的 crud 基本都是结合实际工作项目逻辑的 crud 同一个类两个方法逻辑可能差非常多 虽然结果概括出来都是 crud

    请问这种时候写一些什么工具或者逻辑能更自动一些呢?例如 java 那种 mybatisHelperPro 类的插件,算是个类似的工具吧,我就觉得基本没用,安上去从来没用过
    Keppel
        40
    Keppel  
    OP
       2019-09-11 16:41:55 +08:00
    @xkeyideal 嗯,你说的是,因为我不是科班出身的,所以对算法很不熟悉,看来自己需要平时多补补基础了。
    感觉自己最近太浮躁了,还是要踏踏实实的脚踏实地的学习基础
    airfling
        41
    airfling  
       2019-09-11 16:41:57 +08:00
    不如转职做外卖?
    ymz
        42
    ymz  
       2019-09-11 17:04:00 +08:00
    @omniversia 大佬各种中间件如何有效学习呢。因为公司项目对有些中间件没用到,自己写些小 demo 觉得会用了,但是跳槽面试的时候都是要根据具体项目问的,这个要怎么解决呢大佬。
    ymz
        43
    ymz  
       2019-09-11 17:04:42 +08:00
    @geekdocs 怎么转后端了
    omniversia
        44
    omniversia  
       2019-09-11 17:06:48 +08:00
    @ymz 最有效的方式是换更合适的团队和合理跳槽。其次是针对面试常见问题去准备,没用过至少让别人觉得你基础不错,也是可以的。
    ymz
        45
    ymz  
       2019-09-11 17:08:50 +08:00
    @omniversia 都说现在行情不好 然后就不敢随便辞职了 ....
    charlie21
        46
    charlie21  
       2019-09-11 17:11:24 +08:00 via iPhone
    检查自己是否发自内心地讨厌 CRUD:
    给你月薪一百万,让你做一辈子 CRUD 你做不做?

    你答做,那就是没有技术追求。既然没有技术追求,那么就一辈子做 CRUD 就好了嘛,做到 顶级 CRUD boy 也可以月薪一二三四五万的

    那些没有技术追求的人呢 老老实实做 CRUD 就好了。

    如果你的回答是:给我月薪一百万让我做 CRUD 老子也不做,那么你还是一个可塑之才 ...

    -
    s2555
        47
    s2555  
       2019-09-11 17:12:24 +08:00
    赶紧上位当领导,让下面的人 crud
    jorneyr
        48
    jorneyr  
       2019-09-11 17:15:24 +08:00
    Hibernate, MyBatis 都是 CRUD 发展来的,同一个世界,在不同人眼里却是不同的世界。
    snail00
        49
    snail00  
       2019-09-11 17:15:54 +08:00
    曾经公司有个古老的项目, 单纯的 CRUD 和业务代码, 接任者也在之前的基础上写 CRUD.

    直到一个人重构了这个项目, 各种一句话代码, 大量的抽象 /泛型 /反射, 秀到飞起.

    上手慢了一些, 熟悉了之后接口开发很快.
    cwjokaka
        51
    cwjokaka  
       2019-09-11 17:26:09 +08:00
    好像只有改前端了
    omniversia
        52
    omniversia  
       2019-09-11 17:34:40 +08:00
    @ymz 我觉得不要听别人说,得自己投投试试,有机会集中约一个时间去一起面面,如果你不介意其他城市,那么机会更多,如果上班不是 996,可以多用空余时间,针对面试准备一下相关知识。
    wpf375516041851
        53
    wpf375516041851  
       2019-09-11 17:41:39 +08:00
    1.工作一年,还很年轻,"要性" 很重要,要结果,要影响力,要钱,不要怕,失错是第一步
    2.多尝试,多思考,尝试自己带一个项目,思考某一块落地代码是否有进步空间
    3.学会拒绝,拒绝需求,拒绝垃圾信息
    4.让自己成为精炼的人,技术在一个领域达到顶尖,业务上有自己的见地和前瞻性,莫要三心二意
    omniversia
        54
    omniversia  
       2019-09-11 17:43:56 +08:00
    @ymz 不要听别人说,得自己投投试试,有机会集中约一个时间去一起面面,如果你不介意其他城市,那么机会更多,如果上班不是 996,可以多用空余时间,针对面试准备一下相关知识。
    wpf375516041851
        55
    wpf375516041851  
       2019-09-11 17:44:32 +08:00
    @wpf375516041851
    有个好的领路人很重要,程序员不仅仅是代码
    ymz
        56
    ymz  
       2019-09-11 18:12:04 +08:00
    @omniversia 嗯 谢谢
    BubbleNoodle
        57
    BubbleNoodle  
       2019-09-11 18:13:13 +08:00
    CRUD 怎么了?我工作 8 年了还是 CRUD。
    fxxwor99LVHTing
        58
    fxxwor99LVHTing  
       2019-09-11 18:30:03 +08:00   ❤️ 1
    @Keppel 看 spring 源码,我的体会是可以从‘设计模式’切入,也就是先熟悉一下设计模式,可以结合‘spring 框架高级编程’这本书,虽然这书讲的是 spring1.2.x,但是 spring 发展至今,很多思想 /原理是没有多大改变的,甚至你会发现整体的代码结构都是差不多一致的,而且这本书可是 spring 框架的作者写的!
    所以,书籍推荐:
    0. 《设计模式:可复用面向对象软件的基础》,之所以需要熟悉设计模式,是因为这样你可以从高一点的层次看懂 spring 代码的设计 /结构思想,而不是一开始就陷入复杂的代码逻辑中。有很多讲设计模式的书,强烈推荐这本。
    1. 《 spring 框架高级编程》
    再分享一下我一直使用的 maven 网站 /仓库
    http://mvnrepository.com/
    masker
        59
    masker  
       2019-09-11 18:35:06 +08:00 via Android
    写前端
    Amance
        60
    Amance  
       2019-09-11 18:38:26 +08:00
    别好高骛远行么,CRUD 看不起是么?看看 CRUD 怎么实现的,别没事出来装
    xuanbg
        61
    xuanbg  
       2019-09-11 18:59:57 +08:00
    楼主这个理想的实现难度几乎是难比登天。。。谁能不写点 CRUD 呢?林纳斯的 Linux 内核代码里面都有 CRUD !
    loryyang
        62
    loryyang  
       2019-09-11 19:20:40 +08:00   ❤️ 14
    上面讲怎么提高技术的都是理想主义者。我来点实际的吧(以下优先级和顺序无关):
    1. 提升人脉,多结识比你优秀的人。一是向他们学习,二是以后方便内推,三是你如果成长很快,表现好,他可能以后会带上你一起发展
    2. 多总结工作,提取工作中的难点,自己的闪光点。别觉得 CRUD 就没亮点,任何困难都有其特点,任何解法都有其优劣,重点是你能体现出你和别人不一样的地方,体现出你思考了,你的方案是特定场景下的一个好方案。具体的就不多说了,看悟性和第三点的执行力了
    3. 多面试,知道更好的公司需要的是你的什么能力,面试考察的是什么。回来多多反思,落实到工作中去。跳槽就如打怪练级,你在现公司打怪,跳槽就如升级。不是一次就升到 BAT,是一次次慢慢上去的
    4. 多培养非技术能力,以你现在的起点,纯吃技术饭,难度很大。提升自己的软实力(重点是沟通),是让自己在一群书呆子中脱引而出的最简单直接的方式。抛弃那些无意义的坚持,不要把技术当做你心中唯一的明珠,世界是圆的,每个技能都是有其价值的。当你无法达到某一个技术的顶峰,那应该考虑如何练出一套组合技能
    5. 培养健康的生活习惯,关注心理健康,关注家人、爱人(如果有的话),学会爱与被爱
    其实上面的也都很抽象,具体的操作还是得靠自己去悟,去实践,做事情要有定力,有魄力,不怕失败
    geekdocs
        63
    geekdocs  
       2019-09-11 19:31:40 +08:00
    @ymz 前后一起干~
    connection
        64
    connection  
       2019-09-11 20:11:30 +08:00
    每次提高一点点
    leekafai
        65
    leekafai  
       2019-09-11 20:38:52 +08:00 via Android
    serverless
    Leigg
        66
    Leigg  
       2019-09-11 20:57:03 +08:00 via Android
    自己写框架,把学的用上
    crist
        67
    crist  
       2019-09-11 21:22:45 +08:00
    CRUD 怎么你了?我 CRUD 我快乐!
    qoras
        68
    qoras  
       2019-09-11 22:04:48 +08:00
    可以关注下如何优化个人效率和工作流程, 解决项目中的痛点, 工具可视化自动化等, 也可以学习别人如何沟通和管理
    magiclz233
        69
    magiclz233  
       2019-09-11 22:29:52 +08:00
    其实不管工作多长时间,深入到业务里面来不都是 crud,如果想增强自己,两方面,看基础,底层数据结构算法之类的,看新东西。其实很多东西在 crud 的过程中都是可以展现的,比如缓存,事务,日志。
    tedzhou1221
        70
    tedzhou1221  
       2019-09-12 08:07:43 +08:00 via Android   ❤️ 3
    你们系统的主键生成策略是什么? UUID ?还是主键自增?

    就从这些最基本的点入手,你就可以学到很多东西。例如:ID 策略有哪些,如雪花、redis 生成全局唯一递增主键等

    然后你还可以进一步去看看,各种策略的优缺点,或者还能不能优化。如 redis 能不能从单机生成到使用集群生成。

    很多东西学,就怕没这么多时间。

    以前集成 Activiti 工作流到项目,然后有空看看 activiti 的源码,就学到了它的 ID 生成策略,还学到它如何使用命令模式。
    tedzhou1221
        71
    tedzhou1221  
       2019-09-12 08:11:14 +08:00 via Android
    还有就像#62 所说的也有道理,😄

    我们技术管理,技术也很差,但也随便拿个 30k,他天天就开开会,代码都不会写了。
    ThinkCat
        72
    ThinkCat  
       2019-09-12 09:01:18 +08:00
    为什么都觉得 CRUD 很 low ?
    kiddingU
        73
    kiddingU  
       2019-09-12 09:29:26 +08:00
    工作才一年就不想做 CURD 了?
    MotherShip
        74
    MotherShip  
       2019-09-12 09:31:21 +08:00
    看一遍 ddia
    amwyyyy
        75
    amwyyyy  
       2019-09-12 10:15:22 +08:00
    先把 CRUD 做好才有机会摆脱
    StarkWhite
        76
    StarkWhite  
       2019-09-12 10:56:00 +08:00
    之前还有个人在 v 站推广自动生成 CRUD 的工具
    https://www.v2ex.com/t/507187
    UnrealEngine
        77
    UnrealEngine  
       2019-09-12 11:49:48 +08:00
    @loryyang 我承认我是个书呆子……
    loryyang
        78
    loryyang  
       2019-09-12 14:31:42 +08:00
    @UnrealEngine #77 搞技术有几个不是书呆子的。但不能说现在我是个书呆子,所以我一辈子要做个书呆子。那这辈子岂不是很无聊。多尝试一下,生活会更加有色彩
    yamasa
        79
    yamasa  
       2019-09-12 14:44:59 +08:00
    crud 又看不起,轮子源码又看不懂,算法又不熟,难玩。搞软工就不能脚踏实地一点吗?叫你去写个支撑高并发 crud 的轮子指不准写出来一堆 bug 没得用。
    UnrealEngine
        80
    UnrealEngine  
       2019-09-12 14:55:24 +08:00
    @loryyang 当然
    realpg
        81
    realpg  
       2019-09-12 17:58:30 +08:00
    说实话 CRUD 也能写出别人达不到的高度
    UnrealEngine
        82
    UnrealEngine  
       2019-09-13 08:18:24 +08:00 via iPhone
    @loryyang 在我的技术水平还搬不上台面前我还是继续做书呆子吧
    Keppel
        83
    Keppel  
    OP
       2019-09-16 09:50:07 +08:00
    @fxxwor99LVHTing 谢谢,我尝试去做
    Keppel
        84
    Keppel  
    OP
       2019-09-16 09:52:07 +08:00
    @loryyang 谢谢你的建议
    Keppel
        85
    Keppel  
    OP
       2019-09-16 09:54:16 +08:00
    @tedzhou1221 你说的很多,还是要从基本的多思考
    Keppel
        86
    Keppel  
    OP
       2019-09-16 09:56:58 +08:00
    看了大家的回复,感觉自己太好高骛远了,先从现在好好做好现在的工作的,优化自己写的代码。谢谢大家的建议
    biningo
        87
    biningo  
       2020-12-19 18:59:57 +08:00
    @areless 人才
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1175 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:26 · PVG 02:26 · LAX 10:26 · JFK 13:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.