首页 > 编程语言 >第一章《初学者问题大集合》第2节:学会编程就可以成为软件工程师吗?

第一章《初学者问题大集合》第2节:学会编程就可以成为软件工程师吗?

时间:2022-12-29 10:03:20浏览次数:54  
标签:类库 Java 工程师 编程 第一章 程序员 算法 初学者 软件

当下定决心学习编程之后,很多读者又会提出第二个问题:学会编程就能成为软件工程师吗?其实,学会编程只是掌握了某种编程语言的使用规则,大家还需要学习很多其他知识才能成为一名软件工程师。那么还需要学些哪些知识才能成为软件工程师呢?本书专门讲授Java语言,所以此处抛开其他编程语言,仅讨论想要成为一名合格的Java软件工程师需要学习哪些知识。

1.基础类库

很多编程语言为了让开发者能够提高工作效率,往往会提供一些已经写好的代码供开发者直接使用。比如对一个数字求绝对值,程序员本来应该自己写代码来完成这个计算过程,但很多编程语言都提供了已经写好的代码供程序员直接拿来使用,这样就能减少程序员的工作量。Java语言也是如此,它把那些程序员常用的功能代码写好,并且封装到很多个“类”当中。用来存放这些“类”的地方就叫做“类库”。因为这个类库是Java语言自带的,所以把它称为“基础类库”。

学完了编程语言的语法规则之后,接下来就会学习基础类库中一些类的用法。当然,基础类库的内容非常丰富,几乎涵盖了程序员需要的所有功能,比如数学计算、字符串处理、文件处理等等。目前来说,Java基础类库中所包含的类多达几千个,因此程序员想要完全掌握这么多类的使用方法是不现实的,各位读者只需要把编程过程中最常用的那部分掌握熟练就可以。其余的类,只要在用到它们的时候能够通过查阅说明文档看懂它们的用法就行。

此处提到了一个专业术语叫做“类”。不理解这个术语的读者暂时先不必深究它的意义,只需要先把它简单的理解为一个具有某些特定功能的程序模块就可以,后面的章节中会详细讲解“类”的含义。

2.第三方类库

Java基础类库中所提供的那些类功能虽然已经很强大,但仍然不能完全满足软件开发的需求。很多有实力的大公司、IT行业组织甚至个人也注意到了这种情况,于是他们在基础类库的基础上,又开发出很多类库供广大程序员使用。因为这些类库并非由Java语言自带,而是由其他公司、组织或个人提供,所以它们被称为“第三方类库”或“第三方工具库”。

第三方类库往往是用来加强基础类库功能的,有的甚至填补了基础类库的一些空白。总之,第三方类库使得Java开发更加便利快捷。那么,程序员如何获得第三方类库呢?通常,第三方类库都以压缩包的形式出现,只不过这种压缩包并不是常见的rar或zip格式,而是jar格式。发布者会把这些压缩包上传到网上,程序员只需要按照发布者所提供的网址找到这些jar文件并下载,就可以在软件项目中使用它们。

由于全世界任何公司、组织和个人都可以提供第三方类库,所以第三方类库的种类繁多、功能各异、其规模大小差别也很大。一些规模庞大、影响力深远的类库甚至被称为“框架”。为什么被称为框架呢?顾名思义,就是说使用这些类库可以搭建某种类型软件项目的基本框架,程序员只需要在这个基本框架内完成特定功能的代码就可以。比如当今完广泛用于服务器开发的Spring系列框架,已经成为了从事服务器开发的Java软件工程师的必学技能。

当然,也有一些基本第三方类库的规模并没有那么大,它们往往用来加强某种特定的功能或者解决某个特定的问题。比如JMathLib,它是一个专门用于计算复杂数学表达式并能够图形化显示计算结果的Java类库。

当今业界几乎已经没有哪一种Java软件项目的开发不会用到第三方类库,因此想要成为一名软件工程师,都要掌握一些第三方类库的使用。至于软件工程师要掌握哪些第三方类库,主要取决于他的具体工作内容。比如上文提到的服务器开发,Spring系列框架基本上就是必须要掌握的。但如果从事的是其他方向的开发工作,必须掌握的框架技术也会随开发内容的改变而发生变化。

3.辅助工具

从事Java开发还必须要掌握一些其他辅助工具的使用方法。比如说为了高效安全的使用第三方类库并方便的管理jar文件,程序员往往会使用Maven工具。为了实现团队开发代码版本的统一管理,往往会使用svn或git这样的版本管理工具。为了更加方便的访问数据库,程序员往往会使用一些数据库客户端软件等等。这样的例子很多,在此不能一一列举,但想学习Java开发的广大读者必须知道:软件工程师的工作并不只是单纯的“编写代码”,开发软件还需要做大量的非编码工作,为了很好的完成各项工作,开发人员就必须学会使用相关辅助工具。当然,具体要学会使用哪些工具,这也要看程序员具体所从事工作的内容到底是什么。

4.常用算法

想要成为软件工程师,还必须要掌握一些常用的算法。所谓“算法”,通俗来讲就是解决一些具体问题的办法。当然,并不是任何一种解决问题的“办法”都能称得上“算法”。这里所说的“算法”是指经过科学论证其正确性的、并且能够通过计算机程序实现的计算方法。比如,有一组大小无序的数字,程序员希望通过计算机程序使它们最终排列成一组有序的数字。对于这样的一个问题,人们经过研究之后给出了很多种解决方案,并且论证了这些解决方案的正确性和可实施性,这样的解决方案才可以称为“算法”。当然,解决数字排列问题的算法只是算法当中比较简单一类。用来解决更为复杂问题的算法还有很多,比如从A地点到达B地点,有N种走法,每种走法的路程长度和用时长短各不相同,怎样走才能做到路程最短或用时最短,这也需要用到相关的算法来完成计算。目前最为火爆的人工智能和大数据领域,其最核心的工作就是要研究各种复杂的算法。

随着计算机在各行业的广泛应用,为了解决不同行业的具体问题,算法已经发展成为了一门独立的学科。算法是解决问题的思路与办法,它与编程语言无关,也就是说:一种算法可以用多种编程语言来实现。软件工程师为了解决一些通用的业务问题,就需要熟练掌握常见算法的使用。

5.相关学科知识

软件开发是一个综合性系统项目,软件工程师并非只会用到“编程”这一种技能。一款软件的运行,往往要访问多种资源来获得程序所需的数据,比如要从数据库、网络、磁盘文件等各种数据源中获得数据。如果软件需要从数据库中获得数据,就要求软件工程师掌握数据库方面的知识。如果软件涉及到网络数据的传输,就需要软件工程师掌握计算机网络的相关知识。当然,如果涉及到计算机底层的操作,软件工程师还必须学习操作系统的相关知识。总之,一名合格的软件工程师,除了要掌握“编程”这个基本技能以外,还需要学习很多与软件开发相关学科的知识。

除此文字版教程外,小伙伴们还可以​点击这里​观看我在本站的视频课程学习Java。

标签:类库,Java,工程师,编程,第一章,程序员,算法,初学者,软件
From: https://blog.51cto.com/mugexuetang/5976390

相关文章

  • 第一章《初学者问题大集合》第3节:学了Java编程能应聘什么岗位?
    ​在回答这个问题之前,必须先弄清楚一个事实:软件工程师是一个专业性很强的职业,就像医生一样,虽然眼科医生、牙科医生、骨科医生都是医生,但他们的专业知识和工作内容差别还是很......
  • 第一章《初学者问题大集合》第4节:Java程序是如何执行的?
    想要学好Java编程,就必须先弄清楚Java程序是如何执行的。首先来解释一个最基本的概念:什么是程序?把你想让计算机做的事情用编程语言一条条列出,这个由多条编程语言所组成的“代......
  • 编程路-基础提升-第八周-04
    一闭三器一闭三器:闭包、迭代器、生成器、装饰器是函数中的高端用法,特别是装饰器会用的话,会大大节省编程的内存和效率。迭代器如果直接在后面用魔法点类型的话,会查看......
  • 编程路-基础提升-第八周-03
    模块与包模块与包其实就是借助外力和内力两种方式去更好,更方便的解决问题。了解模块系统模块和第三方模块系统的模块python自带的不需要下载直接导入就行第三方......
  • 编程路-基础提升-第八周-02
    异常处理与模块了解异常模型try:可能发⽣错误的代码except:如果出现异常执⾏的代码常规异常可以公式来判断异常  判断结束后,后面的代码也可以运行为了保证程......
  • 编程路-基础提升-第八周-01
    面向对象特性对象特性,更过是对继承属性的理解,理解到位了,在使用特性时,才能又方便又快捷。继承的概念封装,继承,多态   富二代继承财产类的继承 封装提高代码......
  • 编程路-基础提升-第七周-04
    面向对象面对对象,实际上是继承某一类相同特征的事物,概念比较抽象,需要认真研究。理解面向对象面向对象是一致编程的思维模式特征是属性,编程中相当于变量  age=20......
  • ACM初学者指南学习心得
    2022年快过完了,上学期有点摆烂,最近刚刚阳过,在家颓废了好几天。昨天看了一部电影《大学》,非常励志。看完电影,深感自己大学以来这一年半过得有点小糟糕,昨天被刺激了一下,今天......
  • 编程路-基础提升-第七周-03
    文件操作文件操作是使用Python中,跟现实连接的第一步,也是基础所在,要学会应用,才能慢慢有眼见为实的感觉。文件的操作作用文件读写文件名称文件的路径文本文件(data.t......
  • 编程路-基础提升-第七周-02
    高阶函数应用高级函数是对于函数应用更为简洁,更为高效的方法。递归的了解与应用特点函数内部自己调用自己必须要有出口递归可以用于多种情况下,一般需要和if判断......