软件职位
- 56 次浏览
DevOps工程师
DevOps工程师负责优化组织的软件,包括软件维护和服务器管理。学习如何获得成为DevOps工程师所需的技能。
DevOps工程师负责领导和协调不同团队的活动,以创建和维护公司的软件。术语“DevOps”源自“开发和运营”,是一组旨在通过协作提高软件开发生命周期效率的实践。
DevOps工程师的最终目标是缩短软件开发过程,增加软件发布频率,团结运营团队和开发团队,促进更可靠的发布。
DevOps工程师的平均工资
美国DevOps工程师的平均基本工资为每年104095美元[1]。在确认佣金或利润分享等额外薪酬时,Glassdoor估计薪酬总额为132767美元。DevOps的工程师可以加班或随时待命,因为软件问题可能会在奇数时间出现。
DevOps工程专业
DevOps工程师可能会承担特定的角色,这取决于他们的兴趣和工作所在组织的需求。DevOps工程领域的一些专业角色包括:
- 发布管理器管理正在进行的软件更新。
- 软件开发人员编写代码。
- 质量保证工程师负责审查和测试新代码。
- 安全工程师确保系统中软件的安全性。
DevOps技能
DevOps工程需要技术和人员技能(也称为软技能)的结合才能取得成功。
技术技能
DevOps工程师首先是工程师。除了标准的工程技能,如数学和分析思维,他们还应该理解:
- 项目管理。作为负责确保公司软件是最新的、安全的、没有错误和故障的人,DevOps工程师需要不断寻找并实施任何相关的改进。
- 生产基础设施。一个好的DevOps工程师必须对从小错误修复到大规模更新的所有内容的启动、计划、执行和监控有着深刻的理解。持续集成/持续交付(CI/CD)是软件开发DevOps方法的一个关键方面。
- 编码。尽管一些DevOps工程师可能并不总是编写代码,但他们仍然必须了解所使用的任何编程语言的基本原理。
- 服务器管理。DevOps工程师管理公司的网络和服务器,这些网络和服务器承载着正在创建的任何软件。这意味着要创建帐户、更新权限,并确保所有内容都得到定期备份。他们还设置了初级IT专业人员在进行故障排除、调试或进行其他更改时所遵循的程序。
工作场所技能
DevOps专业人员也是团队成员,他们每天都会与不同专业背景的人一起工作。要想成功,你必须明白:
- 沟通:沟通技能对于DevOps的工程角色至关重要。你必须能够有效地向从软件工程师到营销角色等具有不同技术专业知识的人解释软件开发生命周期中发生的事情。
- 辅导:一个有效的DevOps工程师应该始终寻求改进他们的团队和软件。这意味着要找出技能方面的差距,并制定填补这些差距的方法,无论是培训现有员工还是雇佣新员工。
- 灵活性:软件问题可能发生在白天或晚上的任何时候。DevOps工程师经常不定时工作,随时待命以解决任何问题。
如何成为DevOps工程师
考虑一个学位。
DevOps工程职位的许多职位描述要求至少拥有计算机科学或相关领域的学士学位,尽管一些雇主会接受同等的工作经验。75%的DevOps工程师拥有学士学位,20%拥有硕士学位,2%拥有副学士学位[2]。
获得认证。
一些公司可能会寻找Linux管理和SQL server开发等科目的证书来展示其能力。
- 41 次浏览
Web开发工程师
Web开发人员构建网站并确保其可靠高效地运行。了解更多关于这个在科技行业的关键角色以及如何开始的信息。
什么是web开发?
网络开发人员的工作就是创建网站。虽然他们的主要职责是确保网站具有视觉吸引力和易于导航,但许多网络开发人员也要对网站的性能和容量负责。
web开发人员的类型
Web开发人员通常分为三类:后端开发人员、前端开发人员和全栈开发人员。一些网络开发人员也担任网站管理员。让我们仔细看看这些角色中的每一个。
- 后端web开发人员创建网站的结构,编写代码,并验证代码是否有效。他们的职责还可能包括为需要管理网站内容的其他人管理访问点。
- 前端web开发人员处理网站的视觉部分——访问者看到的页面和与之交互的页面(也称为用户界面)。他们设计每个页面的物理布局,集成图形,并使用HTML和JavaScript来增强网站。您可以通过Meta的前端开发人员专业证书获得基本的前端web开发技能。
- 全栈开发人员同时完成后端和前端开发人员的工作。这些开发人员具备构建完整网站的知识,并且可能为没有大型网站团队预算的组织工作。
- 网站管理员本质上是网站管理员。他们的主要职责是保持网站的更新,确保每个页面上的链接和应用程序正常工作。
Web开发人员的任务和职责
作为一名网络开发人员,你可以为一家公司或机构工作,也可以作为一名自由职业者为个人客户承担项目。您的任务会因工作情况而异,但日常职责通常包括:
- 设计用户界面和导航菜单
- 编写和审查网站代码,通常是HTML、XML或JavaScript
- 将多媒体内容集成到网站上
- 测试web应用程序
- 排除性能或用户体验方面的问题
- 与设计师、开发人员和利益相关者合作
Web开发人员的职业道路
许多web开发人员在开始他们的职业生涯时都只关注一个焦点,通常是前端或后端开发。他们可能会成为全栈开发人员,或探索相关领域的职业生涯,包括项目管理、计算机编程或图形设计。
网络开发人员赚多少钱?
根据美国劳工统计局的数据[1],美国网络开发人员的年薪中值为80730美元。然而,根据Glassdoor的薪酬洞察[2],美国的网络开发人员的收入高达122000美元。你的收入取决于许多因素,包括你在哪里工作,你在哪个行业工作,以及你有多少经验。
劳工统计局估计,2022年至2032年间,网络开发者的行业增长率为16%,与其他职业相比,这一增长率高于平均水平。网络开发工作岗位增加背后的驱动力之一是电子商务的增长。公司越来越依赖在多台设备上运行的正常网站开展业务。
如何成为一名网络开发人员
成为一名入门级的网络开发人员并不总是需要接受正规教育。一些网络开发人员拥有网站设计或计算机科学的副学士学位,但其他人则自学如何编写和设计网站。虽然获得学位可以使你成为更有竞争力的候选人,但强大的投资组合可以大大有助于向潜在雇主验证你的技能。
如果你有兴趣成为一名网络开发人员,这里有一些你可以采取的步骤。
1.培养网络开发人员的技能。
雇主和客户通常希望网络开发人员具备某些技能,以证明他们有能力满足网站要求。如果你对网络开发人员的职业感兴趣,这些技能可以为你的成功奠定基础。
技术技能
- 编码:常见的编程语言包括HTML、PHP、级联样式表和用于前端设计的JavaScript。如果您想进行后端开发,可以考虑学习Python、Java或Ruby。
- 响应式设计:人们使用各种设备来查看网站。开发者应该能够创建在智能手机和平板电脑上看起来和在电脑屏幕上一样好的网站。
- 技术SEO:网站设计的许多因素都会影响网站的搜索引擎排名。了解搜索引擎如何对网站进行排名对开发人员的工作很有用。
- 版本控制:这使您可以跟踪和控制对源代码的更改,而无需每次遇到问题时从头开始。
- 视觉设计:了解基本的设计原则,如如何使用空白、选择字体和融入图像,可以提高你的市场竞争力。
工作场所技能
- 沟通:Web开发人员在项目的每一步都会花时间与客户和团队成员讨论设计理念。
- 客户服务:网络开发人员创建网站供客户使用,并应保持以客户为中心,以实现最佳效果。
- 注重细节:微小的细节,比如代码的微小变化,可以对网站的表现产生很大的影响。
- 组织:如果你想按时完成网站设计,跟踪截止日期、项目任务、工作流程和预算是很有帮助的。
- 解决问题:Web开发人员在设计网站时经常会遇到问题。他们应该有耐心和能力识别设计或编码中的问题,并以有条不紊的方式解决这些问题。
2.考虑获得计算机科学或网页设计学位。
虽然你并不总是需要学位才能找到网络开发的工作,但它肯定会有所帮助。如果你已经在上学(或正在考虑获得学位),有些专业可能比其他专业更适合你的职业目标。如果你对后端web开发更感兴趣,可以考虑攻读计算机科学学位。如果你觉得更喜欢前端开发,你可以选择网络设计或用户体验(UX)学位。
3.参加网络开发课程。
作为一名网络开发人员,你不一定需要正式的培训。你可以自己掌握所需的技能。例如,您可以参加一门课程来学习HTML、JavaScript或CSS等编程语言,然后将所学内容应用到自己的网站上。
通过完成网络开发的在线课程,如密歇根大学的《人人共享的网络设计:网络开发与编码基础》,你可以在完成投资组合的开发项目的同时培养技能。构建一个web开发工作组合。
作为一名网络开发人员,你的投资组合通常是简历中最重要的部分之一。这组项目向潜在雇主展示了你的能力。包括代表你想做的工作的项目类型。如果你包括代码,一定要对其进行注释,以显示你的思维过程。
5.获得认证。
获得证书可以向潜在雇主证明你的技能。您可以找到一系列常规和特定于供应商的选项,包括:
- Adobe认证专家(ACE)
- Microsoft认证解决方案助理(MCSD)
- 亚马逊网络服务(AWS)认证开发人员
- Zend认证PHP工程师
- 25 次浏览
【DecSecOps 】DevOps & DecSecOps 路线图 [从初学者到专家]
“在你的每一次旅程中看到可能性的光芒。”
作为我的第一个博客,我强烈希望这个博客必须在读者的脑海中闪耀。
在这篇博客中,我将解释我在 DevOps 旅程中所遵循的路径。
那么,什么是 DevOps?
这是一个常见问题,当您在 Google 中搜索 DevOps 时,您也可以将其作为推荐问题找到。 但在进入实际定义之前,我将用简单的语言解释什么是 DevOps。
“开发+运营=DevOps”
DevOps 不是一种特定的技术、工具或技术堆栈,而是可以将其定义为软件开发中的一种方法论或过程,通过确保整个过程的顺畅流动来帮助快速有效地交付软件产品。在公司的工作流程中实施 DevOps 将帮助开发团队和运营团队更加轻松。
“DevOps 是文化理念、实践和工具的结合,可提高组织高速交付应用程序和服务的能力:以比使用传统软件开发和基础设施管理流程的组织更快的速度发展和改进产品。” — AWS
“开发”阶段包括规划->创建->验证->构建->应用程序打包。在“Ops”阶段,我们有发布->部署->操作->应用程序监控。后期开发活动与运营团队相关联。
为什么选择 DevOps?
DevOps 的主要优势是可以在开发的每个阶段采用的自动化功能。
“作为开发人员,我们拥有的最强大的工具是自动化。” — 斯科特·汉塞尔曼
在正常的开发环境中,开发和运营团队共同完成项目。在某些情况下,当开发人员编写代码并将代码及其配置传递给运营团队进行测试和部署时,开发人员将开始着手下一个项目。那时在之前项目的部署过程中,如果因为代码有问题而出现错误,运维团队会指向开发团队,这会篡改开发者当前项目的开发流程.因此,为了解决所有这些冲突并增强时间管理,正在使用 DevOps。在 DevOps 方法论中,开发和运营团队将携手合作,这有助于他们降低项目的复杂性,并可以在正确的时间交付产品。
DevOps 的优势
以下是在项目中实施 DevOps 的一些优势:
- 速度
- 快速交货
- 可靠性
- 可扩展性
- 改善协作
- 安全
这些观点在每种技术的优势方面可能听起来相似😁,但所有这些优势都有助于 DevOps 在其他方法中脱颖而出。
DevSecOps
DevSecOps 是上述 DevOps 定义中增加了“Sec”。
“开发<+>安全<+>运营=DevSecOps”
在 DevSecOps 中,在 DevOps 的每个阶段都确保了安全性,即从规划阶段到最终交付阶段,每个阶段都包含适当的安全集成。
DevSecOps 的主要好处是更快地交付更安全的代码/产品。
DevSecOps 的好处:
在项目中实施 DevSecOps 时可以获得的一些好处是:
- 快速交付安全代码
- 每个阶段的安全性
- 漏洞评估和修补管理
DevSecOps 的实现:
DevSecOps 就像是现有 DevOps 实践的掩护或盾牌。它可以通过多种方式实现。
“左移”是 DevSecOps 的口头禅:它鼓励软件工程师将安全性从 DevOps(交付)流程的右侧(末端)转移到左侧(开始)。在 DevSecOps 环境中,安全性从一开始就是开发过程中不可或缺的一部分。使用 DevSecOps 的组织将其网络安全架构师和工程师作为开发团队的一部分。他们的工作是确保堆栈中的每个组件和每个配置项都得到修补、安全配置和记录。 — IBM
主要的实施过程是让开发和运营团队都了解常见的漏洞,以便他们可以为部署生成安全的代码和安全的环境。
对于 DevSecOps,学习路径与 DevOps 类似,唯一的变化是在每个阶段学习实现安全性。
一些资源是:
我的 DevOps 路线图
通往 DevOps 的旅程是一条漫长的道路,其中有许多里程碑。正如我所提到的,由于 DevOps 不是一项特定的技术,因此最好了解所有更新的工具和框架。永无止境的学习欲望🤓和更新知识的兴趣将有助于实现这一目标。我坚信将较大的任务分解成较小的部分将有助于更有效地完成整个任务。这是我在 DevOps 旅程中所遵循的路径:
1. 学习操作系统。
对于 DevOps,操作系统及其基本概念非常重要。 因为在处理服务器时,了解虚拟化、内核、文件和存储管理等主题至关重要。在这个阶段学习 Linux 非常重要。 了解 Linux 命令并学习它们会很棒。
资源:
- Linux 和终端命令简介 — Kunal Kushwaha https://youtu.be/iwolPf6kN-k
- Linux 初学者教程:Linux 操作系统简介 — Guru99 https://youtu.be/V1y-mbWM3B8
- Edureka Linux 完整课程 https://youtu.be/Wgi-OfbP2Gw
2. 学习一门编程语言
至少需要了解一种编程语言😐。 学一个没什么大不了的,当然会有一些困难,但是如果你学习一门编程语言,比如 Python、Golang 等,那就太好了。
资源:
3. 计算机网络
在处理服务器时,有必要确保入站和出站网络规则、端口、防火墙。 如果你能学习各种网络协议、网络模型、路由、桥接等会更好。通过学习,你可以管理和控制服务器的网络,并可以为你的应用程序制定特定的网络配置。
资源:
- Nerds lesson — https://youtu.be/k9ZigsW9il0
4. Docker 和 Kubernetes
Docker 和 Kubernetes 是两个重要的 CI/CD 工具。 最好对容器、容器镜像、容器编排、打包等有所了解。
资源:
- Docker — https://youtu.be/3c-iBn73dDE
- Kubernetes — https://youtu.be/X48VuDVv0do
5. 其他 CI/CD 工具
持续集成和持续交付/持续部署 (CI/CD) 工具是那些促进开发人员和运营团队顺利工作的工具。 持续集成处理开发人员将代码集成到项目存储库的主分支中,而持续交付则自动将经过验证的代码发布给公众。 许多工具有助于支持这一点。 其中一些是 Jenkins、Circle-CI、Nagios、Github Actions 等。
资源:
- Github Actions — https://youtu.be/R8_veQiYBjI
- Jenkins — https://youtu.be/FX322RVNGj4
- Travis CI — https://youtube.com/playlist?list=PLT7ak8zxhXKjVTn3Lwc2MM4eEDfp811ys
这里只列出了部分工具,熟悉了之后就可以尝试相关的新工具了。
6. 云计算
云计算是目前最热门的技术之一。 DevOps 方法采用的大多数提到的工具和项目都是基于云的。因此,了解基本的云术语和技术非常重要,一旦您掌握了这些,您就可以切换和实践您正在使用的云服务提供商提供的服务。
资源:
- https://youtu.be/RWgW-CgdIk0
- AWS (Amazon Web Services)
- GCP (Google Cloud Platform)
- Azure (Microsoft Azure)
额外主题
以下是一些可以作为附加组件学习的主题,如果您对它们有所了解,那就太好了。
- 学习 YAML、JSON 等脚本语言。
- shell脚本基础
- 服务器管理基础知识(Linux 和 Windows)
- 网络服务器
额外资源
这些平台可以帮助您了解 DevOps 和云计算的最新信息,也可以帮助您参考。
- IBM Technology— https://www.youtube.com/c/IBMTechnology
- DevOps AWS
- DevOps.com
- Atlassian
- Azure
- DevDaily
- Linux Foundation
- Spacelift
附言这些资源将有助于了解 DevOps。正如我所说,由于 DevOps 不是一项特定的技术,完成这些路径将使您对此有所了解。要成为专家,您需要使用最新的工具和技术进行更新。 “小知识永远不会浪费”,有了这种心态,您可以取得更多成就。做一个永无止境的学习者,练习你学到的东西。将你学到的东西应用到现实生活中会产生巨大的变化,并帮助你成为这方面的专家。
原文:https://faun.pub/devops-decsecops-roadmap-from-beginner-to-an-expert-c3…
- 42 次浏览
【职业职位】软件“开发者”和“工程师”有什么区别?
工程师使用工程原理监督整个系统,而开发人员则专注于创建功能性软件。
答案吗?这取决于你问的是谁!
这些角色之间并没有正式的区别,公司使用自己的经验和知识来定义符合他们需要的描述。更让人困惑的是,区域差异也可能存在,即教育方面的明显差异。但是,可以评估和分析各种数据来源,以便从中得出结论。
根据计算机科学学位中心的说法,软件开发者和软件工程师的角色是不同的:
软件工程是指应用工程原理来创建软件。软件工程师通过连接客户的需求和适用的技术解决方案来参与软件开发生命周期。因此,他们系统地发展过程以提供特定的功能。最后,软件工程意味着使用工程概念来开发软件。
另一方面,软件开发人员是程序背后的创新驱动力。软件开发人员负责整个开发过程。他们是那些与客户合作创造理论设计的人。然后,他们让计算机程序员编写正确运行软件所需的代码。计算机程序员将与软件开发人员一起测试和解决问题。软件开发人员在软件开发生命周期的每个阶段都提供项目领导和技术指导。”
Udacity也认为存在着强烈的差异:
软件开发人员和软件工程师这两个术语,与普遍的看法相反,是不可互换的。开发人员知道如何编写代码,并可能拥有构建有意义的产品所需的技术技能。软件工程师遵循一个理解需求的系统过程,与涉众一起工作,并开发满足他们需求的解决方案。开发人员倾向于单独工作。软件工程师是大团队的一部分。”
那么这在实践中意味着什么呢?让我们更详细地探讨其中的差异。
软件工程师技能和职位描述
软件工程师是能够管理复杂系统的高度熟练的软件开发人员。一个人不仅能够构建一个功能齐全的应用程序,而且有足够的经验,知道如何以一种容易重构、自我文档化、从而更容易调试的方式构建它。
他们将在各种项目中扮演领导者、顾问和个人贡献者的积极角色。他们必须在识别和实施新的IT应用方面提供分析建议,以帮助客户和公司实现战略目标。他们必须能够管理资源,协调开发任务和监督技术项目计划。在整个软件开发生命周期中,他们经常与IT、运维和开发人员合作
他们知道,在一开始就考虑周全可以节省几天的工作时间,也可以避免日后的头疼。他们不是致力于编写最聪明的代码,而是致力于让代码变得显而易见。他们知道最好的代码是你永远不需要写的代码。
软件工程师应:
- 有技术专长,有广泛的项目工作经验
- 精通模式设计,创建弹性和容错系统
- 使用自动化测试工具,如小黄瓜,黄瓜或Ansible
- 了解如何创建和维护IT架构、大规模数据存储和基于云的系统。
- 构建可扩展的部署管道,以支持持续集成和持续交付
- 他们必须能够有效地独立工作,并与远程团队一起工作。
- 高级软件工程师必须监督复杂的系统分析、设计和开发程序。
软件工程师的角色通常包括:
- 研究、设计、开发和测试他们的软件,以及通过网络编译和分发软件
- 修改现有的软件是为了解决缺陷,采用新的硬件或改进其性能。
- 分析用户需求,评估软件需求,包括设计可行性和成本/时间限制。
- 为客户提供产品规格、设计等方面的咨询。
- 协调系统软件的部署和安装
- 监督是技术人员和工程师的工作
软件开发人员技能和职位描述
软件开发人员不仅要负责编写代码,他们还必须审查当前的系统,提出改进的想法,包括为此所需要的努力。软件开发人员将与分析师、最终用户/市场营销人员和设计人员密切合作。
软件开发人员还必须确保他们的代码在您投入使用之前通过测试它,使用可控的和真实的情况来工作。他们必须有一个完美的眼睛,以妥善解决bug和修改程序,以提高运行效率。
最好的软件开发人员是有创造力的,并且有专门的技术来提出一个创新的想法来解决客户的问题,并且有足够的经验在问题出现之前发现很多问题。
通常遵循Scrum、XP或看板等开发生命周期方法或交付框架的软件开发人员。
软件开发人员必须具备:
- 优秀的分析技能,因为他们需要不断地将需求与软件能力进行比较。
- 他们必须熟悉计算机语言,以便有效地使用计算机程序,如Java, c#, c++, Python
- 有使用GitHub等开源工具的经验
- 良好的反馈和沟通能力,注重细节,因为小错误可能导致大问题
- 注重细节将帮助他们在不同的开发阶段管理同时进行的项目。
- 即使是他们不熟悉的语言,也能理解代码的逻辑。
- 软件开发人员必须不断地监视他们所做的更改,包括解决缺陷,以确保高质量和一致性。因此,他们必须不断地在分配的工作、管理截止日期和时间表之间转换。
总结
总结一下软件开发人员和工程师之间的主要区别:
- 开发人员执行。他们的才能往往集中在一个单一的领域。而不需要“大图”。因此,软件开发人员主要关注的是开发代码,这是软件开发周期的一部分。
- 工程师将工程原理应用到软件开发中进行设计和计划。总是有“大局观”,在很多领域都有人才。工程师可以扮演开发人员的角色,但工程师的核心关注点在于架构。
- 最后,软件工程和软件开发之间的主要区别是后者监督工程,而前者关注于创建功能性程序。
任何人都可以成为软件开发人员。如果您了解少量的编程概念,那么您就有了成为软件开发人员的基础。他们编写的代码没有任何性能和可伸缩性分析。这个元素的大部分是由软件工程师完成的,这使得这个角色不同于软件开发人员。
如果你是一名软件开发人员或工程师,你总能学到一些新东西,因为很多人会根据项目和客户的不同在这两种角色之间切换。
原文:https://shecancode.io/blog/software-developer-or-engineer-whats-the-difference
本文:http://jiagoushi.pro/node/1463
讨论:请加入知识星球【超级工程师】或者微信【it_training】或者QQ群【11107767】
- 346 次浏览
前端开发
前端开发人员构建网站和web应用程序的前端部分,即用户看到并与之交互的部分。
前端开发人员使用HTML、CSS和JavaScript等网络语言创建网站和应用程序,允许用户访问网站或应用程序并与之交互。当您访问网站时,您看到的设计元素是由前端开发人员创建的。
前端开发人员做什么?
前端开发人员创建用户界面(UI)。UI是应用程序的图形布局,用于确定网站或应用程序的每个部分的功能以及外观。Meta的软件工程师Mari Batilando说:“我一直发现,精心制作精致的用户互动,让用户感到惊讶和愉悦,是最有收获和吸引力的任务。”。“为了做到这一点,你既需要对细节有敏锐的洞察力,也需要对平台有坚如磐石的理解。”
前端与后端:有什么区别?
前端开发人员和后端开发人员之间有什么区别?后端开发人员致力于开发网站或应用程序的幕后部分,如数据存储、安全性、网站性能或其他服务器端功能。
前端开发人员职位描述
如果有人想建立一个网站,他们可能会聘请前端开发人员来创建网站的布局。前端开发人员决定将图像放在哪里,导航应该是什么样子,以及如何展示网站。他们的大部分工作都涉及到确保网站或应用程序的外观和布局对用户来说易于导航和直观。
前端开发人员的平均工资
Glassdoor报告称,美国前端开发人员的平均年薪为90345美元。这一数字包括83119美元的平均年薪和7226美元的额外薪酬。额外的薪酬见解可能包括利润分享、佣金或奖金。教育水平、经验和证书等因素可能会影响薪资范围。
前端开发人员工作前景
前端开发是一种职业,预计在未来几年将继续受到需求。美国劳工统计局(BLS)报告称,从2022年到2032年,美国的网络开发者工作岗位应增长16%[1]。
前端开发人员在哪里工作?
这个职位的需求和灵活性转化为不同行业和地点的许多职业机会。无论这意味着与非营利组织合作,创办自己的自由职业企业,还是成为公司的内部开发人员,你都可能有机会找到一个符合你兴趣的角色。
作为前端开发人员远程工作
这份工作重计算机的性质也意味着有很多远程工作的机会。成为一名前端开发人员意味着能够在家里舒适地为全国乃至全球的公司工作。
如何成为前端开发人员
前端网络开发人员的职业生涯可以发挥你的创造力和解决问题的技能。作为一个不断发展以融入新技术的领域,前端开发可以奖励那些喜欢学习新事物并面临挑战的人。接下来的几节概述了前端开发人员最突出的一些技能。
HTML、CSS和JavaScript
这三种语言对于任何想从事前端开发的人来说都是必不可少的。
- HTML(超文本标记语言):开发网站所需的基本构建块;一种允许您在不同于常规文本的数字文档中进行注释的语言。
- CSS(层叠样式表):用于创建使用HTML创建的页面的布局、颜色和整体样式的语言。
- JavaScript:决定页面功能的编程语言。
- HTML、CSS和JavaScript共同决定页面的外观和功能。
入门方法:如果你想学习HTML、JavaScript和CSS,可以考虑报名参加约翰霍普金斯大学的网络开发人员在线课程,如HTML、CSS和JavaScript。你将积累开始网络开发职业生涯所需的基础知识,同时获得简历证书。
框架
框架是一致、高效和准确地开发软件的平台。它们是JavaScript和CSS按照您想要的方式执行所需的工具。对它们有深入的了解对于创建页面结构至关重要。
开发人员工具和软件
像版本控制这样的软件,跟踪和控制源代码中的更改,是至关重要的。它允许您在不重新开始的情况下对代码进行更改。了解如何使用各种软件开发工具是成功职业生涯的基石。
工作场所技能
除了了解驱动网站的技术外,拥有特定的非技术(或软)技能可以使您成为成为前端开发人员的更好人选。以下是一些您需要记住的内容:
- 创造力
- 解决问题的技能
- 书面和口头沟通能力
- 团队合作
- 17 次浏览
可靠性工程师
制造商不断审查其生产流程,以确定降低成本的方法。可靠性工程师提供的专业知识使公司能够更好地预防和了解设备故障的后果。如果你对结合解决问题、商业战略和制造的工程职业感兴趣,你可能会从学习可靠性工程师的角色中受益。在这篇文章中,我们回顾了什么是可靠性工程师,可靠性工程师做什么以及成为可靠性工程师的步骤。
什么是可靠性工程师?
可靠性工程师是一名制造和生产专家,研究设备生命周期并进行分析,以告知企业如何投资和维护资产。可靠性工程师通常在工业环境中工作,但他们的专业知识对任何依赖专业和复杂机械制造产品的企业都很有用。当一家公司生产所依赖的设备出现故障或故障时,后果是昂贵的。可靠性工程师是识别潜在问题并尽可能多地预防问题的专家。由于设备问题很难完全避免,可靠性工程师也会为处理确实发生的故障提供指导。
可靠性工程师是做什么的?
可靠性工程师的目标是避免生产系统出现故障。他们比较设备、单个机械部件和制造工艺,以确定哪种部件组合可以创建最可靠和故障安全的系统。可靠性工程师还评估与设备故障相关的安全风险。
为了防止出现问题,可靠性工程师创建维护计划并分析统计数据,以帮助预测故障可能发生的时间和方式。他们制定了企业用于监测设备健康状况的检查标准和功能测试。以下是可靠性工程师执行的其他职责:
- 初步危险分析:初步危险分析是对生产过程或系统中潜在危险或故障的初步识别。
- 故障模式和影响分析:故障模式和效果分析包括列出系统或设备可能发生故障的方式及其后果。
- 关键性分析:关键性分析确定资产故障对公司生产系统的严重程度。
- 可维修性信息:可维修性信息详细说明了公司维修设备的效率和可靠性。
- 故障树分析:故障树分析通过研究导致系统故障的先前较小规模事件来探索系统故障。
- 事件树分析:事件树分析研究特定事件或故障发生时可能产生的结果。
可靠性工程师和维护工程师之间有什么区别?
可靠性工程师与维护工程师合作,确保设备平稳运行并克服系统中断。然而,可靠性工程师要为设备的整个生命周期做好准备,并专注于问题预防。维修工程师专门处理故障发生后的处理,快速修复和恢复机械的全部功能。这两个角色不断协作,相互提供数据,最终改进维护协议,减少系统故障。
如何成为一名可靠性工程师
如果您有兴趣成为一名可靠性工程师,请采取以下步骤:
1.获得工程学位
大多数雇主要求可靠性工程师候选人具有工程学士学位。如果可能,你可以选择专门学习机械或工业工程。你的工程本科教育为你提供了可靠性工程师用来分析和改进生产过程的数学、技术和基于设计的技能。你可以攻读可靠性工程硕士学位,但大多数雇主并不要求。
2.获得专业经验
可靠性工程师职位通常只需要适度的工作经验。你可以在大学期间或毕业后完成工程实习,开始获得专业经验。否则,找一些工程职位,把你介绍给你喜欢的行业,教你系统分析技能。
3.追求许可
获得执照可以增强潜在雇主对你的专业能力和资格的信心。每个州获得许可证的步骤略有不同,但都要求你通过国家工程和测量考试委员会管理的两次考试,并获得一些专业经验。
获得四年制学位后,你将参加工程基础考试,成为一名在职工程师。大多数州都要求你在参加工程原理与实践考试之前,必须从事四年的工程工作。通过这项考试,你就有资格成为一名持证专业工程师。你所在的州决定了继续教育的要求——比如参加研讨会或研讨会——你必须满足才能获得执照。
4.获得认证
随着越来越多的公司雇佣可靠性工程师,想要进入该领域的专业人士可以获得一些证书。您可能需要以下凭据:
认证可靠性工程师:由美国质量协会授予,该认证适用于通过测试可靠性工程技术专长和分析技能的考试的工程师。
认证维护和可靠性专家:维护和可靠性专业人员协会向在维护实践、预防性和预测性维护、故障排除分析和纠正性维护领域表现出知识的工程师提供此认证。
认证可靠性领导者:资产管理专业人员协会测试工程师在资产状况管理和可靠性领导力方面的知识,同时强调经济繁荣和环境可持续性。
5.探索可靠性工程师职位
任何在购买、维护和修理设备方面进行大量投资的公司都可能需要可靠性工程师的服务。在审查职位空缺时,您最有可能看到的三种类型的可靠性工程师职位是:
制造厂可靠性工程师:制造厂可靠性经理审查企业的设备维护和生产流程,以最大限度地降低系统故障造成的中断风险。
可靠性设计工程师:可靠性设计工程师考虑消费者的角度,以确保企业销售的产品耐用且不太可能失败。他们通过测试和故障模式及影响分析来识别潜在问题,并开发客户可能需要的解决方案。
现场可靠性工程师:现场可靠性工程师帮助公司将多个生产系统集成并自动化为一个统一的流程。他们依靠软件开发专业知识来创建更强大的生产系统。
可靠性工程师工资和工作前景
美国可靠性工程师的平均年薪为97434美元。薪酬可能因地理位置、教育程度和专业经验而异。
劳工统计局没有提供可靠性工程师职称的数据。然而,对于工业工程师的相关职业,该局预测,2019年至2029年间,就业增长率将远高于平均水平10%。该局将这种快速增长归因于一系列依靠工程师来削减成本和提高盈利能力的行业。
- 31 次浏览
后端开发
后端开发人员编写的代码构成网站或应用程序的主干。了解更多关于这个职业领域的信息以及如何开始。
有没有想过网站的幕后会发生什么?确切地说,点击一个按钮是如何将你带到另一个页面的?当你注册免费试用时,你的个人信息会去哪里?
后端开发人员是构建和维护处理数据和在网站上执行操作的机制的专家。与前端开发人员控制你在网站上看到的一切不同,后端开发人员涉及数据存储、安全和其他你看不到的服务器端功能。
自80年代末和90年代以来,互联网改变了人类获取信息的方式,网络发展也在继续发展。它对我们的数字世界至关重要,这意味着网络开发者的需求量很大。幸运的是,任何人都可以学习成为前端、后端或全栈(包括前端和后端)开发人员所需的技术技能。
什么是后端开发?
后端开发意味着开发服务器端软件,它专注于你在网站上看不到的一切。后端开发人员确保网站正确运行,重点关注数据库、后端逻辑、应用程序编程接口(API)、体系结构和服务器。它们使用的代码有助于浏览器与数据库通信、存储、理解和删除数据。
在一个团队中,后端开发人员与前端开发人员、产品经理、主要架构师和网站测试人员合作,构建网站或移动应用程序的结构。后端开发人员必须熟悉多种工具和框架,包括Python、Java和Ruby等语言。它们确保后端快速执行并响应前端用户请求。
后端开发人员与后端工程师
后端开发人员和工程师具有相似的技术技能,但职责不同。后端开发人员就像一位老师,而后端工程师就像一位制定全局战略的校长。后端开发人员倾向于关注整体的较小部分,如应用程序和程序,与团队合作以证明他们的设计方法是可行的。
后端开发人员的任务和职责
后端开发人员需要具备技术专长、分析思维和出色的协作技能。作为后端web开发人员,您应该能够独立工作来设计web基础设施。
以下是许多后端开发人员每天所做的工作:
- 构建和维护网站:后端开发人员的主要职责是使用各种工具、框架和语言来确定如何最好地开发直观、用户友好的原型并将其转化为网站。这需要了解跨平台功能和兼容性。
- 编写高质量的代码:为了生成可持续的web应用程序,开发人员必须编写干净且易于维护的代码。
- 执行质量保证(QA)测试:创建并监督测试时间表,以优化用户界面和体验,确保在各种浏览器和设备上实现最佳显示。
- 评估效率和速度:一旦网站启动并运行,在更新和编辑过程中,开发人员需要评估其性能和可扩展性,并根据需要调整代码。
- 故障排除和调试:能够排除问题并解决问题,同时将其传达给项目经理、利益相关者和QA团队。
- 培训和支持:与客户团队一起维护工作流程,以确保持续的支持,同时为初级开发人员提供领先的培训和指导。
后端开发人员使用什么工具?
Web开发人员使用各种工具来开发、测试和维护Web应用程序。后端开发人员的一些常用工具包括:
- 编程语言:
-
Python
-
PHP
-
Ruby
-
Java
-
C#
-
- 框架:
-
Laravel
-
Django
-
Spring
-
Ruby on Rails
-
Meteor
-
Node.js
-
- 数据库:
-
MongoDB
-
MySQL
-
Oracle
-
- 服务器:
-
Apache
-
NGINX
-
Lighttpd
-
Microsoft IIS
-
后端开发人员的工资和工作前景
根据Glassdoor[1]的数据,截至2024年3月,美国后端网络开发商的基本薪酬中值估计为97977美元。事实上,报告的平均基本工资为156937美元[2]。这可能因您的位置、资历和其他因素而异。
后端开发人员的需求量很大。根据美国劳工统计局(BLS)的数据,2022年至2032年间,网络开发者职位预计将增长25%[3]。
如何成为后端开发人员?
要成为一名网络开发人员,你可以走很多条路。无论你是刚毕业还是希望转行,重要的是要评估你已经拥有哪些可转移的技能,并考虑培养追求后端开发人员角色所需的新技能。
后端开发人员的技术技能
作为后端开发人员,您需要学习某些技术技能来导航开发web或移动应用程序的后端。
- 编程语言:任何后端开发人员都需要精通后端编程语言,如Python、Java和PHP。当与数据库、框架和服务器一起使用时,这些功能使网站发挥作用。Python是最受欢迎的编程语言之一,因为它与人工智能(AI)和机器学习兼容,并且可以很好地编写清晰的逻辑代码。具备前端语言HTML、CSS和JavaScript的基本知识是额外的奖励。
- 框架:框架是后端编程语言的库,有助于构建服务器配置。它们往往与编程语言联系在一起,所以如果你熟悉Python,你也会知道Flask、Django或其他基于Python的框架,等等。
- 数据库和服务器:您需要了解如何从数据库中堆叠和恢复数据,因为后端编程控制对这些信息的访问,包括存储和恢复。MongoDB和MySQL是流行的数据库程序。该数据库存储和组织客户端的数据,以便可以轻松地对其进行排列和恢复,就像您可以使用云存储来存储照片一样。然后,该数据库在服务器上运行,该服务器根据请求提供数据。
- 应用程序接口(API):API是开发应用软件的一系列定义和规则。除了互联网浏览器网站,公司还经常想要一款适用于iOS或Android的移动应用程序。JavaScript等应用程序构建语言的知识将扩大你的工作机会。
- 可访问性和安全许可:你应该发展网络协议和网络安全的知识。了解如何保护数据库和服务器的安全对于您作为后端开发人员的成功至关重要。
后端开发人员的工作技能
除了技术技能外,这些工作技能还将使您能够更高效、有效地与团队成员无缝合作。
- 沟通:后端web开发人员需要彻底理解工程师的愿景才能执行。强大的书面和对话技能将帮助您与团队成员和利益相关者沟通任何想法并解决问题。
- 解决问题和分析思维:在开发网络或移动应用程序时,你需要找到创造性的解决方案,例如调试代码并在不破坏整个网站的情况下对其进行修改。作为一名开发人员,您应该能够分析部分代码工作或不工作的原因,并预测和防止错误。
- 行业知识:对科技行业的全面了解总是有助于跟上整体经济趋势以及语言和平台的更新。要复习,可以查看与网络和应用程序开发相关的博客、论坛、新闻和书籍。
我需要学位才能成为后端开发人员吗?
虽然你不一定需要学位才能从事后端开发人员的职业,但大约69%的网络开发人员获得了学士学位[4]。最常见的学位是计算机科学,尤其是因为后端开发需要挖掘数据和编写抽象算法。攻读软件工程或数据科学学位也是合适的。
- 21 次浏览
程序员
包括编程任务在内的职称在计算机行业和不同的个人中具有不同的含义。以下是值得注意的描述。
- 软件开发人员主要根据规范实现软件并修复错误。其他职责可能包括审查代码更改和测试。为了获得工作所需的技能,他们可能会获得计算机科学或副学士学位,参加编程训练营或自学成才。
- 软件工程师通常负责与开发人员相同的任务,以及更广泛的软件工程责任,包括架构和设计新功能和应用程序,瞄准新平台,管理软件开发生命周期(设计、实现、测试和部署),领导程序员团队,与客户、经理和其他工程师沟通,考虑系统稳定性和质量,以及探索软件开发方法。
- 有时,软件工程师需要拥有软件工程、计算机工程或计算机科学学位。一些国家在法律上要求拥有工程学位才能被称为工程师。
在当今以数字为中心的经济中,计算机程序员的工作至关重要,这就是为什么该领域的职位数量持续增长的原因。
程序员为计算机程序和移动应用程序编写代码。他们还参与维护、调试和故障排除系统和软件,以确保一切顺利运行。
编程技能对许多技术学科来说是必不可少的,但对软件和web开发角色的需求尤其高。根据美国劳工统计局(BLS)的数据,从2022-2032年,网络开发工作岗位预计将增长17%。
如果你正在寻找一份入门级的技术工作,有足够的职业发展和专业化机会,计算机编程可能是你的正确选择。
计算机程序员是做什么的?
在一个典型的日子里,计算机程序员可以参与许多不同的编码项目。日常职责可能包括:
- 为新程序编写和测试代码。计算机程序员与网络和软件开发人员密切合作,为新的移动应用程序或计算机程序编写代码。在某些情况下,程序员可能与网络设计师有类似的角色,创建新软件程序的外观、感觉和功能。编写新代码通常需要大量的尝试和错误。计算机程序员有很强的批判性思维和解决问题的能力,喜欢用逻辑来解决复杂的问题。
- 正在更新现有程序。程序员还为现有软件程序创建和安装更新。更新可能包括错误修复或增强功能以改善用户体验。根据更新的复杂性,这些项目可能需要几天到几个月的时间。
- 识别并更正编码错误。在日常工作中,计算机程序员可能会帮助排除网站或计算机程序中无法正常工作的部分。通常,问题是由代码中的错误引起的,程序员可以帮助快速识别和纠正错误。
- 为不同的操作系统重写程序。通常,程序员必须用不同的语言重写代码,这样程序和应用程序才能与不同的操作系统兼容。例如,Windows和OS X程序的编码不同。一些程序员接受过用SaaS代码编写新应用程序的培训,这种代码可以在两个操作系统中工作。
- 保护程序免受网络安全威胁。许多计算机程序员在网络安全领域工作,帮助识别恶意软件并修复可能受到潜在黑客攻击的软件。此外,程序员可以编写防止安全漏洞和数据泄露的代码。随着网络攻击的数量和严重程度的增加,对信息安全专家的需求持续增加。事实上,劳工统计局预测,到2031年,信息安全分析师的就业人数将增加35%,新增56500个工作岗位。
- 55 次浏览
【程序员】8个迹象表明你是一个了不起的程序员
你是一个好开发者还是一个坏开发者?事实上,我们大多数人都是“普通开发人员”。我也是一个普通的开发者。但我正在努力提高我的知识和技能。
所以,我一直在寻找是什么让开发人员好或坏,以及我们如何了解它。我最近写了一篇关于它的文章。这篇文章是“迹象表明你是一个糟糕的程序员”(你可以在本文底部找到文章的链接)。
今天,我们将讨论优秀和出色的程序员的标志。这篇文章的灵感来自 GitHub 上 Daryll Santos 的一篇长文。我总结并挑选了一些似乎与我相关的迹象。所以让我们进入事实。
优秀程序员的标志
1.先尝试或实验
优秀的程序员不会问资深程序员,而是自己先尝试。它可以帮助他们学习新事物,并为他们将来解决新问题做好准备。
症状:
- 拥有自己的宠物项目
- 遇到问题时考虑替代解决方案。
如何获得这个特质:
- 不要害怕失败。
- 为小实验腾出时间。
- 给自己一点tips,让自己解决问题。
2. 情感脱离代码
让我们开始吧。 Code 不是您的未婚妻或孩子。请不要告诉我这是你的心血结晶!每次听到都觉得恶心。任何从你身体里出来的东西都不是你的孩子。 😛
关键是代码不是你的孩子,你不必在情感上依恋你的代码,也不要在必要的时候改变它。
代码只是字节。改变它或重新使用它,但不要依附于它。优秀的开发人员不会在情感上依附于他们的代码。
症状:
- 愿意放弃数月的工作来采用另一个开发人员的优秀代码。
- 当老板说你的代码需要更新时,不要变得防御。
- 不提交灭有被注释掉的代码。
如何获得这个特质:
- 不时阅读和使用其他人的代码。
- 如果你开始一个新项目,如果你认为你可以做得更好,有时从头开始(大多数时候,你实际上可以)
- 如果你真的依附于你的代码。做你在有毒关系中所做的事情。删除代码,从头开始编写。
3. 热情的修复者
优秀的程序员喜欢修理东西。就像你从其他程序员那里得到一个项目,你发现他/她在某处编码了一些硬编码值。
大多数程序员都会忽略它,但优秀的程序员不会。在一个项目中有很多东西需要修复。他们希望更好地执行每一段代码。
症状:
- 他们不相信规范,也不会深入了解需求。
- 总是在互联网上寻找更好的解决方案。
- 在添加新功能之前,请检查现有功能是否可以重新设计以执行这两项任务或完全替换为更好的方法。
如何获得这个特质:
- 始终尝试了解某种情况下的实际问题。您了解得越多,就越能找到解决方案。许多程序员不了解问题,并在没有策略的情况下开始编码。在中途,他们意识到他们应该放弃代码但不能或不。
- 选择代码的有效版本。
- 如果可用,请使用内置函数。
4. 他们教别人
我从来没有见过一个优秀的开发人员,他们不应该教别人。教学不仅是一种高尚的美德,而且可以帮助人们更好、更深入地理解一个主题。
症状:
- 关于他们的工作或主题的博客。
- 有时会在 StackOverflow 上回答。
- 可能有一个 Youtube 频道。
- 对于其他开发人员来说,评论是多余的。
- 在其他程序员遇到问题时帮助他们。
如何获得这个特质:
- 尝试与同事或工作中的朋友讨论更多问题。
- 如果有人遇到问题并且您知道解决方案,请帮助他们。
- 在测试的基础上开始写博客或创建视频教程。你也可以从那里赚钱。
5. 追求完美
完美和痴迷并不相同,尽管它们非常接近。我已经在这篇文章中谈到了对自己的代码的依恋或痴迷。但完美是不同的。完美主义的开发人员总是专注于性能、架构和其他美丽的事物。
症状:
- 解雇优先于妥协
- 蔑视交货日期
- 较少关注促销和金钱
- 喜欢斯坦利·库布里克 (Stanley Kubrick) 导演的电影😆
如何获得这个特质:
- 为你的工作感到自豪。
- 如果您迷恋程序员,请不时向他/她展示您的代码。 😄
6. 知识饥渴
开发人员可以在压力或赚钱的情况下消耗知识。动机很好。它可以是金钱或名称。但这不应该是恐惧或压力。
以自己的兴趣学习的开发者是最好的。因为消费知识是一门艺术,你不能用压力来战胜饥饿。
症状:
- 可以背诵 C 标准库中的所有 includables
- 蔑视交货日期
- 较少关注促销和金钱
- 喜欢斯坦利·库布里克 (Stanley Kubrick) 导演的电影😆
如何获得这个特质:
- 不时与优秀的程序员交谈。
- 参加研讨会,参加与编程相关的活动。
- 看一些黑客电影😛
7. 用代码思考
一个优秀且充满激情的程序员会变成一个程序,并像程序一样思考。有时他们想澄清一些小事情,并在逻辑上验证一切。
症状:
- 在随意的谈话中,他们最直接的比喻来自于编程结构。
- 在现实生活中的 if-else 情况下争论太多。
- 在实际场景中缺乏常识。 😃
- 《社交网络》是他们最喜欢的电影。
如何获得这个特质:
- 不要死记硬背,要理解它们。
- 学习一些数据结构和算法,从解决方案的根源去理解。
8. 入乡随俗
有一次我的同事不得不(他是这么认为的!)辞职,因为我们的老板给了他一个新项目,要求他学习 Flutter,但他是一名原生 android 开发人员。
我一直相信程序员是关于逻辑、结构和解决问题的。语言和框架只是工具,但程序员不止于此。
症状:
- 不要卷入“语言战争”。
- 不要太喜欢一个框架。
- 了解不止一种语言/框架。
- 喜欢建筑不仅仅是解决问题。
如何获得这个特质:
- 学会逻辑思考,而不是盲目地解决任何问题。
- 爱的问题。
- 不要传递需要一点努力才能解决的问题。
结论
除了这些迹象之外,还有很多迹象表明成为优秀或出色的程序员。
有一种流行的理论认为,如果你想成为某件事的大师,你必须花费 10,000 小时来学习、练习和工作。
这意味着擅长某事不是百米比赛。这是一场马拉松。你必须要有耐心和热情。但你需要做的第一件事就是尝试。你必须尝试,你必须知道如何变得擅长。
但是知道如何擅长某事很方便,因为它会为您节省大量时间。
原文:https://javascript.plainenglish.io/8-signs-that-you-are-a-fantastic-pro…
本文:
- 15 次浏览
软件工程师
- 22 次浏览
【软件工程师】如何成为 10 倍软件工程师
初级工程师常犯的 3 个错误。 你在做吗?
10x engineers are fact. Bigfoot is not.
最好的工程师比普通工程师好 10 倍。 就像一支单人军队一样,他们自己提供的价值比一支初级工程师团队加起来的速度更快。
但那怎么可能呢? 不是越多越好吗?
在我担任 Netflix 和 Amazon 的工程主管期间,我曾与两位刚毕业的实习生一起工作,一直到首席工程师(亚马逊的 L7 及以上),我可以证明确实存在 10 倍工程师。 我也可以自信地说他们不是:
- 打字速度快 10 倍
- 工作 10 倍的时间
- 编写 10 倍以上的代码
事实上,10 倍工程师可能会以一半的速度打字,一半的工作量,并花更多的时间删除代码而不是编写代码。
10x engineers tend to be better at LeetCode too, but it’s not what sets them apart.
最好的工程师和初级工程师之间的区别归结为心态问题。 他们使用正确的工具,提出正确的问题,并且知道如何确定优先级。 即使是非技术人员也可以开发的与编码无关的技能。
最好的工程师与普通工程师的区别在于(令人惊讶的是)非技术技能。
在本文中,我讨论了初级工程师常犯的 3 个常见错误,以及高级工程师如何以不同的方式解决相同的问题——导致截然不同的结果。
1. 对工具的研究不够
亚伯拉罕·林肯曾经说过:“如果我有 8 个小时砍树,我会花 7 个小时磨斧头。”
初级工程师将花费 8 个小时用钝斧砍伐。 高级工程师花了一个小时挑选合适的电锯。
5分钟砍树。
- Honest Abe would’ve made a great engineer.
我看到初级工程师犯的一个常见错误是他们一头扎进编码中。 他们只坚持使用他们知道的工具,并尝试使其适应各种情况。
如果一个普通工程师只知道如何使用锤子,他们也会用它来挖洞。🙄
他们几乎没有花时间研究其他替代方案——或者是否有可能完成编写 0 代码的工作!
使用正确的工具是工作数周与在 10 分钟内完成任务之间的区别。 这就是产生 10 倍差异的地方。
示例任务:建立网站
最近,我有幸与一位初级工程师打赌谁可以更快地建立个人网站。
新毕业生用了 2 周时间,写了 1000 多行代码。 两周后她甚至没有完成!
我花了 1 天时间,写了 0 行代码,甚至没有流汗。 你可以在这里看到我主页的结果。
- Notion page + super.so for deployments = michaellin.io
当我请初级工程师解释她是如何处理这个问题时,她为什么花了这么长时间才完成的原因变得很清楚:
“嗯,我在学校学会了如何制作 React 应用程序,所以我只是用它从头开始创建了一个网站。但是很难让图像和 CSS 正确。而且我也不知道如何部署它。所以我想我必须在 AWS 上编写一个自定义部署脚本,但对控制台有点困惑。微型实例和大型实例又有什么区别?”
请注意这位工程师的方法如何遗漏了几个关键点。首先,她从未讨论过:
- 要求——没有提及搜索引擎优化、评论或预建模板是否重要。
- 替代工具——他们只知道 React + AWS 并坚持使用它。
想象一下尝试从头开始重建评论功能。或确保 SEO 正常工作。这些功能中的每一个都是团队正确实施的工作价值。难怪她没有说完!
2.不寻求帮助
这是一个非常简单的问题,很容易修复,但是浪费了太多时间,我不得不提一下。
一些初级工程师有这样的误解,认为高级工程师就像一个孤独的天才。如果他们坚持解决问题,他们最终会得到解决方案。
10x engineers are not “lone geniuses”, but need to ask for help too!
但这是一种相当幼稚的思维方式。很多时候,不同之处在于他们缺少上下文——他们不可能自己推断出的信息。
因此,他们不只是寻求帮助,而是在代码库上苦苦挣扎,一遍又一遍地查看相同的代码行,当向队友提出 5 分钟的问题会立即解决问题时!
一个知道如何寻求帮助的经验不足的工程师总是会击败一个从不寻求帮助的更有才华的工程师。
有时很明显,需要额外的上下文才能继续。例如,通常不清楚:
- 为什么代码库的结构是这样的
- 从另一个团队调用哪个 API
- 部署如何工作
这些是上下文情况的示例,在这些情况下,您最好寻求帮助而不是进一步挖掘代码库。不要害怕寻求帮助!
3. 没有提供商业价值
10x 工程师首先是投资者。
他们明白他们的工作是一项投资——他们的投资回报必须大大超过所花费时间的成本。他们了解机会成本:花费在构建一个功能上的时间意味着没有花费在构建另一个功能上的时间。
工程师必须权衡机会成本——“在你可以构建的所有功能中——这个功能是否最能利用你的时间?”
他们明白代码是达到目的的一种手段——业务目的。如果他们可以在没有代码的情况下实现他们的目标,那就更好了!编写的工作更少,维护的代码也更少——这是一个双赢的局面。
10x engineers are investors. Like Warren Buffet.
我看到很多新工程师忽略了这些业务目标。一些例子:
- “这项新技术真的很酷。让我们花 5 天时间将其集成到网站中”(与产品不对齐)
- “呃,我不喜欢代码的结构方式。让我们花在下一个 sprint 重构上”(机会成本——可以把这段时间花在构建创收功能上)
- “这个平台太老了——让我们迁移到一个新平台吧”(迁移是否可以帮助您显着加快移动速度,还是只是一种渐进式改进?)
正是这个数学导致了 10 倍的工程师。如果一个初级工程师花 2 个小时来处理一个不会增加收入的复杂功能,但一个高级工程师花 1 个小时来完成一个简单的副本更改,它是收入的 5 倍,我们的生产力提高了 10 倍:
1/2 的时间花在产生 5 倍收入 = 10 倍交付价值的功能上。
最后的想法
非技术技能(“软技能”)是最强工程师和最弱工程师之间的差异因素。如果工程师避免了上述所有错误,但很难使用,那么他们的 10 倍技能就会失效。
Netflix 文化平台的摘录。
你努力成为一名工程师。 工程比不做一个混蛋要难得多。 不要因为你的自负而让你的努力付诸东流。 永远记住:
工程师必须首先交付价值。
想要更多职业建议?
我是迈克尔,前 Netflix 工程主管,后来成为企业家。 6 个月前,我辞去了 Netflix 的一份梦想工作,为自己工作。 我写关于工程、职业建议和初创公司的文章。
原文:https://medium.com/@_michaellin/how-to-be-a-10x-engineer-fdac2a5a1bd5
- 21 次浏览
【软件工程师】收入最高的 10 种编程语言
介绍
Gartner 对 2022 年董事会调查的看法表明,数字技术计划是 2022 年和 2023 年的首要战略业务优先事项。作为软件开发的基础构建块,许多最现代的编程语言都有可用于加速的框架和工具包发展,进而推动数字化转型。
各行各业的组织都在寻找最佳技术、架构和实践来加速数字业务,因此了解现代化软件开发是数字化转型的关键至关重要。
应用程序开发和现代化计划有多种编程语言可供选择。高级组织通常能够更好地支持多种编程语言,但现实情况是大多数组织没有并且必须为大部分开发工作选择 3 到 4 种编程语言。
选择最好的编程语言
团队在组织内为一项任务使用不同的顶级编程语言并非闻所未闻。但是,使用过多的编程语言会造成长期维护风险和技能短缺。
要为您选择正确的编程语言,建议您:
- 在符合语言优势和/或有能力获得所需技能集并实施所需框架、工具和平台的用例中引入新的编程语言。
- 选择 3-4 种互补的编程语言来支持您的项目,方法是确定您的组织中最常用的编程语言并确认这些是您的市场中可供雇用的技能组合。
现在,为你和你的职业选择合适的编程语言很大程度上取决于什么会给你未来的发展和职业发展带来更大的结果。做出该决定的一个很好的参数是平均工资,以了解您的知识的需求程度,并为您提供未来发展的晴雨表。
接下来,我们将深入探讨收入最高的 10 种编程语言,以便您了解 2022 年和未来几年,哪种编程语言是最值得学习的编程语言,以及它如何保持一致与您的战略目标。
收入最高的 10 种编程语言
Java、JavaScript、C# 和 Python 仍然是企业现代开发的主要通用编程语言。尽管不同编程语言的技能组合正在增长,但学习曲线就在那里,这意味着投资和培训可能会成为开发人员的潜在阻力,因为他们没有明确的前景或长期价值证明。
为了您的职业发展和职业发展,明智的做法是选择具有最光明未来并且准备为您的知识付出最多的语言。如前所述,虽然 Java、Python 和其他语言仍然是一些最流行的编程语言,但这并不一定使它们成为收入最高的语言。
例如,The Next Web 研究表明,在 2021 年,收入最高的编程语言是 Rust。 Rust 语言的采用和流行度一直在稳步增长,根据去年的 StackOverflow 开发人员调查,Rust 是开发人员的首选。
开发人员喜欢 Rust,因为它超级快速且内存效率高,这是帮助它轻松与其他语言集成、提高性能、保证线程安全的关键特性,而且它的大量文档也没有什么坏处。使其成为收入最高的编程语言之一的另一个因素是 Rust 开发人员的数量非常少。
由于有许多数字浮动,在这个列表中,我们浓缩了一些对收入最高的编程语言的估计:
- Rust — 最高平均工资:超过 18 万美元
- Go——最高平均工资:超过 17.9 万美元
- Scala——最高平均工资:超过 17.8 万美元
- Python——最高平均工资:超过 15 万美元
- Java——最高平均工资:超过 13 万美元
- Swift——最高平均工资:超过 12.5 万美元
- C#——最高平均工资:超过 $125K
- C++——最高平均工资:超过 $125K
- JavaScript — 最高平均工资:超过 125,000 美元
- Ruby——最高平均工资——超过 12.5 万美元
值得一提的包括 Clojure、F#、Elixir、Erlang、Perl、Kotlin、Haskell、Typescript、Swift 和 Solidity 语言。总而言之,我们可以预期 Python 语言将继续在需求和薪酬方面表现出主导地位。
无论您是游戏新手还是经验丰富的开发人员,学习编程语言绝不是一个糟糕的决定,并且是提升您的编程生涯的最快方法之一。
在你的简历中使用各种新的或成熟的编程语言来加强你的专业形象是一张让招聘人员和招聘经理立即注意到的快捷票。
原文:https://blog.hireterra.com/top-10-highest-paying-programming-languages-…
- 32 次浏览
软件质量保证工程师
- 21 次浏览