首頁»程序人生»新手學編程,從哪里開始?

新手學編程,從哪里開始?

來源:賴信濤 發布時間:2014-06-05 閱讀次數:

  最近經常有親戚朋友甚至陌生人問我,軟件工程師的工作是什么樣子的。在這一行,我們有很高的聲譽,薪資高,工作中的樂趣很多——至少外人是這么想的。雖然這一行的薪水沒有電影明星那么高(一些人甚至也將我們看做明星),但是因為不錯的收入和聲譽,依然很吸引人。

 

  在我的學生生涯中,我們班的退學率是最高的,其中的主要原因是對軟件工程師這項工作的誤解。一些人退學是因為他們只想玩,不喜歡學習,無論選擇什么專業都會退學;另一些則認為他們將來會整天地玩電腦。當然,我們的工作確實是“玩”電腦,只是比打游戲多費一些腦細胞。

  親戚朋友們經常問我:你到底在做什么呢?接下來經常是這個問題:哇,真了不起,怎么才能成為一個工程師?第一個問題的答案,取決于跟我說話的人。如果跟毫無技術背景的人談,我就不會用像“累加”,“C#”,“Azure”這樣的術語,我會用他們懂的東西解釋。一般會使用一種通用的語言,無論是工作還是外部項目都用的。

  那么,你的工作究竟是什么呢?我幫助顧客解決問題,通過開發軟件,來提高他們的工作效率和營業額。通常,我要幫他們實現需求。

  這是一個寬泛的答案,幾乎可以來描述所有工作。但接下來的問題可以作很好的解釋。人們經常使用手機的應用程序,所以談論起手機應用來輕松地多。所以我就會跟朋友們說我在幫顧客寫網頁或者應用程序,解決他們的商業問題,讓生活更便捷。

  這個話題就到此為止了,如果繼續討論下去,有關“建網站”和“寫應用”就要說遠了。但是偶爾會遇到一些感興趣的人會接著問:網頁不就是一些文本和數值嗎?做起來很難嗎?當你試圖給出一個例子解釋的時候,基本上最后都會以好吧,我不知道 而告終。

  我有很多科技通朋友,所以經常會被問到:我想學習編程,應該從哪里開始呢?

  這是一個有趣的問題,但是又難以回答。當然,我可以甩給他們一本關于.NET編程的書,但是這樣做真的好嗎?對于初學者,推薦我偏愛的編程語言合適嗎?可能不會。不要忘了他們問這個問題的真正的目標。他們是想了解計算機以及軟件運行的原理嗎?還是寫一些小程序來惡作劇?是要解決他們的問題,還是想來搶你的飯碗?

  當我聽到這個問題的第一反應,就是弄清楚他們為什么想學編程。這是一個很好地起點——弄清楚從中想要得到什么。我們可以根據他們的目的來回答這個問題。

當你發現自己在重復地做同一件事情的時候,就可以考慮自己寫一個軟件來完成這些事。

  如果你有一個真實世界的問題待解決,或者有一個明確的目標,那么給你行動的建議就很簡單了。寫代碼和學習代碼不僅僅是重復,而且要花上很多的時間,這是事實,要牢記于心。事實上,當你學著寫出你的第一個程序的時候,寫第二個就簡單多了,逐漸變得熟練,越寫越快。

  我想學習編程,應該從哪里開始呢?

  簡單地建議是鼓勵他們嘗試解決一個真實世界的問題,但這仍然沒有告訴他們如何開始。首先,我要給他們推薦順手的工具。說到工具,就不得不提語言或者參考書,對于初學者來說,不能太高級,最好是簡單幾步就能運行一個hello world程序。如果不能很快看到自己的成果,他們就可能會放棄。編程不只是我們所寫的代碼,還有其他相關的東西。

  我想讓他們盡快的看見自己的成果,即使只是寫了一行代碼也沒有關系,他們也會為此感到自豪。這么快看到自己的成果,他們就會有興趣進行更深層次的探索,并準備好學習一門真正的編程語言,可能是C#,Java,Python或者其他的語言。早期你要教他們思維過程:if……this我這樣做,else就這樣,等等。

  近幾年興起了教孩子編程的熱潮,讓有一些人問我如何學習編程的時候,我會告訴他們:像一個天真的孩子那樣去學習。我們是如何教小孩子編程的呢?Code.org是一個很好的資源,通過教你把瀏覽器里的代碼塊拼裝在一起來教編程,使你能夠很快看到自己的成果。甚至可以通過這個寫出自己的Flappy Bird。雖然這些課程不能解決你重復的工作,也不能解決你的業務需求。但是卻給了你一個對編程的很好的印象。告訴你如何將代碼組織在一起,如果將兩個重要的代碼塊接在一起需要注意什么。

  我想學習編程,應該從哪里開始呢?對于這個問題,沒有同意的答案。根據你學習的熱情和進度,可以給予一些指導。有數以萬計的資料可以供你利用,在Code.org上做一些東西只是第一步,還有很長的路要走。如果你準備好了繼續前行,首先應該有一本介紹編程基礎的書。

  真的嗎?我已經準備好了學習編程,給我那些資源吧!

  很多人想要別人拿勺子來一口一口地喂給自己知識,這是不現實的,編程要花很多時間,不斷練習。你將會在錯誤中得到進步,并收獲很多“哇,太棒了!”的時刻。如果你真的想要給你的電腦寫一個軟件,也有很多給初學者的好書供參考。即使最后沒有完成你自己的軟件,這些物價的知識也會讓你受益匪淺。

  我初學Java的時候看過一本Head First Java,對初學者來說是不錯的一本書。很多人以前從沒有寫過什么程序,這本書中的介紹給了他們很大幫助。Help First是涵蓋編程語言和技術的一系列書籍。想要走最少的彎路開始你的第一個hello world程序,我推薦Head First Python

  不喜歡讀書?推薦你看一下這個視頻:Pluralsight’s Programming for Kids video.

  如果你有孩子,和他們一起學習編程將使你們雙方受益。孩子們有極高的興趣和有趣的問題,可以拓寬你的思維。這也是和孩子們相處的一個好機會!坦白的說,我一直期待教我的孩子編程。

  讀一本書,再花些時間在Code.org上玩一玩,看一些Pluralsight上看的視頻。這之后,你就會感覺你已經有了進步,想要更多的知識。如果你真的想學的更多的話,建議你去大學聽一些課,或者上夜校學編程。為以后寫真正的軟件積累一些知識。

  下面,是我為想要學習編程,又沒有經驗的人列的一些鏈接資源:

  最后的建議,想象一下買一個小小的硬件,安裝在你的車庫里,當你的車開的離墻太近的時候,它就會發出信號——Arduino可以將它變成現實。可能性是無限的,只要你抓住你腦子里出現的新奇的想法,不斷體驗到編程的樂趣。

  如果你和朋友或親戚討論這個問題的時間和這篇文章這樣長,他們一定會滿意地離開,并期待寫出自己的第一個程序。

  你會怎么回答這個問題呢?  ——如果我想學習編程,應該從哪里開始?

  原文出處: Filip Ekberg

QQ群:WEB開發者官方群(515171538),驗證消息:10000
微信群:加小編微信 849023636 邀請您加入,驗證消息:10000
提示:更多精彩內容關注微信公眾號:全棧開發者中心(fsder-com)
網友評論(共0條評論) 正在載入評論......
理智評論文明上網,拒絕惡意謾罵 發表評論 / 共0條評論
登錄會員中心
买马稳赚秘诀