快速入門一門編程語言,這就是你需要掌握的方法

學(xué)習(xí)編程語言的目的

我們學(xué)習(xí)一門開發(fā)語言,目的無非有兩個(gè)。

  1. 找工作
  2. 更好的適應(yīng)工作

所以在回答這個(gè)問題之前,首先你要明確自己學(xué)習(xí)這門語言的目的是什么。因?yàn)檫@兩種情況,對學(xué)好一門語言的定義和要求是不一樣的。

學(xué)好編程語言的標(biāo)準(zhǔn)

針對為了找工作而學(xué)習(xí)編程語言的人群。這要看你現(xiàn)在處于一個(gè)什么階段,又是出于什么考量才決定學(xué)習(xí)編程的。
你可能是即將大學(xué)畢業(yè),或者是考慮從其他行業(yè)轉(zhuǎn)行而來的零基礎(chǔ)學(xué)員。你們對對編程語言基本沒什么基礎(chǔ),存粹要從頭學(xué)起。這類人對工作的期待值也比較低,就是奔著初級程序員而來的,能讓我入門就行。
你也有可能是已經(jīng)在這個(gè)領(lǐng)域里工作過一段時(shí)間,具備著一定的開發(fā)經(jīng)驗(yàn),學(xué)習(xí)編程語言,為了加深技能,更換工作環(huán)境,讓職業(yè)生涯更上一層樓。
針對不同的情況,我們的標(biāo)準(zhǔn)就會(huì)不一樣。我所給出的建議,主要是為了那些零基礎(chǔ)的學(xué)員的,所以很多方法,觀點(diǎn)都偏向基礎(chǔ)。
對于那些有著多年開發(fā)經(jīng)驗(yàn)的人群來說,已經(jīng)對這個(gè)問題有著自己的認(rèn)知,并不是很需要建議。這類人更多需要知道的就是想要達(dá)到下一生涯階段,你應(yīng)該具備怎樣的能力,又應(yīng)該在哪些方面進(jìn)行學(xué)習(xí)投入。關(guān)于這方面,我可以給出一個(gè)建議。你可以關(guān)注一些招聘信息,不論是根據(jù)薪資水平,還是職位級別來檢索,找到對應(yīng)的崗位要求,這樣你就可以知道你應(yīng)該學(xué)習(xí)的方向了?;蛘吒鼧O端一點(diǎn),你可以投些簡歷出去,以戰(zhàn)養(yǎng)戰(zhàn),在面試的實(shí)戰(zhàn)過程中找到自己的不足。
所以對于初學(xué)者來說,學(xué)好一門編程語言的標(biāo)準(zhǔn),我覺著按照水平遞進(jìn)的關(guān)系,應(yīng)該是這樣的:

  1. 能看懂代碼
  2. 能寫代碼
  3. 可以面試

作為初級程序員,如果只是為了滿足平時(shí)的工作,其實(shí)你只要做到看的懂代碼,能夠照著別人的代碼進(jìn)行開發(fā),就算是達(dá)到了學(xué)會(huì)的標(biāo)準(zhǔn)。剩下的事情,怎么提高能力,更好的勝任工作,那都是需要在工作環(huán)境中磨礪的。換句話說,這就已經(jīng)不是學(xué)會(huì)編程語言的范疇,而是提高能力的范疇了。
很多人會(huì)有疑問,為什么面試會(huì)放在最后。通常情況下,不是應(yīng)該先通過面試,才能去參加工作嗎。你可能也聽過這樣的一句話,“面試時(shí)以為造火箭,參加工作后發(fā)現(xiàn)是在擰螺絲”。這其實(shí)是目前工作環(huán)境的真實(shí)寫照。在面試的時(shí)候,面試官可能會(huì)故意問一些超出這個(gè)崗位范圍的問題,并不是真的需要你完美無誤的回答出來,更多的是看你在面對困難時(shí)的表現(xiàn)。所以很多時(shí)候,你在面試過程中被問的體無完膚,其實(shí)并不要太在意。但是并不是說,在面試的過程中,你就可以放飛自我了。往往在面試的時(shí)候,面試官也不確定你入職后的崗位到底是什么,他只能根據(jù)你的表現(xiàn)來判斷你能勝任哪些工作。所以面試,你所要掌握的知識(shí)要全面,而且要表現(xiàn)的很自信,即使你不知道,你也要讓面試官覺著你是會(huì)這塊知識(shí)的。如果能讓面試官對自己產(chǎn)生懷疑,你可能就成功了。

學(xué)會(huì)編程語言,要掌握哪些知識(shí)

這里所說的學(xué)會(huì),其實(shí)還是針對上文中所提到的前兩點(diǎn)??炊a,能寫代碼。掌握到這個(gè)程度,作為一個(gè)初級程序員,應(yīng)對工作中的一些編程任務(wù),已經(jīng)算是達(dá)到了入門程度了。而我認(rèn)為,在學(xué)習(xí)一門新的編程語言的時(shí)候,就可以通過這個(gè)方法來快速掌握。

1. 安裝運(yùn)行

首先你得讓這門語言在你電腦上運(yùn)行起來。
只有讓它成功的運(yùn)行起來了,你才能在學(xué)習(xí)后續(xù)內(nèi)容的學(xué)習(xí)的時(shí)候,做到邊學(xué)邊練。否則,你就只能讓學(xué)習(xí)停留在理論層次,你無法驗(yàn)證自己是否真的學(xué)會(huì)了。
想讓一門編程語言成功運(yùn)行起來,其實(shí)并不容易。它涉及到運(yùn)行環(huán)境的安裝,系統(tǒng)依賴庫的維護(hù),可運(yùn)行文件的格式,運(yùn)行的方法。
這里,我拿PHP為例子,給大家講解一下??赡苡型瑢W(xué)會(huì)問,開發(fā)語言那么多,主流的就十幾種,為什么要拿PHP舉例子。我想說的是,開發(fā)語言只是一門工具,學(xué)深入了,每門語言可能各有各的特點(diǎn),但是對于學(xué)習(xí)方法是一樣的。在這里選擇PHP作為演示語言,一是因?yàn)樗貏e簡單,另一個(gè)原因是大家都說PHP是世界上最好的語言,在這里怎么也要展示一下。
安裝php運(yùn)行環(huán)境
基本上每一種的軟件運(yùn)行環(huán)境,現(xiàn)在都支持三種運(yùn)行格式,分別適用于“Linux系統(tǒng)”,“Windows系統(tǒng)”和“Mac系統(tǒng)”。我們可以到網(wǎng)絡(luò)上找到php的下載安裝包,下載到電腦上進(jìn)行安裝。
在下載安裝包的時(shí)候,我們可能還會(huì)遇到一個(gè)問題,就是php的版本眾多,有php5.3,php5.4,php7等多種版本。我們到底應(yīng)該選哪個(gè)呢。這個(gè)問題不光是在php這里存在,其實(shí)在其他的語言里也一樣存在。這是因?yàn)檫@們語言在發(fā)展過程中,結(jié)合當(dāng)前時(shí)代的發(fā)展趨勢,都會(huì)做出來一些進(jìn)化。這就跟我們手機(jī)上安裝軟件,會(huì)經(jīng)常要求大家更新是一個(gè)道理的。對于版本問題,我的建議是這樣的,如果你這是一個(gè)全新的環(huán)境,你就下載最新的穩(wěn)定版本。如果你安裝環(huán)境是為了運(yùn)行以后的其他的項(xiàng)目,那你就得安裝這個(gè)項(xiàng)目所要求的版本。因?yàn)樵谶@些語言里,版本之間并不一定是兼容的,你版本對應(yīng)不上的話,很可能導(dǎo)致項(xiàng)目運(yùn)行不起來。
具體的安裝方法,我這里就不做演示了。在網(wǎng)上我們可以找到很多相關(guān)的資料,大家可以參照著運(yùn)行。如果安裝過程中遇到了問題,我們可以繼續(xù)交流。
php文件的形式
php的運(yùn)行文件是有要求的。這個(gè)要求是文件的后綴名一定得是.php這種的。系統(tǒng)會(huì)把以.php為后綴的文件認(rèn)為是php文件,如果你不這么命名,這個(gè)文件很可能會(huì)運(yùn)行不了。

2. 基礎(chǔ)語法

  • 獨(dú)有特性
    接下來,我們就得知道這門語言的獨(dú)有特性。這是這個(gè)語言的標(biāo)志,你只要一看到代碼這么寫,你就會(huì)知道,是什么語言。
    對于PHP語言,PHP的代碼要以<?php開頭,?>為結(jié)尾。
<?php
    echo "Hello World";
?>  
  • 語言注釋
    注釋,對于一門編程語言的重要性是怎么說都不為過的。它是可以用我們所能理解的語言寫出來的文字,是寫出來給開發(fā)人員自己看的,而不是給機(jī)器看的。所以對于開發(fā)語言來說,它需要有自己獨(dú)特的格式,要讓機(jī)器知道這些它不能理解的東西是什么。
    php的注釋有三種形式。
<?php
// 這是單行注釋

# 這也是單行注釋

/*
這是多行注釋塊
它橫跨了
多行
*/
?>
  • 變量
    變量是一種存儲(chǔ)信息的容器。 比如
x = '我是一個(gè)變量';

在這里,x就是變量,而它代表的含義是“我是一個(gè)變量”。
php中,變量的規(guī)則是這樣的:

變量以 $ 符號(hào)開頭,其后是變量的名稱
變量名稱必須以字母或下劃線開頭
變量名稱不能以數(shù)字開頭
變量名稱只能包含字母數(shù)字字符和下劃線(A-z、0-9 以及 _)
變量名稱對大小寫敏感($y 與 $Y 是兩個(gè)不同的變量)
  • 數(shù)據(jù)類型
    我們在描述事物時(shí),會(huì)給不同的東西分類,然后用不同的思維來對待它。比如數(shù)學(xué),語文,物理,化學(xué)等等。這種劃分方便了大家的理解,也更利于交流和傳播。在計(jì)算機(jī)里,它對事物也有著一套不同對待的理解方式,這種方式就被稱之為數(shù)據(jù)類型。
    對于編程語言而言,數(shù)據(jù)類型是對應(yīng)著復(fù)雜的底層數(shù)據(jù)結(jié)構(gòu)的。這些數(shù)據(jù)類型,也決定了這們語言適用的編程場景。但是對于初學(xué)者而言,我們不太需要果多的理解這些底層結(jié)構(gòu),我們首先要做的是了解這些數(shù)據(jù)類型,并且能夠領(lǐng)活的使用它們。
    在PHP中,它支持的數(shù)據(jù)類型主要有字符串,整數(shù),浮點(diǎn)數(shù),數(shù)組,對象,null這幾種。接下來,我就簡單的介紹一下這些類型。
    字符串是一種字符組合。你可以把任意內(nèi)容用引號(hào)包圍起來,對php來說,這就是字符串。
$x = "Hello world!";

整數(shù),是沒有小數(shù)的數(shù)字。

<?php 
  $x = 5985;
  var_dump($x);
  echo "<br>"; 
  $x = -345; // 負(fù)數(shù)
  var_dump($x);
  echo "<br>"; 
  $x = 0x8C; // 十六進(jìn)制數(shù)
  var_dump($x);
  echo "<br>";
  $x = 047; // 八進(jìn)制數(shù)
  var_dump($x);
?>

浮點(diǎn)數(shù),其實(shí)就是含有小數(shù)點(diǎn)的數(shù)字。

<?php 
  $x = 10.365;
  var_dump($x);
  echo "<br>"; 
  $x = 2.4e3;
  var_dump($x);
  echo "<br>"; 
  $x = 8E-5;
  var_dump($x);
?>

布爾型,只有兩個(gè)值,就是true 和 false。用于邏輯判斷中,true表示這個(gè)值為真,false則表示為假。

$x=true;
$y=false;

數(shù)組,在一個(gè)變量中存儲(chǔ)了多個(gè)值,在php中就被稱之為數(shù)組。一般用array()表示。

<?php 
  $cars=array("Volvo","BMW","SAAB");
  var_dump($cars);
?>

對象,是一種存儲(chǔ)數(shù)據(jù)和有關(guān)如何處理數(shù)據(jù)信息的數(shù)據(jù)類型。

<?php
class Car
{
  var $color;
  function Car($color="green") {
    $this->color = $color;
  }
  function what_color() {
    return $this->color;
  }
}
?>
  • 運(yùn)算方法
    我們知道了變量和數(shù)據(jù)類型,但是這些變量在使用過程中,不是獨(dú)立存在,而是需要有運(yùn)算的。
    這就引出了適用于各種數(shù)據(jù)類型的運(yùn)算方法。
    說到這里,大家可能首先想到的是數(shù)學(xué)中的加減乘除。沒錯(cuò),這就是運(yùn)算方法,這是適用于數(shù)字類型的,還有很多其他運(yùn)算方法等著我們來掌握。請往下看。
    算數(shù)運(yùn)算


    1.png

    賦值運(yùn)算


    2.png

    字符串運(yùn)算
    3.png

    遞增/遞減運(yùn)算
    4.png

    比較運(yùn)算
    5.png

    邏輯運(yùn)算


    6.png

    數(shù)組運(yùn)算
    7.png

3. 函數(shù)方法

函數(shù)定義

函數(shù)是可以在程序中重復(fù)使用的語句塊。
在編程處理問題的時(shí)候,你會(huì)發(fā)現(xiàn)有很多重復(fù)性的操作。在面對這些情況的時(shí)候,你有兩種處理的方法,一種是每遇到一次這種問題,都重復(fù)性的寫一遍代碼。另外一種是,將這個(gè)處理辦法整理出來放到一邊,當(dāng)你再次遇到的時(shí)候,把這個(gè)整理出來的方法拿過來處理一次。這后一種解決辦法,其實(shí)就是函數(shù)。
在PHP里,函數(shù)的形式是這樣的。

function functionName($params) {
    // 執(zhí)行的代碼
    var_dump($params);
}
// 調(diào)用函數(shù)
functionName("hello");

從示例中可以見到,函數(shù)的構(gòu)成主要有三個(gè)方面。

函數(shù)聲明

在php里,函數(shù)的前面需要加上關(guān)鍵字“function”.這個(gè)操作是告訴大家,現(xiàn)在的這段代碼是一個(gè)函數(shù)。

函數(shù)名和參數(shù)

示例中的functionName就是函數(shù)名,函數(shù)名只要滿足命名規(guī)則,我們可以任意起。但是在實(shí)際開發(fā)中,函數(shù)名是應(yīng)該起一個(gè)能夠讓人一看就知道作用的,這樣利于代碼的維護(hù)。比如sayHello,getName這種名字的,我們一看就知道這個(gè)方法是做什么的。
示例中的$params表示函數(shù)中的參數(shù),這個(gè)參數(shù)會(huì)在函數(shù)的可執(zhí)行代碼塊中被用到。正是因?yàn)橛辛诉@個(gè)參數(shù)的存在,我們的這個(gè)方法才有可能被更廣泛的使用。

函數(shù)主體

示例中,被{}包圍起來的內(nèi)容就是這個(gè)函數(shù)的主體。這里才是函數(shù)真正工作,解決問題的地方。我們創(chuàng)建了一個(gè)函數(shù),到底讓它做什么,怎么做,就是在這里實(shí)現(xiàn)的。

內(nèi)置函數(shù)

PHP真正強(qiáng)大的地方,其實(shí)很大程度上就是函數(shù)的功勞。PHP內(nèi)置了大量的函數(shù),這些函數(shù)不需要我們編寫,是直接可用的。這是Java,C語言所不具備的優(yōu)勢。所以很多時(shí)候,我們在用PHP處理問題的時(shí)候,可以很快速,很便利的就實(shí)現(xiàn)了出來,這種便利性就來自于PHP內(nèi)置的函數(shù)庫。
掌握這些函數(shù),對于你學(xué)會(huì)學(xué)好php這門編程語言有著莫大的幫助。甚至在很多面試的過程中,面試官也會(huì)直接問你這些官方庫中的函數(shù)方法。所以我們一定要對這些函數(shù)有足夠的重視。
我們可以查詢php手冊,也可以到網(wǎng)絡(luò)上找相關(guān)的函數(shù)介紹,這些函數(shù)的介紹很容易找到。但是也有同學(xué)會(huì)說,手冊上那么多函數(shù),難道我要全部都掌握嗎。也不需要全部都掌握,但是我們一定要對重點(diǎn)的幾個(gè)方面,重點(diǎn)去對待。
這些重點(diǎn)方面,我總結(jié)起來,主要有字符串,時(shí)間,數(shù)組這三大方面。


8.png

4. 常見應(yīng)用方法

學(xué)到了這里,我們其實(shí)已經(jīng)能夠看懂php的代碼了。所以,恭喜你,你達(dá)到了進(jìn)階的標(biāo)準(zhǔn),可以嘗試用php來處理一些更重要的互聯(lián)網(wǎng)業(yè)務(wù)了。
對于web編程,是有著很多的應(yīng)用場景的。不論在什么需求下,又不論是在怎樣的應(yīng)用條件下,這些基本的應(yīng)用場景是不變的。如果你能掌握了這些內(nèi)容,你其實(shí)就已經(jīng)能夠應(yīng)對一定的編程需求了。
到底又哪些操作是常用的,是我們必須掌握的呢?

表單

表單處理,可以說是web場景里應(yīng)用最廣泛的一種處理需求。我們方問網(wǎng)站,一定會(huì)碰到登陸/注冊的功能。


9.png

其實(shí)這就是一個(gè)表單操作。
表單操作是最典型的一種web功能。這會(huì)涉及到一些http的知識(shí),需要學(xué)習(xí)應(yīng)用form表單,需要進(jìn)行前端頁面和后端接口數(shù)據(jù)的結(jié)合。
對于初學(xué)者而言,這塊的知識(shí)將會(huì)是你學(xué)習(xí)的一個(gè)進(jìn)階,標(biāo)志著你終于可以真正的走進(jìn)編程解決實(shí)際問題了。

文件

文件操作也是web編程里一個(gè)常見的應(yīng)用場景。
對于文件,通常有文件上傳下載,讀取文件,寫入文件這些操作。這么說,可能大家不會(huì)有特別清晰的理解,但是我要說,你在某一個(gè)網(wǎng)站上,進(jìn)行的上傳頭像的操作,你可能就一下子感覺到熟悉了。

數(shù)據(jù)庫

數(shù)據(jù)庫的操作,雖然不屬于php的開發(fā)范疇,但是每一個(gè)做php開發(fā)的人都離不開于數(shù)據(jù)庫的配合。
我們在網(wǎng)絡(luò)上會(huì)產(chǎn)生各種各樣的操作,比如剛才提到的登陸注冊。你注冊了一個(gè)網(wǎng)站,必定要取一個(gè)昵稱,要有密碼,這些信息最終都會(huì)化作是一個(gè)數(shù)據(jù)記錄,存儲(chǔ)在一個(gè)叫數(shù)據(jù)庫的地方。
所以我們在學(xué)習(xí)php編程的時(shí)候,還要同時(shí)學(xué)習(xí)數(shù)據(jù)庫的知識(shí)。數(shù)據(jù)庫的種類有很多,分為關(guān)系型和非關(guān)系型。關(guān)系型的代表是mysql,oracal,非關(guān)系型的代表是redis,mongodb。
對于初級程序員而言,我們至少要掌握到能夠用php對mysql進(jìn)行連接方問,對數(shù)據(jù)進(jìn)行增刪改查。

5 常用框架

每門語言都有自己常用的框架程序。
框架是什么呢?在程序設(shè)計(jì)中, 框架是構(gòu)成一類特定軟件可復(fù)用設(shè)計(jì)的一組相互協(xié)作的類。從這個(gè)角度上來看,我們發(fā)現(xiàn),框架其實(shí)跟之前提到的函數(shù)很像,都是把一些常用的操作匯總起來,便于重復(fù)使用。但是框架所提煉匯總的功能更多更深更廣闊。
框架提供了大量的易用功能,大大的簡化了開發(fā)人員開發(fā)一個(gè)項(xiàng)目的難度??梢宰岄_發(fā)人員可以將精力很大程度上投放到業(yè)務(wù)本身,而不用果多的去思考代碼架構(gòu)的實(shí)現(xiàn)。
框架簡化了一門語言的使用方法,相當(dāng)于給我們開發(fā)功能提供了一套模板,你只要在固定的位置填上相應(yīng)的代碼,就能夠很容易的完成你想要的功能效果。
學(xué)習(xí)一門語言,框架的學(xué)習(xí)很重要。學(xué)習(xí)框架知識(shí),我們首先要知道在這門語言中,什么框架是主流框架,然后了解這個(gè)框架是怎么運(yùn)行的,什么是MVC結(jié)構(gòu),哪個(gè)目錄放置頁面功能,哪個(gè)目錄放置數(shù)據(jù)庫文件,哪個(gè)目錄放置邏輯控制的代碼。

6. 找一個(gè)開源項(xiàng)目練練手

如果上面提到的知識(shí)都掌握了,恭喜你,你已經(jīng)正式入門,可以用這們語言解決實(shí)際開發(fā)中的一些問題了。
這個(gè)時(shí)候,你最需要的就是有個(gè)真實(shí)的項(xiàng)目去實(shí)踐。如果你已經(jīng)參加了工作,可以接觸到實(shí)際的項(xiàng)目,那么你就有著比初學(xué)者更大的便利條件。如果你還沒有參加工作,也沒有什么項(xiàng)目可供自己來練習(xí),那么我建議你最好是找一個(gè)用這個(gè)編程語言研發(fā)的開源項(xiàng)目。搭建起來,仿照著已有代碼去增加修改些功能。
這是你掌握一門語言,最快速有效的辦法。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • TITLE: 編程語言亂燉 碼農(nóng)最大的煩惱——編程語言太多。不是我不學(xué)習(xí),這世界變化快! 有時(shí)候還是蠻懷念十幾、二...
    碼園老農(nóng)閱讀 5,580評論 2 35
  • 原文鏈接:https://github.com/EasyKotlin 值就是函數(shù),函數(shù)就是值。所有函數(shù)都消費(fèi)函數(shù),...
    JackChen1024閱讀 6,317評論 1 17
  • 說到簫,很多人分不清楚簫和笛的區(qū)別,可聽覺特別敏感的我,從來不曾混淆過,原因是那簫的音色在我聽來是美妙得無與倫比。...
    嘰哩咕嚕AMY貓閱讀 1,577評論 4 9
  • 回家的感覺真好,不論落魄還是風(fēng)發(fā),它很純凈,熱也熱的那么亮堂,討厭長清那層解不開的面紗,悶熱悶熱。
    老胖小子閱讀 235評論 0 0
  • 第三章 “無論如何,我都要去見樸荷一面,我實(shí)在不能安心,生怕她會(huì)做出什么傻事” “還有曾經(jīng)生活在朝鮮時(shí)代的芙蓉,她...
    廚房里的筷子閱讀 911評論 0 2

友情鏈接更多精彩內(nèi)容