转自quora
答案是一个悖论:只懂C ++和Python的程序员是没用的。
没有熟悉C ++和Python的程序员只懂C ++和Python。
如果您知道如何使用C ++和Python编写软件,那么您不可避免地需要与各种操作系统库函数,数据库访问函数或API进行交互,调用外部代码或程序,修改其他软件使用的文件或许多其他那种性质的东西。在您掌握甚至是单一编程语言的过程中,您将不可避免地需要了解如何与非规范实体进行交互。如果你掌握了语言而没有学习这些关键技能,那么你只掌握了语言的正式规范,而不是它的实际用途。我很难用流程编程语言来称呼它。
这就像有人记住了所有正式的英语语法规则但在日常英语中知道零常用的习语或短语,因此无法与不是英语教授的任何人交流。
现在,我认为这个问题的精神更像是问一个不懂C ++和Python语言的程序员在市场上有多么有用,而且我还有另一个悖论:
没有有用的程序员知道他们的编程语言。
这个悖论的关键在于,有用的程序员是程序员,他们不仅仅将编程语言知识带到了桌面上。完全掌握任何编程语言需要花费无限的时间。有太多可能的方法可以使用编程语言,而且一天中的时间太少,无法理解任何给定编程语言的各个方面。这对你意味着什么,为了有用,你需要知道除了你选择的编程语言的语法之外的事情。由于这种无知,你还需要另一种技能:在需要时学习你的语言的能力。这意味着您至少需要能够搜索在线网站或论坛,并且您可能需要熟练地在某些时候搜索有用信息的技术规范,直接转到源头。你还需要能够自己进行实验和学习,特别是因为有用程序员的许多问题都是独一无二的,你需要开辟自己的道路。
也许你对你的问题进行了第三次解释:如果你没学会使用除C ++和Python之外的任何语言,你作为程序员对市场有多大用处?
对此,我会说你真的不想知道答案。如果您不了解网站开发,SQL,某些操作系统的详细信息,或常用的图形库,CAD软件或各行业常用的其他软件工具,那么我担心您需要在某些方面学习这些方面的东西。如果你从入门级别开始,那么你很可能在工作中学习这些技能。如果您有时间做好准备,那么我强烈建议您掌握在您希望工作的领域中使用的各种工具。例如,如果您打算从事网站开发,那么您需要了解HTML,SQL,CSS,可能还有各种脚本语言。
作为结论:我建议您尽力摆脱“了解”编程语言的心态,并进入使用语言的思维模式。它们是工具; 它们可以是优雅而有趣的工具,但是如果你错误地认为编程是学习编程语言而不是控制计算机,那么你很可能会错过计算的全部内容。