如果我认为我需要掌握Python,以解决大多数常见的编程任务,我是否错了?

编辑如果他们不教我新的编程和解决问题的新概念,我就不愿意学习新的编程语言;因此,掌握现代,快速发展的想法,拥有丰富的班级库,广泛使用和记录,当然还有一种“友好”的学习曲线编程语言。

我认为,在快速发展的科技行业中,专业化是成功的关键。

有帮助吗?

解决方案

你是对的。

正确的: 非常了解单个工具是非常有市场的,并且需要满足。 Python非常适合OO,对于脚本,用于功能性编程,并且具有出色的数学和科学库。

错误的: Python不教您好的开发人员应该知道的一切。有时,您需要JavaScript来提供一些客户端功能。有时,您需要了解更基本的层面,例如Python下方的C。有时,您需要像Haskell或Clojure一样学习以不同的方式思考。

其他提示

是的

您认为任何单一语言都可以在不考虑其他语言的情况下做所有事情是错误的。

我认为,在快速发展的科技行业中,专业化是成功的关键。

我想不出一种更好的方式来射击脚。学习和掌握一种语言很棒,但是您提到,如果他们学习新语言,如果他们不满意 “不要教我编程和解决问题的新概念。”

语言不会教您这些概念,浓郁的尘土飞扬的tomes,并且多年来与您自己更加紧密地与您自己合作。这些设计的基本模式,概念和原理超越语言,可以在许多不同的范围中应用。

您可能能够解决许多问题,但它并不总是是工作的最佳工具。

我不一定知道这有什么问题,但是我不会为您的职业而建议。我可以想到一些问题:

  1. Python现在很热,但是说5至10年吗?我不认识您,但我不希望成为COBOL大型机程序员的未来。
  2. Python对每项任务都不会足够快。你可以做很多事情,但是 那里的任务本身不够快。在这些情况下,您要么需要知道C(如果代码中有一个要慢的代码)或JVM语言(如果您需要整个过程要快速或与安全性有关)。

如果他们不教我新的编程和解决问题的新概念,我就不愿意学习新的编程语言

直到我这样做之前,我个人没有看到尝试希腊食品的好处。一旦我尝试过,我很遗憾地推迟了这么长时间。当然,食物不是编程语言,但是类比实际上并没有那么遥远。通常,看到学习新语言的优势的唯一方法就是尝试一下。

保罗·格雷厄姆(Paul Graham)称其为 “ Blub Paradox”:

程序员非常喜欢他们喜欢的语言,我不想伤害任何人的感受,因此要解释这一点,我将使用一种假设的语言,称为Blub。 Blub落在抽象连续性的中间。它不是最强大的语言,但比COBOL或机器语言更强大。

实际上,我们的假设Blub程序员不会使用其中的任何一个。当然,他不会用机器语言编程。这就是编译器的目的。至于Cobol,他不知道任何人如何完成任何事情。它甚至没有X(您选择的Blub功能)。

只要我们假设的Blub程序员正在低头看《力量连续》,他就知道他正在低头。语言比Blub强大的语言显然不那么强大,因为它们缺少他习惯的某些功能。但是,当我们假设的Blub程序员朝另一个方向看时,他没有意识到自己在抬头。他所看到的只是怪异的语言。他可能认为他们等同于blub的力量,但是所有其他毛茸茸的东西也被扔进去。 Blub对他来说足够好,因为他在Blub中思考。

但是,当我们使用较高的功率连续性的任何语言切换到程序员的观点时,我们发现他反过来看着Blub。您如何在Blub中完成任何操作?它甚至没有y。

通过归纳,唯一可以看到各种语言之间所有力量差异的程序员是了解最强大的语言的人。 (这可能是埃里克·雷蒙德(Eric Raymond)对LISP的意义,使您成为更好的程序员。)由于Blub Paradox,您不能相信其他人的意见:他们对他们碰巧使用的任何语言感到满意,因为它决定了他们考虑程序的方式。

如果您有机会,我建议阅读整篇文章。

最后,我可以在想要专业的角度看到您的观点。但是我认为这不是您要做的。根据定义,执行“几乎所有编程任务”不是我认为专业化的。听起来您正在使用Python概括。如果您想专门研究,我建议您进入特定的编程领域,例如机器学习或数据仓库或集成。但是,编程语言本身并不是一件专业化。

python(尽管我对此有疑问)根本无法^H^H^H^H^H不应适用于所有内容,就像我的滑动钳子不用用作螺丝刀一样。

sql? 存储程序?启动脚本? HTML(已经提到)和XSLT? C图书馆包装纸?

我认为Python不会非常适合嵌入式微控制器,后者可能只有32K的闪光灯和4K RAM,但需要每秒处理25,000个中断。

(PS我对Python没有任何反对,实际上我最近购买了 Pycharm 1.0 从喷气桥。例如,我只是不将其视为C的通用,例如C。您可以本身写所有Python吗?)

我认为您是正式的,因为Python是Turing-Complete的编程语言,应该让您能够解决几乎所有任务计算机可以解决的(尤其是在某些库的帮助下)。而且,您可能可以舒适地以完全居住在Python Sphere内。

但是,我认为您在许多层面上都错了:

  1. 您正在依附于工具。这就像一个机械师,说特定类型的扳手是他需要的一切。语言是工具。一个好的程序员应使用最佳工具来完成任务(当然,在其环境的范围内),无论它是什么,并且都没有任何工具最适合所有任务。
  2. 您人为地限制了自己的视野。语言是工具,但它们是具有角色和想法背后的工具。如果您仅将其中一个用于所有事情,那么您将否认自己有新外观的可能性,解决问题的新方法,新的思维方式。
  3. 您似乎在善于使用任何特定工具方面使您的职业变得令人困惑。优秀的程序员可以使用任何工具,因为他了解指导创建和使用这些工具的基本原则,并可以确定如何以及为什么部署每个工具。我认为专注于成为一个好人是一个错误 Python 程序员而不是获得好 程序员 (在某个场合出现时,在Python编写程序可能碰巧)。不要误会我的意思 - 前者还可以,但最终的目标应该是后者。后者与“ Python就是我所需要的”不兼容。
  4. 对该工具的情感投资会导致狂热主义,而狂热主义将导致忽略更有效的解决方案,而浪费您使Python做不打算做的事情的努力。不要误会我的意思 - 黑客要做的事情让他们做自己不愿意的事情(例如,用旧浴缸和叶吹制者建造汽车或在python上写OS内核),但是当您何时何时成为一个人,可以决定需要现实世界效率的项目,您必须知道工具的优势。情感投资使您夸大了优势,忽略了劣势。

我不会说你错了。 Python是一种多域的通用编程语言。

这实际上取决于您打算进入的行业。我想说的是,Java或.net的工作要比Python多得多(并不是说Python有什么问题)。越来越多的人使用这两种应用语言意味着他们几乎没有动手(冒犯某人的风险),最广泛的知识基础和最广泛的框架可用。在商业应用程序世界中,框架支持是保持竞争力的很大一部分。

Python是一种非常灵活的通用编程语言,它已被用来编写几乎可以想象的东西,除了OS内核(快速更新:实际上它具有: http://mail.python.org/pipermail/python-announce-list/2004-July/003220.html).

但是,学习新语言总是很好,尤其是一种与您已经知道的语言截然不同的语言。

尽管您应该掌握至少一种语言,但学习另一种语言很少是浪费时间。即使是最可怕的编程语言(我不会说这个名字,因为这可能最终会在一场血腥的宗教战争中出现:-))有一些使我思考的特征:“嘿,为什么Java/ c/不能这样做? ”。

此外,截至今天,还没有完美的语言。尽管Python非常接近它^^。

当您掌握Python时,您将知道是否可以做所有事情。

答案自然会给您带来。

这就像一个高尔夫球手说他只会用5个铁打球。您可以做(或者告诉我),但这并不总是最好的选择。 Python做得很好,但是有时它不是工作的最佳工具!

IMO,是的,您认为您只需要Python是错误的,尽管这确实是一种很棒的语言:

1)C-C ++是PC世界中所有内容的基础。 IMO如果您不知道C-C ++,您真的不知道如何为PC编程。 考虑C -C ++等大学的统计数据 - 通过仪式。

2)成为 通才 - 尽可能多地将手指放入尽可能多的馅饼中,并始终在看新事物,而不会陷入任何特定的时尚或理想学。

如果您打算以程序员的身份谋生,您必须了解自己可能大部分时间都会“在边缘”生活 - 您不知道会破坏您当前的工作,而您不知道知道你的下一个将来自哪里。

Hth

我想看到你用纯python写作:

  1. 工厂地板控制,实时安全性,保证300ms的反应时间
  2. 汽车警报远程固件必须适合您的手掌。
  3. 数据库引擎适用于> 1000HITS/s
  4. 操作系统,任何实际(物理)硬件平台。可以很简单。
  5. PC的BIOS,
  6. 竞争性(=快速)Python编译器/口译员
  7. 实时视频提要对象识别每秒25帧的视频供稿。
  8. 动态FPS游戏的现代竞争性游戏引擎
  9. 有趣的动态街机WebApp游戏
  10. 防病毒软件。

在Python完成了其中一半的任务,我承认Python是国王。

许可以下: CC-BY-SA归因
scroll top