赞
踩
银河麒麟操作系统开发
对于许多人来说,开始软件开发似乎太困难且繁琐的任务。 实际上,您只需要一台计算机并且对软件开发非常感兴趣即可上手。 在这个故事中,我将介绍软件开发的所有基本知识,并介绍一些您以前可能没有想到的主题。 尽管这个故事不会为您做最艰苦的工作,但它仍然有望将您踢到足以开始的脚步。
系好安全带,然后走吧!
对于特别是初级开发人员,此故事中可能会有一些您不理解的单词和缩写。 我已经收集了一些此列表,因此,如果您发现一个不理解的单词,可以随时返回本章。
您可能已经知道,有多种不同的编程语言。 最难的部分是选择应该从哪开始。 我会看到选择第一种编程语言可以是以下各项的总和或单个值:
想想您想通过编程技能实现什么? 是要找到工作,打动您的朋友,建立机器人,建立自己的网站还是其他? 接下来,我收集了您可能感兴趣的一些领域,以及哪些编程语言主要用于这些方面:
该列表并不完整,但是可以使您了解可以使用哪种搜索词来寻找最佳语言。
现在您可能已经知道在开发的第一步要开始使用哪种语言,我不得不让您失望,并告诉您实际上这不是您应该训练的语言。 编程语言是一种语言。 这是一种像任何自然语言一样表达自己的方式。 尽管了解一种编程语言可以完成一项任务,但不一定会使您的思维定势在所需位置。 考虑编程时,至少涉及以下几个方面:
开发人员所需的大多数技能根本与编程语言无关。 语言使人们有可能去做事情,而软件开发人员却可以去做。 永远不要低估缺乏编程语言技能的开发人员-他(她)可能比您想象的要了解更多。
我需要什么程序才能开始编写? 实际上,这取决于您选择的许多编程语言。 大多数语言,例如C,C ++,Go和Java,都需要一些编译器来构建机器可执行代码。 某些语言(例如Python,PHP和其他脚本语言)在运行之前不需要进行编译,但仍然需要其下的框架才能产生一些输出。
互联网上有大量针对所有主要语言的教程,其中包含有关如何在不同操作系统上为不同语言设置构建环境的信息。
对我来说,一直很清楚所有开发都是在Linux平台上完成的。 有人可能会对此表示怀疑,并使用Windows或Mac,但是都是一样的-您可以在任何平台上进行软件开发。 如果您不熟悉Linux,我强烈建议您尝试一些简单的发行版(例如Ubuntu)进行软件开发。 您甚至可以将其安装在名为VirtualBox的工具上,然后在Windows / Mac中运行它。 为此,再次从Internet搜索教程。
另一个重要的发现是您选择的文本编辑器。 您可以选择很多文本编辑器和IDE,以下是最常用的编辑器和列表:
除了列出的之外,还有来自JetBrains等的大量商业编辑器,而不会忘记每个人都喜欢的Microsoft Visual Studio 。 我建议您至少尝试2–3个编辑器,然后看看最适合您的感觉。
版本控制是每个开发人员在其工具箱中必须拥有的必备工具。 版本控制用于跟踪不同贡献者对源文件的更改。 如果您与其他人一起工作,这是必须具备的,并且如果您独自开发,它也会有很大帮助。
最常用的两个版本控制系统是Git和Subversion 。 尽管Git如今越来越受欢迎,但它可能是您迟早会喜欢Subversion。 我建议您至少学习如何使用Git和Subversion的一些基础知识。 有真棒在线教程提供的Git 这里这样检查出来。
当某人开始学习编程时,他们通常从编写输出著名词:“ Hello world”的程序开始。 实际上,有一个网站可以在https://helloworldcollection.github.io上找到使用500多种不同编程语言进行操作的示例,如果您有兴趣的话。
我建议您从简单的“ Hello world”程序开始,以完成任务。 特别是如果您的语言选择需要编译,则可能需要一段时间才能了解如何构建和运行它。
整理好所有可以实际从程序中输出的内容后,您应该为第一个实际程序想到一个主意。 它可能只是解析输入文本或小型游戏的简单工具。 开始您最感兴趣的事情。
在开始项目之前,建议您为项目创建存储库,例如GitHub 。 GitHub是一项在线服务,您可以在其中托管您的Git项目,为其他项目做贡献以及与其他开发人员进行协作。 用户界面非常聪明,您可以轻松找到版本历史记录和对项目所做的更改。 如果您不愿意将代码发布给公众,则仍应使用该项目的版本控制,例如本地git存储库。
另外,您可能需要确保您的程序能够按预期工作。 我建议您查看针对所选语言的可用测试框架,例如googletest for C ++或Codeception for PHP。 通过测试,您可以证明功能并防止代码中的进一步缺陷。 测试真的很重要,尤其是当您的软件不断增长并进行更多抽象时。 同样,所有现代软件公司都在某些测试框架上进行自动测试,因此至少对其中一些有所了解对您的经验也有好处。
开始使用软件时,最关键的事情之一就是寻求帮助。 每个开发人员都会不时碰壁 ,只是无法自己解决方案。 信息的最重要来源是程序员程序员-您的同事,学校朋友甚至您的家人。 您应该记住,没有愚蠢的问题,只有愚蠢的答案。 这也适用于您询问有关软件开发的问题。
另外,您也不应该忘记为程序员提供的所有在线服务,例如:
除了刚开始的项目,您还应该在其他方法上练习软件开发。 很少有(专门用于在线服务)(还有在线服务)。 仅提及其中的几个: HackerRank和Codility 。 这些服务使您可以完成各种困难的编程挑战。 一些公司实际上使用这些服务来预选职位空缺,这就是为什么它们也是未来求职的好习惯。
学习新事物的一种好方法是重构自己的代码。 或者,如果您有胆量,请其他人编写代码。 提高性能,优化内存使用或简化复杂性可以教会您许多新技术和编程语言功能。 您可能要考虑在GitHub中添加一些开源软件,或者邀请您的朋友来处理您自己的项目。 通常,最好的学习方法是阅读和理解他人编写的代码。
另外,您可能想参加一些培训或去学校学习软件开发。 这可能会帮助您入门,但不幸的是,它不会完成繁重的工作。 考虑到您的未来职业生涯,大多数教学仅涉及软件开发的内容或侧重于完全错误的事情。 从个人经验来看,只有那些在业余时间(而不是在学校)上进行软件开发的人才真正将其发展为职业。
您可能需要考虑阅读一些书籍:
如果您还有更多好书,请在评论中让我知道!
无论您做什么,都没有学习编程的捷径。 一遍又一遍地练习,提问和创造事物-这是您到达自己想去的唯一途径。 我向您保证,它将最终归还。
由于我不是图书作家(至少现在还不是),所以这只是表面上的一个划痕。 如果您想从我这里了解更多信息,请在评论中告诉我-我什至可以为此写第二部分。 也欢迎所有评论和改进意见。 和往常一样:感谢您的宝贵时间。
我是Heikki Hellgren,是Elektrobit Automotive的软件开发人员和技术爱好者。 我的兴趣是软件构建,工具,自动测试以及AI和自动驾驶等所有新奇事物。 您可以在Medium和Twitter上关注我。 您也可以查看我的网站以获取更多信息。
翻译自: https://hackernoon.com/junior-developers-guide-to-galaxy-8c8e5108f495
银河麒麟操作系统开发
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。