自学编程 如何自学后端编程?

crazyjin · 2019年03月08日 · 496 次阅读

请先阅读《如何自学编程?》

所谓后端是相对前端开发而言的。前端开发就是开发用户能看到网页、app、桌面程序,后端开发则是开发为前端程序提供服务和数据的后台程序。后端服务程序一般运行在服务器上,用户接触不到。后端程序开发的学习主要涉及到编程语言、数据库、操作系统、网络。可以通过描述一个简单案例来将着四者关联起来:

首先,用编程语言编写后端服务程序。然后将其和数据库运行在服务器之上,操作系统为两者提供运行环境并管理它们。用户通过前端应用向后端程序传递数据,后端程序拿到数据以后经过处理保存到数据库里。用户通过前端应用向后端请求数据,后端程序从数据库中取出数据并按前端应用的要求做一定处理,然后交给前端应用程序,应用程序则将这些数据显示给用户。后端程序、数据库和前端应用三者之间通过网络传递请求和数据。

编程语言

编程语言是编程工作中必须掌握的知识。选择是一个难题,每个人都有不同的偏好。不过不必担心,一旦学好了一门编程语言再学习其它的就很快了。这里以初学者的角度从是否好学、是否好找工作、前景这两个几个方面给自学者推荐四门语言。大家可以可以根据自己的兴趣选择:

Java:目前为止全世界使用得最多的编程语言,资料多,易学习。还可以转型做Android应用开发而不必学习新的语言。

PHP:后端开发专业户,易学,工作机会也比较多。

Python:万金油、什么都能做,主要被应用在三个方面:后端开发、数据分析处理、人工智能。全世界使用最多的语言之一;资料多;适合初学者学习;工作机会也比较多。

Ruby:最懂程序员的编程语言;易学习;配合Rails乃是后端快速开发神器;社区活跃;不少创业公司选择它;工作会不多但是质量高。

如果选择有困难,可以通过网络详细调查每种语言具体的优劣和擅长的领域,然后根据自己的方向和兴趣选择。欢迎留言咨询。

数据库

数据库是后端程序存储数据的地方。数据库分为关系型数据库和非关系型数据,现在业内使用最多的还是关系型数据库。所以关系型数据库是必须要掌握的技能。这里推荐学习业内最为常用的关系型数据库Mysql,开源免费。推荐书籍《Mysql必知必会》,入门经典,应该完整阅读并实际动手操作。此外需要注意,这本书中有两个重要概念没有提到。首先是数据库范式,也就是设计数据库是尊从的规则,对设计数据库有帮组。另外一个是“锁”,经常被用来保证数据的正确性。一旦掌握一种关系型数据库,其它的就很容上手了。

Mysql必知必会

操作系统

操作系统在《如何学习编程?》中已经讲到了“一定程度上对计算机编程也是对操作系统编程”。学习操作系统主要需要掌握的知识点:分时计算、并行计算、进程、线程、内存模型、文件系统、资源互斥/锁。 这些知识点在学习和工作中都非常重要。推荐书籍《现代操作系统》,权威教材。这本书内容比较多,希望不要被吓到。挑选重要的章节来重点学习,其它内容可以作为参考,等有兴趣或者有需要了再看。在学习操作系统的同时也要结合具体的操作系统,这里推荐现在最流行服务器操作系统Linux。使用Windows的自学者可以使用Virtualbox安装一个最新的桌面版的Ubuntu(Linux的一种)。苹果电脑的使用者则不必一开始就学习Linux,可以稍后再学。因为苹果的OSX系统是基于Unix开发,而Unix和Linux十分相似。

现代操作系统

计算机网络

网络是程序之前通信的媒介,没有网络就呵呵了,大家都懂。后端程序需要通过网络为前端程序提供数据和服务,需要连接数据存取数据,需要和其它服务程序通信。在日常工作经常涉及到各种网络相关的概念,虽然不必去深入学习,但是要知道这些概念的含义以及所属的领域。为此就必须要理解网络的运作方式、熟悉经常涉及概念,以便在需要深入调查以解决问题的时候知道从何下手。首先重点学习理解一下OSI七层网络模型:知道网络的运行方式。然后可以熟悉一下TCP/IP、UDP及其编程,它们经常要接触到的网络协议。最后HTTP协议是前端程序和后端程序通信的协议,要了解各种方法的使用场景和各种状态码的含义。有兴趣的话,可以尝试用wireshark监控一下自己电脑上的网络通信。 推荐书籍《计算机网络》。重点学习第一二章,如果有兴趣可以看看第八章。其它章节有兴趣再深入学习,或者留作参考。

计算机网络

推荐学习规划

第一步 学习选定的编程语言,一定要掌握对应语言的方方面面。3个月。

第二步 学习使用数据库,要同时掌握手动操作和编程操作。2个月。

第三步 5个月

  • 3/5的时间:选择一个对应语言的常用后端编程框架,深入学习并使用它来完成一个自己的作品
  • 1/5的时间:学习操作系统,同时熟悉Linux常用操作,作品完成以后部署到Linux Server上去。
  • 1/5的时间:学习计算机网络,尝试网络编程

第四步 尝试找工作的同时根据面试的反馈补充知识和技能。

注意 第三步中做自己的作品的时候需要一些HTML/CSS/Javascript的基础知识,可以参考w3cschool

在学习编程语言和数据库时遇到的操作系统、网络方面的问题时,可以稍作了解、解决问题即可。但同时也记录下来,在后面学习操作系统和网络时再寻找答案。

掌握一个常用的编程框架很重要,这关系到能否将编程语言的能力发挥出来,能否找到工作。

python自学者要注意一下,现在python职位竞争比较大(据说是培训班出来的python程序员太多),拥有扎实的基础(python本身、操作系统、网络)更容易找到工作。

相关阅读:

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册