2009-02-04 95 views
11

我想我會有點瘋狂。你如何保持你的語言直?

現在,我用以下語言的工作(我只是做一個精神上的庫存):

  • C++ - 我們的遊戲引擎
  • 彙編 - 低級調試和幾個協處理器具體程序
  • Lua的 - 我們的遊戲引擎的腳本語言
  • HLSL - 爲着色器
  • Python的 - 我們的編譯系統和實用工具
  • 目標C/C++ - 適用於Mac的遊戲引擎平臺的代碼和iPhone
  • C# - 在我們的海外辦事處,開發了一些工具
  • ExtendScript - Photoshop中導出工具
  • 的ActionScript - 用戶界面腳本
  • VBScript中 - 一些電子表格相關東西
  • PHP - 一些網絡相關的東西
  • SQL - 一些網站和工具相關的東西

在th之上是API的過多,通常有許多不同的方式來做同樣的事情:std庫,boost,.NET,wxWidgets,Cocoa,Carbon,Python本地腳本庫,Lua等,OpenGL,Direct3d,GDI,Aqua, augh!

我發現自己無意中將語言和api混爲一談,直到遇到語法錯誤才意識到我在做什麼。我覺得我不可能跟上這一點,我不可能精通這些領域。特別是在C++和Python的領域之外,我發現自己編程的更多是通過查看內存中的手冊。

你有類似的問題嗎?劃分思路,讓你更有效率?決定你想保持精通的地方?組織提示?當你從Lua切換到C++時,記得好的方法,你需要再次開始使用分號?咆哮着我們的程序員爲自己做了些什麼?

任何想法歡迎!

+1

這聽起來像一個社區維基... – GregD 2009-02-04 06:21:28

+2

你的咖啡因攝入量。 – 2009-02-04 06:21:55

+0

Good call GregD,now wikified – 2009-02-04 06:27:55

回答

4

對於我打算徹底學習的任何語言,我會在Vim中編寫自己的語法高亮顯示。我儘量嚴格着色,以便在我輸入時着色會產生明顯的錯誤。這有助於我記住在某些情況下我忘記了某些語法項目(所以//看起來不像Python中的註釋,並且我始終無法記住C或C中的哪個位置)。如果我不記得一個函數或方法的名字,我想它,如果它顯示顏色我知道我拼寫正確。我也嘗試並選擇不同的顏色,以便不同的語言彼此突出,這有助於我的大腦記住我正在寫什麼語言。

4

我想一段時間後,它對你來說很自然。當我第一次認真編程時,我使用了各種語言 - 特別是Java和C#。我發現自己意外地在C#中使用了某些Java特性,反之亦然。幸運的是,他們的許多功能都是相同的,所以它將我保存在那裏,但是隨着我對此的繼續,這不是一個真正的問題。

嘗試花費大量的時間與每種語言。坐下來,閱讀每種語言的好書(或一對),並熟悉它。問問你的老闆,你是否可以一次花大部分時間在一個部分上。在製作它們之前,你會開始抓住更多的錯誤。對於那些你不知道的人來說,這就是調試器被創建的原因 - 程序員最好的朋友。我有一個可怕的記憶,我的意思是可怕的。你可能認爲這讓我的編程更難,但它確實沒有。在很長一段時間使用一種語言之後,這些功能似乎就來了。

因此,請儘量在每種語言上花費更多時間,而不是一下跳起來,並嘗試一次全部學習。這些信息會更好地與您保持一致,並且在編碼時間到來時您會變得不那麼慌亂和困惑。嘗試做一些有助於讓您在編程時專注的事情。如果有很多咖啡因有幫助,那就去吧!如果聽你喜歡的音樂有幫助,那就去吧! (對我來說,我無法用最小的聲音集中任何東西,但每個人都不同)。

祝你好運!

2

如果沒有我的桌面上的6種API和語言參考書籤,我個人幾乎沒有希望前進的進展。

1

我感覺到你的痛苦,兄弟。

雖然我不知道,我認爲多語言熟練程度(或者至少是多語言普遍意識)就是我們活着的世界,而且我們會習慣的。不知何故。唉,不過,我不知道保持理智的祕訣是什麼。 (儘管對於我來說,我可以說啤酒肯定有幫助)。

我的團隊中的一些人(我在Real工作,順便說一句)順便在Windows上用C++開發,就是這樣 - 就是這樣 - 我們一直在做這些事情,他們很擅長,他們很喜歡,而且他們非常高興能夠做到這一點。

另一方面,我從來沒有能夠解決任何一種語言,我不認爲我想要;一般來說,我在過去的十年中學習了一年的語言,其中一些與其他人不同(ColdFusion,任何人?),而現在我幾乎全部工作都是在Flash,Flex和ActionScript中完成的。如果兩年前你告訴我我今天會做什麼,我肯定會笑的。保持有時候會很疲憊(我後面還有一種posted similarly - 其他人也有一些很好的答案),但我似乎無法抵制新東西,保持當前等。

One不過,我要說的是,繼John T和斯科特的評論之後,書籍是唯一的出路。書籍,至少對我來說,閱讀大量的(好的 - 不壞的)代碼是讓語言逐漸滲透到大腦中的最好方式,而這只是需要時間。就像我說的,我已經快兩年了,現在我只是開始覺得我可以流利地說ActionScript。總而言之,我可能在我的書桌上有十本AS書,而且,當我讀完我正在閱讀的那本書時,樓下還有兩個等着我。

它永無止境。哇噢!

PS:VBScript,但?呃,那太可怕了。對不起。 ;)

1

我的一個作業的優點是,我能夠從一個項目切換到另一個,用不同的語言,操作系統,編碼規則,質量保證要求,...

唯一的辦法我發現留在最前面並不是要了解每種語言的每一處,而是要知道什麼是參考文檔以及我可以在哪裏找到它們。例如,我使用perl,TCL/TK和各種Unix和Linux版本的man命令,Ada的在線語言參考手冊,Objective-C和Cocoa的Apple Developer資源。

4

當我從一種語言更改爲另一種語言時,我第一次從未得到正確的功能是數組。他們總是有不同的語法,我最終每次都查找它們。 這是我最常用的語言的列表以及如何實現陣列在其中:

//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 
3

一個你在web開發找到事情之一是,幾乎可以肯定,如果你想成爲能夠端到端 - 需要至少5種語言(SQL,中間層,html,css,js)的結束工作,每個稍微不同的項目都會添加其他東西(jQuery?Flash?XML?)。

我覺得你只是有點有自然神交這一點,但兩件事情真正的幫助:

  • 學概念,而不是語法和瘦肉上的IDE,當你需要(另一個原因語言谷歌具體的面試問題就沒有任何意義),因爲這是適用於任何東西,它更容易看到域特定組件進出滑動,而不是認爲你學習的東西完全不同

  • 在可能粘到simil AR語言語法的家庭 - 我知道我個人認爲C#更自然,因爲它與JS和ActionScript,因爲它的XML共享的語法比PHP使用的熟悉,我從HTML

7

有幾件事情我做的讓它們分開...

對不同的語言使用不同的IDE /編輯器/配色方案。你開始將語言和環境聯繫起來,當你切換窗口時,你的大腦會得到一個很大的視覺提示,它需要上下文切換到新的語言。

嘗試一次限制上下文切換爲2或3種活動語言。完成任何其他IDE或編輯器窗口時,請關閉它們。

試着忘掉「火和忘記」的東西。你列出的很多語言看起來好像不是你每天都在積極編碼的東西,而是你用來自動執行日常任務的工具。儘可能地嘗試擁有一個「工具日」,您可以在這些工具上進行任何工作。儘可能地將它與日常編碼分離,這樣你的大腦就不用擔心頁面隨時都在進出。

- 編輯提示,而不是隊列。

3

我同意:那裏有太多的語言和API。

如果你是一個客戶,語言和API就像T恤一樣,你會很高興你有最大的選擇。嘿,如果你想要一個靜態類型的語言,給你很大的靈活性和高性能,請使用C++!如果您想要更容易維護的東西,請使用Java或Python或Ruby,或者將其命名。你有選擇。你應該感到高興。

但事實是,你更像是一個建造房屋的人,語言和API就像螺絲釘和螺栓:它們就是你的工具。如果你有1000種不同類型的螺絲和螺栓,每種都有不同的特性和限制,那麼你的工作將是一場噩夢。你會更專注於你的工具,而不是你正在建造的房子(這是否是一個鐘聲?)。當然,我知道沒有萬能螺栓,但你肯定可以用幾種不同類型的螺栓想象生活,不是嗎?

我認爲問題在於建築業的人喜歡他們正在建造的房屋......而我們的開發人員只是喜歡這些螺栓。我也不例外:我只是喜歡學習一門新的語言或框架。螺栓非常漂亮。 ;-)

0

您可以做的任何項目調度,以儘量減少上下文切換可能會有所幫助。你能否推遲Web開發直到C++代碼穩定?

我試圖做的另一件事是有一個很好的新的語言的「工作示例」。嘗試找到您當前正在使用的語言的中小型樣本,並保持方便。我發現從一段我比較熟悉的示例代碼中提取語法細節通常比從參考手冊中挖掘細節快。

0

人類不能一心多用。期。

http://www.joelonsoftware.com/articles/fog0000000022.html

如果您不能讓其他人做的工作,因爲他們已經有充分的板塊,然後讓更多的人僱用。如果你不允許僱用更多的人,那麼也許人們至少可以轉移優先級,這樣每個人都可以更專注一些。例如:如果你全職在引擎上,或者在任何超出錯誤修正的承諾水平上工作,爲什麼你在研究遊戲邏輯?和內容工具? 構建工具? 網站開發?如果你不是在談論一年的時間跨度,也許每個月都集中在一個單獨的月份上,那麼這聽起來像是你做了所有的編程,而其他人都只是在扭動他們的大拇指。

當然,你只是這些領域中的一個領域的專家,而不是全部。有那整個「如果你被巴士撞到」的事情。如果你是那個人,那麼這就是你的工作保障,但對你的公司和你的理智可怕。

你可以嘗試多一些工具。儘可能多的移動到Python或.Net,因爲我認爲你不能拋棄你的遊戲核心技術。

相關問題