学习这些东西是一个挑战,但非常值得。这是可以让你远远超过同龄人的技能之一。 软件开发人员的大多数人都在这方面设备不足。
如果你想通过微软或谷歌等公司的面试, 你肯定需要掌握这个技能。
书籍和文章推荐:
<<算法(第4版)>>
开发平台及相关技术
您应该对至少一个开发平台以及随之而来的相关技术或框架有一些经验和掌握。
平台是什么意思?
嗯, 通常它意味着操作系统(OS),但它也可以应用于其他类似于操作系统的抽象。
例如,您可能是专注于Mac或Windows操作系统的Mac开发人员或Windows开发人员,但您也可以是专注于特定Web平台的Web开发人员。
我不想将其归结为关于平台究竟是什么的讨论 - 不同的人会有不同的意见 - 但为了讨论的目的, 我将把平台定义为您开发的特定环境,它有自己的生态系统和特殊性。
再一次,这是另一个我不认为你 选择的东西如此重要的东西,就像你选择的东西一样。
公司通常雇用开发人员来开发特定的平台或技术。
如果您具有该特定平台的专业知识,那么作为iOS开发人员获得工作将更容易。
这意味着熟悉平台本身,以及程序员在为该平台开发时通常使用的开发工具,惯用模式和通用框架。
您可能认为编程语言的选择决定了平台,但实际上很少这样。
今天拿C#。您可以成为C#开发人员并为Windows,Mac,iOS,Android,Linux甚至嵌入式系统编写代码。
所以不要只选择一种语言; 选择一个平台。
框架或技术栈除了学习特定的编程语言和平台之外,我还强烈建议学习一个框架,或者更好的是,一个完整的开发堆栈。
什么是框架?
什么是技术栈?
框架只是一组用于在特定平台或多个平台上开发代码的库。它通常使该平台上的常见编程任务更容易。
回到C#示例。大多数C#开发人员使用.NET Framework编写C#应用程序。.NET Framework由许多库和类组成,这些库和类允许C#开发人员在更高的抽象级别工作,因为他不必在每次想要做某事时完全重新发明轮子。
例如,.NET Framework的一部分包含用于处理图像的代码。这段代码从头开始编写起来非常困难,因此框架对于编写需要以某种方式操作图像的代码的C#开发人员来说是一个巨大的好处。
技术栈有点不同。 技术栈是一组技术,通常包括框架,它们通常一起用于创建完整的应用程序。
MongoDB是一种数据库技术。
Express.js是一个用于创建Web应用程序的Node.js框架。
AngularJS是一个前端JavaScript框架,用于为Web应用程序创建用户界面。
最后,Node.js是一个用于在JavaScript中开发基于Web的应用程序的运行时环境。
技术栈使创建应用程序变得更容易, 因为它们提供了许多开发人员用来开发应用程序的通用范例,因此可以轻松地共享知识,并且可以确保一组特定的技术可以协同工作。
学习技术栈可能非常有价值,因为这意味着您拥有开发完整应用程序所需的所有技能。许多拥有使用特定技术栈开发的应用程序的公司将寻找熟悉该技术栈并可以立即运行的软件开发人员。
基础数据库知识