近几年,Python语言因为其简单易学,用途广泛,可谓是火了一把;培训机构层出不穷,但绝大多数机构培训出来的程序员根本就不过关,别说找一份高薪工作,就连找不找得到工作都是一个问题,本文就重点讲讲哪些知识技能是你能找到高薪工作的重要依据。

首先说一说Python的应用领域:

  • Web开发、Internet
  • 科学计算和统计
  • 人工智能
  • 桌面界面开发
  • 软件开发
  • 后端开发

首先讲讲比较高端的领域,人工智能。

Stack Overflow的一项调查发现,86.7%的开发人员实际上是自学成才。然而这适用于Java、Python、C和PHP等,而不适用于人工智能。

人工智能一词涉及面相当广泛,涵盖了许多学科和任务,包括自然语言生成和理解、语音识别、聊天机器人、机器学习、决策管理、深度学习、生物识别、文本分析和处理。每个学科所要求的专业化水平都很高,没有多少专业人员可以掌握多个学科。

就以机器学习这一项来说,它的知识涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。

从事这项工作的一般都有计算机科学的高级学位,通常是博士学位。有些领域甚至需要你有生物学或物理学等学科的学习背景。

然而,有很多培训机构却能在短时间内培养出所谓的AI开发人员。

也许能应用某些库来实现一些比如人脸识别、声音识别的功能。但实际上这些技能属于简单的API调用,一个合格的程序员都能实现。所以别指望简单的培训,就能拿百万年薪。

如果你有相关专业的教育背景,想将人工智能应用到自己的专业中,建议你回学校重新学习。

再来谈谈科学计算、统计、大数据

谈到这方面,就不得不先说另一个Python的应用领域,爬虫。

作者近期发现,很多刚学Python的朋友都奔着这个来的,一说到爬虫就知道Python,好像Python专干这活一样。

这里作者要普及一下:爬虫不是Python的专属,几乎任何一门语言都能实现爬虫。之所以会有Python是专干爬虫的,就是因为很多培训机构夸张的宣传和简单的培训。

培训机构会教你如何爬取网站数据,如何处理cookie,碰到反爬如何使用代理IP等等。可是,这些知识根本就是很基础的网络编程技能。

实际上爬虫(又被称为蜘蛛机器人)是一个很复杂的东西。度娘就有这么一个机器人,每天负责收集各类信息。本文就不对爬虫进行深入的讲解了,有兴趣的可以去问度娘。

回到正题,Python在科学计算、统计、大数据领域应用还是很多的,但是从事这些,都是那些已经学习了经济学、统计学等专业的人。

所以、这个领域并不适合自学,除非你也把经济学、统计学这些都学一遍或是你已经学习了这些专业。

不依靠其他专业知识自学Python的应用领域

上文说到的人工智能、科学计算、大数据等领域是需要依靠其它专业知识背景的。

而下面这些领域,就是完完全全的计算机领域了,学这些东西你不需要依靠其它专业的知识。

Web开发、Internet、桌面界面开发、软件开发、后端开发这些我都放在一起说,因为他们都是一个合格程序员应该掌握的东西,当然,你也可以只专注于其中一个领域。

以Web开发为例,很多培训机构会花3个月时间教你如何使用Django来搭建网站。很是我告诉你,就算你学会了,你也很难找到一份高薪的工作。因为合格的程序员,是不需要学习Django这类框架的(当然,一些比较常用的库还是要学习的),就算他需要用到,只需要找一份开发文档,一遍学习一遍投入生产,你3个月的学习,人家可能只需要3天。优秀的程序员不依赖库、框架。

那么是什么原因造成这种差距呢?

是缺乏基础和理论知识,培训机构大多数是直接奔着结果去的。而一个经过系统学习的程序员、已经掌握了大量理论基础,且基础知识扎实,你花三个月半知半解的学习了Django,人家3个月能再造一个Django。

如何自学成一个合格Python程序员

  • 扎实的Python基础
    • 你要把基础的语法知识学的运用自如;除了基本知识外,你还要理解面向对象编程、并熟练运用它。
  • 高级一点的Python技术
    • 掌握一些常用的库,懂得如何创建套接字并进行通讯,文件的操作,多线程、多进程的应用(不是简单的创建线程,还要掌握线程通讯、线程安全、线程的同步和异步等)等等。
  • HTTP协议
    • 你需要去学习HTTP协议,因为那是B/S开发中最常见的协议,并掌握如何用Python去实现他们。
  • SQL的应用
    • 你还需要学习SQL语言,掌握一种常见的数据库软件,比如MySQL。掌握Python操作MySQL。
  • 一种GUI库
    • 如果你要写一个带有窗口的程序,那么你需要掌握一种GUI库。Python自带tk。但是我建议使用Qt.
  • HTML,CSS,JAVASCRIPT
    • 如果你要从事WEB开发,那么这些都是你应该要学习的语言。
  • 高级技能
    • 分布式、高并发这类程序的编写。
  • 其它常用的工具、协议
    • 最好掌握一种常见Linux系统,比如Debian。
    • 掌握一种web服务,比如Apache,NGINX,懂得如何配置和使用他们。
    • 需要了解一下wsgi协议,掌握uWSGI。

总之、程序员是一个需要每天学习、进步的职业;如果你打算学习并在将来从事这行,那你要做好每天学习的准备。把上面的都掌握,月入过万的工作还是很好找的。

程序员这行就是每天工作、每天学习、累积。工资也会越来高,头发也会越来越少。

时间匆忙、文章如果有错误或者遗漏不足,欢迎评论指正。

本文首发于百家号 http://baijiahao.baidu.com/builder/preview/s?id=1644661885462507270

hocoding.com 保留所有权;如需转载,请注明出处。

发表评论

电子邮件地址不会被公开。 必填项已用*标注