零基礎學編程,該如何入門?

2020-09-14 巴啦啦Ben

相信每個初入計算機編程大門的小白都會有很多問題?例如我應該學習哪門程式語言?學習了這門程式語言我能進入 BAT 大廠嗎?除了程式語言我還要學習什麼?

網上有很多文章講述初學者應該如何去學習,內容五花八門,錯綜複雜。文章翻了又翻,初入編程大門的小朋友們最終還是無法下定決心,反而看了以後開始變得更加迷茫,懷疑自己的智商。

在這裡我想要說的是,我和你一樣曾經也迷茫過,不是因為你太笨,而是因為網際網路上的知識太多了,作為初學者的你根本不知道如何抉擇。

我和你一樣,曾經迷茫過,但慶幸的是我最後找到了答案,打開了計算機編程的大門。

如今作為一個編程近十載的老碼農,我想就此將我的經驗分享與你。此文僅代表的我的個人觀點,歡迎一起討論學習。

我將編程生涯分為了三個階段,並且我會告訴你這三個階段你分別要掌握什麼樣的技能,以及這三個階段你可以做什麼樣的事情。

三個階段

站在食物鏈頂端的程式設計師必然會經歷過三個階段。

悲催的是有些人整個職業生涯都處於第一階段,而還有一部分停留在了第二階段,只有少量的人才能進入第三階段。

這三個階段分別是:碼農(代碼民工)、程式設計師 和 架構師。

接下來我們一起詳細聊聊這三個階段:

第一階段:碼農

每個程式設計師都會從碼農做起。

還記得大學上第一節 C 語言課程的時候老師問誰有編程經驗,教室裡面有十來個同學舉起手來,然而那時候我不知道編程是什麼。沒錯,很多人還沒進入大學就達到了碼農階段。

碼農到底是什麼,如何定義碼農?

碼農知道如何跟機器交流,他可以編寫計算機能讀得懂的文字。

當遇到一些問題時候,碼農可以將問題轉換為計算機可以讀懂的代碼,讓計算機幫助我們幹活(不管三七二十一,先 run 起來再說)。

如何你在這個階段感覺到非常痛苦和難受,那麼你應該認真思考一下是不是適合程式設計師這個職業。

如果 feel so good,那麼恭喜你,你有可能會成為一個不錯的程式設計師。

然而可悲的是,很多人在整個職業生涯中都處於碼農這一階段。

但是我要告訴你的是,這一階段的你雖然能幹活,但是很容易被年輕人替代,因為隨著你年紀的增長,年輕人會比你更有活力,而且他們可以忍受拿更少的錢,搬更多的磚頭。

如果你只是個碼農,你的晉升機會也會很少,同時意味著你的薪水也會較少。

如果你想加入 BAT 級別的大公司,這個階段的你會處處碰壁,面試一次被打擊一次,你會面到開始懷疑人生,自暴自棄。

因此你需要掌握更多的技能,然後達到第二個階段,成為一名程式設計師。

第二階段:程式設計師

在這個階段,你可能接觸了至少 2 門程式語言,一個動態類型語言和一個靜態類型語言。

程式設計師本質上是一個高級的碼農,那麼我們該如何進一步提升自己呢?

碼農編寫可以正常 run 起來的代碼,俗稱搬磚。而程式設計師呢,是編寫高質量高性能的可以 run 的代碼,俗稱高級搬磚(哈哈哈)。

那想成為程式設計師你需要掌握哪些技能呢:

了解代碼最終如何變成硬體晶片可以理解和執行的指令。

了解如何讓代碼有效利用計算機資源,例如 處理器、內存和網絡。

了解如何使用數據結構和算法編寫高效的代碼。

了解代碼質量很重要,並且會編寫測試代碼。

到此你是不是被嚇到了,成為程式設計師居然還有這麼多知識要學習,安安靜靜地做一個碼農不香嗎。

我要告訴你的是,碼農很多,但是真正基礎紮實的程式設計師並不多。如果你能靜下心來修煉內功,達到這一階段,BAT 的大門將隨時為你敞開,你會收穫更多的東西。

絕大多數人一輩子都會停留在這個階段,直到退休。

第三階段:架構師

很悲催的告訴你,編程永無止境,你需要不斷的去學習去進步。

當你到達這個階段時候,你會站在一個更高的角度,對系統的全局的思考比對細節的細膩了解更多。

你對設計大型分布式系統有紮實的了解,並且知道如何構建高可用,高並發,高可伸縮的大型分布式系統。

你永遠不會停止學習,並且始終關注前沿的技術,當然你可能也會創造出一些技術。

在這個級別上,你可能會負責公司的大型項目,並且管理著一個團隊,團隊裡面有幾個骨幹程式設計師和多個碼農來完成工作。

你可能會經常和其他團隊開會討論和制定技術方案,同時你需要有出色的社交和領導才能。

如上就是我認為的程式設計師職業發展的三個重要階段,那麼接下來我們一起聊聊在這三個階段我們該如何去學習,逐步打怪升級走向程序人生的疊峰。

1 - 編程

首先考慮如何成為一個碼農,在這個階段你往往會有這樣的困惑,我到底該學哪門程式語言?

Java,Python,C#,Ruby,Go,JavaScript 。。。

其實你不應該為選擇程式語言發愁,因為這個階段,重要的不是特定的程式語言,而是一些編程的概念。這些概念在幾乎所有其他程式語言中都適用。

當你成為經驗豐富的程式設計師時,學習一種新的程式語言所需的時間不超過一個星期,所以不要浪費時間去糾結 「完美的」 程式語言,因為根本不存在,也沒有必要。

話雖如此,我還是會推薦 2 門程式語言給你,從最簡單的開始慢慢建立自信心,打怪升級從編程中獲得樂趣。

Python

我強烈建議你從 Python 開始學習。

為什麼?

因為 Python 是一門非常易於學習的語言,它真的,真的,真的很容易!

Python 是一門高級的程式語言,使用它可以非常快速的開發出一個程序,正如 Python 之父的名言:人生苦短,我用 Python。

誇張一點說,100 行 Java 代碼完成的事情,Python 只要一行就搞定了。

那麼如何學習 Python 呢?

在此推薦一下廖雪峰大神的在線圖文 Python教程,這是比較全面的一套教程。

如果要繼續簡單點,你還可以在這個在線學習網站開始學習:Python 基礎教程。

當然最好還是要搭配一本書一起學習,我推薦一下《Python 編程從入門到實戰》,喜歡讀紙質書的同學,它可以是你的一個選擇。

Java

學完 Python 之後,我強烈建議你學習另外一門語言 Java。學習 Java 將會把你帶入面向對象的世界,這是和面向過程完全不同的編程思想。

Python是一種動態類型的語言,而 Java 是一種靜態類型的語言,此時你可能一臉懵逼,當你學完這兩種語言之後你會茅塞頓開。

Python 和 Java的組合是很好的入門方法,學習他倆你會掌握到幾乎所有的編程概念,為以後學習其他程式語言打下紮實的基礎。

我要告訴你的是,Python 和 Java 目前在企業裡被大量使用,同時 Python 是機器學習首選語言,Java 是大數據生態的核心語言,學習他們也會更利於你找到一份好的工作。

對於 Java 的學習,初期我建議你主要學習 Java Core 知識,等到熟悉以後再去學習高階知識。此時,我不再會推薦你去在線網站學習,因為你已經擁有了編程基礎,同時有了很強的動手能力,我會推薦你從書籍入手。

學習 Java 當然少不了經典的 Java 編程思想,我推薦 Bruce Eckel 大師的最新 Java 巨作《 On Java 8 》,這是內容相當充實的一本書,學完它你將掌握 Java 編程的核心技能,同時關於 Java 語言的面試題對你來說將會是小菜一碟,不信你讀讀看?

如果此時你仍然不滿足,我會推薦你去學習一下 Java 之父 James Gosling 鼎力推薦的 《 Effective Java 》,它將教會你如何寫出高效的 Java 代碼,學完此書你的 Java 技能將會更上一層樓,此時你已經甩掉一大部分 Java 碼農。

此處我要恭喜你!你已經獲得碼農資格證!

此時你已經成為了一個碼農,你入門編程了,但是你還不是一名真正的程式設計師,那究竟如何達到第二階段成為一名程式設計師呢?下一篇文章我們就來聊聊怎樣成為一名合格的程式設計師!

碼字不易,喜歡就點個讚

相關焦點

  • 零基礎如何入門學習電腦編程?
    零基礎如何入門學習電腦編程?有哪些好的方法呢?現在帶著疑問一起去了解一下吧。1、了解編程歷史的意義了解一些編程的實質遠比知道如何編程更有意義,不要在編程是怎麼回事的情況下就去學習編程,這樣對你的學習是十分不利的,作為一個編程愛好者,知道計算機的工作原理,這應該是一件再正常不過的事。
  • 零基礎學雲計算要注意什麼 該怎麼快速入門
    零基礎學雲計算要注意什麼?該怎麼快速入門?雲計算是當前網際網路領域最火爆的技術之一,應用領域廣泛,從業人員薪資待遇好。很多專業或非專業,有基礎或者零基礎的人都想加入這個行列實現高薪,下面一同來看看吧。
  • 零基礎該怎麼學Java編程 一般都應該注意什麼
    零基礎該怎麼學Java編程?一般都應該注意什麼?作為一個Java程式設計師,想要能夠在城市站穩腳跟,除了要有敢拼敢闖的勁頭外,還要掌握真正的技能。Java程式設計師這個崗位薪資高是眾所周知的一件事情,只有掌握真正的技能,才能在職場上讓自己拿獲高薪!下面跟著小編一同來看看吧。
  • 零基礎向:聊一聊為什麼要學習編程 & 如何快速入門
    這篇文章回答以下幾個問題:我們為什麼要學習編程?非計算機學生,如何對編程產生興趣?零基礎,如何入門編程?第一個問題:我們為什麼要學習編程?如果說和編程有關的最經常收到的提問,莫過於如何(零基礎)入門編程/Python/爬蟲。
  • 零基礎的孩子如何學習Scratch圖形化編程?
    隨著網際網路行業的發展,零基礎學編程成為了越來越多人的選擇,在美國,編程已進入幼兒園和中小學課堂,是備受歡迎的課程之一。 在英國,編程被列入國家教學大綱,成為6~15歲孩子的必修課。 在芬蘭,編程理念融入了小學的各門課程,孩子們可以隨時隨地學編程。
  • 零基礎學編程,代碼記不住怎麼辦?
    「我記不住這麼多代碼,能學好編程嗎?」「哎瑪,看到這一堆堆英文符號就頭大,算了我還是去學點簡單的吧。」許多零基礎學編程的同學,面臨的最大問題就是代碼記不住,面對一堆英文符號代碼不知怎麼去記。這也是許多同學明知道編程崗位工資很高,卻還在猶豫要不要學編程的顧慮。
  • 零基礎學編程應該怎麼開始?
    萬事開頭難,開始學編程前我們總會考慮到各方面的原因,難度?能學會嗎?學多久?怎麼學?等等,但是很少去關注自己的學習需求,比如自己的學習環境和學習效率等。所以學習前,我們需要深刻地認識自己,看自己處於什麼時期。
  • 零基礎該怎麼學Web前端 都需要掌握哪些技能
    零基礎該怎麼學Web前端?都需要掌握哪些技能?Web前端是近年來非常熱門的技術之一,人才需求大、薪資福利好,更重要的是入門簡單,是零基礎小白轉行IT開發的首選程式語言。為了快速入門Web前端,有人選擇參加專業的學習,而在選擇之前你必須要了解這些基礎技能。
  • 幾歲學少兒編程比較好,少兒編程的好處 家長知道嗎?
    越來越多的家長開始讓孩子學習編程。但因為沒有基礎不知道從何下手才好,對於如何引導孩子有效學習少兒編程知之甚少。小碼王就零基礎如何學少兒編程,幾歲學少兒編程比較好,少兒編程的好處三個方面,為家長們提供一些參考與幫助。
  • 風變編程Python小課學習體驗:零基礎學編程並不難
    「學編程一定很難吧」、「太難了,肯定學不會」、「你又沒有基礎,這怎麼學啊」……在我決定學編程時,身邊幾乎都是反對的聲音,讓我一度產生自我懷疑——零基礎是不是真的學不會、學不好編程?直到有一天,我在朋友圈看到風變編程的Python小課,從此,就像是打開了新世界的大門。
  • 程式設計師大神分享零基礎如何30天入門快速學習python
    零基礎如何30天入門快速學python?一:明確自己的學習目標不管我們學習什麼樣的知識,都要對自己的學習目標有一個明確的認識。只有這樣才能朝著目標持續的前進,少走彎路,從而在學習的過程中得到提升,享受整個學習的樂趣。
  • 零基礎小白學編程,該如何入門?
    編程作為當下最熱門的職業,頗受年輕人的喜愛,很多人因為其高薪資,職業前景好的特點,紛紛選擇轉行加入編程的行列,但是,對於一個對編程知之甚少的小白來說,想要入門,應該從哪一步先開始,才能少走彎路呢?入門先從C語言入手小編認為,學習編程的第一步肯定是掌握一門程式語言。
  • 程式設計師編程入門必知!程式設計師需要學什麼
    什麼是編程? 編程就是讓計算機為解決某個問題而使用某種程序設計語言編寫程序代碼,並最終得到結果的過程。資訊時代的大背景下,計算機的應用顯得舉足輕重,精通計算機的人才對於龐大的市場需求量來說還是顯得很匱乏,因此計算機行業的前景是很可觀的,但是也有不少人對於編程處於一竅不通的狀態,那編程該從何入手呢?
  • Web前端零基礎好學嗎?新手該怎麼學?
    因此越來越多的人想轉型做前端開發了,下面我們來談談,如何快速入門前端開發。零基礎學web前端開發要怎麼去學?首先要學習的就是基礎知識:HTML、CSS和JS。HTML是內容,CSS是表現,JS是行為。Web前端零基礎好學嗎?前端開發的門檻其實非常低,與伺服器端語言先慢後快的學習曲線相比,前端開發的學習曲線是先快後慢。
  • 零基礎編程人員學Python到底難不難?3天入門Python
    #我要學Python#零基礎編程人員想學Python到底難不難?對於像我一樣沒有接觸過程式語言但又想學習的人大有人在。Python相對來說學習比較簡單,比較容易入門。開發快,語言簡潔,沒那麼多技巧,讀起來很清楚容易。
  • 零基礎能不能學Java 如何才能學好Java編程
    零基礎能不能學Java?如何才能學好Java編程?沒有基礎可以學會嗎?對於想要入行IT開發的人來說,Java是一個非常不錯的選擇,一方面是因為Java歷史悠久,擁有廣闊的市場佔有率;另一方面是Java開發人員需求大、薪資高。很多人想要學習Java,下面且看一下小編的分析。
  • 學編程,沒有基礎的人如何下手?
    場長要先肯定這種想學編程的「萌芽」,有了想學習的想法就是一件值得肯定的事,而且看上的還是學編程,更是有著不尋常的眼光啊~而關於零基礎學編程這樣的問題,想必知乎上已經有千千萬萬個回答了。場長也回答過不少類似的學習問題,但不管是零基礎還是有基礎,場長一直把「結合自己實際情況」這樣的建議放在第一位。
  • 板繪零基礎該怎麼自學?板繪新手入門教學
    板繪零基礎該怎麼自學?板繪新手入門教學!相信有很多朋友想學習漫畫卻又不知從何下手,今天微課菌給大家分享的內容就是幫助初學者解決這個問題。如何學?從哪裡開始學?這些問題都會在今天的分享中找到答案。「輕微課」的網站上非常多的繪畫教程、繪畫素材,也有專業的繪畫課程,學繪畫的小夥伴可以去上面找到很多有用的繪畫學習資源哦1、如果以後主要想板繪,完全可以零基礎學習板繪,但是在學習的過程中需要根據自己需要,補充繪畫的知識。
  • 日語學習教程:日語零基礎入門教學,日語學習到底怎麼開始學
    日語學習教程:日語零基礎入門教學,日語學習到底怎麼開始學 2020-11-26 17
  • 零基礎學Java難嗎?是自學好還是選擇培訓班?
    零基礎學Java難嗎?答案是,不難!但是,想要從零基礎到達到企業Java開發工程師崗位要求,還是有一定難度的。不難,是因為Java只是一種計算機程式語言,就像我們學中文,英語一樣,只是使用的範圍和載體不同而已。你買一本厚厚的Java語言書,精心研究一兩個月,基本上都可以敲出想要的代碼。但是,要達到企業Java開發工程師崗位要求,找到一份滿意的工作,還是需要下一番苦功夫的。