当前位置: 华文星空 > 亲子

32 岁全职妈妈自学 Python 靠谱吗?

2022-09-06亲子

语言只是工具,光懂Python是找不到工作更别说接单。我在知乎上看到知乎推给我的问题,我这里做一一梳理和总结

  1. 例如:问题:「零基础学习Python转行,想解决就业问题。」这类问题的题主多数没有弄清自己的专长以及不了解国内IT行业内当前对Python这门语言的定位。
  2. 例如:问题「零基础零经验自学Python,到精通Python要多久啊?」这个问题属于典型的为了语言而学语言。

我首先给出结论: 如果光学会Python,其实是无法找到开发岗位工作的 。之所以这么说,是因为编程爱好者真正想转行做开发还是凭自己掌握编程技能实现小目标创业。判断他是否适合从事开发岗位,不光衡量编程者本身熟练掌握一门编程语言或者只会「CRUD」, 更重要的是编程者自身要对操作系统原理、编程语言本身背后的应用生态、算法和数据结构这些都要比较深入的了解 ,这样不至于被行业淘汰。

Python非开发岗位

数据分析

一些非开发岗位例如数据挖掘和分析、初级运维岗位是有可能的。

如果你的就业方向是选择Python相关的数据分析的岗位,笔者建议你了解一下知乎知学堂的数据分析实战教程,符合打算从事数据分析岗位的人群,笔者跟其他平台的数据分析课程对比过,该课程适合面对零基础 、初级 、 中级的学习群体,能帮助学习者建立自己的数据分析思维和方法论打下坚实的基础。

该课程的特点是讲解常用模型+架构逻辑,通过互联网大厂的一线案例说明各种分析方法的运用,帮助学习者构建数据分析思维,带大家快速掌握常用的数据分析工具。课程共3天6小时、一线大厂的数据分析行业的名师为学员提供一对一的问题答疑、就业等问题辅导。

因为笔者就是从运维岗位过来的,现在也是从事开发的工作但笔者不仅只用Python一门语言而是C、C++、Cython这些编程语言混合着用。

话说回来学会Python的衡量的标准是什么?看一两本书Python入门书籍还是瞟完一整套Python系列视频教程就能找工作?!所以还是应验了那句话:「 师父领进门,修身靠个人 」之前有位陌生的乎友给我私信留言。我就很直白地回复了他(她)。

如果以就业目的为方向,不论学习Python还是其他语言,千万不要为了学编程语言而学语言。而是 根据你的未来的就业方向选择学语言。而不是根据语言去学习。这样目标、学习路线会清晰很多。千万不能本末倒置

先搞清学习语言最终目的是什么,如果是基于兴趣,你那么下面的内容可以直接不用看 相信其他学习知乎其他Python答主已经给出很好的学习线路,我自己关注几个Python答主他们的文章都很优秀,可以翻我关注的知乎好友看看。 我重点是谈Python就业方向的问题,以及Python和其他语言存在竞争和共存的关系。

先谈谈Python就业方向的问题。掌握中级Python水平的可以选择的职业方向的门槛很低, 但有些门槛高得大部分人是无法触碰的。

其他职业方向

门槛低的Python或多或少相关的职业:例如初级运维工程师、数据分析、跨金融领域的量化交易会用到Python、一些网络安全岗位也会用到Python,比如「Cisco的初级CCNA工程师」就要求具备Python编程能力。这些岗位的特性,都不要求学习者深入理解系统原理,因此不要求用到C,Python相关低门槛的IT岗位,更多要求从业者夸专业和横行性多重技能。另外,Python非常适合副业例如用Python以私单的形式接一下小型项目是非常不错的选择。给自己打个广告:「 笔者在Java、Python的私活也会接,如果有二次开发项目、中小型项目需求的,可以给笔者私信 」。

对于大型的Web全栈开发,市场需求的语言是Java/Go,大型Web后端的商用环境几乎不会考虑用Python。因为原生CPython本身执行效率面对多用户并发和后台繁重的密集型计算原生CPython是应付不了的。用Python做全栈大部分是小规模的科技公司或制造业类型的企业,因为开发出来的受众面不会太大,业务系统的性能问题不是考察的重点,而是开发效率。

后端开发岗位、算法开发岗位、Linux开发岗位实质上 用到的是C/C++、甚至Python和C的混编技术、高级运维开发工程师会用到Python、Go、Shell、甚至是C。 因此即便学会Python,光懂Python也找不到这些岗位工作,这本质上已经不是Python语言的问题,而是这些岗位要求从业者最起码有3年以上相关工作经验,对数据库、系统操作原理和开发用到什么工具要有一个系统性的知识背景。

高门槛的Python岗位:人工智能虽然用到是Python语言,但 本质已经和Python语言关系不大、更为重要的是那些领域要求从业者计算机硕士以上学历,以及深厚的数学、算法功底做加持 。大部分非科班或者条件达不到的连门槛都够不着。如果你日后打算从事AI领域的岗位,并这些是都是硬性条件:

  • 考入一所有AI相关专业的高校
  • 就要把大学计算机专业要求的数学课程吃套。
  • 取得计算机专业统招的硕士以上学历。
  • 所以非科班的或者零基础转行听信培训宣传之类能从事这部分领域工作的话,可以洗洗睡。

    但不是说没有靠谱的Python课程,但答主仍然强调, 光学会「Python」是找不到的工作的。Python只是一个工具,重点是与该岗位相关的其他职业技能 。例如量化交易,就需要从业者有金融知识和操盘实战的经验。

    如果后面选择学习Python培训机构的课程,自己要擦亮眼睛,一些跟Python沾边的培训课程:「Linux云计算、数据挖掘和分析、量化交易、自动化运维」也有靠谱的培训课程,结合自己的专长可选择相关课程。

    Python性能问题

    上面Python相关职业的问题,如果打算深入学习Python,到了中期基本上就要面对Python性能瓶颈的问题。所以Python到达一定水平,一定要严格区分不同的Python实现,大部分人说的Python其实就是CPython,而深入学习Python的话,一定要掌握PyPy、Numba、Cython这些第三方Python技术。因为Python应用规模到达一定程度,会不得不面对一个问题就是性能会急剧下降,因为官方的CPython内核的执行效率其实是非常低的,此时你可以考虑学习C来很大程度上改善CPython执行效率。此时有扎实的C基础的话,可以进一步学习Cython这门语言。将Python程序中严重拖慢程序性能的Python代码迁移到Cython中,并且编译成Cython扩展,让CPython前端去调用。

    如果你后面学习十分在意Python的性能问题的话,那么Cython是一门必修的语言之一,而学习Cython就客观你要懂C语言,并且一定程度理解CPython内核原理(至少要熟悉常用的Python/C接口的调用)。这里多说一句,你初期学习到常用Python第三方扩展库,例如openxml、爬虫核心的lxml其实都是Cython语言实现的。

    Cython、Numba、PyPy、甚至最近传闻在日后新版本CPython集成的Pyjion JIT编译器,他们背后的 逻辑优化Python代码的逻辑是将CPU密集型的Python代码而CPython力不从心的,直接让Cython编译直接降级为机器码运行,绕过Python内部繁琐的类型检测、堆内存分配、虚拟机内部低效栈操作

    但仍然 强调的是这些不是CPython实现原生的技术,CPython能从Cython、Numba、PyJion这些第三方编译工具得到性能上的提升,CPython其实在自身性能问题上仍然是不思进取的,那么PyPy的出现其实就是要取代CPython 的。

    解决CPython前端性能瓶颈的问题的,可以考虑用上Numba、PyPy这些高性能的JIT编译器。而答主实际上在Python编程中最好的组合就是前端PyPy JIT+ 后端Cython扩展的调用。

    当你Python到达一定基础,有兴趣可以关注我「铁甲万能狗」主页下这个【Cython/PyPy编程技术】,不玩套路,专题里面每篇文章是答主过去的学习心得和经验总结。