Answers:
我们都只是在学习编程语言。我只会认为语言实施者是在某种语言知识中十分之十的人。
学习多种语言和范式是为喜欢和不喜欢的事物开发“口味”的唯一方法。如果您只学习一种语言,您甚至无法真正决定您是否喜欢它。
您实际上是在以正确的方式进行操作。您将能够重用各自学习的最重要的基础知识,同时接触不同的语法,库和框架。
如果您仍在上大学,那么不要以为您不会以任何一种已知的语言覆盖所有内容都没关系。了解这些语言背后的通用基本理论更为重要。一旦了解了基础知识,就可以在需要时学习其他语言的详细信息。
我相信编程中最重要的是理解不同的 范例。
在您的问题中,您提到了面向对象编程(OOP)。如果您精通此主题,则应该仅使用伪代码并本质上使用一些图形化建模表示(例如UML类图)进行解释。
是否决定使用Java,C ++或C#(...)取决于您或您所工作的公司,但是真正重要的是理解/认识不同的问题并确定解决问题的最佳模型。解决编程问题的一种非常重要的方法是使用在本参考书中可以找到的设计模式。
对于嵌入式语言,我认为重要的是要了解与此类技术相关的各种问题。
用一种隐喻的方式,我会将其与写一本好的科学书相提并论。重要的是您所学的理论,您要解决的问题等等。最后,无论您用英语,法语还是日语写这本书都不重要。
也就是说,如果您想专门研究某种语言,以便非常有效地利用它,那么了解该语言的细节也很重要。
我在职业生涯中使用过许多语言,例如AMOS Basic,Java,C ++,PHP,VB6,Delphi等。今天,我在工作中使用C#,JavaScript,Ruby和一些Clojure,并且还与Pyhton,Erlang,普通Lisp和计划。
但是今年秋天,我想为自己的博客制作一个特别的圣诞节日历,并决定用24种其他语言熟悉并解决特定问题。这是一次很棒的经历,我学到了很多东西,强烈建议您在有一定的编程经验之后再进行此操作。
我对您的回答是:确实能很好地学习几种语言(它们应该完全不同),但是请确保您尝试并熟悉许多语言。
今天,对OOP和FP(函数式编程)有充分的了解是很重要的,并且您还应该熟悉静态和动态语言。
学习多种编程语言是一种很好的实践,并且在当今是必需的。很多时候,您不能总是使用所有选择的语言。
了解其他语言如何做事的好处将对您作为程序员有帮助;即使偶尔当你跳来跳去你让语句错误(例如,正在检查的不平等!=
,~=
或<>
)。尽管要学习的不仅是语言的语法,还应该谨慎,但要学习一种语言中的最佳实践以及一般的良好软件工程技能。如果您先学习C之后又学习了C ++,则应该在编写C ++代码时确保它具有C ++代码风格(而不是仅带有几个新关键字的C。这是您有多个类/对象,更喜欢引用) / smart指针而不是原始指针等
当然不。当然,您还想确保您正在学习不同的语言风格。学习C#和Java不会以任何主要方式扩展您的思维,但是学习Java和Haskell会。
查看《七周之内的七种语言》一书,它将带您逐步了解Ruby,IO,Scala,Erlang,Prolog,Clojure和Haskell。如果您喜欢各种语言,就会喜欢那本书。
好吧,C和C ++对移动编程不会造成任何损害。您可以同时使用Cocoa Touch或Android NDK,有时需要提高性能。另外,有时您想要这样做,因为您想要编写在多个平台上运行的代码。在这种情况下,假设您不仅使用第三方框架,还可以用C / C ++编写应用程序,并在特定于平台的包装器中编译所需的本机元素(例如,获取OpenGL上下文的唯一方法)在iPhone上是通过使用本机CAEAGLLayer类)。
因此,就像您在抽屉中拥有的工具越多,完成工作所需的选择就越多。当您专注于各种任务时,您会发现自己偏爱某些任务。如果仅执行UI任务,则C可能不是您一直以来的最爱。我会更加担心自己想完成的事情,然后学习完成这些工作所需的任何工具。
实际上,它与学习一点法语,西班牙语,英语,阿拉伯语,印地语和中文一样有用,却从来都不了解其中的任何一种。
相反,我认为当我无法学习一种新的编程语言时,这会很痛苦。可能是由于时间不足或其他一些原因。据我所知,程序员/软件开发人员喜欢挑战语言,投放更好的产品/产品,而当您发现自己总是在做相同的事情时,您会感到不舒服。因此,您需要一个新的挑战,一种新的语言,一些需要学习的新知识,并由此提出更多的产品。
因此,我认为跟随新的语言,新的库,新的方法和新的技术使我兴奋。但是我没有足够的时间来获得所有这些信息,而且人们可能永远无法做到足够深入。因此,不学习更多会很痛苦。但了解更多信息也不会受到伤害。
我同意brian,FrustratedWithFormsDesign和SRKX的观点,但我想补充一点,在大学期间,用多种编程语言和范例扩展您的知识是成为一名优秀专业人士的理想方法。
你们不可能以正规的程序员身份从大学毕业。编程是一项艰苦的工作,您需要在行业中与优秀的程序员一起工作多年,参加良好的培训计划和社区会议,而且在大多数情况下,您必须面对工艺问题并失败很多,直到您学会掌握方法为止它。
学习多种范例,多种语言,解决我们地区的多种问题,将为您提供一个良好的支持基础,让您每天独立地学习手工艺,同时充当行业专家。
您可能参加了Compilers课程,但您不会以语言设计师,创建者甚至编译器开发人员的身份出类拔萃。您将获得步骤,过程,问题以及基本解决方案,这将使您能够将这些知识应用于各种问题。
简短答案:不可以。
长答案:程序员,软件工程师或设计师的大部分工作都与特定语言无关,但非常依赖于特定方法。例如,面向对象编程非常关注事物在内存和运行时中的位置,它们的可访问性以及它们在以后使用(继承和封装)的可用性。实现有所不同,例如Java是否具有顶级继承的类Object(无论您是否喜欢)和C ++没有任何未指定的东西。
许多语言共享功能(许多不同)。当然,语法是不同的,当您比较完全不同的范例(例如命令式和功能式)时,它会比较棘手。但是,一旦您对语法,索引和可变性的疑问很少,那么无论走到哪里,字符串处理都基本相同。任何具有静态类型的语言通常都具有某种强制转换和强制性的方法,但是如何以及何时进行操作取决于语言设计者。
语言是工具。您只是在带上更多工具。但是该工具仅与使用它的工匠一样好。
现在,您学到多少是个人选择。我永远不会为了学习一门新语言而学习一门语言。任何一种学习新语言的选择都会受到课程要求(去年必须上一堂课来学习js,php和R),现有项目要求(如果90%的工作在perl 6中完成,您被录用了,剩下的10%也是如此,或者获得了特定于应用程序的收益(比Java加上一些用于统计分析的含糖库更胜一筹)。
就是说,您确实想了解现有内容和可用内容。我的大学就此主题开设了一门课程,即“ 编程语言概念”。这是一门广泛的概述课程,而不是严格的数学或与编码相关的课程,涵盖了可能被认为是实用的基础知识而不是理论计算机科学的基础知识。这是一门很棒的课程,我希望这是在第一至第二年而不是第三至第四年提供的课程。文字是编程语言的概念。并不是说您必须出去阅读本书,但这肯定会拓宽您的视野。
好吧,我的看法是,您不必学习每一种语言。但是,请尝试学习非常基本的功能,这也是其他语言所必需的。
例如,所有语言(Java,PHP或任何其他语言)都需要OOPS概念。
内存分配概念在许多编程语言中都非常相似。您永远不会错过这些主题。
每种语言都有语法和规则,编程语言也是如此。丹尼斯·里奇本人接受了这一事实。因此,应该学习该语言的语法。
但是我的看法是,您必须学习两种编程语言之间的非共同因素。他们将让您确定哪种语言代表什么。
C ++都是基本的OOP(面向对象编程),因此一旦学习了OOP概念,您还将学习在PHP和Java中也会看到的语法。
我的学习流程是:
Visual Basic 5(部分)-> HTML 2.0(部分)-> C(部分)-> CPP(部分)-> Java(部分)
,然后我又学习了C语言,接着学习了C ++,接着学习了C ++,接着学习了JAVA(这次完成),然后由于对Java和XML熟悉而搬到了android(部分)并在平均时间内学习了。第一次尝试教给我的东西较少,但第二次尝试一定要学习所有可以帮助您下次的知识。