如果你想學編程,但有些問題阻攔了你,那麼這篇文章就是為你而寫的。
如果你還沒有開始,也可以先收藏,或許有一天會用到它(我將會持續更新)。
一、問題
你有這樣的問題嗎?
- 學編程真的可以找到一份好的工作嗎?
- 學完編程可以換職業嗎?
- 學編程可以提高工作效率不用加班嗎?
- 學編程能提高編程思想嗎?什麼是編程思想?編程思想有什麼用?
或者有這樣的疑惑:
- 我是零基礎,能學會編程嗎?
- 我這個年齡,能學會編程嗎?
- 我英語不太好,能學會編程嗎?
- 我數學不太好,能學會編程嗎?
- 我不是相關專業的,能學會編程嗎?
- 我是學渣,學編程只是學霸的事情嗎?
- 我是女生,學編程只是男生的事情嗎?
又或者:
- 該自學,還是去培訓班?
- 學Java,還是Python?
- 學前端,還是後端?
- 我是小白沒有基礎,該怎麼學?
- 我是上班族沒時間,該怎麼學?
- 身邊有學過編程的朋友,最終放棄會是什麼原因?
再或者:
- 我多久能學會?
- 有什麼速成的方法?
- 7天從入門到精通是真的嗎?
如果你已經沒有了這些問題,恭喜你!可以直接打開下一篇《想學編程?3招教你如何開始:方法篇》。
二、思考
如果有人問你:「學英語,我多久能學會?學游泳,有什麼速成的方法?學畫畫,該自學好還是去培訓班好?」......讓我們換位思考一下,如果把「編程」換成你擅長的學科或者技能,那你又會怎麼回答初學者的這些問題呢?
我是一名十多年的程式設計師,學過多門語言,做過前端、後端、APP和小程序等等,從編碼到架構,一路從菜鳥走到CTO,我見過不少有天賦的小夥伴,他們很多時候只是缺乏自信,需要別人的鼓勵,希望我今天也可以這樣幫助到你。
讓我先把這些問題抽象化。
「抽象,是指從具體事物抽出、概括出它們共同的方面、本質屬性與關係等,而將個別的、非本質的部分捨棄的思維過程。」
以上問題抽象為四個問題:
- 學了有什麼用?(目標問題)
- 是否能學會?(能力問題)
- 怎麼學?(方法問題)
- 要多久?(時間問題)
你一定也是某個領域的高手,可以嘗試著去思考,如果在熟悉的領域裡回答這四個問題,思路是什麼,它能幫助你找到答案。
三、回答
1.學了有什麼用?
如果你還不知道一個技能有什麼用,那你就不應該去學,而是先去弄明白它的作用。
我見過一位同學,學了一周,用循環輸出了一萬次自己的名字,然後他就放棄了,因為他不知道這有什麼用。問他為什麼來學編程,他說因為他的同學都在學。當今不乏成功學的營銷廣告,多的是賣焦慮的公司,告訴你學了編程不用加班,學了編程能改變命運,學了編程就能找到工作等等。但對你個人來說真的是嗎?
有很多問題別人都可以給你答案,但有些問題需要你自己思考。例如:
- 「你為什麼要學編程?」
- 「解決你的什麼問題?」
- 「提升哪方面的認知?」
- 「不懂編程讓我受到了什麼阻礙?」
如果你之前未曾思考,那麼可以觀察身邊那些因為懂一點編程而成功的人或事兒。他們的成功是因為他的認知的提升?是他們與人之間的信息差?還是懂編程開發的流程、熱門的技術、有過編程的背景幫助了他們?
學會編程很有用。有人用來改變世界,例如比爾蓋茨、馬斯克、李開復、張小龍等等;有人因此找到好工作,比如像我,從雲南一個名不見經傳的縣城來到了上海;有人做了一個網站和App,從此開始了自己的創業項目;有人從此更懂行業、跨界有了更多創意;有人藝多不壓身、打破職業天花板;有人為滿足虛榮心、為焦慮和跟風買單。
你又是為了什麼呢?
2.我能學會嗎?
大多數情況下,這是一個選擇問題,不是一個能力問題。
如果你在尋求鼓勵,希望有人推你一把,那麼我可以告訴你:「你可以。」誰不是從零開始學呢?你也許需要的只是做出選擇。
編程能力有很多段位,是一項中間態很多的技能,它不像開飛機,會與不會有嚴格的標準,你不能坐在駕駛室里說你會懂一些原理或是了解部分。
編程的學習也不受年齡的限制,它不像體操,錯過了年齡因著你身體各方面的因素你就很難學會,但編程對於不同年齡的人需要用不同的學習方法。
學習編程並不是狹義地學習某一程式語言,可以是編程領域的知識、編程的思想,或是某一項技術的應用,例如會做一個網站,會開發一個APP,會寫一個爬蟲,會修改一些腳本。哪怕是職業人士,也包含了語言、框架、業務、算法等等。
但你定義的「學會」是什麼方向又要達到一種什麼程度呢?
3.怎麼學?
確定正確的學習目標,找到合適的學習方法,花時間獲取知識,練習、練習、練習......
想想學開車、學游泳、學畫畫,技能型的學習都是如此。
但你知道什麼樣的目標和方法是適合你的嗎?
我給出的建議是:目標驅動、勤加練習、總結規律、善用工具。
評論區可能還會給你更多的建議。
4.要多久?
因人而異,不同的目標、基礎、學習方法,決定了你需要的時間。
一般來說,了解一個基本概念只需要幾分鐘,懂得大概的原理和理念只需要幾個小時,學會使用編程技術解決一個問題只需要幾天,能成為一名職業開發者可能需要幾個月,要成為技術大牛你可能需要花更多時間。
如果是系統性的學習,還取決於目標的難度、自己的學習能力和每次投入的時間和頻次。
那你學編程的目標是什麼?
四、集錦
有的同學會說,你這「抽象」的問題回答得太「抽象」了,我就是想要那些具體問題的回答。
因為問題比較多,我專門整理並持續更新了一篇《想學編程:經典問答合集》 ,你可以去那裡搜索具體問題的答案, 這裡僅從每個分類里挑選一個代表性的問題回答。
問:學編程真的可以找到一份好的工作嗎?學完編程可以換職業嗎?
答:不一定。你掌握的技術越熱門、你的年齡越小、就業的城市越大,工作機會自然越多。面試成功率取決於你的技術水平、面試技巧。(...此處省略好多字...)我建議在職三年以上的同學通過增加編程的技能,結合當前的行業或者工作,提升自己的能力和競爭力,而不是直接和畢業生競爭職業工程師的崗位。
問:我不是相關專業的,能學會編程嗎?
答:能。不是科班畢業,只能證明你錯失了一次系統學習的機會。計算機相關專業的同學有更多的時間和資源,系統地學習原理、結構、算法、語言等各方面的知識,可以很好地夯實基礎,但這不是唯一路徑,事實上有很多非計算機相關專業的優秀開發者在一線工作。
問:身邊有學過編程的朋友,為什麼會最終放棄?
答:大部分是因為沒有目標,因此缺乏興趣和驅動力。有位同學說,他學了編程,但自從寫了一個循環輸出了一萬遍自己的名字以後,他就放棄了,因為沒有了新鮮感,不知道編程能有什麼用。如果學習編程不用來解決問題,那真的是枯燥的。但當你把它當作工具用來創造價值,那就是另外一回事兒了。
建議:嘗試尋找編程可以幫助你做什麼、創造什麼價值,你自然就有了目標和驅動力,有經驗的人也才能給你正確的學習路徑和幫助。
問:7天從入門到精通是真的嗎?
答:那只是個傳說。精通可不是大概知道。學幾個基本概念也用不了7天,但7天從0基礎到上崗你就別想了。
更多問題和回答看這裡《想學編程:經典問答合集》
五、總結
編程技能作為一種能力是未來的趨勢。未來產業結構的升級,各行業的信息化、數字化和智能化,需要大量的職業程式設計師,也需要大量擁有該領域知識的工作人員,使得在未來的公司、團隊里能夠更好地創新、協作和管理。無論是提升自己工作的效率和成果,能更好地理解自己所在的行業,或是能夠為所在行業提出更多的創意和想法,了解一些編程的通識知識都對你大有裨益。通過學習編程,可以讓你更好地認識這個世界的運作,鍛鍊思維模式和提升解決問題的能力,更適應未來的工作和生活。
可能有一天,大家不會再提「學一點編程知識吧」,就好像今天大家不會再說「學習怎麼使用電腦,學習怎麼使用手機」一樣。曾幾何時,會使用電腦還是找工作的一個加分項,爸媽裝個軟體還得請專家上門。現在爺爺奶奶都會用手機語音,用美顏拍照了。過去他們也覺得這是他們無法企及的技能,現在已經變成了一種習慣,習慣用這些工具和技能來解決問題。
未來,且不說要以編程作為職業,但能看懂其中的原理,會用幾行代碼組裝更多的應用,會改幾行代碼滿足自己的個性化需求,又是多難的事兒呢?
好了,說了那麼多錯誤的認識,不應該這樣,不應該那樣,那到底要咋樣呢?
我們下一篇討論,見:
《想學編程?3招教你如何開始:方法篇》
《想學編程?3招教你如何開始:裝備篇》
最後送想要學編程的同學一句話:
-- 更新於 2020-01-15,持續更新 --
【本文系原創,轉載請註明出處】
B站|抖音|知乎|簡書|微博
搜:「猴哥愛編程」
與你分享編程心得