Programming languages 你如何保持你所有的语言通顺?

Programming languages 你如何保持你所有的语言通顺?,programming-languages,Programming Languages,我想我有点疯了 现在,我正在使用以下语言(我只是在做心理调查): C++我们的游戏引擎 汇编程序-低级调试和一些特定于协处理器的例程 Lua-我们的游戏引擎脚本语言 HLSL-用于着色器 Python—我们的构建系统和实用工具 目标C/C++-Mac和iPhone游戏引擎平台代码 C#-我们海外办事处开发的一些工具 ExtendScript-Photoshop导出工具 ActionScript-UI脚本 VBScript-一些与电子表格相关的东西 PHP-一些与web相关的东西 SQL-一些与

我想我有点疯了

现在,我正在使用以下语言(我只是在做心理调查):

  • C++我们的游戏引擎
  • 汇编程序-低级调试和一些特定于协处理器的例程
  • Lua-我们的游戏引擎脚本语言
  • HLSL-用于着色器
  • Python—我们的构建系统和实用工具
  • 目标C/C++-Mac和iPhone游戏引擎平台代码
  • C#-我们海外办事处开发的一些工具
  • ExtendScript-Photoshop导出工具
  • ActionScript-UI脚本
  • VBScript-一些与电子表格相关的东西
  • PHP-一些与web相关的东西
  • SQL-一些与web和工具相关的东西
除此之外,还有过多的API,它们通常有许多不同的方法来完成相同的事情:std库、boost、.NET、wxWidgets、Cocoa、Carbon、Python的本机脚本库、Lua等、OpenGL、Direct3d、GDI、Aqua、augh

我发现自己无意中将语言和api混为一谈,直到出现语法错误时才意识到自己在做什么。我觉得我不可能跟上它,我不可能精通所有这些领域。特别是在C++和Python的领域之外,我发现自己通过从内存中查看手册来编程更多。 你有类似的问题吗?如何划分以提高效率?决定你想在哪里保持熟练?组织技巧?当你从Lua切换到C++时,你需要重新使用半冒号吗?我们程序员为自己做的事情有多复杂


欢迎有任何想法

我想过一段时间你就会自然而然地感觉到。当我开始认真对待编程时,我使用了多种语言——特别是Java和C。我发现自己无意中在C#中使用了某些Java功能,而反过来又使用了其他功能。幸运的是,它们的许多功能都是相同的,所以它把我保存在了那里,但当我继续前进时,这并不是一个真正的问题

试着花大量时间学习每种语言。坐下来读一本关于每种语言的好书(或几本),熟悉它。问问你的老板你是否可以一次把大部分时间花在一个部分上。在你犯错误之前,你会发现更多的错误。对于那些你不知道的,这就是为什么调试器被创建的原因——一个程序员最好的朋友。我的记忆力很差,我是说很差。你可能认为这让我编程更难,但事实并非如此。在使用一种语言很长一段时间后,这些函数似乎就出现了

所以,试着在每种语言上花更多的时间,而不是一下子跳来跳去,试着把它们都学会。当编码时间到来时,这些信息会更好地与您保持联系,您也不会那么慌乱和困惑。尝试做一些有助于在编程时保持专注的事情。如果大量的咖啡因有帮助,那就去喝吧!如果听你最喜欢的音乐有帮助,那就去吧!(对我来说,我不能用最小的声音集中精力,但每个人都不一样)


祝你好运

如果我的桌面上没有半打API和语言参考书签,我个人几乎没有前进的希望。

我感觉到了你的痛苦,兄弟

不过我不知道;我认为多种语言的熟练程度(或者至少多种语言的普遍意识)是我们生活的世界,是我们需要习惯的。以某种方式唉,我不知道保持理智的秘诀是什么。(虽然对我来说,啤酒绝对有帮助。)

我的团队中的一些人(我也在实际工作,顺便说一下)在Windows上开发了C++,用于Windows,就是这样——这就是他们多年来一直在做的事情,他们非常擅长,他们喜欢它,他们非常高兴地做了一件事。

另一方面,我——我从来没能适应任何一种语言,我想我也不想适应;一般来说,在过去的十年里,我每年都在学习一门语言,其中一些语言与其他语言不同(ColdFusion,有人吗?),而现在,我几乎所有的工作都是用Flash、Flex和ActionScript完成的。如果你两年前告诉我我今天要做什么,我肯定会笑的。有时跟上进度会让人筋疲力尽(我前一段时间在那里看到了其他人的一些好答案),但我似乎忍不住要检查新东西,保持最新状态,等等

不过,根据约翰·T和斯科特的评论,我要说一件事:书籍是唯一的出路。书籍,至少对我来说,再加上阅读大量(好的——不坏的)代码,是让一种语言逐渐地、连贯地渗透到你的大脑中的最好方式,这需要时间。就像我说的,我已经用Flash快两年了,我现在才开始觉得我能流利地说ActionScript。总而言之,我桌上大概有十本书,等我读完现在正在读的那本后,楼下还有两本等着我

它永远不会结束。呜呼


PS:VBScript,但是?啊,太可怕了。对不起,伙计

我工作的优点之一是我能够从一个项目切换到另一个项目,使用不同的语言、操作系统、编码规则、QA要求


我发现保持领先的唯一方法不是了解每一种语言的每一点,而是了解什么是参考文档以及在哪里可以找到它们。例如,对于perl、TCL/TK和各种风格的Unix和Linux,我使用man命令,Ada的在线语言参考手册,Objective-C和Cocoa的Apple开发者资源。

对于我计划彻底学习的任何语言,我将用Vim编写自己的语法突出显示。我试着使着色更严格,这样在我打字的时候,着色就会发现明显的错误
//Java:
int[] array1 = new int[5];
int[] array2 = {0, 1, 2, 3, 4};
//C/C++:
int array1[5];
int array2[5] = {0, 1, 2, 3, 4};
//JavaScript:
var array1 = new Array(5);
var array2 = [0, 1, 2, 3, 4];
//PHP:
$array1 = array(5);
$array2 = array(0, 1, 2, 3, 4);
//Python:
array1 = []#According to the comments, we don't care about size!
arary2 = [0, 1, 2, 3, 4]; #Could use range to create a sequence