我是自学成才的Python中级程序员;我经常遇到用其他语言(通常是Java)编写的关于软件开发和编程的流行书籍。
典型例子:
一般来说,读一本为另一种语言写的书有多大用处?具体来说,Python呢?一个人应该坚持使用特定语言的书籍吗?
例如,很多人赞扬GOF的设计模式,我从来没有读过它,因为这个模型适用于其他语言(毕竟Python是关于反模式的,对吗?)然而,由于它在CS文学中的地位,我感觉到了一种冲动。
同样,单元测试的艺术:使用.Net中的示例可以帮助Python程序员学习单元测试,即使示例是在.NET中?
发布于 2013-04-21 17:41:13
绝对一点儿没错!偶尔脱离你的主要语言是非常有帮助的,因为这可以让你通过不同的视角看到编程的概念,这会让你获得新的视角。
使任何软件都是好的,或者高质量的,从来不是关于语法或语言的选择。这就是这种语言的应用方式。Steve McConnell将这种编程称为一种语言而不是一种语言的编程。
McConnell写了完整的代码,这是我强烈推荐的一本书。他特别指出了为什么这些例子是用许多不同的语言。原因之一是他希望读者关注他所阐释的概念,而不是语法。
清单中的书描述了对任何程序员都有帮助的一般概念,而不管他们选择哪种语言。
刚开始时,您确实希望专注于能够编写编译的代码。学习给定语言的语法不需要很长时间,使用文档和intellisense,这将更多地影响到实际需要记住的内容。大多数语言可以在几个月内学会。然而,编写高质量的软件是一门学科和工艺,需要多年的实践和经验,即使这样,仍然有改进的余地。了解设计概念,如如何使您的软件更易测试、模块化、松散耦合等,将打开您对代码的一般看法。
当您不再关心语法,可以通过中立的镜头看到代码时,这将真正使您作为一个程序员受益。
发布于 2013-04-22 00:44:40
首先,您提到的一些书是用多种编程语言编写的示例。例如,GOF的DP是用C++编写的,如果更少的话,用Smalltalk示例编写,而TDD是用Java和Python示例编写的。
如果你受过良好的训练,学会了什么是有用的,放弃了什么,翻译了你学到的东西,你就会从大多数程序员推荐的书籍中获益。然而,如果你在这方面没有什么经验,你可以从“近转移”的书籍开始。否则,你会学到很少的东西,甚至你也会学到坏的想法和习惯--有些实践是依赖于语言的。我见过很多Python程序员在C++中实现GOF的DP时遇到了很多麻烦。
转移是心理学和教育性术语,用于在不同的环境中应用您所学到的知识。他们区分近和远转移。通常近距离转移更容易,更有效,这意味着你需要为远传付出更多的努力。
对于近迁移学习,我强烈建议向你的目标语言--语言类型学中的兄弟姐妹--学习类似的语言,就其范式而言。对于Python来说,这可能类似于Smalltalk --或者现在的Ruby --但是Smalltalk的遗产更大。
例如,你将从DPSC中学到更多的东西,而不是仅仅从GOF的DP中学到更多。(顺便说一句,同时阅读DPSC和GOF的DP,仔细对比和比较是一种非常有益的学习体验)
从我近乎转移的经验中,我记得我的Python编程从阅读Smalltalk、APL、Io和图标的书籍(文章、论文等)中的飞跃,所有这些都是动态的。
https://softwareengineering.stackexchange.com/questions/195625
复制相似问题