0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一名优秀的全栈工程师应当具备哪些素质?

工程师人生 来源:网络整理 作者:工程师吴畏 2018-08-13 15:42 次阅读

最近网上在热烈讨论一则传闻,说Facebook在招聘所谓的“全栈工程师”(Full Stack Engineer),要求应征者对开发堆栈的每个方面都有所掌握。那究竟何为 “全栈工程师”呢?从字面上来理解,全栈工程师必须熟悉开发堆栈的每一个层次,或者至少熟悉绝大多数并且对所有的软件技术有天生的热情和兴趣。

对于这样的开发者,他们非常擅长使用掌握的技术让自己的生活变得轻松,这也正是为什么Facebook会希望雇佣他们,他们用自己的脑子与热情编码, 好的产品也自然能在最短的时间呈现。那么,具体而言,一个合格的“全栈工程师”要具备哪些素质呢?

开发堆栈剖析

服务器,网络以及宿主环境

需要理解哪些模块可能失效以及为什么,而不能理所当然地认为,只要不断增加资源就能解决所有问题。

知道如何运用操作系统、云存储、网络资源,并能理解数据冗余以及可用性是必需的。

了解应用的规模是如何对硬件造成限制的。

还有多线程和竞态条件,这些概念在开发机上往往不会遇到,但是他们在现实的部署环境中却无处不在。

全栈工程师还必须要能够与DevOps很好地协作。他们所设计的系统应该提供有用的错误消息和日 志能力,这样DevOps就能够及时获得这些信息,并采取有价值的行动。

数据建模

如果数据模型存在缺陷,那么就常常需要在业务逻辑和更高的层面上使用丑陋的代码来弥补那些数据模型没办法覆盖的死角。

知道如何建立合理的范式关系模型,具备完善的外键、索引、视图、查询表等等。

还要熟悉非关系型数据的存储,知道非关系型数据库在哪些方面超越关系型数据库。

业务逻辑

这是系统应用价值的关键所在。

掌握SOLID设计能力(单一职责,开放且封闭,Liskov替代性,接口分离,依赖注入)。

熟悉一些常用的框架。

API/Action/MVC

这些关乎外部世界如何与业务逻辑及数据模型交互。

会使用到大量的框架。

有能力写出清晰、一致、使用简单的接口。

用户界面

全栈工程师需要:a)懂得如何构建易读的布局;b)能意识到艺术家和图形设计师的作用。总之,实现一套好的视觉设计方案尤为关键。

熟练掌握HTML5/CSS。

从目前的趋势来看,JavaScript将会是明日之星,最近这一领域硕果累累(NodeJs, backbone, knockout, Angular(自己的加的, 原文没有))。因此,掌握JavaScript必不可少。

用户体验

全栈工程师应该意识到:用户仅仅是希望一切运转良好。

一个好的系统是不会让用户得腕管综合征或产生眼疲劳的。全栈工程师能审视全局,可以将一个需要8次点击+3个步骤的过程,简化为仅需要一次点击。

知道如何向用户提示错误信息。如果出现故障,真诚道歉。有时一些无意的错误信息,会让用户感到莫名奇妙。

理解用户和市场需求

这层关系到系统架构,但也绝不是一个不能碰的角色(有可能翻译有误,原文:but that is too much of a hands off role)。

全栈工程师要领悟客户使用软件过程中会需要些什么以及整个市场需要些什么。

其他方面

能写出高质量的单元测试,时至今日,甚至连JavaScript都能写出单元测试了。

知道如何使用可重复的自动化工具来构建系统、测试、撰写文档以及按需部署。

系统的安全意识非常重要,要知道,开发堆栈中的每一层都可能存在薄弱环节。

总结

将代码与某个特定的实现(无论是软件库,操作系统,硬件,等等)紧绑在一起并不是好的实践。全栈工程师虽然学术渊博,但不意味着他们能抄 捷径,除非他们是在开发一个建完即扔的一次性原型。

技术型的创业企业在初期为了满足灵活性,对全栈工程师的需求比较大,但是,随着企业的成熟,会需要越来越多的专业型人才。

要成为一名全栈工程师,至少要使用过多种编程语言在各种领域的不同平台工作多年。全栈工程师除了像“高级工程师”那样要掌握多门编程语言, 还必须具有更高的视野将所有的模块联系起来。值得注意的是,在以上列表中,仅有3——5项是与编码有关的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1553

    浏览量

    67495
  • Facebook
    +关注

    关注

    3

    文章

    1428

    浏览量

    54028
收藏 人收藏

    评论

    相关推荐

    如何搞崩个硬件工程师心态?试试对ta说这几句

    硬件工程师
    扬兴科技
    发布于 :2024年02月20日 18:05:49

    优秀电源工程师需要哪些必备技能?

    就带大家细数优秀电源工程师具备的那些技能。、新手必备课程成为一名电源高手需要扎实的理论基础
    发表于 01-29 11:29

    优秀电源工程师的必备技能大揭秘!

    就带大家细数一下优秀电源工程师具备的那些技能。新手必备课程成为一名电源高手需要扎实的理论基础,涉及电路原理、语言编程和控制理论等多个学科领域。为了帮助大家更好地掌握
    的头像 发表于 12-19 08:23 736次阅读
    <b class='flag-5'>优秀</b>电源<b class='flag-5'>工程师</b>的必备技能大揭秘!

    #人工智能 #FPGA 怎么成为个合格的FPGA工程师

    fpga工程师
    明德扬助教小易老师
    发布于 :2023年12月18日 21:19:01

    FPGA工程师需要具备哪些技能?

    ,需要具备系列的技能,才能胜任日益复杂的设计工作。因此,本文将从设计思路、硬件语言、EDA工具、数字信号处理、通信协议、测试验证等多个方面,探讨FPGA工程师需要具备哪些技能。
    发表于 11-09 11:03

    如何成为一名优秀的嵌入式工程师

    如何成为一名优秀的嵌入式工程师?嵌入式学习的第步,首先是C语言。 1.理解内存管理:C语言不同于高级语言,它不会自动管理内存。因此,你需要理解并掌握如何使用malloc()、free()等函数
    发表于 11-07 15:36

    电源工程师常用的几个典型电路分享

    具有电源知识水平的工程师来完成设计和开发。作为一名合格的电源工程师平时工作经验的积累很重要,但同时也应该提高理论水平,通过积累几个常用的电源电路,说不定下次就能用上,还是学习吧!
    发表于 09-20 07:59

    一名硬件工程师具备哪些技能?

    芯片嵌入式物联网STM32
    学习电子知识
    发布于 :2023年08月02日 12:54:00

    一名合格的嵌入式硬件工程师需要具备哪些条件?

    芯片嵌入式物联网STM32
    学习电子知识
    发布于 :2023年08月02日 12:53:34

    一名成熟的嵌入式Linux系统开发工程师需要具备哪些技能?

    芯片嵌入式物联网STM32
    学习电子知识
    发布于 :2023年08月02日 12:52:30

    热门推荐:硬件工程师必备工具

    硬件开发的工作流程般可分为:原理图设计、PCB Layout设计、采购电子BOM、PCB板生产、PCBA组装、功能调试及测试、小批量试产、大批量生产正式投放市场等步骤。 作为一名优秀的硬件工程师
    发表于 06-21 10:15

    学会这些开发板,你定能成为一名优秀的嵌入式开发工程师

    嵌入式
    YS YYDS
    发布于 :2023年06月21日 00:28:39

    【别找了在这】硬件工程师经典笔试题集锦

    【别找了在这】硬件工程师经典笔试题集锦
    发表于 06-09 22:45

    礼赞五一 | 平凡的岗位,不平凡的坚守!致敬每个努力奋斗的电子工程师!

    着强大的创造力,通过行行代码构建丰富多彩的数字世界。值此五一劳动节之际,向奋战在各个岗位的他们致敬! 长期以来,每位电子工程师兢兢业业、尽职尽责,贡献自己的力量。在华秋,就有这样一名
    发表于 04-28 10:08