我希望在开始 Web 开发之前了解的事情

2025-05-24

我希望在开始 Web 开发之前了解的事情

在从事 Web 开发之前,我是一名工程师。我之前从事过软件工作,主要研究机器人和机器学习,所以我觉得 Web 开发会是一个有趣的转变。我觉得这就像编程,而且我喜欢编程,所以为什么不呢?

这是我做过的最好的决定之一,但我希望在做出改变之前就知道一些事情。

这与数学无关

以我的编程背景来看,我以为这里面会涉及很多数学知识。我以为Web开发会用到各种疯狂的算法,而我必须能够把这些数学知识转化为代码。如果我尝试的话,我肯定错得离谱。

Web 开发与其说是科学,不如说是一门艺术,我花了一段时间才理解这一点。处理一项任务的方法总是不止一种,而且多种方法才是最佳的。成为一名优秀的开发人员需要的不仅仅是数学技能,更多的是解决问题的能力。找到问题的根源或清晰地定义一个新功能,比起费力地计算复杂的数学知识,是一项更为重要的技能。

你必须经常与人交谈

说实话,我以为既然 Web 开发人员主要写代码,我就不用跟任何人沟通了。感觉我只需要有人告诉我他们想做什么,然后我就独自完成剩下的一周工作了。我真的很期待我的第一份 Web 开发人员工作!

然后我学习了敏捷开发和客户需求。当然,有些时候我和很多人不说话,但总有那么一天我不和任何人交流。问题不断出现,项目范围不断更新,客户的需求也随之变化。良好的沟通能力和良好的技术能力一样,决定了开发人员的素质。实际上,沟通能力更重要。

如果你想找一份与人互动有限的工作,那么 Web 开发并不适合你。这可能是我最震惊的,因为人们对开发人员有着各种刻板印象。无论媒体如何描述我们,开发人员都是最友好、最乐于助人、最健谈的人之一。

你确实可以边学边做

任何工作都会遇到这种情况,但 Web 开发的情况略有不同,因为变化可能非常剧烈。编程语言和框架一直在更新。甚至 IDE 也会更新,这可能会改变你的工作流程。你的公司可能会决定从 Angular 切换到 React,或者从 MVC 切换到 .NET Core。

或者你可能找到一份新工作,他们使用完全不同的技术栈。关键在于你理解底层概念和架构,然后剩下的就是弄清楚如何用特定的语言来实现。要成为一名 Web 开发者,你必须学会​​如何在不错过截止日期的情况下学习。

这可能很简单,比如有机会的时候读读文章,或者做做个人项目来巩固这些概念和特定语言的语法。准备好大量使用谷歌搜索,不要觉得不好意思。高级开发人员仍然需要经常查阅资料。

你通常不会从头开始一个项目

根据教程和课程通常教授Web开发的方式,我以为我要做的每个项目都会是全新的。除了一些为人做的网站外,我还没有做过新的项目。大多数公司已经有现成的软件,他们只是希望你更新和维护它。

这就是为什么理解 Web 开发的核​​心概念如此重要。你会阅读其他人的代码,试图弄清楚他们做了什么以及为什么这样做。知道如何在遗留代码中找到自己的路也是一项至关重要的技能。

在我的 Web 开发生涯的最初几个月里,我感到迷茫。当你不理解一些核心概念时,浏览所有这些代码确实令人望而生畏。如果你真的想展示一下你新学到的 Web 应用开发技能,那么这甚至可能会让你有点失望。

没有任何真正的规定

这件事让我措手不及。在工程领域,你必须满足某些规定,否则你的设计就会被退回或彻底废弃。这项工作受到严格监控,需要的签名数量多得惊人。在网页开发领域,有一些最佳实践。这些规则可以让网页开发更容易,但其解释方式也各不相同。

例如,并非所有公司都以相同的方式运用敏捷方法。并非所有公司都会花时间编写测试,或者他们会跳过某些他们认为不必要的部分。当然,也有一些规则,例如《萨班斯法案》(SOX)和《健康保险隐私及责任法案》(HIPPA),但这些规则并不适用于软件架构和代码实现方式。

你可能需要先获得拉取请求的批准,也可能因为一些修改而被退回,但这个过程远没有我想象的那么规范或严格。Web 开发真的就像一门艺术,因为每个人做事的方式都略有不同。这取决于你使用的语言、你的工作环境以及你的同事。

这些都是我希望一开始就知道的事情。现在市面上有很多资源,但没有一个真正花时间解释专业开发人员每天究竟在做什么。希望这些内容能给初学者提供一些参考。

当你成为一名 Web 开发人员时,有没有遇到过什么意外?当你找到第一份工作时,你的预期是否完全被打破了?尤其是当你从一个完全不相关的领域转行的时候。


嘿!你应该在 Twitter 上关注我,理由如下:https://twitter.com/FlippedCoding

文章来源:https://dev.to/flippedcoding/things-i-wish-i-knew-before-i-started-web-development-1eb8
PREV
基于 React 的微前端
NEXT
函数式编程简介