2009-09-11 60 views
19

我現在只是在17歲時學習編程。因爲我剛剛高中(這意味着我不能參加編程課程),所以我很難與其他程序員交談。我知道我寫的代碼很糟糕,and not like Jeff Atwood terrible code,我的代碼實際上很糟糕。那麼,我可以在哪裏發佈我的一些代碼,並讓真正的程序員來查看它。我知道如果我有一個問題,我可以在StackOverflow上提問,但我想發佈整個課程並對其進行評論。從哪裏可以獲得代碼的同行評審以及如何獲得我的代碼的關注度?

這裏真正的問題是我不會寫下一個偉大的軟件。我將會寫一個真正沒用的課程,除了教我如何編程之外,其他任何目的都不會成爲其他目的。永遠不會使用此代碼! 永遠!如何獲得高級(甚至中級)程序員查看我的代碼?

在此先感謝! ;-)

+2

題外話,但如果你的名字實際上是鮑勃·迪倫,你顯然註定書寫偉大的代碼。掛在那裏。 – JoshJordan 2009-09-11 22:06:37

+9

爲了實現你的代碼不是最好的。許多程序員忘記了這一點。意識到你有足夠的學習空間是朝正確方向邁出的重要一步。 – Kit 2009-09-11 22:16:49

+2

「我不能參加編程課程」 - 我從17歲開始在一所經過認證的社區學院(廉價)參加了大學編程課程。如果你問這樣的問題,你真的應該去,你會從課堂上得到很多。我希望你能在你的地區找到一些。 – 2009-09-11 22:21:18

回答

14

請看開源社區。有很多現有的和新的項目會喜歡渴望(如果沒有經驗的)開發者提供支持。

走這條路有兩個優勢:

  1. 你得到的行動,看到了巨大的代碼,並從中
  2. 瞭解您提交的由有經驗的開發人員進行審查的任何改變,他們會經常給你優秀關於如何改進你的代碼之前,它會被接受的建議

首先選擇你的語言項目(有一堆在c + +),並簽出的代碼。你不需要全部理解,但你必須能夠理解它的至少一部分。

如果項目看上去很複雜,繼續尋找。年輕的項目往往會有更少的代碼需要學習。

9

你爲什麼不試試RefactorMyCode

+0

鏈接回答死了。 – Pang 2017-07-31 01:45:11

9

如果你不能讓優秀的程序員看看你的代碼,那麼做下一件好事:看他們的!

尋找一堆執行相同(簡單)事情的代碼片段。在仔細觀察它們之前,編寫自己的代碼來執行相同的任務。將所有片段與您自己的(和其他!)進行比較,並嘗試找出差異的原因。

我建議從完善的項目中尋找代碼。爲了簡單起見,來自教程的代碼經常忽略重要的細節。

4

我認爲最好的學習方式是我學會的方式(我可能會有偏見):試錯。我一直在寫程序,在我去的時候自學。我會編寫可怕的代碼,並且我會努力讓它做我想做的事。通常這會讓我放棄這個特定的項目。但在下一個項目中,我會採取不同的方法,而且效果會更好。重複令人厭惡。一旦你知道設計中的粗糙點在哪裏,你就可以針對SO這樣的地方提出具體問題,或者更好的是,恕我直言,自己想出更好的設計。我獨立發明了所有主要設計模式,只是因爲我過去創建的解決方案感到沮喪。我認爲這給了我一個有價值的觀點,因爲對於大多數人來說,設計模式只是一種「最佳實踐」,但我知道使用其他設計帶來的痛苦,並且我可以很容易地看到代碼中糟糕設計的跡象一個知道一個)。最後一個技巧是我經常在其他程序員中看不到的......他們不明白爲什麼他們的設計不完善,他們應該使用別的東西。

5

我會盡量不寫無用的代碼,但試圖解決一些特定的問題。如果您正在真實世界的情景中學習,您的學習將更加先進。它不一定是一個大的商業領域;甚至可以是遊戲或共享軟件實用程序。

至於讓你的代碼複習,開源社區是一個很好的方式,因爲The Lame Duck說 - 事實上,如果你真的參與了一個項目,你會得到某種形式的評論。其他探索途徑:您當地的C++用戶團隊,查看可通過大專院校獲得的合作社項目,或聘請贊助實習生的公司中的某人。

我還沒有嘗試過如Gilad Naor建議的網站,如RefactorMyCode,但看起來很有希望。而且,是的,StackOverflow是一小塊代碼的好地方。如果你這樣做,解釋你想要做什麼,以及爲什麼你試圖這樣做,並問是否有更好的方法。祝你好運!

0

做一些有趣的事情,不要太擔心代碼風格。我開始使用BASIC在Commodore 64上,甚至沒有意識到存在乾淨的代碼和髒代碼之類的東西。如果我當時很擔心這件事,那可能會阻礙我的進步。調皮的時候你總是學會最好的。

+1

從什麼時候開始尋求智能化,建設性的批評以提高質量阻礙進步? – 2009-09-11 22:53:13

+0

在學習外語時,經常給出的建議是多說一些,不要擔心犯錯誤。在編程世界邁出第一步時,我相信也是如此。 – StackedCrooked 2009-09-12 01:40:45

+0

Touché。你應該在答案中更具體地說明練習的價值。 – 2009-09-12 02:38:03

1

你總是可以嘗試一個像Project Euler這樣的網站,那裏有一大堆問題會測試你的技能,以及由他人提交的一堆解決這些問題的方法。歐拉項目傾向於專注於算法而不是更高層次的編程構造,但我認爲還有其他類似的方面。

0

也許有點晚,但由於StackExchange代碼審查,值得答案:

代碼審查堆棧Exchange是一個問答網站同行 編程代碼審查。它是100%免費的,無需註冊。

這裏是鏈接:Code Review Stack Exchange

相關問題