这可能会在几分钟后关闭,但我想我还是应该问这个问题.正如我在业界看到的那样,如果您了解的语言多于一种语言,它确实会有所帮助; 如果您可以使用多个SQL引擎而不仅仅是一个,并且在极少数情况下,如果您同时了解软件工程和编程(等等,并且列表继续).
当我第一次开始编程(一年前)时,我选择了PHP和MySQL.然后我去了Odesk开始寻找副业,我不知所措; 它不只是"PHP",而是Wordpress,Joomla,COdeigniter,Zend等.知道了,我决定学习Joomla,Codeigniter和Kohana.当我在做一些网页浏览时,我遇到了Python和Ruby.然后我决定学习Python,Django和Pylons.在浏览了一些之后,我遇到了PostgreSQL和MongoDB.因此,与MySQL一起,我决定研究PostgreSQL和MongoDB.
在我决定研究它们之前,我读到了它们:是什么让人们从一件事转向另一件事,是什么让这比这更好.
然而,当我听说iPhone和Android开发时(特别是当ASE开始玩,允许我使用Python和PHP用于Android)时,我的好奇心又一次松了一口气,所以,从现在开始的几个星期,我可能会继续当我去探索时,我再次获得全新的理由.
我无法控制我的探索和学习新东西的冲动,但我担心这样做,我可能无法真正擅长这些或其中一些事情(我的目标是成为一名熟练的网络开发人员)在PHP,Python,网页设计和上述数据库软件中).因此,为了管理事物,我决定坚持使用网络(和移动网络)开发(我甚至计划进行一些人工智能,游戏和桌面编程,但我不得不放弃),特别是上述技术.
但是后来我从很多"所有行业的杰克"中读到的文章都浮现在脑海中:你只能擅长一个或者一无所有.
你们中的任何人都不仅仅精通一种编程语言,还不仅仅是一种数据库软件(而且精通我的意思是"非常好")?你是怎么做到的?什么时候/你在哪里停止学习全新的东西?
我发现"所有交易的杰克,但没有人"的逻辑有时可能是一个谬论.
不同的领域,编程语言和技术的广泛知识可以让你看到的模式,关系和解决方案,你会忘却,如果你只知道或有一个非常具体的工具集工作.
有一个短语人们在药物中使用:"示出的oncologyst病人,他们将发现的癌症,显示神经学家同一患者,他们会发现一个神经系统疾病".
有时是非常专业的偏见视图以这样你尝试并应用非常具体的知识,以适应问题,而不是寻找最好的解决方案的程度.
然而,这并不意味着你不能成为许多事情的专家.你提到你只编程了一年.你显然非常热情并且有天赋,但这只是很短的时间.您将有多年的时间熟悉您工艺的许多方面.
你们中的任何人都不仅仅精通一种编程语言
只有少数不同的语言范例,在这些语言范例中,大多数语言只有语法,库支持和编程环境才有很大差异.一旦你学习了几种语言,学习就会变得微不足道(我猜与自然语言类似).
就个人而言,我不会认为只是知道许多语言是计算机科学/软件开发的全面表现.这是理所当然的,你应该能够毫不费力地选择一个给定的语言或开发环境.
熟悉不同的领域,如机器学习,人工智能,数值模拟,计算机视觉,计算机图形学,高等数学的许多分支等......更难以实现和维护.这些事我经常感叹不知道,似乎没有足够的时间去试验.我想这取决于你需要使用什么.