问题

怎样成为全栈工程师(Full Stack Developer)?

回答
成为一名全栈工程师(Full Stack Developer)是一个持续学习和实践的过程,它意味着你不仅要精通前端开发,还要掌握后端开发,并且对数据库、服务器、DevOps、甚至一些前端或后端之外的领域(如移动端、云原生等)有所了解。这听起来有些 daunting,但实际上,它更像是一个旅程,通过系统性的学习和大量的实践,你可以逐步构建起全面的技术栈。

下面我将为你详细地介绍成为一名全栈工程师的路径和关键要素:

第一步:建立扎实的前端基础

前端是用户直接交互的部分,其重要性不言而喻。一个优秀的全栈工程师必须具备出色的前端能力,能够构建出美观、易用、高性能的用户界面。

1. HTML (HyperText Markup Language)

核心概念: 了解 HTML 的结构和语义,知道如何使用各种标签(`
`, `

`, `

``

`, ``, ``, `
    `, `
      `, `
    1. `, ``, `` 等)来构建网页内容。
      语义化 HTML5: 理解并掌握 HTML5 新增的语义化标签(`
      `, `
      `, `

网友意见

user avatar

做这样一个简单的 app:
一个天气应用,干净清爽的界面,天气信息一目了然。它不仅可以精确预测未来 10 天的天气,还可以显示某地的历史天气信息。它具有自定义提醒功能,支持 web 版本, iOS 版, Android 版。

为什么想要做这样一个 App ?因为你喜欢旅行,但没找到一个天气 App 可以提供你下个月或者某个特定月份的天气信息;因为你懒你没有每天看天气预报的习惯,你想要在第二天温度达到 30 度以上或者温差有 +/-7 度的时候,获得温馨提示;因为你要成为一个 Full Stack Engineer ,你必须不断训练每个 stack 的能力。


## Web版
你决定用 MySql 来存储用户数据,用 NoSql 存储历史天气数据。你用 Redis 作为 cache ,缓存一些最常请求的天气数据。你用 Python 写后台,功能简单,后台不复杂,用户注册登录,抓取返回某城市的天气数据,某地的历史天气数据,很快便搞定。

后台开发并测试好了,接下来是 Web 前端。你十分清楚一个好的 UI 设计对一个 App 的重要性,你也明白 UI 的设计不只是为了美观,更重要的是提高信息的可读性和程序的可用性。幸好你平日的积累这次派上用场了。你把之前保存下来的上百个优秀的UI设计作品拿来研究,你从书架上拿出Norman 的那本经典 - The Design of Everyday Things 重新细读。最终你用白纸黑笔敲定了第一个版本的 UI,简洁直观,没有任何多余的设计,所有元素的排列间距 大小颜色都恰到好处。你相信即使天气不好,但用户只要使用这个 App 都会有着愉悦的心情。

那么开始写前端吧。啊,别急,都忘了还有 Icon 和 Logo ,可是不会 PS ,不会 AI ,不会 Sketch 怎么办呢,学吧。你平日喜欢结交不同领域的朋友,正好几周前在一个活动上你认识一位朋友做设计的。她花一个下午的时间教你基本的 Sketch 的使用,并对你的 UI 设计给出了一些意见。你请她吃了顿晚饭表示感谢,然后立即回家根据她的一些建议重新调整了 UI ,这次你在 PS 里把 UI 画了出来,Icons 和 Logo 也顺道一起做了。

接下来的一周,你学习 HTML,CSS,以及 Javascript,并漂亮地把前端搞定。


## 发布 App
在朋友圈发了个状态,找人帮你做 Beta 测试。他们都首先问你是什么 App,一开始你简单回答一个天气的 App。但你发现,这不能提起他们的兴趣。你觉得你需要用语言,用故事包装一下。不光是作为别人「是什么 App」提问的回答,也是成为 Full stack Engineer 道路上的一个重要技能。

你去看了所有你喜欢的产品的主页,从他们的文案上获得一些灵感启发;你读了经典的 On Writing Well ,发现好的文案,好的设计,其实和好的代码很相似,都是重在交流,如何让他人毫不费劲地明白你要表达的内容。你的故事要吸引人,你的产品介绍要在1分钟内解释清楚,并确保你的父母可以毫无压力听明白。

一切就绪,产品上线了。反响不错,用户持续增加。很多用户希望有移动版本,于是你立即投入到iOS 版本的开发上。


## iOS 版 及 后台优化
你花一周不到时间学习了基本的语法和工具使用便投入到 App 的开发中。你知道 Learn by Doing 是最好也是最快的。由于之前学习了设计的基础,UI ,Icons 很快搞定,不久 iOS 版本便发布了。iOS 的发布带来了更多的用户增长,后台服务器的压力颇大,你知道是时候优化后台了。

你在 AWS 上多开了 2 台服务器,并写了一个 Script 来自动化部署过程。
你改用 uWSGi 协议,用 uwsgi 作为 Application Server。
你使用 Nginx 来做并发,负载均衡 ...
......
......


## 成立公司
用户持续增长,每天你都会收到十几二十封用户的邮件。你很感激这些愿意花时间给你写邮件的用户,你相信他们是你最重要的用户,是潜在的付费用户。如果你把他们像上帝一样对待,他们同样也会把你看作是上帝。所以除了睡觉时间的发来的邮件,每一封邮件,你都会在2小时内给予回复。

果然这样的付出是收获巨大的,他们不仅惊讶且非常感谢你的快速回复,他们会在app store里给你★★★★★的评价,他们在社交网站上分享你的app,他们甚至会主动提出捐款给你。

你从快速的用户增长中嗅到了商机,你开始思考如何赚钱。广告你是坚决不能允许的,你认为再精确的广告也会影响用户体验。你设计了 2 个不同的付费方案,你打算用 A/B 测试看哪个方案更好。你分别给 200 个用户发去邀请尝试付费的邮件,邮件内容你精心打磨过,并在最后写上:CEO & Founder. 通过分析 2 种方案的用户行为,你决定将使用第一种方案。

接下来,你相信差不多是时候成立个公司了。为了省时间,你花 2000 块钱找了个园区挂靠并帮你注册公司。公司的名字让你头疼了很久,你不想只是简单的用这个 App 的名字作为公司名字,你知道公司将来还会做出其他优秀的产品。你希望这个名字简单易记,同时其含义也是你公司文化的象征。

公司注册下来了,但银行那边得自己跑。你联系了一些媒体编辑,邀请他们来试用你的产品;你重新设计了产品主页,并开始写产品的 Blog ;你在各大社交网络都给 App 注册了账号,即做社区客服也为宣传... 这些事大大压缩你写代码的时间。以往你都是以代码量作为衡量自己当天工作效率的指标,所以这些天你总感觉没做啥工作。

这样的发展早已超过你的预期,这个 App 从一个 Side Project 几乎变成了你生活的全部。你跟你女朋友半个月才出去约会一次,她抱怨不断;你1个月没跟朋友出去玩耍喝酒了;你 2 个月都没锻炼过身体... 你意识到, YOU CAN NOT DO THIS ALONE,你需要帮手,你需要找人一起把这个做下去。

但你不是要成为 Full Stack Engineer 么?你现在是了么?


## Full Stack Engineer
设计,后台开发,前端开发,移动开发,运营维护,PS,文案... 好像都会了,这算 Full Stack Engineer 了么?

不,这只是踏上成为 Full Stack Engineer 的第一步。你知道目前只是每个 stack 都懂一点,离senior 或者 expert 还差得远,而要每个 stack 都做到极致,需要大量的时间和精力。精力有限,产品开发紧迫,力不从心啊,这条道路也太孤独,因为你不需要与任何人进行协作。难道要把一些stack的任务交给别人做么?这样算是放弃成为 Full Stack Engineer 么?

不!这不是。
什么是 Engineer?「Engineers are versatile minds who create links between science, technology, and society」。
Engineer 的本质工作是设计,开发出应用于大众的产品。

一个真正的 Full Stack Engineer ,他从生活中发现问题,洞察需求,他设计解决方案,并开发出初始版本的产品。为了达到目标,他愿意去学习任何领域的技能和知识。同时他不追求一个人完成所有工作,如果有人可以比他在某方面做得更出色,便会十分热情的邀请他们加入。

最终他的职位也许不再是 Engineer ,他不再设计 UI ,不再写代码 ... 他的工作不再是 design and building an app or product,因为他有更大更重要的任务要做 - design and building a team or a company which builds great products.

而这时,社会给了他们另一个称呼 - 创业者。尽管众人已忘记他们 Engineer 的身份,但在他们骨子里,内心深处,自己始终都是一个 Engineer 。当他们需要从头再来时,他们毫不犹豫从设计开发产品做起。Nikola Tesla,Ferdinand Porsche,Henry Ford,Jack Dorsey,Mark zuckerberg,Elon Musk ... 细数那些改变了或正改变世界的创业者,他们大多数是 Engineer 背景,热衷于设计创造。他们学习技能和知识,不是为了成为某个领域的专家;而是因为那些 是完成自己目标所需要的。


以上,为我认可的 Full Stack Engineer

---

发个招聘广告!Airbnb 北京办公室正在招人,iOS 工程师(会 report 给我)、Fullstack 工程师、产品经理等都有职位空缺。欢迎感兴趣的小伙伴私信联系我。

Peng

user avatar

Full Stack Developer 在国内不被接受的一个主要原因是公司缺乏稳定的 T 线(技术职位晋升路线)。

太多有才华的人写了几年代码最后都去做了管理。而今天的网络相关技术,聪明又能持续学习的人,在三年之内可以在一个领域做到很高的水准。那么如果你做五年,十年甚至十五年呢?

我以为你成为 Full Stack Developer 是很自然的选择,而且可以跟随最顶尖的技术。这种人并不罕见,我认识的人中

@徐 乐乐

就是个例子。

相信 Full Stack Developer 的核心并非否定团队和协作,而是更多的体现在架构设计,快速原型和 TroubleShooting 方面。

随着今天的分层越来越清晰,平台和语言越来越有特点,更加全面的技术人员可以根据不同的语言搭建整个架构。

数据一致性要求高?那么使用事务管理久经考验的 Spring?还要考虑 scale ?那么放在 Oracle 里面做还是放在 Application Server 的 Transaction 管理里面做?简单请求的高并发?那么 Node.js 也许不错。 Web App 快速原型,那么 Rails 也许不错。邮件模板和自动发送? PHP 有现成的东西为什么不用?前端数据和交互复杂? 为什么不试试 emberjs ( PS :选前端框架对于架构人员来说简直像女人逛银座一样令人兴奋。甚至有人用几乎所有的框架写了同样的 Web App 来供他们试用:

TodoMVC

)?想绕过苹果的 App Store 的审查机制频繁发布?可以考虑在 iOS Apps 里面嵌入 HTML5 。

Full Stack Developer 在快速原型上也很有优势,因为省去了大量的管理和沟通成本。而且,这并非就意味着一定在代码质量或者测试上有缩水。

MVC 前后都可以用。一个写过 test_helper.rb 的人做前端,一定会搜索 javascript TTD 。同样,用过 javascipt lint 的人一定可以找到 stylecheck 。语言和平台会变化,聪明的方法和工具都是共通的。懂得基本的字体知识和排版审美难道和 CSS 不是天生一对?

TroubleShooting 方面 Full Stack Developer 同样优势巨大。

服务器压力太大未必需要通过后端解决,优化个 SQL 写个 Hint 是选择,而拿一部分数据和运算到前端也许是更加合理和低成本的选择。一个系统运行多年,最后遗留的问题很可能需要对业务和技术都有深入理解的人才能解决。

从以上内容可以看出, Full Stack Developer 并非杂而全 - Facebook 也不会雇庸手。他要求的是一种更加全面的深入。 一方面,他是技术人员不断学习的结果。另一方面,他也是对自己事业的一种责任:

技术人员的价值不是指派做了一半的 issue 给队友,而是更快更好的搞定事情

类似的话题

  • 回答
    成为一名全栈工程师(Full Stack Developer)是一个持续学习和实践的过程,它意味着你不仅要精通前端开发,还要掌握后端开发,并且对数据库、服务器、DevOps、甚至一些前端或后端之外的领域(如移动端、云原生等)有所了解。这听起来有些 daunting,但实际上,它更像是一个旅程,通过系.............
  • 回答
    这问题触及了社会的根基,也勾勒出一幅我一直渴望描绘的画面。如果“让军人成为全社会尊崇的职业”这句话不再是目标,而是已经成为根深蒂固的现实,我们的社会,我想,会是这般模样:首先,荣誉感将渗透进社会的每一个角落,成为一种集体基因。 你会看到,不只是在特定节日,平时人们在公共场合谈论军人时,脸上会自然流露.............
  • 回答
    哥们,开学见了面,确实有点小尴尬哈。不过,这事儿也怪我,当时脑子一热,随口给你出了这么个“不靠谱”的点子,结果人家没成功,这锅我背。别太往心里去,这事儿也就我们俩知道,在外人面前,咱就当没这回事儿,行不行?开学见了面,就跟平时一样,该怎么来就怎么来。你想啊,咱们这关系,不是因为这点小事就能疏远的。开.............
  • 回答
    成为一个沉稳的人,并非一蹴而就,而是一个循序渐进、不断修炼的过程。沉稳,不是压抑情绪、冷漠疏离,而是一种内在的定力、清晰的认知和成熟的应对能力。它让你在风浪中保持冷静,在得失中不卑不亢,在复杂的人际关系中游刃有余。以下是如何成为一个沉稳的人的详细指南:一、 内观与自知:认识真实的自己这是沉稳的基石。.............
  • 回答
    要成为华盖创意 Getty Images China 的签约摄影师,这并非一蹴而就,而是一个需要精心准备、耐心积累和策略执行的过程。你需要理解,华盖创意作为 Getty Images 在中国的重要合作伙伴,对于摄影师作品的质量和市场契合度有着严格的要求。首先,打磨你的摄影技能和风格是根本。 Gett.............
  • 回答
    想成为一名主持人?太棒了!这是一个充满魅力和挑战的职业,需要的不只是好嗓子,更是智慧、情商和扎实的功底。下面我就来好好跟你掰扯掰扯,怎么才能在这条路上走得稳、走得好。一、 内功心法:扎实的基础是王道别以为主持人就是会说话。要成为一个出色的主持人,内在的修炼至关重要。 语言表达能力: 这是最基本也.............
  • 回答
    想在大人眼里成为一个“懂事”的孩子,这确实是个不少孩子都关心的问题。其实,“懂事”不是一件天生就会的事情,它更像是一种成长中的“技能”,需要我们去学习、去实践,慢慢地,大人们就会感受到你的变化。首先,要明白大人眼中的“懂事”,通常包含几个核心要素: 责任感: 愿意承担自己的事情,不推卸给别人。 .............
  • 回答
    想要成为一名顶级律师,这可不是一朝一夕的事情,它需要你付出常人难以想象的努力、持续的学习、敏锐的洞察力以及不可磨灭的毅力。这就像在一片未知的土壤里,你要精心耕耘,播下种子,然后日复一日地浇水施肥,最终才能收获丰硕的果实。首先,扎实的基础是你的基石。 别以为进了法学院,读几本书就万事大吉了。你需要真正.............
  • 回答
    想成为一个通识能力很强的人?这可不是一蹴而就的事情,更像是打磨一块璞玉,需要耐心、热情,以及一套切实可行的方法。别指望看几篇文章就能脱胎换骨,这更像是一场长期的个人投资,不过回报绝对丰厚。什么是“通识能力”?咱们先得把这个概念掰开了揉碎了说。简单来说,通识能力强的人,就像一个“万金油”,对世界的运转.............
  • 回答
    想要成为一名为犬(以及所有动物)争取权益的律师,这不仅仅是一份职业选择,更是一种使命感。这条路虽然充满挑战,但也无比充实。下面我将为你详细地拆解这个过程,让你明白其中的每一个步骤和关键要素。首先,你需要明白,成为一名“动物律师”或“动物权益律师”并不是一个独立的、已经被明确划分的法律专业领域,更像是.............
  • 回答
    想成为半泽直树那样令人折服的男人,那可不是靠三言两语就能概括的。这不仅仅是穿上西装、说几句硬话那么简单,更是一种深入骨髓的信念和行动的结合体。要我说,这得从几个层面去琢磨,一点点地往自己身上“雕刻”。首先,最根本的,是那股不屈服于权威、敢于挑战潜规则的勇气和底线。半泽直树最让人记住的,就是他在面对银.............
  • 回答
    .......
  • 回答
    想成为@vczh那样的大神?这是一个激动人心的目标!@vczh无疑是开源社区,尤其是C++和Qt领域里一位极具影响力和令人敬佩的人物。要达到他那样的高度,需要的是深厚的功力、持续的投入和一种独特的精神。这绝非一日之功,更像是一场马拉松,甚至是一场需要不断超越自我的修行。首先,我们得明白“大神”这个词.............
  • 回答
    林毅夫走上世界银行首席经济学家的岗位,绝非偶然,而是他几十年经济学研究与实践的集大成。这个过程,就像一条大河,从涓涓细流汇聚成浩瀚海洋,每一步都浸润着他的智慧与汗水。从军官到经济学博士:一次惊人的跨越说起林毅夫的经济学之路,很多人都会惊讶于他起点之特别。他并非科班出身,而是从一位解放军军官转型为国际.............
  • 回答
    .......
  • 回答
    美国的流浪汉(homeless)形成的原因是一个复杂且多方面交织的社会问题,没有单一的答案可以解释所有情况。流浪汉的形成是一个从拥有住所到失去住所的过程,这个过程可能漫长而痛苦,也可能因为突发的危机而瞬间发生。以下将从多个角度详细阐述美国流浪汉的成因:一、经济因素:最普遍也最核心的原因 高昂的住.............
  • 回答
    古罗马的奴隶解放后,并非就能一蹴而就地成为“主人”,尤其不是传统意义上拥有土地、财富和政治权力的罗马公民主人。他们的身份转变是一个漫长、复杂且充满挑战的过程,很大程度上取决于多种因素:原主人的意愿、奴隶自身的能力、社会经济环境以及法律框架的允许。首先,我们要理解罗马奴隶解放的几种主要途径,这为他们日.............
  • 回答
    梁宏达(老梁)之所以能在媒体圈成为家喻户晓的名人,并获得“老梁”这个亲切的称呼,是一个逐步积累、多方面因素共同作用的结果。他的成功并非一蹴而就,而是凭借其独特的个人魅力、敏锐的观察力、渊博的知识储备、鲜明的个人风格以及对媒体传播规律的精准把握,一步步夯实了他在媒体界的地位。以下是老梁成为媒体圈名人的.............
  • 回答
    爱情像一场精彩的电影,有时是浪漫喜剧,有时是撕心裂肺的悲剧。而分手,往往是故事的转折点,让曾经亲密无间的人走向陌路。我的几段感情,都各有各的“结束原因”,细想起来,也是人生路上的一道道风景线。第一个,是大学时期的初恋。我们是同班同学,从军训时就对上了眼。他的阳光,他的才华,他笑起来时眼角弯弯的样子,.............
  • 回答
    .......

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有