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

请教大家如何提升研发能力

  •  
  •   onice · 2023-01-09 17:08:50 +08:00 · 948 次点击
    这是一个创建于 466 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大部分岗位其实是开发,并非研发。开发是使用现成已有的解决方案,完成业务需求。

    比如需要处理 exel ,有相关的库。需要生成 pdf ,也有相关的库。

    工作中大部分时候,我们都在使用已有的库,然后参考库的文档,编写能够实现业务需求的代码。

    那么回到库的本身,我理解的研发是开发这些库本身。

    然后我发现一个现象,就是:如果让我实现业务需求,某个需求我没做过,我就会去搜索。看看已有的解决方案是什么,用了什么库,代码怎么写。

    但是,反过来,如果让我实现库的本身,我就不知道如何下手了。这个时候,能够搜索到的资料往往也很少。本科学的课程,也只是让我理解这些库的内部原理,但还不足以达到自己能创造这些库。

    比如实现分布式框架,中间件这些基础设施的本身。

    请教大家如何才能提升自己的研发能力呢,换句话说,就是让自己不依赖这些库,有创造这些库的能力。
    w292614191
        1
    w292614191  
       2023-01-09 17:23:09 +08:00
    在实际业务中练手
    DingJZ
        2
    DingJZ  
       2023-01-09 17:38:39 +08:00
    1. 只说提升创造库的能力
    copy ,处理 excel 、需要生成 pdf 的库等等你想学的,反正已经有人写了,分析他,解构他,照他的写一个。

    2. 另一个角度来说,这些需要的其实是对相关业务的知识,你用他的库实现了一个功能,这个功能是个业务含义的功能。你掌握的是这个业务以及需要的知识。
    他实现了一个生成 pdf 的库,生成 pdf 就是他的业务,大家做的业务不同而已,对应的需要的知识范围也不一样,这很正常。
    netabare
        3
    netabare  
       2023-01-09 20:27:29 +08:00 via Android   ❤️ 1
    可以从简单的库开始。

    举个不恰当的例子,比如说 compiler ,要实现一个复杂语言的很复杂吧,但是简单的,LL(1)的文法解析,手写可能有点复杂,但用生成器的话基本上大家都会,一个只有 int 和最简单几个语言结构的,大概就是本科生大作业的程度。
    那么,在这个基础上,就可以观察一下自己想要做什么方面的扩充,然后去针对性地学习和扩展功能,比如说,更多的基本数据类型、结构体、OOP 、类型检查、编译到特定的机器上,之类的。

    像是数据库或者 pdf 库之类的,大概也是类似的内容吧。

    而且如果把功能拆分开来然后逐个审视的话,op 也许会发现,其中有许多功能已经有别人做过了,比如说对命令行参数的解析,甚至连 pdf 解析这件事本身也是别人做过的。

    那么就可以问一下自己,实现这个项目的目的是什么呢,如果是为了短平快,那么自然可以别的类库都用上,如果是为了学习,就可以自己去寻找各种材料,比如说 pdf 的 spec 或者一些简单的类似项目的代码,来参考学习。

    这样的话,就可以从简单的开始,一点一点把项目往复杂里做,也可以先依赖第三方库,在自己写出了自己的版本后把这个库给替代了。

    我觉得最重要的大概是两个能力吧,一个是「解决问题的能力」,看 op 的介绍,在这方面应该没有问题。那么第二个能力,就是,组合和拆分,也就是说,把一个复杂的问题拆分成许多小问题,再把小问题拆分成更具体的任务…之类的,把不同的知识点组合起来,然后形成一个可以去做的项目,这样的能力。
    solitude2
        4
    solitude2  
       2023-01-10 16:26:11 +08:00
    我觉得更难的是,要有强烈的动机,或者说自我驱动去思考然后输出成落地效果。思考才是 core
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2819 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:20 · PVG 10:20 · LAX 19:20 · JFK 22:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.