四年 C++ 老炮,转攻 Python 实践分享

栏目: C++ · 发布时间: 6年前

内容简介:C++ 已经学不动了,现在换 Python 还来得及吗?一位四年工作经验的 C++ 程序员亲述转型历程,这不仅仅是语言上的转变,而是代码思维甚至工作环境的转变。通常,程序员会认为 Python 编码比较简单,即便是在校学生也可轻松入门,这是大多数转型 Python 程序员的最初想法。当然,Python 程序员现在的社会需求更大,薪资也相对更高一些。随着 C++ 的日益增负,不少程序员都抱怨“希望 C++ 别再加了,实在是学不动了”,本文讲述了一名具备四年工作经验的 C++ 程序员转行学习 Python 的心

C++ 已经学不动了,现在换 Python 还来得及吗?一位四年工作经验的 C++ 程序员亲述转型历程,这不仅仅是语言上的转变,而是代码思维甚至工作环境的转变。

通常,程序员会认为 Python 编码比较简单,即便是在校学生也可轻松入门,这是大多数转型 Python 程序员的最初想法。当然,Python 程序员现在的社会需求更大,薪资也相对更高一些。随着 C++ 的日益增负,不少 程序员 都抱怨“希望 C++ 别再加了,实在是学不动了”,本文讲述了一名具备四年工作经验的 C++ 程序员转行学习 Python 的心路历程。

由深入浅

最近几年,从 C++ 转型 Python 的程序员不在少数,毕竟由深入浅易,由浅入深难。学习 C ++ 感觉就像在海里深潜,潜的越深,景色越美,但需要付出更多时间和精力。总的来说,最终所覆盖的距离并不会很大。Python 有点像浮潜,很容易触碰,如果可以持续投入学习,很快就可以有所领悟。从这儿可以清楚看出,每种语言都应该在正确的地点和时间使用。

C ++ 语法更严格,Python 库更丰富

C ++ 语法更加严格,一旦出现编码错误,基本会连带发生很严重的后果。C++ 程序员通常需要深入了解计算机、编译器和编程语言语法。当深入了解时,我们可以看到并被一些事物所吸引,比如编译过程和内存管理。

作为 C ++ 程序员,大部分人往往更关心语法调整和场景用例,注重内存分配及释放。程序更加独立,编程人员往往清楚知道代码会发生什么,同时认为其他人写的代码不太可靠,更容易出错,并且可能会破坏内存用量。

C++ 程序员的主要日常 工具 是 Vim,有许多用于编写代码的插件,用于调试的 GDB 和用于分析内存使用和错误的 Valgrind,可能用 g++ 编译并编写 Makefile。此时,作者并不认为 IDE 会让其受益,反而非常依赖编译器来查找错误类型。

转型 Python,要学会放手

转换 Python 需要学习的第一件事就是放手,程序员不必再了解底层发生了什么,内存是否被分配或释放,这些都没有关系。因为 Python 可以使用其他人编写的代码,这些代码被打包成库,程序员可直接在代码中调用,可以节省时间并帮助更快地编写代码。这并不意味着编码速度变慢,或者依赖未维护和无功能的库,但重点肯定是不同的。

当作者开始用 Python 编写代码时,首先用 Python 编写了 C ++ 代码,虽然这也可以生成最终运行效果,但并没有从 Python 语言中获益。只有以更“Pythonic”的方式编写并使用库以及更高级的概念(如生成器,装饰器和上下文)时,Python 编码才得到改进。

作为一名 Python 开发人员,倾向于首先考虑能解决手头问题的库。Python 拥有丰富的库生态系统和支持社区,几乎可以完成任何事情。目前比较常用的库是,NumPy 用于数值计算,OpenCV 用于计算机视觉,json 用于读取 json 文件,SciPy 用于科学计算,sqlite3 用于数据库。

目前,作者使用的日常工具是带有 IdeaVim 插件的 PyCharm(一个 IDE),一个功能强大的调试器,比默认的 Python 调试器 pdb 更友好,也会使用 pip 来安装需要的库。除非真的需要,否则不会再监视内存使用情况。

实用技巧

如果是 C ++ 开发人员,并且考虑开始使用 Python 编写代码,以下是作者的建议:

  • 摆脱旧习惯。停止使用 C ++ 编译器作为调试器,不过度优化内存使用情况。避免编写类似 C ++ 的代码,尽量不依赖类型。

  • 培养新习惯。开始使用库写 Pythonic 代码(但不要过度)。

  • 保持可读性。使用更复杂的概念,例如生成器、装饰器、上下文等,可以试试 PyCharm。

  • 使用 C ++ 和 Python 公共库。某些 C ++ 库(如 OpenCV 和 QT)具有 Python 接口,程序员很容易在 Python 中使用相同的库,而不是从头开始学习新库。

  • 不要忘记二者的本质区别。Python 有时太慢或不适合任务,这就到了运用 C ++ 知识的时候了。在 Python 中使用 C ++ 代码的方法有很多,比如 SIP、ctypes 等。

结语

当转换到一种新的编程语言,尤其是与个人习惯完全不同的语言时,需要花费大量时间学习、挖掘、发现,最重要的是要明白不仅语言应该改变,编码风格和工作方法也要改变,因此需要提前做好大量准备工作。

参考链接: https://medium.freecodecamp.org/how-i-went-from-c-to-python-a-conceptual-change-8bf29d059428


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

DOM Scripting

DOM Scripting

Jeremy Keith / friendsofED / 2010-12 / GBP 27.50

There are three main technologies married together to create usable, standards-compliant web designs: XHTML for data structure, Cascading Style Sheets for styling your data, and JavaScript for adding ......一起来看看 《DOM Scripting》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具