谷歌搜索引擎优化初学者指南(官方中文版)( Python入门相对容易又可以干很多事(附推荐))
优采云 发布时间: 2021-09-19 21:04谷歌搜索引擎优化初学者指南(官方中文版)(
Python入门相对容易又可以干很多事(附推荐))
基本介绍
Python是一种供成年人使用的语言-艾伦·润扬
编程语言:python(golang,请参阅go一章)
Python入门相对容易,可以做很多事情(网站、操作和维护、数据分析、爬虫、人工智能、定量投资等)是一种方便的工具语言。根据tiobe在2016年的排名,python排名第四,成为第一种脚本语言。国外知名应用,如youtube、instagram、pinterest、reddit、Dropbox、Discus、quora等,一开始都是基于Python构建的。国产豆瓣菜、知乎、今日头条、nutshell、饥肠辘辘的搜狐等都是典型的Python应用程序。这也促进了国内Python开发人员的发展。Python的生态环境可以支持重量级产品。我不想在这里挑起语言争端。PHP、nodejs、Java、ruby等丰富的生态环境。然而,目前,Python仍然是用于招聘、学习、培训、敏捷开发等方面的技术选择的一种比较折衷的选择(主要是人,而不是语言)。Python和Ruby等动态语言具有生产率优势。您可以在很短的时间内构建原型以赢得产品竞争。以下是一些我认为更好的Python书籍:
当然,也有官方的Python文档可供参考,但有些文档比较晦涩,推荐一些书籍。目前,许多免费电子书可以在互联网上找到。如果你有时间,你可以看看廖雪峰在中国写的python教程,它简单易懂,但是跳跃有点大(有些章节对新手不太友好)
算法与数据结构
要编写好代码,您需要了解常用的算法和数据结构。虽然您可能很少自己实现它们,但您应该知道何时使用Python语言中一些常用的数据结构,例如list、tuple、set、frozenset、dict和ordereddict、defaultdict、deque、namedtuple、counter等。最重要的是要知道算法中的递归、二分法和常见思想,编写高效且易于使用的代码。如果你想在线练习,你可以做一些ACM基本问题,或者去leetcode和其他网站brush问题。推荐书籍:
计算机网络
对于应用程序开发人员来说,他们可能在大多数情况下都不会遇到潜在的问题,但有必要了解网络的工作原理。网上有一个面试问题。从输入URL到完成页面加载的过程中发生了什么?如果您了解大多数概念,就可以开始了。你可以找到任何与网络相关的书籍。HTTP协议对于web开发人员非常重要,需要深入理解。推荐书籍:
网络编程(高级)
如果您想深入了解某些网络框架的基本原理,您需要学习底层套接字网络编程,如unix网络编程、Linux高性能服务器编程等。建议使用一些介绍性材料:
Linux系统
在互联网时代,软件已经慢慢地从传统的桌面软件发展到移动终端和浏览器(这实际上是脚本语言可以广泛应用于io密集型web领域的原因),尽管Linux在桌面领域已经彻底失败,它的开源和低成本特性广泛应用于网站服务器端、学术和工程领域。大多数Python应用程序运行在Linux服务器上,大多数开源服务器软件也使用Linux系统。即使你在日常工作中不使用Linux,你也应该了解一些基本的Linux命令,如常用的文章片段操作、目录操作、进程操作等。你可以使用类似UNIX的system MAC或Linux版本的Ubuntu作为学习环境。建议:
数据库
了解常用关系数据库的使用,而不仅仅是SQL数据库。现在网站business backend使用了更多的数据库:
每个数据库都有自己的优势和使用场景。后端程序员需要了解不同类型数据库的使用方法和应用场景,并灵活地将其应用到后端存储设计中。因特网上有许多关于各种数据库的资料。读者可以自己搜索和学习,包括MySQL和redis(包括使用、设计、原理和优化)是首要任务。你可以看到MySQL必须知道和redis的实战。对大数据感兴趣的人可以了解Hadoop生态系统
Python相关库的使用
Python的优点之一是它有大量的库。灵活使用各种Python库可以帮助我们快速制作产品。作为一名web开发人员,您需要了解常用Python库和框架的使用,如Django/flash/tornado/Sqlalchemy/requests/pandas等
Web框架
大多数后端业务逻辑开发将使用web框架来提高开发效率。常见的Python web框架包括Django、flask、tornado等。一般来说,web框架包括HTTP处理、表单验证、模板引擎、ORM、restful接口等。最好掌握web框架,以帮助快速制作产品
版本控制
Git应该是目前最流行的。许多公司使用gitlab来管理代码仓库。版本控制工具是多人协作不可缺少的工具。初学者需要掌握基本的git命令,并且可以使用GitHub作为个人练习的工具。遵循贵公司的git工作流程,git是一个功能强大的工具,初学者很容易误用它
网络服务器
Nginx目前非常流行并被广泛使用。建议您学习并使用它。您熟悉基本的LNMP体系结构(Linux+nginx+MySQL+Python)。目前,许多公司采用多语言+微服务架构(基于docker)。您可能需要了解常见的web应用程序部署方法以及如何使用nginx和其他负载平衡
微服务体系结构
目前,很多流行的网站采用微服务架构,每个团队负责维护自己的服务(逃离地狱)。这里有一些关于微服务的好书
前端知识
需要了解基本的HTML、CSS和JavaScript。许多后端工程师需要使用一些工具或管理后台。了解前端知识会有所帮助。如果您有兴趣深入到前端,您可以了解一些流行的框架,如Vue/react/angular
学习和搜索能力
初学者遇到的大多数技术问题都可以通过谷歌解决。充分利用Google/stack overflow/GitHub、各种技术论坛和博客可以帮助您了解最新技术
业务领域知识
不同的公司有不同的业务和不同的业务(赚钱)领域(游戏、广告、媒体、社交网络、金融等),因此可能有必要了解相关领域的知识,以便进行业务建模。建议求职前研究并调整相应的公司、业务领域和技术堆栈。不要太盲目,寻找你感兴趣的方向(拥有广泛的后端知识)有时候,方向和平台非常重要,直接决定你的薪水和发展。例如,基金公司可能需要了解投资,社交公司可能需要了解feed设计,媒体公司可能需要了解多媒体。(当然,重点是使用Python实现业务逻辑)
专业素质
这家公司不是自己做项目的。您需要具备编写文档、注释、单元测试、沟通、与他人合作以及处理业务的能力。如果您不知道什么构成正式的Python项目,请转到GitHub克隆一个著名的代码仓库,并花一些时间仔细分析其项目结构和源代码。例如,著名的网站Reddit代码是开源的,可以参考大多数Python实现。此外,许多著名的Python库,如requests/flash,也可以用作参考。从作者的短期经验来看,大多数自学成才的Python人员并不遵循代码规范(pep8),我不知道或不注意单元测试(我认为编写函数打印是可以的),我不知道如何编写注释和文档(你听说过docstring吗?)。因此,我希望您能遵守工程实践,具有良好的专业素质和编码习惯。建议您阅读与工程相关的书籍,如代码百科全书和编程技能
软件工程
如果你有时间,我建议你了解一些软件工程知识。你在工作前不会有很多阅读书籍的经验,但在工作后,你会觉得做一个项目远远不仅仅是编写代码。还有很多知识,包括整个开发过程、进度管理和质量管理。邹Xin在这里被推荐(目前是微软Windows中国工程团队的首席研发总监)是一位非常有阅读基础的人
后端技术栈
web后端工程师的主要职责是实现网站,应用程序业务后端逻辑(产品业务逻辑),所涉及的技术知识点基本上就是上面列出的。对于技能需求,你可以在拉钩上搜索Python的位置,查看各个公司对Python的要求。或者你可以编写一个拉钩爬虫,并对数据进行简单的统计。这就是作者在找工作时所做的。注意在找工作之前,它是