您的位置:首頁技術文章
文章詳情頁

PHP新手告訴你應該如何學習編程

瀏覽:23日期:2023-11-25 18:09:27

在過去的幾個月里,我一直在學習用Objective-C編寫iOS app,最后我開始理清思緒。這比我想象中要難很多,也花了太長時間。

我經常遇到困難、感到沮喪,修復bug比實際寫代碼要花太多時間。但是,在我的手機上把玩我從頭開發的app有一種讓人驚奇的感覺。

用這種方式我學到了很多,除了開發iOS app,還有平常的編程。我還遇到了一些問題,如果用不同的方法學習Objective-C,或許我就可以避免了。

回頭看,如果我今天要學習編程,那么我會做一些不一樣的事情。

找到一名編程小伙伴

我還找到一種學習方法,那就是有一個可以交談的、活生生的人。我的合伙創始人Josh,主要做Python開發,實際上和我一起學習Objective-C,并為我解答了很多編程理論方面的問題(“怎么讓一個if語句再次起作用?”),在我真正遇到難題時幫我調試。至少有了極具耐心的編程伙伴,他可以解釋基本的編程原則,這是莫大的幫助。在我用Objective-C搞清楚具體細節之前,Josh經常幫助我思考解決某個問題的大部分邏輯方法。

善用資源

如果你不夠幸運,身邊缺少有耐心的程序員解答問題,那么,其它一些地方可以讓你從真實的人那里獲得幫助:

Stack Overflow

關于具體語法或實現的問題,Stack Overflow是我最近訪問最多的網站之一。我自己還沒有在那兒問過問題(由于該社區對初學者相當友好,我對提問持謹慎態度),因為我很少需要去問——通過瀏覽其他人的問題的答案,我的大部分問題就得到解決了。

Treehouse

Treehouse通過視頻課程教授編程,還建立了社區論壇,你可以在這里討論有困難的bug,或者你在聽課過程中碰到的具體練習。

askadev

在你需要幫助的時候,askadev支持你聯系到有經驗的開發者。我還沒有嘗試過這項服務,因此我不知道有多大用處、或是否囊括了所有編程語言,不過它是免費的,下次你有需要,不妨一試。

Codementor

如果你想給有經驗的開發者支付現金來獲得幫助,Codementor會把你和熟悉你在學的語言的人匹配到一起。它們涵蓋了Android、iOS、HTML、CSS、PHP、Python,以及很多技術。

小黃鴨問題的解決

如果你以前沒有看到,《小黃鴨式解決問題》的博文是非常有用的。具體操作是:對著一個小黃鴨或其它靜物,比如面包機,闡述你的問題,大聲點兒。大聲講述問題的過程,經常有助于你自己意識到答案(或至少知道錯在哪里了)。我已經發現,大聲地討論我的代碼是一種難以置信的好習慣,每次在我找別人幫忙之前,我都要盡量這樣做。

學習規范

在我學習編程的時光里,最影響我的就是對于我正在使用技術的誤解和陌生。比如,開發API意味著我需要理解API的工作原理、怎樣使用POST和GET請求、怎樣分析JSON數據,甚至我需要掌握接收JSON數據。

學習Objective-C不是開發iOS app所需要知道的全部,至少,不是我想開發的那種。我犯了個錯誤,我認為只要知道Objective-C就行了。甚至更糟糕的,我經常遇到困難,因為Stack Overflow回答問題的人、在線教程和書籍章節都在解釋如何用Objective-C開發,完全跳過了必需的、我需要知道的、基于web的原則,因為他們認為我知道了。

如果我今天重新開始,我將首先補充、積累HTML和CSS方面的知識。當我開始碰到一些我不太了解的新技術時,在準備用Objective-C實現之前,我會大概了解一下。

任何語言都可以起步

如果你真的不確定從哪里開始,或者你想開發什么,請不要因此受到影響。雖然我花時間學習Ruby和Python、還沒有用它們完成任何項目,但是我不覺得時間被浪費了。

初學者通常的起點是學習HTML和CSS去開發網站。它們實際上是標記語言,如果你想開發移動或web app,貌似學習HTML和CSS是浪費時間。但是在這種情況下,你將獲得知識和經驗,對你繼續學習編程語言是有幫助的。如果你急切希望開始學習編程卻不知道從哪兒開始,就挑一本書、教程或在線課程,只要你喜歡,就搞定它!一旦你對想開發的東西有了更好的理解,你總是可以選擇學習一種不同的語言。

找到你真正關心的項目

對我而言,最大的學習曲線可能就是找到讓我堅持學習代碼的動機。過去我嘗試了很多次:在我小時候學習HTML和CSS,幾年后學習Ruby的基礎知識,最近在學Python。

我決定學習Objective-C,不是因為它勝過了Ruby或Python我才喜歡,也不是因為我認識學Objective-C的人,只是因為我有一個iOS app的想法清單,我想完成——我真的想去開發。我學習Objective-C的動機比以前學習任何其它語言都要強烈,因為我想開發的私人項目在鼓勵著我。

最重要的是,隨著難度加大,我感到沮喪、遇到困難時,我沒有放棄——因為我正在開發我真正關心的項目。每次我設法實現一些新功能,運行良好,得到的收獲甚至更好了,因為它是我有激情的項目的一部分。

如果你正在考慮學習編程,而你沒有選擇語言或平臺的任何限制,我明確建議選擇你真正有激情的項目,這樣才能為項目需要所選擇的語言打下基礎。

每個人的學習方法都不同,因此你可能有著與我不同的經歷,不過如果你只是剛起步、或在考慮學習編程的事情,那么希望我的經驗和錯誤能幫你學得更快。關于編程,PHP100還為你推薦《你應該學習的第一門編程語言》《開始學編程的第一步》《揭秘Node.js深受歡迎的原因》《程序員應該遵守的編程原則》。

注1:小黃鴨調試法,又稱橡皮鴨調試法,黃鴨除蟲法(Rubber Duck Debugging)是軟件工程中使用的調試代碼方法之一。就是在程序的調試、糾錯或測試過程中,耐心地向小黃鴨解釋每一行程序的作用,以此來激發靈感。(原文標題:如果學習編程可以重來)

標簽: PHP
相關文章:
国产综合久久一区二区三区