目前,互联网上充斥着有关“2021年最热门的10项工作技术”的文章,建议您应该了解机器学习、人工智能、网络安全、区块链,虚拟现实,全栈开发和刚刚找到工作。这些类型的文章,就其本质而言,对于希望跳入软件开发世界的人们来说是令人沮丧的,因为他们坚持认为您必须了解每一种给定的技术才能相关。事实上,没有开发者是独角兽,所以他们在上面列出的每个领域都表现出色。这些文章进一步误导了寻求初级开发人员职位的人。如果您查看招聘广告,就会发现2021年成为初级软件开发人员的技能要求比首次尝试自己编写整个AI或网络安全系统的技能要求要普遍得多。因此,我觉得有必要保留记录。我搜索了招聘广告,因此您不必搜索。在研究了数百个招聘广告后,我整理了一份清单,列出了雇主在2021年实际寻找入门级软件开发人员职位时最需要的七种技能。1、面向对象的编程语言是Java、C#还是C++都无所谓。很少能找到不需要一定的面向对象编程(OOP)语言知识的职位发布。这也是设计使然。OOP语言之所以有用,有几个原因。首先,它们是模块化的。这意味着,例如,当您看到给定对象出现问题时,您知道问题源于特定类(这称为抽象,是OOP的基本支柱之一)。这在调试代码或向代码添加新功能时很有用。不仅如此,将代码封装到对象中可确保在让其余代码自行完成工作的同时,可以执行每一项功能。其次,OOP语言的主要原则之一是它们倾向于继承。继承是扩展类的功能以消除冗余代码的现象。换句话说,代码可以重用而不必多次编写。例如,您可以为汽车、飞机和火车创建单独的类别。对于每个类别,您需要定义其范围、油耗和承载能力。但是,您可以将各个类(汽车、飞机和火车)转换为派生类,而不是单独对每个类进行编码。这些派生类将属于一个基类(运输),该基类将规定每个类的属性(范围、油耗、承载能力)。这样,可以重用部分代码。此外,可以更改派生类的各个属性,而不会覆盖或影响它们所属的基类。最后,OOP语言具有多态性(有时称为覆盖或重载)。多态性是对象具有多种形式的能力。它与继承有关,因为继承允许类从其他类继承特性。继承之后,多态性使用继承的特性来执行不同的任务。换句话说,可以使用多态性以多种不同方式执行单个操作。那么,您应该学习哪种OOP语言?雇主寻找的热门语言是C#、Java和C++。你学哪一个取决于你。一旦你了解了一种语言的概念和用法,你就可以轻松地选择另一种语言,只需在语法上做一些改变。您选择的语言可能取决于您所在地的行业内流行的语言。2.关系数据库——SQL世界运行于数据之上,所有软件都涉及某种数据。数据库使软件成为一个动态的、多方面的应用程序,可以执行许多任务,而不必保持一个功能很少的一维、一次性程序。因此,只有了解如何使用数据库中的数据和数据库本身才有意义。根据手头的任务,公司可以选择使用关系数据库或非关系数据库。关系数据库是包含使用特定模式的数据的结构化表,该模式在输入任何数据之前确定。这些特定的数据结构特别适合交易数据(例如,如果您正在构建电子商务平台),并且是处理结构良好的数据的软件的理想解决方案。行业中可能遇到的关系数据库示例包括PostgreSQL、MySQL、MSSQLServer和SQLite。非关系数据库以半结构化格式存储数据。数据存储在单独的JSON文件中,而不是严格的、相互关联的表中。这样做有缺点,包括需要实现的处理代码量增加。然而,这些类型的数据库价格低廉且难以维护。非关系数据库的示例包括MongoDB(可能是迄今为止最流行的)、DynamoDB、Elasticsearch和Redis。根据我的研究,超过一半的工作分析都在寻找具有使用关系数据库经验的初级开发人员。从个人经验来看,我总是建议大家先学习关系型数据库,因为它的特殊性。一旦确定了关系数据库,如果需要的话,非关系数据库就轻而易举了。3.RESTAPIAPI改变了软件的开发方式,现在经常成为许多公司日常开发过程的一部分。API(应用程序编程接口)是公司开放其应用程序功能以利用来自第三方开发人员、业务合作伙伴和内部部门的数据来创造便利并流入日常流程的方式。API已被用于改善工作场所的协作、创新业务解决方案、货币化货币以及增加数据和服务器操作的安全性。API的一些常见用途包括通用登录、第三方支付处理、谷歌地图和旅行预订比较。虽然初级开发人员不需要了解API是如何实现的(因为它通常对每个公司都是独一无二的),但了解为什么以及如何使用API通常很重要。API是一组规则,用于定义计算机和应用程序如何相互通信。换句话说,它们是位于应用程序和Web服务器之间并在两层之间运行的中介或翻译器。作为初级开发人员,您可能需要帮助高级开发人员构建或实施API。4.敏捷/Scrum软件开发方法论敏捷和Scrum软件开发方法论是两种非常流行的软件开发方法论,大多数公司都采用这两种(有时两种)方法论中的一种。敏捷软件开发方法侧重于软件开发生命周期中开发和测试的连续迭代。开发和测试同时进行,并依赖于所有相关方的稳定反馈。敏捷方法非常重视团队成员之间的日常面对面交流,并鼓励逐步完成的简单软件开发过程。相比之下,Scrum软件开发方法侧重于在尽可能短的时间内生成可交付成果。当知道需求会在项目的整个生命周期中发生变化,而且通常在项目开始时甚至不知道时,这种方法很有用。Scrum会议分为项目冲刺,其中每个“冲刺”都专注于准备特定的可交付成果。在每个冲刺结束时,都会交付软件以供考虑和反馈。Scrum方法更侧重于通过日常会议营造自组织的团队氛围。最后,Scrum方法论对软件开发过程中的创新和实验更加开放。虽然运营方法的选择取决于每个公司(通常是每个部门或团队),但熟悉每个公司的运作方式并不是一个坏主意。5.基于云的环境(AWS、Azure等)如今,很少有公司不将其部分系统托管在云端。云计算彻底改变了计算服务,现在,开发人员使用众多云计算服务(AWS、Azure、IBMCloud、GoogleCloud)中的一种已成为主流。云计算为公司带来了许多好处,包括降低基础架构成本、增强安全措施以保护数据以及增强可靠性,从而使灾难恢复成为一个简单且成本较低的过程。作为开发人员,您可能会在创建云原生应用、测试和构建软件、存储和备份数据、分析数据集以及向客户交付软件的过程中遇到和使用云计算服务。6.前端技术(HTML、CSS、JavaScript等)十分之九的招聘广告都需要了解一些前端技术。具体来说,雇主正在寻找具有HTML、CSS、vanillaJavaScript和现代JavaScript框架(包括Angular、React、Vue和Ember)经验的候选人。无论您是将搜索重点放在严格的前端还是后端软件开发工作上,一点前端魔法都可以解决问题。在发展史上,没有人说过他们后悔学了一点HTML、CSS或JavaScript。这三种“语言”(我会说简单,因为HTML和CSS都不是编程语言)易于学习,一些快速教程足以让您获得处理所有小任务所需的经验。简而言之,当高级开发人员需要您将按钮的颜色从红色更改为蓝色时,拥有技能而不需要技能总比毫无头绪地悬而未决要好。7.Linux程序员和Linux就像花生酱和果冻一样协同工作,这反映在它在软件开发公司中的突出使用。与Windows和iOS相比,Linux具有许多优势,使其成为一个简单的选择,包括开源、非常稳定(不易受到恶意软件和病毒的影响)、高度可配置、需要较少的硬件以及完全免费。由于它在开发社区中很受欢迎,初级开发人员至少应该对环境有一些了解,这样他们才能开始工作。最后的想法对于初级软件开发人员来说,我缺少的最容易获得的“技能”之一是大学认证。十分之九的雇主都在寻找拥有学士学位的人。在剩下的10%的时间里,他们还接受副学士学位或大学证书。不幸的是,您真的必须找到愿意雇用自学成才的开发人员的雇主。但如果这就是你,那就没有理由气馁。此外,这不是放弃只寻找受过教育的开发人员的职位的理由。仅仅因为有人上过大学并不意味着他们一定是有能力的开发人员。不仅如此,上面列出的所有技能都可以通过YouTube、freeCodeCamp、Codecademy和许多其他免费资源自行教授。所以在你尝试之前不要低估自己。通过关注公司的真正需求,您可以使自己从其他初级开发人员中脱颖而出。为他们会问你的雇主做好准备,这也表明你已经完成了功课,并准备好在他们雇用你时开始。通过使用这些技巧来填写您的简历,您可以确保您随时准备好满足就业市场的需求。
