你人生中的第一個一萬行代碼是如何寫出的?

不限語言種類, 學完了一門新語言的基本語法之後 ,如何完成一個有意義的實踐(類似書上算素數啊算兔子啊感覺就是數學題嘛),才能提升水平,甚至寫入簡歷?(計算機類在校生)

-------------------

時隔那麼久還常有盆友們來回答~ 我當初提這個問題的時候呢, 大概是想體會下不同的人,大家都剛開始學 代碼量打到萬行左右那種沾沾自喜又半懂不懂的感覺。其實也沒指望這個問題能幫到多少忙,或者指明方向之類,就是重溫那段半吊子代碼仔的歲月 (雖然現在也就略微長進~

題主現在找到了不錯的IT公司, 每個禮拜都要寫/改一片片的代碼, 只是心情再也沒有第一次寫完網站,輸入localhost:8080/xxx/, 敲下的回車那樣子愉快了。 (現在高興只限於發工資的那天!!


這個我倒是比較清楚。

大四的時候,修了一門課OOAD,期末沒有考試,用老師教的理論做一個軟體,把代碼和文檔交上去就有成績了。我就做了一個代碼統計軟體,其功能是統計一個項目中所有源代碼的空白行數、注釋行數、總行數。個人比較得意的地方是用戶可以自己定義分析語法以應用到不同的編程語言中去。

這個項目本身沒有超過1萬行,但我後來就用它來精確統計我各個項目的代碼行數了。

大四的暑假,經師兄介紹,我用C#做了個電梯監控軟體,在小區中控室監控小區所有電梯的運行狀態,可以在一定程度上自由配置以適應於不同的小區。

這個軟體大約是一萬五千行左右,因為有前面說的代碼統計軟體,所以當我發現超過一萬行時,小興奮了一下。

這個軟體賣了10000元,從2004年到2008年應用於北京幾十個小區,為那家公司節約了很多很多錢(之前他們用的軟體是按小區規模,每個小區都收費的)。2008年他們找我升級做第二版,我婉拒了。所以,我只能確定他們用到2008年。

我曾經去過大約十個部署了這個軟體的小區,看著自己做的軟體為人們帶來安全保障,提高工作效率。那種美好的感覺比寫了1萬行代碼強多了!


謝邀!

這個問題,要是看題目,真不知道怎麼回答。因為寫代碼的時候從來不看寫了多少,只看功能是不是實現了。

然後,忽然一天,可能就過萬了。話說,自己寫程序玩,算行數幹啥?又不是給老闆幹活,需要計算生產效率。

題面中那個如何完成一個有意義的實踐的問題……

我近期都是先有了想做的東西才去尋找和學習最適合的語言。

以前在校的時候,是每學完一種語言,都寫一個猜數字遊戲。就是那個猜4位數字,計算機給一個1A2B這種提示的那個遊戲。

這個遊戲的特定是,沒什麼難的演算法,有基本輸入輸出、輸入檢查,界面可以做成各種設計,內容涉及了循環、判斷等基本語法。想做簡單了,可以很簡陋,想做漂亮了也可以做出很多花花綠綠的附加功能。

最重要的是,我喜歡玩。不至於測試的時候自己抓狂了。

做好了,放到網上,免費下載,免費遊戲。如果評價還不錯,就在簡歷里放一個鏈接即可。

面試的時候帶個U盤,網路訪問不暢的時候,可以直接讓面試官拿去複製了看。

至於如何提升水平……

不管做什麼,做得完備一點。

比如輸入檢查,不要輸一個奇怪的東西就崩潰。

比如測試,全面一點,不要有人亂點了一下就崩潰。

比如畫面,做漂亮一點,可以不用花哨圖片之類的,但基本美感還是要有的。


大三的時候用cocos2dx寫了一個山寨保衛蘿蔔2,大概1w行左右,帶著筆記本在圖書館擼了一個多月,基本天天10小時以上,樂此不疲。


從沒算過行數,感興趣的只是用戶數。


  1. 打開記事本

class HelloDartTest {
static testMain() {
print("Hello, Darter!");
}
}
main() {
HelloDartTest.testMain();
}

2. Dart編譯

3. 提交生成的17259 行 JavaScript 代碼


謝謝邀請。

我也沒算過自己什麼時候寫夠了一萬行。大學時做過若干小項目,基本上都在三千到五千行代碼的規模。直到研究生的項目中,那個項目中我一次貢獻了大約一萬行代碼(一個 C++ 代碼檢查工具)。後來工作了,因為項目需要,反而寫的比以前少。

所謂提升水平,那取決於提問者希望提高的是什麼水平。如果想要的是演算法設計和實現能力,那麼解數學題是必須的訓練,因為沒有這種訓練,就沒有可能熟能生巧。反過來,如果目標是去通過軟體解決實際問題(比如我),那麼做一個軟體項目無疑比解題重要得多,因為項目中的進度跟蹤、管理、支持,都不是演算法題能給的,而實際項目其實並不總是演算法密集型。

我想提問者問這個問題,興許是看過李開復老師說過的所謂「一萬小時」理論。我本身不反對這個理論,但我認為學生沒有必要太過於糾結所謂「一萬行」。在我眼裡,這更多地是一個數量級上的虛數,而不是實際上需要精確計算的行數。保持學習和工作的熱情,比別的都重要。


在學校不知不覺寫出來的。。。

研究生畢業的時候隨手用軟體統計了下自己寫過的代碼行數,發現快5w了。

但是很悲傷的是寫的都是些沒法子復用的糟糠東西,或者刷題目什麼沒有意義的東西。

至今為止還在努力想做點什麼。


本人非計算機專業,本科時候用PHP寫了一個社交類網站,上萬肯定是有了


逛python話題,意外發現此帖,勾起不少回憶,謝題主問。

「第一個一萬行代碼」不知是指總代碼量還是指一個單獨程序的代碼量,

前者很容易達到,多做ACM題即可(按平均每題100行算,一天刷100道題就夠了:Welcome to Hangzhou Dianzi University Online Judge)

後者的話,是非常難的(一般小程序達不到這多代碼量)

我翻了下本科寫過的最複雜的一個程序,主文件代碼量8000+,算上模塊文件勉強夠一萬行,倒可以拿來說說

-

我本科計算機專業,入學以後一直對編程語言一竅不通,實驗課基本都是混過,考試勉強及格,直到大三機緣巧合學會VB6.0,才開始正式編程

我本科寫過的最得意的一個程序,是在我學會還原魔方以後寫的一個魔方還原程序,算是學以致用了

現在看來這個小程序有很多不完善的地方,但是當時的我僅用十二天時間(期間還要上課)就能寫出這個東西來,讓目前拖延症嚴重的我感到汗顏

當時我喜歡混跡人人、貼吧,寫完程序後在人人、貼吧發帖供人下載,沒想到第二天帖子上了貼吧首頁。。。

當時的帖子:

新編的一個魔方求解程序。適合初學者玩。歡迎大家測試

沾沾自喜了好幾天,不過大部分網民都是潛水黨,只會下載,從不留言,很讓人失落,10000多點擊,留言只有69。。。

於是一段時間後我發了個帖子2.0,頂帖才給下載密碼,留言增加300+,覺得沒意思了,就把密碼開放了:

(舊帖新發)新編的一個魔方求解程序。適合初學者玩。歡迎大家測試

現在下載地址仍然有效:

neuxxm的網路空間, 08.9.19 魔方還原器

-

回到題主問題補充中說的,「如何完成一個有意義的實踐」

寫一個小遊戲,用來鍛煉自己的代碼水平(比如我寫的第一個小遊戲是貪吃蛇)

寫一個小程序,試著解決你遇到的實際問題(比如上例中的「魔方還原器」)

逐漸你的代碼實戰水平就提高了。。。

如果想提高演算法水平,多做ACM題即可。

編程很簡單的。

PS:

@程序獵人 說的「猜數字」遊戲我也寫過,也是練手程序之一:)

neuxxm的網路空間, 08.07.22 猜數字


誰能記得第1萬行代碼寫的什麼啊、、

上個項目,自己櫓了1萬多行代碼、、

後來客戶端不用了,還有6~7千行在服務端呢、、

這是寫好的,系的時候還刪刪改改很多呢、、

表示完全沒感覺、、

至於怎麼寫出了、、為了完成項目唄、、

可能在上個項目之前我可能算上學習的時候的代碼量可能就有萬行了、、

自己折騰這玩的小工具,學習寫的例子,還有為公司寫的一些小項目,為他人項目加功能,改bug、、

其實萬行代碼不多了、、不知不覺你就寫到了、、


不請自來。

一切以代碼行數為目標的程序員都不是好學生。

初中的時候玩VB,看的是sh*t一樣的教材,讀的是sh*t一樣的代碼,以至於玩了一年多之後還不懂使用數組!

於是初中畢業,有個老師在教委任職,聽說我會寫代碼,叫我幫她輸入中考成績並且做一個分析。基本上就是excel可以搞定的事情吧,但是當時不會用。

拿到一堆數據(白紙黑字)之後錄入了Access2000,兩個人花了一個星期左右的時間。讀數據的方式是在VB上點點點,畫了40個文本框,一個個跟Access的列做了對應,然後通過操作數據表指針控制項讓文本框的值變化,然後從文本框讀下數字,再進行一些簡單的計算。

不會數組的時候有40個文本框寫出來的代碼是啥樣的呢?

Private Sub Text1_GotFocus()

Text1.BorderStyle = 1

Save = Text1.Text

End Sub

Private Sub Text1_LostFocus()

Text1.BorderStyle = 0

End Sub

Private Sub Text12_LostFocus()

Text12.BorderStyle = 0

End Sub

Private Sub Text2_GotFocus()

Text2.BorderStyle = 1

Save = Text2.Text

End Sub

Private Sub Text2_LostFocus()

Text2.BorderStyle = 0

End Sub

...

然後數了一下行數,12399行,一個星期寫完

如果現在去做這件事,先問老師要Excel的源文件,然後輸一個公式搞定,5分鐘的事。

往事不堪回首


一萬行太長,只寫規劃!


歪下樓,一萬行代碼沒什麼意義。


第一個破萬的是用易語言寫的一個資料庫管理軟體,不連別人的模塊源碼的話總共12000行。話說易語言很多命令是封裝好的,如果用其他語言編寫同樣的軟體,估計要在3萬行以上吧。


不用糾結代碼量。

現在所有新的語言,編譯器,都是為了精簡代碼量,讓工程師把更多的精力放在思考項目本身的邏輯中。

在研究所實習的時候,用C++寫過一個大約8K行的串口控制器,當時就覺得非常冗長,找BUG要找半天(暴露菜鳥本質X1)。

畢業設計用Arduino IDE作為軟體平台,做的是一個基於MSP430的環境檢測裝置,整個代碼量大約就200行以內吧。之前是用C寫過一部分,寫到單片機和液晶顯示器通訊的時候覺得太麻煩了,要定義各種亂七八糟的東西(暴露菜鳥本質X2)。

換了Arduino IDE後,可以更專註於硬體電路的設計和調校,光是單片機的datasheet、感測器的datasheet里的幾個錯誤就搞了我倆禮拜(暴露菜鳥本質X3),如果我還是用C寫的話,估計都來不及完成畢設。。。


大四狗,16年1月1日轉戰圖形學至今

現在還沒有任何一個項目能上1W的代碼,不過估計明天就有了= =

一個自己寫的渣C++ DirectX Demo。

PhysX能實現最簡單的碰撞計算,支持從3DS MAX SDK 導入自編格式模型,帶骨骼動畫(突然發現自編的那個3DS MAX格式沒算在Demo代碼行數內)

(那把這個加進來豈不是已經上1W了!)

(算了算了這點事我激動個P2333)

功能只支持添加Object-旋轉-平移-刪除-父子綁定-解綁,謝天謝地這些爸爸爺爺祖宗功能們和PhysX兼容的還不錯……

就從毛都沒有的空項目開始,一個字一個字敲出來的,碰見不懂的就去百度,不行bing,再不行google,還不行就死磕吧,反正DX你就不要想著問老師了……

歷程大概6個月,前4個月每天1-3小時,最後兩個月的時候每天6小時,差一個月每天8小時,最近一周每天12小時……就為了4月15日答辯前趕出所有功能。沒考慮優化,沒考慮美工沒考慮設計模式沒考慮用戶使用習慣,只有代碼。

大概學到的東西:

常用的設計模式

第三方介面的使用經驗

空間數學能力(這個有點累……)

C++ 11的一些新特性(bind之類的)

大概明白渲染管線怎麼回事了(對VS/PS/GS/HS+DS/CS都試著寫了Demo)不過還是缺實戰

英語閱讀能力

下面是選中所有*.cpp/*.h然後右鍵屬性截的圖,1W行數是按30B = 1行算的,294417.0f * 1.0f / 30.0f = 9813.4f

反正今天12點以前,最遲明天馬上就能上1W了_(:з)∠)_可喜可賀。


為了學習Python寫了一個Web框架,結果越寫越複雜~後來對Python熟悉了之後發現自己寫的大部分都是廢代碼~~


做個很簡單的能用的產品,很簡單就過萬了。

寫文章數量不重要,如何通俗易懂或者雅俗共賞或者孤芳自賞才重要。

第一個破萬是一個簡單的Google Analytics的日誌分析器。PHP CLI命令行程序。有標準輸入,完成歸類入檔,統計一些老版渣GA沒有的數據。和定期清檔這種2B功能。裡面有個聚類相關的文件總行數輕鬆破萬。現在回頭已是他人所曰。。

PS:現在兩周寫點東西。回頭一看主文件(帶注釋)破3000.看行數多真的不是一個好習慣.


過萬的時候也沒啥感覺,就是做出來的項目用的人多了,成就感比較大


在做一個單機遊戲,第一次寫程序。。。現在12000多行了,還沒做完。。匿了


推薦閱讀:

做主程序員是怎樣的體驗?
程序員大神都如何支配自己的薪水?
程序員轉行燒烤需要做哪些準備,有哪些優勢和劣勢?
知乎上的程序員大神的擇偶要求高嗎?
如何評價王垠的《Go語言,Docker和Kubernetes》?

TAG:程序員 | Python | PHP | 編程 | Java |