本人是一名大一的學生,對於各種的編程語言有一些了解,語法方面不是問題,但是如果想要做一個項目,比如說像是個人博客,或者簡單的python程序,比如做個萬花筒之類的小項目,看著書怎麼做,每一步都可以理解,但是如果讓自己放下書完全自己去想,就不知道如何下手,怎麼開始這個項目,先開始做哪個模塊,裡面的邏輯,感覺完全沒有頭緒,請問這是因為自己的經驗太少,還是自己的編程功底不紮實,應該怎麼改善這種情況


拋開已有的項目經驗,單純說說怎麼上手開始一個全新的項目:

  1. 你是大爺,各色妹子你可以盡情挑。
  2. 妹子姿色重要,姿勢水平也不能忽視。
  3. 周邊準備停當,剩下的就等下手了。
  4. 輕攏慢捻抹復挑。
  5. 說不下去了。


按題主這種描述,這不是編程功底不紮實的問題,這是根本就沒有編程的思想。看著書看著視頻能做出來,是因為你跟著別人的思想現成的路子走,當然走的通,輪到你自己分析,就把會的東西全忘的一乾二淨了,所以你沒有頭緒。

不說什麼複雜的項目,就拿前兩天比較有意思的微信跳一跳和頭腦王者的自動刷分來說。

在做一個東西之前,你一定要清楚你要做一個什麼樣的東西,做出來要有一個什麼樣的效果。在真正動手開發之前,你要把你的需求先列出來,把你要用什麼架構想明白,分析是很關鍵的一步。就比如說跳一跳,他是一個微信的小程序,是手機上的,你想開發他的輔助,首先你得能夠操作他,所以需要調試工具,不管是Android的ADB還是IOS的XCode。

然後你想一想你要達成的效果,也就是所謂的業務邏輯。像跳一跳,不就是讓小人從這一塊到下一塊嘛。遊戲是給人玩的,開發者就必須讓小人、腳下的磚、下一塊磚和背景有明顯的的區別,要不然早就被吐槽或者叫停了。既然有區別,你就分析其中的區別,色系不同。然後就好辦了,截圖遍歷像素點唄,準確的找到三者,然後通過公式就能得到時間了,然後用調試工具就能達到開發目的了。

看到一個項目,第一步一定是分析這個項目。有什麼大概需求、要用到什麼樣的技術、要用大概多長時間、市面上有沒有比較好的解決方案……如果你或者你的團隊能做,你在拿下這個項目。項目到手後,你再分析具體的需求,用什麼架構、怎麼搭配比較好、資料庫怎麼建……然後才是真正的開始編碼。切忌不要一上來啥都沒想明白就敲代碼,只是無用功而已。


首先,要明確一個需求。不管是什麼項目,了解自己要做什麼都是有必要的。對於自己選擇的小項目,可以先從核心功能入手,實現核心功能後再擴展新功能,不斷提升。舉個例子,如果要做一個計算器,首先要實現加減乘除,之後再通過版本迭代增加各類高級功能,並不斷改進界面,提升易用性及可靠性。

你不要懷疑是自己經驗少還是編程功底不紮實,

首先,你還沒經驗,其次你還不會編程,所以不用猜。

你的問題是 做的太少,看得再多也沒用,編程首先是肌肉要動起來,看再多也沒用。你看哪個人學游泳是看會的。

對我們普通人來說,要習得一個技能通常的途徑需要經過一段時間的模仿。拿寫文章舉個例子,你可以回憶一下,在能夠獨立寫文章之前,都經歷過什麼,就能理解這個過程。

我給你的建議就是:

  • 動起來最重要。編程是肌肉的運動,是頭腦一念而過,指下妙筆生花。所以先讓肌肉動起來。比較好的入門書通常都有一些習題或者讓讀者自己動手的內容,不要偷懶照著做。
  • 堅持。
  • 保持敬畏。


有需求才會有動力,不如先來個圖片爬蟲,抓取p站高分美圖。

一種功能性沒有漂亮界面的工具性程序,來滿足你的需求。

在實現程序的過程中自然而然的就能主動學習。


看著書可以做出來,說明沒有中心思想,自己的邏輯思維能力不強而不是功底不紮實,做一個計劃吧,按照開發管理規範(需求分析、設計、編碼等.....)分析你要做個什麼東西,要實現什麼功能,用什麼語言什麼工具去實現,這樣就條理清晰了,不要急著上手


拋磚引玉吧,個人建議。經驗太少。找個自己感興趣並且日常生活中經常會遇的問題,然後建一個項目來實現一個通用的解決方案,出了版本一之後,再看些書,比如重構。

跟經驗有一定關係吧,但經驗不是必須的。

主要應該是缺乏,將需求轉變成程序的能力。以及抽象思維,和邏輯思維。

上文的程序特指過程順序。

個人的經歷,從頭做到的上線項目,前期很多都是沒有參考過任何書籍和同類項目的。

個人看來,只要明白需求的本質能對應哪些數據結構組合,如何輸出輸入,還有需求的邏輯。

明白這些,項目就水到渠成。

其他就是考慮怎麼應對更大的處理任務,如何簡化配置,降低維護成本,如何減少人為介入和應對需求變化方面的設計,應對規模擴展,高可用等等。

這裡建議你先有一個自己感興趣的需求,

要夠簡單。

然後自己知道怎麼用人工做出來,再逐步用程序替代裡面的人工部分。

簡單的需求步驟不會太多,容易成功得到正反饋,會讓你的興趣增加。

這裡獨立完成,少借鑒多思考非常重要。

而完成之後再借鑒同類作品,開拓思維效果會很好。

之後在這個需求基礎上加入新的需求或者優化作品體驗。

這樣逐步經營,很多程序開發的阻力,就沒那麼大了。

編程能力,實質就是利用數據解決問題的能力。動手能力強的特質會對編程能力有很好的加持。

而數學能力和外語能力在初期不是必須的。

進階則是必須的……_(′?`」 ∠)_
這個兩個方面的問題都有。看得懂做不出來說明動手做少了。拿到項目,知道需求不知道怎麼下手說明功底還有欠缺。說話比較直接哈,不要介意。其實也不用擔心,每個人都有這麼個階段,只是有的長一點,有的短一點。

要解決這個問題,推薦先仿類似項目的代碼,但是要自己敲代碼,不清楚不明白的,就查百度和手冊。幾個項目下來就不會有這樣的問題了


推薦閱讀:
相关文章