关于刚开端学习软件开发的新人来说,“必备技术”往往意味着一个长长的、标有重要度的学习列表,可是过长的列表一般会导致新人不知怎么开端学习,压力倍增。
本文测验罗列出最重要的几个技术,也希望经过此列表能给新人一个比较明晰的学习要点和途径。
1、深化学习一门编程言语
没有把握任何一门编程言语,就不或许成为一名编程人员。
许多程序员企图在学习之初一次学习几种编程言语,以便应对他们第一份软件开发作业的需求。虽然我以为开发人员最终会学习多种编程言语, 但主张不要在开端时这样做。 由于一同学习多种言语只会导致紊乱,也会分散学习其它技术的精力。相反,我主张深化的学习一种编程言语,这样也会对运用这种言语编写代码感到十分有自傲。
2、怎么安排代码
新手程序员在完结编程言语的学习之后,或许最好在学习编程言语的一同,需求把握的是怎么正确的安排代码。
经过Steven McConnell所著的《Code Complete》,可以协助学习这个名贵的技术。
安排代码意味着编写杰出的、明晰可了解的、不需求许多注释的代码,由于代码自身是可自注释的。许多软件开发人员究其整个职业生涯都不曾具有这样的技巧,可是这个技术却是判别一个软件开发人员的技术和才能的首要规范。杰出的代码结构代表的不仅仅是完结了编码作业,而是对编码作业的热心贡献。
关于新手程序员来说,简练明晰且意义明晰的代码,能让你轻松地经过面试。
进步代码结构已经成为了软件开发的重要部分,可是进步的进程却对错常严厉的。在这个进程中,虽然不需求编写新的代码,可是却需求和团队成员一同花费许多时刻来保护现有的代码。
3、面向目标规划
为了应对软件开发中的面向目标规划思维,开发人员也需求学习一种面向目标的言语。
面向目标规划是一种规划杂乱程序的办法,它将代码分成了独自的类和目标(类的实例),这些类和目标封装了一些特定的功用。
咱们一向企图在软件开发中办理杂乱性,用目标的办法考虑就能协助咱们做到这点。面向目标答应咱们跳出一堆联系冗杂的组件,来明晰的界说和规划一个杂乱的体系。
现在已经有许多的功用性编程言语,可是在软件开发进程中,你会发现那些最受欢迎的言语和模型都深受面向目标规划的影响。所以就需求深化的了解类、承继以及怎么运用,还有多态和封装。
4、数据结构和算法
软件开发人员应该了解以下的数据结构:
• 数组或向量
• 链表
• 仓库
• 行列
• 树结构
• 哈希
• 调集
把握并娴熟运用以上的数据结构,能协助开发人员明晰的界说、存取、办理数据。经过合理的数据结构和算法,许多困难的编程问题就能方便的解决。
常见的算法有以下几种:
• 排序算法
• 查找算法
• 图搜索算法
• 动态规划算法
• 形式匹配算法
长于运用好的算法,能起到事半功倍的作用。假如你对算法不行了解的话,就很难提出一个好的解决方案,这也便是需求咱们把握算法的原因。
事实上,数据结构和算法也是软件开发中最风趣的范畴之一。运用数据结构和算法来开发一个洁净、简练的解决方案,作用会十分好。
Gayle Laakmann McDowell的“Cracking the Coding Interview”书中介绍了有关算法和数据结构的一切常识。
学习这些常识是一个应战,但却对错常值得的。把握其间的任何一个技术,都能让你远远超越其他人。这些常识也正是其它软件开发人员所不具有的。
5、开发渠道及相关技术
应该至少对一个开发渠道以及与之相关的技术或结构有必定的经历。
渠道一般意味着操作体系(OS),但它也适用于与操作体系相似的其他笼统体系。例如,你或许是专心于Mac或Windows操作体系的Mac开发人员或Windows开发人员,一同你也可以是专心于特定Web渠道的Web开发人员。
具有某个特定渠道的专业常识,不仅仅意味着需求了解渠道自身,还需求把握开发渠道常用的开发工具、形式和通用结构。
6、结构与技术栈
除了学习特定的编程言语和渠道外,学习并把握一个结构和技术栈也对错常重要的。
结构是一组用于在特定渠道或多个渠道上开发代码的库,它一般会使该渠道上的常见编程使命愈加简单。例如,大多数C#开发人员运用.NET Framework编写C#应用程序。.NET Framework由许多库和类组成,答应C#开发人员在更高层次的笼统中作业。
技术栈则与结构有点不同,技术栈是一组一般包含结构的技术,一般一同用于创立完好的应用程序。技术栈使得创立应用程序变得愈加简单, 由于它们供给了许多开发人员用于开发应用程序的常见典范,因而可以轻松同享常识。学习技术栈对错常有价值的,由于这意味着你具有开发完好应用程序所需的一切技术。许多运用特定技术栈开发应用程序的公司,也在寻觅了解该技术栈的软件开发人员。
7、数据库基础常识
现在, 主要有两种数据库技术:联系数据库和文档数据库。
现在的开发人员应该很了解联系数据库,但一同也应该对文档数据库有所了解。
在软件开发中,数据库一般用于存储应用程序的数据。
关于数据库,开发人员至少应该了解以下方面:
• 数据库的作业原理
• 怎么履行根本查询来获取数据
• 怎么刺进、更新和删去数据
• 怎么增加数据集
8、源代码办理
办理源代码是任何软件开发项目不行或缺的组成部分。在运用源代码之前,应该有一个网络来同享项目的一切文件。
源代码办理工具最根本的功用,是保存软件项目中对文件所做更改的历史记录。它还答应多个开发人员一同处理相同的代码, 并将这些处理代码交融在一同。
一切的开发人员都应该知道怎么运用源代码办理工具,以便可以查看代码并从多个来历交融代码。
9、构建和布置
现在,大多数软件开发项目都有一些自动化的构建和布置体系。一同也有许多不同的软件应用程序,来协助团队自动化构建和布置使命。
构建
当你编写代码并将其合入到源代码办理体系中后,你想经过一些办法了解你合入的代码是否运转的很好,这就需求进行构建。构建会编译体系中的一切代码,并确保没有编译过错。一个杂乱的构建体系还可以运转单元测验和用户测验,或许代码质量查看,并供给一些有关代码库当时状况的陈述。
布置
布置体系担任将代码布置到产品机器上,或许将其布置到某种测验环境中。
虽然开发人员不必定要成为布置方面的专家,可是了解体系的基础常识以及构建和布置代码的进程也对错常的重要。
10、测验
现在,许多的软件项目都采用了所谓的灵敏流程,软件开发人员和测验人员协作的愈加亲近。代码质量成为了整个开发团队的职责,所以开发人员也需求对测验常识有必定了解。
关于开发人员来说,至少应该了解以下的根本术语:
• 白盒测验
• 黑盒测验
• 单元测验
• 边界条件
• 测验自动化
• 检验测验
11、调试
关于软件开发人员来说,经常会花费90%左右的时刻,来弄清楚自己的代码为什么不起作用了。不管你从事任何言语的代码开发,代码调试都是开发进程中不行短少的一部分。
所以开发人员应该下定决心,仔细的学习怎么做到高效的调试代码。
12、办法论
一些软件开发团队在编写代码并完结他们的项目时,都遵从着一些办法论。所以开发人员至少应该了解许多最常见的软件开发办法论中的根本几种,这儿要说的便是瀑布开发和灵敏开发。
总结
虽然本文中罗列的软件开发人员应该了解的常识许多,其间许多常识或许正是你所不了解,可是请不要懊丧。咱们要做的便是仔细的弥补这些常识,不断的进步自己。
开发技术可以确保咱们开发使命的顺利进行,开发工具则能很好的进步开发功率。葡萄城控件一向致力于为广阔.NET渠道开发人员供给高品质的开发工具产品。