原文链接:https://www.ruanyifeng.com/blog/2022/01/weekly-issue-193.html

    “黑客新闻”(Hacker News)是美国最大的程序员社区,我每天都看,周刊的很多内容就来自那里。

    选前端?还是后端? - 图1
    有一天,我看到一个帖子。

    一个前端程序员,他不想干前端了,咨询大家意见,转到后端是否可行。

    我从2007年开始从事前端开发,到了现在,很多新技术已经不擅长了。每次打开 Chrome 开发者工具,看到那些我不知道的新功能,我总是选择忽略。

    很多我熟悉的工具和功能,都已经或将被弃用。现在的前端开发都在 npm 环境,经常有难懂的报错,好不容易搜到答案,又要花很多时间修复本地开发环境。

    即使那些最简单的任务,现在的开发方式也比以前复杂,要考虑很多边界场景。我能够完成的工作,不断得缩小。
    我失去了继续在前端工作的信心,转到后端,会不会容易一些。

    简单说就是,他觉得前端越来越难,自己跟不上,无法坚持下去了。他想知道,后端会不会更容易一些,转成后端开发是否可行?

    选前端?还是后端? - 图2
    可以想象,讨论这种问题,一定是众说纷纭。

    原帖下面,各种意见都有。支持的一方说,前端现在确实变得非常复杂,技术工具的更新速度太快,开发和维护的难度超过了后端。

    反对的一方说,后端也很难,如果你适应不了 Node.js,改行写 C++/Java/Go 也会很痛苦,千万不要草率做决定。

    选前端?还是后端? - 图3
    难易是主观感受,没有办法精确衡量,人与人之间不可比较。所以我觉得,讨论这种问题,不可能有统一的看法。
    但是,我很喜欢下面这个发言,说出了前端与后端有一个重要差异,往往被忽视。

    前端的问题不是难,而是它面对最终用户。只要用户的喜好和口味发生变化,前端就必须跟上。

    这导致前端不得不快速变化,因为用户的口味正在越来越快地改变。

    后端不需要面对最终用户,需要解决的都是一些经典的计算机科学问题,比如算法和数据结构。这些问题很少变化,可以利用以前的研究成果,所以变化速度慢得多。

    这段话的意思是,前端和后端的差异,不在于难度,或者说各有各的难,而是所要解决的问题不一样。

    前端的特征是混乱、嘈杂、易变,因为这些都是最终用户的特征,前端需要匹配用户。 如果你不适应混乱、嘈杂、易变的开发,你就很难适应前端。

    后端面对的是硬件、算法和数据结构,所以比较稳定。但是会涉及到计算机科学、语言设计、编译原理等高深的内容,想要搞懂这些东西,绝非易事。

    所以,你判断自己适合前端,还是适合后端?除了考虑现实因素和外部环境,也要考虑自己的性格爱好。实话实说,如果性格比较安静,喜欢思考抽象和理论的问题,这个人可能不一定适合前端。

    大家怎么看这个问题,你会给他什么建议?如果让你回到从前,你会选择从事前端还是后端?