如何擺脫寫代碼總有一種照搬別人代碼只是在此基礎上修修補補的感覺?

本人接觸計算機領域時間並不長,沒有經過系統的學習,往往是一個課題或是項目來就開始邊看書、google邊根據得到的源代碼開始「二次加工」,我認為這是一種糟糕的體驗,希望得到一些建議,擺脫這種情況。


可以學我,不參考別人的代碼,努力自己想,想不出來就換個課題(逃


理解地搬和不理解地搬是不同的,要擺脫的是「看都不看一眼」就搬別人的代碼,修修補補本身沒什麼不好意思的。


如果你覺得你的二次加工是一個普遍需求,那麼,你就可以猜到,多半已經有一個二次加工好的輪子,然後你去找,或者找不到,bingo,做一個輪子放到github上去吧。或者找到了,好了,你不用二次加工了,有現成的輪子可以用了,或者,你發現這個輪子不大好用,bingo,fork,然後PR。


寫代碼分兩個系,實用系和技術系

第一個要求開發效率,第二個講究使用效率。

第一個適用初期和中期,第二個適用發展後期。

看你哪個系了


在知乎上看到的:

我們不生產代碼,我們只是github的搬運工


本質上是語言不夠熟悉!

真的。你很多時候參考的不是別人的思路。

是參考別人的語法。

把基礎核心API,假如是java的話。都記熟之後。(最後理解記憶,也就是這些API或者這些關鍵字為什麼這麼設計)搞清楚。

其他,取決於你讀書的時候舉一反三的能力。

你要相信一件事(絕大部分的演算法難度不超過初中奧賽對基礎初中知識的發揮難度。)


基礎最重要。

國內做過很多小遊戲,手機應用,網站郵件收發系統……

說起來多,其實連基本的c++語法都不懂

無非擅長copy paste。

來美國讀大四,被本科生們紮實的基礎驚呆了。

於是怒從c++入門開始學起,從輸入輸出開始到了解指針鏈表,基礎打牢了,後續再難,都可以自己完成,無非是搞懂演算法,寫出來只是時間的問題罷了。


要有自己的想法自己的思考


不要總是想弄個大新聞么,每個項目都有個目的。同樣的郵件程序,為什麼foxmail做的又快又好用呢。細節,效率都做好了,哪怕代碼都是拷來的,誰又會在乎呢。做技術的總會陷入技術細節,殊不知能更好服務他人才是最終目的,技術最多也只是工具。


我只是只善於模仿的猴子,啥時候我進化了,估計就差不多了,努力中


我一直認為代碼知識一個思想,展現的時編寫者的個人思維過程。人家的代碼所表現的思想好,你照搬也是一種先進思維的學習而已,沒什麼照搬的。說不定在照搬的過程中你發現了更好的思路,那時就是人家參照你的了。


關鍵是你改過的代碼比原代碼更厲害


你可以換種思路。

在邊寫項目和課題的時候,邊學邊查看別人的代碼,個人覺得這是個非常好的學習方法;

而且能在看別人的代碼中進行二次改造成為自己的代碼,這個也能說明你在能看懂並理解別人的代碼又再一次的提高了自己。


自己試著造造輪子


計算機這個東西還是基礎重要點,基礎好了項目很快。

大三時候喜歡用php,mysql.ios "改"出好多fancy的app,但是連什麼是鏈表都不知道。


推薦閱讀:

如何利用已有的流行即時通訊軟體實現自定義加密通信?
漢諾塔問題的遞歸解法是怎麼想出來的?
編譯原理和演算法導論是不是屠龍技 有技而無龍可屠?
有哪些有用或者好玩的 Telegram Bot?
C++ 關於 static 對象定義問題?

TAG:程序員 | 編程 | 代碼 | Java |