软件开发如何开始学习?

作者&投稿:卜佩 (若有异议请与网页底部的电邮联系)
软件开发如何开始学习?~

1、首先,如果可以的话不建议自己一个人学习的方式,有钱还是要去报一个培训班。有老师指导可以快很多。

2、如果经济条件不够,可以从网上找一套视频资料。现在网络上资源共享做的不错,可以从自学网找。

3、身边看一下是否有做开发的同事或者朋友,请他们给你指点。让他们告诉你重点学习哪些知识,这样可以提升效率。

4、如果自己喜欢读书,可以不看视频,采用读书的方式自学,只是这样的话效率可能会很慢。但学出来效果会很好。

5、在自学的过程中要多动手,自己去跟随案例敲代码,只有多动手才会进步的快。

6、给自己指定一套学习时间表,每天按照规定的时间养成自己学习的好习惯。

7、培养自己对软件开发的兴趣,兴趣是最好的老师。兴趣有了,一切的学习都将变得主动,会起到事半功倍的作用

1、计算机基础

软件开发的专业方向有很多,比如Web开发、游戏开发、大数据开发等等,不管是哪个方向,都需要掌握一定的计算机基础知识,因此,学习时,可以从这方面入手,学习计算机原理、网络安全、TCP/IP协议、计算机网络等等理论知识。

想学软件开发怎么入手

2、编程语言

学习软件开发也可以从编程语言入手,不同的软件开发方向需要学习的语言有所不同,比如Web开发方向,Web前端开发可以从HTML、CSS以及JavaScript等语言入手,Web后端开发可以从Java、Python等语言入手;游戏开发方向需要结合不同的游戏引擎进行学习,U3D引擎开发可以从C#语言入手,UE4引擎开发可以从C/C++语言入手;大数据开发方向,则可以从Python语言学习入手。

首先一点,那就是你需要学习很多东西才能成为软件开发人员。

不能详尽说明作为软件开发者你可能需要掌握的所有技术技能,但是我会列出最关键的一些技术技能。
选择编程语言,这是最重要的。前端开发,是现如今最热门的开发岗位,高级的前端开发工程师,在企业里面是非常欠缺的。成为前端开发工程师,第一步应该是学习HTML/CSS/JavaScript,这是基础,也是根本,JavaScript是根本里面的根本,叫根深蒂固。
许多新手程序员会试图一次性或在第一份工作之前学习几种编程语言,以便于有备无患。
虽然我认为你最终应该学会一种以上编程语言,但我不建议提前这样做,因为这只会导致混乱,并且会分散你需要学习的其他技能的精力。
相反,我建议你应该深入研究,重点学习单一编程语言的来龙去脉,这样你才能对用这种编码语言来写代码信心十足。
构造代码
在学习了一门编程语言之后——或者最好是在学习的同时——我坚信,你需要知道的下一件事就是如何正确地构造你的代码。
我所说的构造代码是什么意思呢?
我的意思是,要写出好的,清晰的,易于理解的代码,不需要大量注释,因为代码本身就是一种表达方式。
很多软件开发者在他们整个职业生涯都不曾去学习这个技能,这是不幸的,因为这是我——以及其他许多人——判断一个软件开发人员技术和能力的主要方式。
良好的代码结构展示了对这种技艺的热衷,而不仅仅是为了完成工作。
构建代码是软件开发真正的艺术部分,但它也是至关重要的,因为你和你的同事得花费相当多的时间来维护现有的代码,而不是编写新的代码。
具体应该如何正确地组织代码我就不说了,因为我已经给出了一个很好的资源,但是要努力学习如何从一开始就写出好的、干净的代码,而不是事后学习这个技能。
我只能保证,即使你是个新手,如果你可以写出好的、干净又简洁的、易懂的,本身就可以表达意思的代码,那么任何面试官看到你的代码都会觉得你是一个有经验的专业人士。
并且在一定程度上,或者至少在这条道路上,因为你会将这个职业当作一种专业,而不是一份工作。
面向对象的设计
这有争议的,特别是如果你正在学习的编程语言并不面向对象,但是有大量的软件开发世界会按照面向对象设计的思维思考,所以你需要确保你了解它。
面向对象的设计是一种将复杂程序设计分解为单独的类或对象(类的实例)的方法,其中封装功能且具有特定的角色和责任。
在软件开发中,我们总是试图管理复杂性。
从对象的角度思考可以帮助我们做到这一点,因为它能让我们从一堆交互组件中定义并设计一个复杂的系统,而不是作为一个整体的试图解决整个复杂性。
现在的编程世界有着大量的函数式编程语言,但你在软件开发中找到的最流行的语言和模式,仍然深受面向对象设计和分析的影响。
你应该好好理解什么是类,继承的不同类型——何时使用它们——还有理解像多态性和封装等术语。
算法和数据结构
如果你上传统院校学习并想获得计算机科学学位的话,那么这是一个很大的考点。
算法是解决各种计算机科学/编程问题的常用方法。
例如,有若干常见的在程序上用于排序的算法。每一种排序算法都有一系列关于速度,内存大小要求,以及数据理想类型的不同属性。
计算机科学领域有很多这样的算法,并且理解如何变化这些算法来解决你可能遇到的棘手问题也很重要,当你解决现实编程问题的时候。
通常情况下,擅长这些算法可以让一个开发人员在1个小时之内就能解决可能需要另一个开发人员几天时间才能搞清楚的问题。
除非你熟悉和擅长算法,否则你甚至不知道已经有了优雅的解决方案在那里。因此,仅仅只为这个原因,我认为这也是一个值得掌握的宝贵技能。
数据结构也是如此,并且可以与算法结合使用。
有几个所有软件开发者都应该熟悉数据结构中的,包括:
数组或向量
链表
堆栈
队列

哈希
集合
通过熟练掌握数据结构和算法,你可以轻松又优雅地解决许多艰难的编程问题。
当我开始编程的时候,我在数据结构和算法方面非常糟糕,因为我主要是靠自学的。
我一直都没有意识到它们的价值,很快,随着我遇到了一些我不知道如何解决的问题,我发现这些技能在真正的编程世界非常有用,而且解决起来相当简单——和有趣。
事实上,我认为这是软件开发最有趣的领域之一。解决难题并利用数据结构和算法来开发一个又干净又优雅的解决方案,真的很有意义。
学习这些东西是一个挑战,但非常值得。这是可以让你超越众多同行的技能之一。大多数软件开发人员都不擅长这个领域。
如果你想通过如微软或谷歌这样的大公司的面试,那么你一定得掌握这个技能集。
开发平台及相关技术
你应该具备一些经验,并至少掌握一个开发平台以及与之相关的技术或框架。
我所说的平台是什么意思呢?
好的,通常它的意思是操作系统(OS),但也适用于其他可以充当类似于操作系统角色的抽象。
例如,你可以是专注于Mac或Windows操作系统得Mac开发者或Windows开发者,你也可以是一名专注于特定的web平台的web开发人员。
具体确切的关于平台是什么就不讨论了——不同的人会有不同的看法——但这里我要定义平台为你开发的特定环境,它有自己的生态系统和特殊性。
再者,这是另一个我认为选择并非那么重要的技术技能,只要你选择了一个就好。
企业通常会聘请开发人员针对特定的平台或技术开发软件。
你作为iOS开发者将更容易找到工作,如果你专业于那个特定平台的话。
这意味着要熟悉平台本身,以及开发工具,惯用模式,还有大多数程序员在为那个平台开发时会使用的通用框架。
你可能会认为编程语言的选择决定了平台,但实际上事实情况很少是这样的。
就拿C#举例。如果你是一个C#开发人员,那么你可以用这种编程语言为Windows,Mac,iOS,Android,Linux,甚至是嵌入式系统写代码。
所以,不要仅仅只是选择语言;还要选择平台。
框架或堆栈
除了学习特定的编程语言和平台,我高度建议去学习框架,或者更好的是,与之相配套的完整的开发堆栈。
什么是框架?
什么是堆栈?
框架就是一系列被用于在特定平台或多个平台上开发代码的库。它通常可以使得在该平台上的编程任务变得更加容易。
看这个C#的例子。大多数C#开发人员使用.NET框架来编写C#应用程序。 .NET框架包括许多库和类,能够让C#开发人员在更高的抽象级别上工作,因为每当他想做什么事情的时候,没有必要完全重新发明轮子。
例如,.NET框架的部分还包含了处理图像的代码。这类代码从头编写是极其困难的,所以框架极大地帮助了C#开发人员去编写需要以某种方式处理图像的代码。
堆栈则有点不同。堆栈是一组技术,通常包括一个框架,并且常一起用于创造一个完整的应用程序。
例如,有一个常见的称为MEAN的栈。它代表MongoDB,Express.js,AngularJS,和Node.js。
MongoDB是一个数据库技术。
Express.js是一个用于创建web应用程序的Node.js框架。
AngularJS是一个用于为web应用程序创建用户界面的前端JavaScript框架。
最后,Node.js是一个用JavaScript开发基于web应用程序的运行时环境。
有没有理解所有这些东西并不重要—— 除非你打算成为一个MEAN开发者——重要的是要明白,如果你知道所有这些技术和框架,那么你就能够开发一个完整的web应用程序。
栈使得创建应用程序变得更容易,因为它们提供了一种许多开发者用来开发应用程序的通用范式,因此知识可以很容易地共享,并且你也能确定哪些特定的技能集市可以一起工作的。
学习堆栈真的是非常有价值,因为这意味着你拥有开发一个完整的应用程序所有必要的技能。很多使用特定堆栈开发应用程序的企业,更愿意雇用那些熟悉那类堆栈能够立马开展工作的软件开发人员。
基础数据库知识
即使数据库的景色在过去几年时间里已经改变了不少,但我不认为数据库会很快消失,因此对此了解一二总是不会错的,对吧?
当前主要有两种数据库技术:关系数据库和文档数据库。
现在的开发人员至少应该熟悉关系数据库,并稍微了解文档数据库。
在软件开发中,数据库经常被用来存储应用程序的数据。
当然,有些团队甚至有专门的数据库开发人员或数据库管理员(DBA),但是这并不能真正允许你不懂至少是基本的数据库知识。
最起码,你应该知道:
数据库如何工作
如何执行基本的查询来获取数据
如何插入、更新和删除数据
如何连接数据集
此外,你可能会想知道如何以编程方式从你的代码与你所选择的平台和/或框架检索和存储数据。
大多数开发者被期待能够编写与数据库进行交互代码。
源代码控制
源代码控制是任何软件开发项目的组成部分。
在我们使用源代码控制之前,我们必须在网络上共享项目的所有文件,或者通过U盘来回查看存储在上面的不同软件版本。
虽然我很不想承认,但我的确不止一次地玩过这个把戏。
但是,我还年轻。我蠢。你却没必要像我这样。
当前,几乎所有专业的开发者人员都被期待懂得如何使用源代码控制来反复检查代码,并希望懂得合并来自多个源的变化。
最基本层面的源代码控制可以让你保持在一个软件项目中对不同的文件所做更改的历史记录。
它还允许多个开发人员在同一时间工作于相同的代码,然后合并这些更改。
具体就不细说了,但你应该知道如何熟练地使用至少一个源代码控制系统,并且你应该熟悉大多数基本的源控制概念。
在当今软件开发领域,几乎所有专业的软件开发团队都会使用某种源代码控制。
构建和部署

现在,大多数软件开发项目都有着某种自动化的构建和部署系统。
有几种不同的软件应用程序,可以帮助软对自动化这两个任务,曾经是手动,当然对于某些团队而言,现在仍然如此。
你问什么是构建和部署?
好问题。
你知道如何写代码,并检入到源控制系统吗?
拥有一些方法来确保代码可在你检入后真正能工作很不错。
这就是构建系统的用武之地。
最起码,构建系统将编译所有代码,并确保没有编译错误。
一个复杂的构建系统可以运行单元测试或用户测试,运行代码质量检查,并提供关于代码库当前状态的一些报告。
部署系统将负责部署代码要么到生产机器要么可能到某种测试环境。
你不必成为这些技术的绝对专家,但是了解至少这些系统如何工作的基础知识,以及构建和部署代码的过程,是非常重要的。
通常情况下,创建和维护构建和部署系统的实际职责属于所谓的DevOps(developer operations的简写)——这个快速增长的领域。
但是,这并不妨碍你至少了解关于这个过程如何工作的基础知识。
测试
曾几何时开发者并没有必要知道太多关于测试的内容。
我们习惯于写一串代码,然后扔给测试人员,让他们去找代码中的各种bug,然后我们再来修复bug。
切不可再如此。
随着越来越多的软件项目开始采用所谓的敏捷过程,(后面再方法这一点中我们再细谈),软件开发人员和测试人员不得不更密切地一起合作。
质量已真正成为了整个团队的责任——我倒是更想说,它一直都是。
随之而来的是,你需要了解一些关于测试的东西。
你至少应该熟悉如下基本术语:
白盒测试
黑盒测试
单元测试(不是真的测试)
边界条件测试
自动化验收测试
一个优秀的开发人员——会在将代码交给别人之前测试自己的代码。
如果你真的想被认为是专业的,并非浪者虚名,那么这一条没有商量余地。
调试
很多新手软件开发人员在调试时都感觉自己像是在用鸡蛋碰石头。
每个人都希望写代码,没错吧?
但好像没有人愿意调试自己的代码?
这就是真相。
大约90%的时间软件开发人员是用来搞清楚到底为什么代码不能正常工作。
我知道你只是想能够整天写新的代码,但是此路不通。
如果你采用如测试驱动开发这样的方法,那么你可能会少花很多时间在调试上,但无论如何,不管你做什么,不管你如何努力,你都不得不学习如何调试代码或其他人的代码。
因此,与其采取一种随意的方式来做一些你不得不做的事情,还不如咬紧牙关竭尽全力学会如何有效地做好这件事情。
方法
有没有被我列出来的需要知道的事情清单吓倒?
好吧,还有一个——但是我保证这是最后一个。
虽然一些软件开发团队才刚开始写代码,不择手段只要完成任务即可,但是大多数团队还是至少遵循某种方法的。
出于这个原因,熟悉一些最常见的软件开发方法背后的基本理念至关重要。
今天,我要说的是瀑布式开发和敏捷开发。
大多数团队会声称他们正在做敏捷。敏捷本身是一个非常松散的概念,但也有一些做法和——原谅我的措辞——固定程序是你应该知道的,如果你不想只是纸上谈兵,想要打造一支敏捷团队的话。
最后
我知道这些内容通通要掌握的话,有点多,而且我仅仅触及了大多数主题表面的东西。
现在,你可能会觉得有点不知所措,面对这些所谓的技术技能一片茫然。
程序员这条路,就是无止境的学习,不断提高!


软件开发如何开始学习?
在学习了一门编程语言之后——或者最好是在学习的同时——我坚信,你需要知道的下一件事就是如何正确地构造你的代码。我所说的构造代码是什么意思呢?我的意思是,要写出好的,清晰的,易于理解的代码,不需要大量注释,因为代码本身就是一种表达方式。很多软件开发者在他们整个职业生涯都不曾去学习这个技能,这是不幸...

小白想学程序开发怎么学习呢?
4、第三阶段:html、css、JAVA SCRIPT、WEB服务器、会话技术、LINUX、SPRINGBOOT、框架整合、vue等,可以实现:行业目前流行技术,项目开发企业级框架,目前市场流行的小程序、APP、游戏开发等 当然,以上是最基础的学习阶段,可以满足就业需求了,就业之后还要根据所在行业、企业、岗位需求不断提升。

如何开始学习安卓应用开发?
准备开发环境:首先,您需要在计算机上安装Java开发工具包(JDK)和Android开发工具包(SDK)。确保您已经正确配置了这些工具,并设置了相应的环境变量。创建项目:使用Android Studio或其他适合您的开发工具创建一个新的Android项目。您可以选择项目名称、包名以及支持的最低Android版本等。开发应用:根据您的...

自学前端,前端开发的学习路线是什么
自学前端其实很辛苦,需要有强大的自制力和坚持下去的学习心,并且做好详细的学习规划严格执行;如果你想学前端,下面的学习路线或许对你有帮助。前端完整学习路线 第一阶段:HTML CSS:HTML进阶、CSS进阶、div css布局、HTML css整站开发。JavaScript基础:Js基础教程、js内置对象常用方法、常见DOM树操作大全、...

软件开发如何开始学习?
没有一个技术大牛是从一开始就什么都会的,都是从什么也不会开始的。只需你有兴趣而且肯努力,可能慢慢就会发现学习软件开发也没有想象中的那么难。2、要重视编程基本功 绝大部分行业内的大牛都是经历过辛苦而又长期的程序开发学习和实战进程的,假如你想要成为一名优秀的程序员,最基本的编码学习肯定是...

软件开发怎么学习?
要想从零基础开始学习App开发知识并获得一份App开发工作,可以从学习Android开发开始。Android开发目前可以采用两种编程语言,一种是Java,另一种是kotlin,建议初学者选择Java语言,一方面原因是Java语言在Android开发领域的应用比较普遍,另一方面原因是掌握Java语言未来会有更大的发展空间,也更容易转向全栈开关...

零基础如何学习Java开发?需要掌握哪些技能?
需要掌握哪些技能?希望对你有所帮助。一、零基础如何学习Java开发?需要掌握哪些技能?先了解什么是Java的四个方面 初学者先弄清这些Java的基本概念也是必不可少的,死记硬背肯定是不行的,重在理解,理解它们之间的区别与联系,分别有哪些应用。想想这些代码中用到了哪些知识点。不要一味地照着书本敲...

chrome浏览器插件开发,chrome 扩展程序开发教程
Chrome浏览器插件开发教程开始Chrome扩展程序开发之旅,学习如何创建一个简单的"Hello, Extensions"示例。在开发过程中,您将了解工作流程,本地加载、配置manifest.json,创建弹出窗口,以及调试控制台日志和错误。基础步骤首先,创建一个扩展目录并初始化manifest.json,定义扩展图标和操作。下载图标并将其添加...

程序员入门:如何自学编程_自学程序员怎么入门
这个就是如何编写WordPress插件 而想驾驭GoogleWave前沿技术的开发人员可以从使用HTML,JavaScript,Java,和Python写小组件和小工具开始 我写的第一个Wavebot是跟着这个一个下午时间的快速入门指导开始的 开发桌面上的Web应用程序学习编程最好的结果是你在一个环境下学的东西可以应用到另外的环境中 先学习开发web应用程序的...

我想学软件开发,怎么入门?
没有基础肯定要找个学习机构吧,要不然买入门材料自学也是学不了的,优就业不错0基础都没问题,咨询下比较好。可以找培训机构或者自学 河南新华专注互联网教育!如果你是想干这门活的话大概需要以下几点作为最基础的基础:熟练运用VB、C、C#等语言开发windows应用程序,熟练操作开发ACCESS、SQLSERVER等数据库...

泰来县18410296498: 软件开发如何开始学习
姚强鲁南: ①、学习一门开发语言(C#/JAVA),这样可以很好地应付任何一种编程工具;②、需要多练习,通过操作过程中了解相关知识;③、不能把学习开发语言当成一种任务,要对自己有自信,只要是一个智力正常的人都能学好;④、如果一个程式一时无法弄清楚最后暂时放在一边,过一段时间可能会从其他的程式中悟出道理;⑤、开发语言是一个整体,各个方面是有机联系的,要从总体上把握它,不要把它割裂成互不关联的部件;⑥、不要完全相信教材(包括本讲义与网上教程),所有结论最好都上机验证.

泰来县18410296498: 软件开发如何开始学习
姚强鲁南: 感谢邀请首先一点,那就是你需要学习很多东西才能成为软件开发人员.不能详尽说明作为软件开发者你可能需要掌握的所有技术技能,但是我会列出最关键的一些技术技能.选择编程语言,这是最重要的.前端开发,是现如今最热门的开发岗...

泰来县18410296498: 软件开发如何开始学习
姚强鲁南: 第一:从计算机操作系统开始学起.在学习软件开发技术之前,首先应该学习一下操作系统知识,操作系统知识包括操作系统体系结构、资源管理、任务调度等内容,在初步了解操作系统知识之后,能够对计算机执行各种计算任务有一个初步的...

泰来县18410296498: 软件开发如何开始学习?
姚强鲁南: 软件开发自学步骤:自学者需要先了解软件开发的流程,再购买相关书籍及网课.由于软件开发涉及较多专业性知识,例如软件需求分析、模块设计、编码和调试等等,所以学习者需要一定的指导,建议自学者购买相关网课.

泰来县18410296498: 软件开发如何开始学习?
姚强鲁南: 很多看重了软件开发是高薪就业的行业,都纷纷想要转行来做软件开发.但是软件开发并不是想做就能做的,还要经过一系列的培训才能胜任,那么软件开发需要学什么就是人们关注的热门问题了.1、 软件开发学习首先要培养兴趣 很多人对这...

泰来县18410296498: 软件开发如何开始学习
姚强鲁南: 学习编程并不难,学好编程并不易.作为过来人,谈谈我个人的一些想法:1,需要培养编程得兴趣,兴趣是最好得老师.有兴趣之后一件事情才坚持得长久2,多实践.很多人都喜欢看书和视频,这样的话看似掌握了,实则似懂非懂.书中得内...

泰来县18410296498: 软件开发如何开始学习
姚强鲁南: 首先我们要确定一个学习方向,不同的方向需要学习的内容也有较为明显的区别,在学习时间上也有所不同.对于零基础的初学者来说,在学习软件开发的过程中,还需要解决两方面问题,其一是要有一个有效的沟通交流渠道,其二是要有一定...

泰来县18410296498: 软件开发如何开始学习
姚强鲁南: 在学习软件开发技术之前,首先应该学习一下操作系统知识,操作系统知识包括操作系统体系结构、资源管理、任务调度等内容,在初步了解操作系统知识之后,能够对计算机执行各种计算任务有一个初步的认识,这对于后续的学习会起到重要的作用.

泰来县18410296498: 软件开发如何开始学习
姚强鲁南: 软件开发,主要就是利用java c++等语言程序完成软件项目,这个需要你有一定英语基础,然后了解基础语言的语法比如c语言,熟悉编程环境,然后慢慢延伸到高级些的语言比如java,c++,vb什么的,这个更是需要经过非常系统的学习,非常细致的去讲解才能学会的,石家庄新华电脑学院的老师,都有很丰富的经验 ,应该可以帮到你.

泰来县18410296498: 软件开发如何开始学习?
姚强鲁南: 软件开发其实只是一个大方向,可以划分为很多的小方向,比如系统开发、驱动开发、前端开发、后端服务器开发等选择好方向之后就得选择自己希望的开发语言,比如后端开始,我们可以使用python、java、c++、php等.不同的技术在市场上...

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网