《想學編程?3招教你如何開始:問題篇》編程初學者必收藏

猴哥愛編程 發佈 2020-01-15T06:21:00+00:00

我是一名十多年的程式設計師,學過多門語言,做過前端、後端、APP和小程序等等,從編碼到架構,一路從菜鳥走到CTO,我見過不少有天賦的小夥伴,他們很多時候只是缺乏自信,需要別人的鼓勵,希望我今天也可以這樣幫助到你。


如果你想學編程,但有些問題阻攔了你,那麼這篇文章就是為你而寫的。

如果你還沒有開始,也可以先收藏,或許有一天會用到它(我將會持續更新)。

一、問題

你有這樣的問題嗎?

  • 學編程真的可以找到一份好的工作嗎?
  • 學完編程可以換職業嗎?
  • 學編程可以提高工作效率不用加班嗎?
  • 學編程能提高編程思想嗎?什麼是編程思想?編程思想有什麼用?

或者有這樣的疑惑:

  • 我是零基礎,能學會編程嗎?
  • 我這個年齡,能學會編程嗎?
  • 英語不太好,能學會編程嗎?
  • 數學不太好,能學會編程嗎?
  • 我不是相關專業的,能學會編程嗎?
  • 我是學渣,學編程只是學霸的事情嗎?
  • 我是女生,學編程只是男生的事情嗎?

又或者:

  • 自學,還是去培訓班
  • Java,還是Python
  • 前端,還是後端
  • 我是小白沒有基礎,該怎麼學?
  • 我是上班族沒時間,該怎麼學?
  • 身邊有學過編程的朋友,最終放棄會是什麼原因?

再或者:

  • 多久能學會?
  • 有什麼速成的方法?
  • 7天從入門到精通是真的嗎?

如果你已經沒有了這些問題,恭喜你!可以直接打開下一篇《想學編程?3招教你如何開始:方法篇》。

二、思考

如果有人問你:「學英語,我多久能學會?學游泳,有什麼速成的方法?學畫畫,該自學好還是去培訓班好?」......讓我們換位思考一下,如果把「編程」換成你擅長的學科或者技能,那你又會怎麼回答初學者的這些問題呢?

我是一名十多年的程式設計師,學過多門語言,做過前端、後端、APP和小程序等等,從編碼到架構,一路從菜鳥走到CTO,我見過不少有天賦的小夥伴,他們很多時候只是缺乏自信,需要別人的鼓勵,希望我今天也可以這樣幫助到你。

讓我先把這些問題抽象化。

「抽象,是指從具體事物抽出、概括出它們共同的方面、本質屬性與關係等,而將個別的、非本質的部分捨棄的思維過程。」

以上問題抽象為四個問題:

  • 學了有什麼用?(目標問題)
  • 是否能學會?(能力問題)
  • 怎麼學?(方法問題)
  • 要多久?(時間問題)

你一定也是某個領域的高手,可以嘗試著去思考,如果在熟悉的領域裡回答這四個問題,思路是什麼,它能幫助你找到答案。

三、回答

1.學了有什麼用?

如果你還不知道一個技能有什麼用,那你就不應該去學,而是先去弄明白它的作用。

我見過一位同學,學了一周,用循環輸出了一萬次自己的名字,然後他就放棄了,因為他不知道這有什麼用。問他為什麼來學編程,他說因為他的同學都在學。當今不乏成功學的營銷廣告,多的是賣焦慮的公司,告訴你學了編程不用加班,學了編程能改變命運,學了編程就能找到工作等等。但對你個人來說真的是嗎?

有很多問題別人都可以給你答案,但有些問題需要你自己思考。例如:

  • 「你為什麼要學編程?」
  • 「解決你的什麼問題?」
  • 「提升哪方面的認知?」
  • 「不懂編程讓我受到了什麼阻礙?」

如果你之前未曾思考,那麼可以觀察身邊那些因為懂一點編程而成功的人或事兒。他們的成功是因為他的認知的提升?是他們與人之間的信息差?還是懂編程開發的流程、熱門的技術、有過編程的背景幫助了他們?

學會編程很有用。有人用來改變世界,例如比爾蓋茨、馬斯克、李開復、張小龍等等;有人因此找到好工作,比如像我,從雲南一個名不見經傳的縣城來到了上海;有人做了一個網站和App,從此開始了自己的創業項目;有人從此更懂行業、跨界有了更多創意;有人藝多不壓身、打破職業天花板;有人為滿足虛榮心、為焦慮和跟風買單。

你又是為了什麼呢?

2.我能學會嗎?

大多數情況下,這是一個選擇問題,不是一個能力問題。

如果你在尋求鼓勵,希望有人推你一把,那麼我可以告訴你:「你可以。」誰不是從零開始學呢?你也許需要的只是做出選擇。

編程能力有很多段位,是一項中間態很多的技能,它不像開飛機,會與不會有嚴格的標準,你不能坐在駕駛室里說你會懂一些原理或是了解部分。

編程的學習也不受年齡的限制,它不像體操,錯過了年齡因著你身體各方面的因素你就很難學會,但編程對於不同年齡的人需要用不同的學習方法。

學習編程並不是狹義地學習某一程式語言,可以是編程領域的知識、編程的思想,或是某一項技術的應用,例如會做一個網站,會開發一個APP,會寫一個爬蟲,會修改一些腳本。哪怕是職業人士,也包含了語言、框架、業務、算法等等。

但你定義的「學會」是什麼方向又要達到一種什麼程度呢?

3.怎麼學?

確定正確的學習目標,找到合適的學習方法,花時間獲取知識,練習、練習、練習......

想想學開車、學游泳、學畫畫,技能型的學習都是如此。

但你知道什麼樣的目標和方法是適合你的嗎?

我給出的建議是:目標驅動、勤加練習、總結規律、善用工具

評論區可能還會給你更多的建議。

4.要多久?

因人而異,不同的目標、基礎、學習方法,決定了你需要的時間。

一般來說,了解一個基本概念只需要幾分鐘,懂得大概的原理和理念只需要幾個小時,學會使用編程技術解決一個問題只需要幾天,能成為一名職業開發者可能需要幾個月,要成為技術大牛你可能需要花更多時間。

如果是系統性的學習,還取決於目標的難度、自己的學習能力和每次投入的時間和頻次。

那你學編程的目標是什麼?

四、集錦

有的同學會說,你這「抽象」的問題回答得太「抽象」了,我就是想要那些具體問題的回答。

因為問題比較多,我專門整理並持續更新了一篇《想學編程:經典問答合集》 ,你可以去那裡搜索具體問題的答案, 這裡僅從每個分類里挑選一個代表性的問題回答。

問:學編程真的可以找到一份好的工作嗎?學完編程可以換職業嗎?
答:不一定。你掌握的技術越熱門、你的年齡越小、就業的城市越大,工作機會自然越多。面試成功率取決於你的技術水平、面試技巧。(...此處省略好多字...)我建議在職三年以上的同學通過增加編程的技能,結合當前的行業或者工作,提升自己的能力和競爭力,而不是直接和畢業生競爭職業工程師的崗位。

問:我不是相關專業的,能學會編程嗎?
答:能。不是科班畢業,只能證明你錯失了一次系統學習的機會。計算機相關專業的同學有更多的時間和資源,系統地學習原理、結構、算法、語言等各方面的知識,可以很好地夯實基礎,但這不是唯一路徑,事實上有很多非計算機相關專業的優秀開發者在一線工作。

問:身邊有學過編程的朋友,為什麼會最終放棄?
答:大部分是因為沒有目標,因此缺乏興趣和驅動力。有位同學說,他學了編程,但自從寫了一個循環輸出了一萬遍自己的名字以後,他就放棄了,因為沒有了新鮮感,不知道編程能有什麼用。如果學習編程不用來解決問題,那真的是枯燥的。但當你把它當作工具用來創造價值,那就是另外一回事兒了。
建議:嘗試尋找編程可以幫助你做什麼、創造什麼價值,你自然就有了目標和驅動力,有經驗的人也才能給你正確的學習路徑和幫助。

問:7天從入門到精通是真的嗎?
答:那只是個傳說。精通可不是大概知道。學幾個基本概念也用不了7天,但7天從0基礎到上崗你就別想了。

更多問題和回答看這裡《想學編程:經典問答合集》

五、總結

編程技能作為一種能力是未來的趨勢。未來產業結構的升級,各行業的信息化、數字化和智能化,需要大量的職業程式設計師,也需要大量擁有該領域知識的工作人員,使得在未來的公司、團隊里能夠更好地創新、協作和管理。無論是提升自己工作的效率和成果,能更好地理解自己所在的行業,或是能夠為所在行業提出更多的創意和想法,了解一些編程的通識知識都對你大有裨益。通過學習編程,可以讓你更好地認識這個世界的運作,鍛鍊思維模式和提升解決問題的能力,更適應未來的工作和生活。

可能有一天,大家不會再提「學一點編程知識吧」,就好像今天大家不會再說「學習怎麼使用電腦,學習怎麼使用手機」一樣。曾幾何時,會使用電腦還是找工作的一個加分項,爸媽裝個軟體還得請專家上門。現在爺爺奶奶都會用手機語音,用美顏拍照了。過去他們也覺得這是他們無法企及的技能,現在已經變成了一種習慣,習慣用這些工具和技能來解決問題。

未來,且不說要以編程作為職業,但能看懂其中的原理,會用幾行代碼組裝更多的應用,會改幾行代碼滿足自己的個性化需求,又是多難的事兒呢?

好了,說了那麼多錯誤的認識,不應該這樣,不應該那樣,那到底要咋樣呢?

我們下一篇討論,見:
《想學編程?3招教你如何開始:方法篇》
《想學編程?3招教你如何開始:裝備篇》

最後送想要學編程的同學一句話:

-- 更新於 2020-01-15,持續更新 --

【本文系原創,轉載請註明出處】


B站|抖音|知乎|簡書|微博
搜:「猴哥愛編程」
與你分享編程心得
關鍵字: