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

写代码很难,是因为同一个目标,有太多的方法和道路可选择。

  •  
  •   tool2d · 2023-01-18 11:28:55 +08:00 · 2622 次点击
    这是一个创建于 710 天前的主题,其中的信息可能已经有所发展或是发生改变。
    俗话说,选择太多等于没有。知识学得太多太杂,忘记也快,最后等于啥都没学。

    编程老师通常会教你如何选,如何避开各种坑。

    可是太容易学来的知识,就会欠缺深层次的主动思考。遇到个小 BUG ,都能卡上好久。

    人就是在学习->迷茫->技术不断迭代的轮回中,慢慢失去对编程热情和兴趣。
    24 条回复    2023-01-18 20:27:59 +08:00
    ThirdFlame
        1
    ThirdFlame  
       2023-01-18 11:31:14 +08:00   ❤️ 1
    正式因为有不同的方法,所以为了完成目标总能找到不同的解决办法。
    通过学习别人的解决方法,才能开阔视野,才能技术进步。
    dx3759
        2
    dx3759  
       2023-01-18 11:34:52 +08:00
    能卡好久的,就不是小 BUG 。
    可以思考一下,是不是问题分析能力,或者说深度问题分析的能力不够。

    学习 -> 迷茫 -> 成长 -> 技术迭代 ,我感觉会越来越有热情呢。

    真正消磨人热情的,是无休止的、无用的,业务折磨。一个东西明明做成 A 或者做成 B 都能实现功能,使用的技术也一样,但就是要改改改。
    tool2d
        3
    tool2d  
    OP
       2023-01-18 11:38:21 +08:00
    @ThirdFlame 不精通就很容易被替换。

    以前的手艺人就只专精一件事,就很容易变成专家。

    现在码农就和一块砖一样,哪里需要哪里搬。没沉淀就很难写出无法替代的好代码。
    kop1989smurf
        4
    kop1989smurf  
       2023-01-18 11:41:35 +08:00   ❤️ 2
    "知识学得太多太杂,忘记也快,最后等于啥都没学"
    不是的。
    绝大多数人,面对既有知识,一个索引,甚至一个关键词就足够了。

    一个索引就可以方便的帮助你判断是不是要下成本去调研。
    一个关键词,就能让你快速的将已经学过的知识捡起来。

    再加上既有知识的融会贯通与互相佐证,能够加速你对于新知识的接受程度和速度。
    举个例子,学习过 React ,再学 Vue ,速度就会比白手起家的更快,而且理解的更深入。
    学过 Java ,再学 C#也同理。

    人大脑的知识,并不是每个集装箱单独封装的。而是互相关联、推导的。
    kop1989smurf
        5
    kop1989smurf  
       2023-01-18 11:43:58 +08:00   ❤️ 1
    @tool2d #3 "不精通就很容易被替换。"
    不可替代性和 T 字形人才没有绝对的逻辑关系。

    之所以现在资本偏爱 T 字形人才,仅仅是因为这样能够让资本的利益最大化而已。
    cmdOptionKana
        6
    cmdOptionKana  
       2023-01-18 11:45:08 +08:00
    难不难,要对比才知道。学一门专业知识,哪有不难的?

    是否失去兴趣,原因是复杂的,证明数学猜想也难,有人几十年如一日去证明一个猜想,甚至很可能到死都无法证明,但这写卡住数学家几十年的 bug ,并不一定就会使数学家失去热情和兴趣。

    总体来讲,编程的难度适中,如果业余玩编程,完全可以自己控制项目难度,既有一定挑战性,又不至于完全停滞不前。

    人的性格,智商,当作职业还是业余玩玩,用户反馈等等,影响热情和兴趣的因素一大堆。
    cmdOptionKana
        7
    cmdOptionKana  
       2023-01-18 11:51:43 +08:00
    @tool2d

    > 以前的手艺人就只专精一件事,就很容易变成专家。

    各有各的难点,以前想要学手艺变专家,光入门就卡掉一大批人了。而且真正受人尊敬的专家,哪个不是花了几十年辛劳的?“很容易变成专家”这话不能张口就来吧。

    但是如果你说以前手艺人专精一件事,花几年就能练个小成,混口饭吃。这样说就没问题。
    god7d
        8
    god7d  
       2023-01-18 11:58:04 +08:00
    其实不会学的太多就忘了,学的多融会贯通,就能像教科书一样对很多概念定义娓娓道来,而且还是带有自己深刻理解的那种
    tool2d
        9
    tool2d  
    OP
       2023-01-18 12:04:51 +08:00
    @god7d 一般要学以致用才不容易忘。

    如果经常跨语言编程,真想不起来一年前自己写的代码了。

    我肯定不是怕学新知识,我是怕学了以后完全用不上。
    tool2d
        10
    tool2d  
    OP
       2023-01-18 12:08:50 +08:00
    @kop1989smurf "绝大多数人,面对既有知识,一个索引,甚至一个关键词就足够了。"

    现在的年轻人学东西,肯定不希望自己变成一块随时被替代的砖。

    你会关键词搜索,换了别人同样也会。

    既然花了精力在学习编程上,总要学一点不太一样,有竞争力的知识。
    weiweiwitch
        11
    weiweiwitch  
       2023-01-18 12:22:36 +08:00   ❤️ 1
    @tool2d
    这年头没有什么不能被替代的。所以要安全感,就是让自己有很强的学习能力,并保持不断学习的心态。
    有些人觉得自己掌握的技术不可替代,然后止步不前。但是其实过几年就会出现新的技术新的领域,直接降维打击。让那个人所掌握的技术变的过时。
    你学的东西,其实并不会完全忘记。你所经历的挫折,也会深深刻在你的脑袋里。
    未来的某一天,你会发现,某个以前趟过的小坑,会让你少受很多苦。

    现在的快节奏社会很容易让人浮躁,让人沉不下心来学东西做事。因为你做一样事情,没法很快看到回报。
    god7d
        12
    god7d  
       2023-01-18 12:42:34 +08:00
    @tool2d 不是,你没理解我和 4#的意思,我们的意思,举个例子,比如 hashmap 和 dictionary 有什么区别,相信你学的东西越多,对两者的理解越深刻。
    tool2d
        13
    tool2d  
    OP
       2023-01-18 12:53:02 +08:00
    @god7d 你单纯后端容易,比如 hashmap 和 dictionary ,也算专精 java 了。

    现在教学是 Web 前端,JS ,后端,运维,多少都要沾点边,知识点分散过多,就容易裂开。
    crysislinux
        14
    crysislinux  
       2023-01-18 12:53:11 +08:00 via Android
    就是菜。学什么不是这样呢。
    Jooooooooo
        15
    Jooooooooo  
       2023-01-18 12:54:16 +08:00
    语法糖过多就不是好事.
    tool2d
        16
    tool2d  
    OP
       2023-01-18 12:56:18 +08:00
    @weiweiwitch 年轻人喜欢学习,也有学习的热情,可惜编程并没有一个很清晰的学习路线图。

    遇到不同的老师,走的路线也许完全不同。

    靠搜索引擎摸索着前进,是大部分学生的无奈现状。
    god7d
        17
    god7d  
       2023-01-18 12:57:14 +08:00
    @tool2d 那你的问题就不是你帖子中描述的问题了,分散精力在各个领域都学个皮毛显然是非常忌讳的
    tool2d
        18
    tool2d  
    OP
       2023-01-18 13:02:48 +08:00
    @god7d 身为一块砖,自然有要砖的觉悟。

    现在编程语言体系本来就异常分散,公司需要你干什么,自然就学什么语言。

    跨语言开发是很普遍的事情,除非自己当老板,可以任性一点。
    glfpes
        19
    glfpes  
       2023-01-18 14:54:16 +08:00
    要系统性的学习

    要定期总结零散的知识与零散的工作
    shawnsh
        20
    shawnsh  
       2023-01-18 15:44:41 +08:00 via Android
    是选择很多,很多时候的限制也很多的。如果是给程序加新功能,那么很大部分是自己不能选择的。没有具体的步骤,但是有明确的指标。我最喜欢的事情是对不同方案做对比分析,选择最适合项目当前的方案。
    kop1989smurf
        21
    kop1989smurf  
       2023-01-18 17:29:28 +08:00 via iPhone
    @tool2d 不存在免费的“有竞争力”的知识。“有竞争力”的永远是你自己的独到见解和方法论。这也是软件工程的核心生产资料。

    问你个问题,为什么各家的 doc 不能出书卖钱,但是其他作者出的书却可以?

    再举个例子,美团技术团队被人津津乐道,但对于一个从业时间不长的程序员来讲,其实是很难以吸收理解的。
    因为你从来看不到他的量化数据,从来看不到他的硬件参数,从来看不到他的总成本。

    这也就导致:
    1 、你没有对应的需求去理解他讲的架构意义。
    2 、你没有相同环境去模拟复现他的问题。
    3 、你没有团队帮你去复刻他的分工体系。

    更何况哪会有 100%重叠的需求。所以导致看完之后除了“哦”,以及“美团是这么做的”以外,没什么收获。
    tool2d
        22
    tool2d  
    OP
       2023-01-18 17:40:45 +08:00
    @kop1989smurf 我看法不同,程序员是极度热爱分享技术的一群人。github 有巨大的资源库,现在写程序就是复制粘贴。

    同样是每天抄 8 小时代码,选对代码库就显得异常重要。这也是初学者最迷茫的地方。

    你说的企业生产资料,都是技术外的一些市场壁垒。比如美团早入市场,有稳定的客户群,和足够的研发资金之类的。
    whileFalse
        23
    whileFalse  
       2023-01-18 19:28:58 +08:00 via iPhone
    写的太少
    iOCZ
        24
    iOCZ  
       2023-01-18 20:27:59 +08:00
    有些东西还是挺有深度和广度的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2841 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 06:05 · PVG 14:05 · LAX 22:05 · JFK 01:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.