如何從零學習一門程式語言,並由此拿到高薪?

2021-02-25 扣丁學堂


學習任何一門程式語言,都會面臨的第一個問題都是:如何學習這門語言?

丁小點不想說什麼多看、多學、多寫、多練之類的廢話。世上事有難易乎?無他,唯手熟爾。誰不知道熟能生巧的道理?

有必要談談的是:如何由淺入深的學習一門程式語言?學習所有程式語言有沒有一個相對統一的學習方法?

為此,我特意請教了一位資深程式設計師大咖,希望能給正準備入門編程的同學一些參考。這位程式設計師接觸過不少程式語言:Java、Python、Javascript、C、C++、Shell等等。每次學習一門新的程式語言,掌握程度或深或淺,但是學習的曲線卻大抵相似。下面,是他按照個人的學習經驗總結一下,學習程式語言的基本步驟。一、學習程式語言的步驟
二、基本語法控制臺輸出,如C的printf,Java的System.out.println等。普通程式設計師的第一行代碼一般都是輸出 「Hello World」 吧。不同程式語言的基本數據類型不同。基本數據類型是的申請內存空間變得方便、規範化。不同程式語言的聲明變量方式有很大不同。有的如Java 、C++需要明確指定變量數據類型,這種叫強類型定義語言。有的語言(主要是腳本語言),如Javascript、Shell等,不需要明確指定數據類型,這種叫若類型定義語言。還需要注意的一點是變量的作用域範圍和生命周期。不同語言變量的作用域範圍和生命周期不一定一樣,這個需要在代碼中細細體會,有時會為此埋雷。掌握條件語句、循環語句、中斷循環語句(break、continue)、選擇語句。一般區別僅僅在於關鍵字、語法格式略有不同。掌握基本運算符,如算術運算符、關係運算符、邏輯運算符、賦值運算符等。有些語言還提供位運算符、特殊運算符,視情節掌握。注釋(沒啥好說的)程式語言基本都有函數。注意語法格式:是否支持出參;支持哪些數據作為入參,有些語言允許將函數作為參數傳入另一個參數(即回調);返回值;如何退出函數(如Java、C++的return)。八、數組、枚舉、集合枚舉只有部分程式語言有,如 Java、C++、C#。但是數組和集合(有些語言叫容器)一般程式語言都有,只是有的程式語言提供的集合比較豐富。使用方法基本類似。
九、常用類比較常用的類(當然有些語言中不叫類,叫對象或者其他什麼,這個不重要,領會精神)請了解其API用法,如:字符串、日期、數學計算等等。十、語言特性語言特性這個特字反映的就是各個程式語言自身的"獨特個性",這涉及的點比較多,簡單列舉一些。面向對象編程,主要是封裝、繼承、多態;函數式編程,主要是應用Lambda;過程式編程,可以理解為實現需求功能的特定步驟。每種編程模式都有一定的道理,我從不認為只有面向對象編程才是王道。Java是面向對象語言,從Java8開始也支持函數編程(引入Lambda表達式);C++可以算是半面向對象,半面向過程式語言。每個語言自身都有一些重要特性需要了解。例如,學習C、C++,你必須了解內存的申請和釋放,了解指針、引用。而學習Java,你需要了解JVM,垃圾回收機制。學習Javascript,你需要了解DOM操作等。十三、代碼組織、模塊加載、庫管理一個程序一般都有很多個原始碼文件。這就會引入這些問題:如何將代碼文件組織起來?如何根據業務需要,選擇將部分模塊啟動時進行加載,部分模塊使用懶加載(或者熱加載)?最基本的引用文件就不提了,如C、C++的#include,Java的import等。針對代碼組織、模塊加載、庫管理這些問題,不同語言會有不同的解決方案。如Java可以用maven、gradle管理項目依賴、組織代碼結構;Javascript (包括 Nodejs、jquery、react等等庫)可以用npm、yarn管理依賴,用webpack等工具管理模塊加載。十四、容錯處理所以為了代碼健壯性也好,為了方便定位問題也好,代碼中需要有容錯處理。常見的手段有:

十五、輸入輸出和文件處理這塊知識比較繁雜。建議提綱挈領的學習一下,理解基本概念,比如輸入輸出流、管道等等。至於API,用到的時候再查一下即可。十六、回調機制每種語言實現回調的方式有所不同,如.Net的delegate (大量被用於WinForm程序);Javascript中函數天然支持回調:Javascript函數允許傳入另一個函數作為入參,然後在方法中調用它。其它語言的回調方式不一一列舉。十七、序列化和反序列化首先需要了解的是,序列化和反序列化的作用是為了在不同平臺之間傳輸對象。其次,要知道序列化存在多種方式,不同程式語言可能有多種方案。根據應用的序列化方式,選擇性了解即可。
十八、進階特性以下學習內容屬於進階性內容。可以根據開發需要去學習、掌握。需要注意的是,學習這些特性的態度應該是不學則已,學則死磕。因為半懂半不懂,特別容易引入問題。對於半桶水的同學,我想說:放過自己,也放過別人,活著不好嗎?並發編程:好處多多,十分重要,但是並發代碼容易出錯,且出錯難以定位。要學習還是要花很大力氣的,需要了解大量知識,如:進程、線程、同步、異步、讀寫鎖等等。2.泛型:集合(或者叫容器)的基石,精通泛型,能大大提高你的代碼效率
十九、庫和框架學習一門程式語言,難免需要用到圍繞它構建的技術生態圈——庫和框架。這方面知識範圍太龐大,根據實際應用領域去學習吧。比如搞JavaWeb,你多多少少肯定要用到 Spring、Mybatis、Hibernate、Shiro等大量開發框架;如果做Javascript前端,你可能會用到React、Vue、Angular 、jQuery等庫或框架。
總結以上,程式語言學習的道路是任重而道遠的,未來是光明的。最後一句話與君共勉:路漫漫兮其修遠,吾將上下而求索。

免費領取資源 歡迎添加宋老師微信(QF18511118220)

相關焦點

  • 如何快速學習計算機程式語言
    如何快速學習計算機程式語言呢?這是很多零基礎同學想要知道的答案。隨著網際網路的飛速發展,程式設計師的工資越來越高,很多人想加入程式設計師的隊列,想要快速掌握編程技術。那麼應該如何快速學習計算機程式語言呢?1、首先應該知道自己為什麼學習計算機程式語言,如果只是盲目的追求高薪,對電腦程式沒有濃厚的興趣,那麼零基礎想要快速學習計算機程式語言是非常困難的。想計算機程式語言,應該擁有濃厚的興趣,再加上堅持不懈的精神,這樣才能更快地學習程式語言。
  • 零基礎準備學習編程,應該從哪門語言學起?
    在學習編程之前,我們還是要搞清楚一件事情,那就是你為什麼要學習編程?是想要獲得高額的薪水呢?還是自己對編程感興趣呢?或者兩者都是。目前在國內只要你是個程式設計師,那麼你基本上都能夠拿到一份不錯的薪資。對於大多數的轉行者來說,學習編程的目的就是想找一份高薪的工作,那麼肯定是哪個程式語言的就業前景好,就越值得學習。下面我們分析一下現在比較流行的程式語言,看看你到底適合哪門程式語言!目前主流的程式語言分別是:C語言、C++、Java、PHP、HTML5+JS、Python。這些也是目前市面上最流行的程式語言。
  • 如何快速上手任意一門程式語言?
    在開始閱讀之前,本文假設你已經掌握了至少一門程式語言,別慌,這其中的概念能夠幫助你順利開始學習第一門程式語言。我上大學的時候,我的老師曾跟我們這群新手程式設計師說過一句話,讓我記憶猶新:最難學的程式語言,是你將要學習的第二門程式語言。
  • 學習編程,語言該如何選擇?
    很多不是計算機專業、零基礎想學編程的童鞋們,往往覺得編程太難,自學完全學不進去。其實大部分都是因為沒有找到對的方式方法,導致學習起來困難重重。 高效學習,並不意味著要走捷徑、抄近道。 對於新手來講,首要的事情肯定還是一步步地打好基礎。
  • 怎樣快速的學習一門程式語言
    也有越來越多的人開始學習程式語言。在這裡給大家分享一下我的學習經驗。初識語言:存在的程式語言有上千種,這就需要先選擇一門語言來入門。網上有對程式語言的排名,也有關於各種語言所適用業務介紹。可以先選擇想從事開發的方向,再在排名靠前的語言中選擇一門。選擇好一門語言後,接下來就是去網上查教程。
  • 文科生想學習一門程式語言來提升就業競爭力,該學習哪門程式語言
    首先,當前對於文科生來說,學習一門程式語言是有必要的,隨著工業網際網路整合行業資源的能力越來越強,未來大量傳統行業的從業者都需要藉助於工業網際網路來完成工作任務,而掌握一門程式語言也會在一定程度上拓展職場人的能力邊界。
  • 學習計算機程式語言最好的方法是什麼?
    想要學習一門計算機吧編程技術?大神都有哪些好的學習方法?適合自己的學習方式又是哪一種呢?
  • 最困難的程式語言永遠是你將要學習的第二個程式語言
    在學校裡老師常跟小芯說的一些東西,小芯可以分享給新手開發人員:最困難的程式語言永遠是你將要學習的第二個程式語言。不要因為小芯分享的故事而垂頭喪氣——小芯故事的意思是,當你開始學習如何編程,你會對編程有預先的想法。最後,你會做出比理應更多的句法連接和假設,由此,在開始學習第二種程式語言時,你必須忘記上述假設。
  • 進入大四時想學習編程,該選擇學習哪一門程式語言
    首先,對於即將步入大四的同學來說,在就業前掌握一門程式語言還是很有必要的,未來在工業網際網路的推動下,大量的行業企業都會基於網際網路來開展業務,而掌握程式語言則能夠明顯拓展自身的能力邊界,也會更容易獲得高附加值的工作崗位。
  • 程式設計師入門選擇哪一門程式語言?一定要從C語言開始嗎?
    學編程先從哪裡開始入手呢,選擇什麼程式語言會好點呢?一直以來,有那麼一部分新手程式設計師會經歷這方面的困惑,選擇一門程式語言確實是一個非常大的課題。程式設計師選擇哪一門程式語言入門?但是畢竟你要面對的現實是,學C語言離做出成品還很遙遠呢~即使C語言是一門非常好的程式語言,但是它對於沒有接觸過編程的新手、或者急於就業的程式設計師來說,未必適合拿來入門。而只有當你編程實踐到了一定的水平,再過頭學習C語言,會讓你對編程的理解更進一步。
  • 在讀大學生是否該重點學習一門程式語言,以及該如何選擇程式語言
    首先,從當前大的技術發展趨勢、行業發展趨勢和社會發展趨勢來看,大學生掌握一定的編程知識對於後期的發展會有比較積極的意義,這一點在工業網際網路時代會有越來越明顯的體現。大學生學習程式語言要結合自身的專業特點和發展規劃,如果要考研計算機專業,那麼應該重點學習一下C語言,而如果沒有考研計算機專業的想法,可以重點考慮學習一門全場景程式語言,比如Java和Python就是不錯的選擇。
  • 從零開始學習MQL4 CTA交易程式語言 (一)
    本人是前者,我是一個交易員,我厭倦了在圖表前生活,不想讓交易慢慢偷走我更多的用來陪伴家人和朋友的時間,作為一個好奇的人,我決定去學一下如何做這個編程的事,看看這究竟能有多難。實際上學習的難度取決於從哪裡學習。曾經的學習方式只能是從MQL4的網上參考書著手。然而這是一個很難的事情,這些書不僅難讀而且也很難搞懂那些作者到底說了什麼——除非你已經是一個程式設計師,然而本人不是。
  • 2020年,五個學習一門新程式語言的理由
    如果你剛剛開始學習第一門程式語言,那麼我建議你先正確地學習這門語言。但如果你已經正確地掌握了一種語言,或者你是一名經驗豐富的軟體開發人員,已經掌握了不止一種程式語言,那麼我建議你明年學習一種新的語言。學習一門新的程式語言是要付出代價的,會耗費大量的時間、精力和腦力。但學習一門新的語言可以直接或間接地給你帶來巨大的好處。
  • 開課吧:最值得學的程式語言是什麼?程式語言通用學習方法分享!
    如果您對編程有興趣,想要以後致力於編程這個方向,那是肯定要下一番苦功夫的。說實話沒有一門程式語言是好學的,要是那麼簡單就可以學會了,那是個人就是程式設計師了。最值得學的程式語言是什麼呢?零基礎學習編程首先要選對自己的方向,目前整體的方向上分為前端開發,後端開發,大數據,雲計算,人工智慧,運維測試等等,自己要選定好這個方向,選定好了,再去選擇一門語言去學習。
  • 學習編程和學習程式語言是兩碼事
    你可能正在學習一門程式語言,而不是編程本身計算機科學不是學習計算機,很震驚吧。相反,它是關於藉助計算機來自動解決問題的一門學問。解決問題才是計算機科學,而不是寫代碼。這就是許多計算機科學專業的學生,似乎不理解他們為什麼學習算法和數學的原因。
  • 初學者選擇學習哪一門程式語言更容易入門
    其實大部分程式語言自身的難度都不大,編程的難度在於算法和數據結構,對於沒有編程基礎的初學者來說,由於不同的程式語言有不同的應用場景,所以具體選擇學習哪一門程式語言,應該結合自己的學習目的。如果未來要從事嵌入式開發,那麼可以從C語言開始學起。
  • 怎樣真正的學好一門程式語言?
    它對我們的學習或者生活有什麼用處?如果是非本專業的人員來學習的話,則要考慮你學習的這門語言對工作的薪資有多大的幫助。有很多人不是不知道怎麼學習這門語言,而是對程式語言在計算機體系中的位置和作用還搞不清楚。那麼這樣來說,你的方向很可能開始就出現了偏差。計算機程式語言只是一種工具,就像英語或者其他語言,它是一種與計算機溝通的語言。
  • 為什麼要把學習C語言作為第一門程式語言?
    編程是向計算機發出指令以執行特定任務或執行指令的行為,目前專業行業和學術界使用數百種程式語言。一個人需要熟悉並且能夠使用至少幾種程式語言進行編程才能作為目前專業開發者的成功。學習編程的最好理由在於它對所有人開放,你不需要大學學位即可通過自學成為專業程式設計師。
  • 自創一門程式語言的14步
    你可能想要創造一門新的程式語言。下面就來告訴你如何創造一門程式語言。  Step 1 對專業術語十分熟悉  寫編譯器的人通常會使用一些你不是那麼熟悉的術語,所以你一定要在開發前先了解編譯器,確保你知道編譯的所有事情。
  • 如何選擇一種程式語言來學習
    停止學習的人都老了,不管是二十歲還是八十歲。人們在學習編程時犯的第一個錯誤是過於擔心選擇的語言是否正確。現在你可能已經意識到有很多程式語言。事實上,每次你重新看一個語言你都會發現很多新事物。你應該試著學習大家都在談論的新語言嗎?明年還會談論嗎?JavaScript到底是怎麼回事?當你一拍後腦勺然後打算跟風的時候,你需要看到以下兩個殘酷的現實。選擇一門語言需要知識。