很多人想知道自己是否適合編程?程序員的日常工作是什么?你可以用編程做什么?但他們通常不知道從哪里開(kāi)始,因?yàn)樗麄內(nèi)狈σ恍┫嚓P(guān)信息(我稱之為“初始”或“從這里開(kāi)始”文章)。如果您還想知道編程是否適合您?你需要做什么?你能做什么?編程能為我們做什么?什么都不能帶?從哪里開(kāi)始?然后繼續(xù)閱讀。TL;DR:選擇一個(gè)您感興趣的領(lǐng)域,學(xué)習(xí)基礎(chǔ)知識(shí),然后開(kāi)始創(chuàng)建真正的小型項(xiàng)目。繼續(xù)練習(xí),練習(xí)... 免責(zé)聲明:我寫這篇文章是為了了解如果我是新手,編程是否值得學(xué)習(xí)?如果值得,從哪里開(kāi)始?學(xué)什么?那么這篇文章就是為我量身定做的。作者'
什么是編程?
編程是與機(jī)器通信的過(guò)程,幫助我們向機(jī)器解釋它在給定情況下應(yīng)該做什么和不應(yīng)該做什么??雌饋?lái)他是在用某種奇怪的語(yǔ)言和機(jī)器說(shuō)話,而機(jī)器不知怎么聽(tīng)懂了。此外,其他懂語(yǔ)言的人也可以閱讀您給機(jī)器的說(shuō)明。有很多這樣的語(yǔ)言,有些程序員會(huì)說(shuō)好幾種。摘要:編程就是告訴機(jī)器該做什么。
我們可以做什么?
通過(guò)管理機(jī)器,我們可以創(chuàng)建有趣、復(fù)雜的程序/系統(tǒng)來(lái)簡(jiǎn)化日常任務(wù)?;蛘撸屖虑樽兊酶腥?。所有電子設(shè)備都經(jīng)過(guò)編程,以幫助我們完成日常任務(wù)。當(dāng)有人靠近時(shí)自動(dòng)打開(kāi)的燈泡?一切都與編程有關(guān)!我們甚至可以在機(jī)器中編寫魔法世界。就像一個(gè)網(wǎng)站,或者一個(gè)視頻游戲。為了通過(guò)編程讓生活更輕松入門寫程序下載什么軟件,除了物理定律和技術(shù)進(jìn)步之外,我們還需要想象力和其他技能。此時(shí)此刻,數(shù)十億臺(tái)機(jī)器正準(zhǔn)備接單。您的智能手機(jī)正在等待您打開(kāi)瀏覽器并搜索“如何開(kāi)始編程”;您的 Wi-Fi 路由器正在等待處理此類網(wǎng)絡(luò)請(qǐng)求,如果有任何相關(guān)信息,它會(huì)詢問(wèn)互聯(lián)網(wǎng)上的其他機(jī)器(又名服務(wù)器);這些服務(wù)器處理請(qǐng)求并將信息發(fā)回。編程使所有這些機(jī)器能夠協(xié)同工作以執(zhí)行一組特定的任務(wù)。最終,將有數(shù)十億臺(tái)機(jī)器等待我們?cè)谠浦袨樗鼈兎峙溆杏玫墓ぷ?!想象一下,在如此龐大?shù)量的計(jì)算機(jī)的基礎(chǔ)上,我們可以構(gòu)建什么樣的系統(tǒng)?,F(xiàn)在,讓我回到最簡(jiǎn)單的問(wèn)題。那么作為程序員,我們能做些什么呢?想象一下,在如此龐大數(shù)量的計(jì)算機(jī)的基礎(chǔ)上,我們可以構(gòu)建什么樣的系統(tǒng)?,F(xiàn)在,讓我回到最簡(jiǎn)單的問(wèn)題。那么作為程序員,我們能做些什么呢?想象一下,在如此龐大數(shù)量的計(jì)算機(jī)的基礎(chǔ)上,我們可以構(gòu)建什么樣的系統(tǒng)?,F(xiàn)在,讓我回到最簡(jiǎn)單的問(wèn)題。那么作為程序員,我們能做些什么呢?
程序員的工作是什么?
下面,我將介紹我所做的工作——與Web應(yīng)用程序相關(guān)的工作。談?wù)劇盀槭裁础??一些人或公司?duì)創(chuàng)建和維護(hù)可以通過(guò) 訪問(wèn)的網(wǎng)頁(yè)感興趣。由于網(wǎng)頁(yè)可以展示人們?cè)诂F(xiàn)實(shí)世界中所做的事情,因此企業(yè)通常需要自己的企業(yè)網(wǎng)站。這樣,搜索此類企業(yè)的人就可以看到他們的頁(yè)面,閱讀有用的信息,并決定是否為公司提供的服務(wù)付費(fèi)。一些企業(yè)在網(wǎng)上銷售他們的產(chǎn)品。因此,他們需要一個(gè)可以處理客戶請(qǐng)求和銷售產(chǎn)品的網(wǎng)頁(yè)。從這個(gè)角度來(lái)看,創(chuàng)建網(wǎng)頁(yè)(和應(yīng)用程序,如果你想)的市場(chǎng)需求是巨大的。企業(yè)需要網(wǎng)站,OK!然后?他們可能會(huì)聯(lián)系可以幫助創(chuàng)建網(wǎng)站的公司。我們稱他們?yōu)閿?shù)字機(jī)構(gòu)。他們擁有相關(guān)的專業(yè)知識(shí)和技術(shù),企業(yè)需要一個(gè)網(wǎng)站,而這些機(jī)構(gòu)通過(guò)創(chuàng)建他們需要的網(wǎng)站來(lái)賺錢。數(shù)字機(jī)構(gòu)需要程序員來(lái)做這些事情:他們知道如何建立一個(gè)網(wǎng)站,并最終建立它??偟膩?lái)說(shuō),就是這么簡(jiǎn)單。還有其他類似的機(jī)構(gòu)通過(guò)出售程序員的時(shí)間(而不是網(wǎng)站)來(lái)賺錢。其中一些是按項(xiàng)目收費(fèi)的,包括程序員工作、測(cè)試、收集需求、管理人員等等。一些產(chǎn)品公司不賣員工的時(shí)間,他們通過(guò)制造有價(jià)值的產(chǎn)品來(lái)賺錢。這些產(chǎn)品本身已經(jīng)是一項(xiàng)有利可圖的(或可能不是)業(yè)務(wù)。這些機(jī)構(gòu)通過(guò)創(chuàng)建他們需要的網(wǎng)站來(lái)賺錢。數(shù)字機(jī)構(gòu)需要程序員來(lái)做這些事情:他們知道如何建立一個(gè)網(wǎng)站,并最終建立它??偟膩?lái)說(shuō),就是這么簡(jiǎn)單。還有其他類似的機(jī)構(gòu)通過(guò)出售程序員的時(shí)間(而不是網(wǎng)站)來(lái)賺錢。其中一些是按項(xiàng)目收費(fèi)的,包括程序員工作、測(cè)試、收集需求、管理人員等等。一些產(chǎn)品公司不賣員工的時(shí)間,他們通過(guò)制造有價(jià)值的產(chǎn)品來(lái)賺錢。這些產(chǎn)品本身已經(jīng)是一項(xiàng)有利可圖的(或可能不是)業(yè)務(wù)。這些機(jī)構(gòu)通過(guò)創(chuàng)建他們需要的網(wǎng)站來(lái)賺錢。數(shù)字機(jī)構(gòu)需要程序員來(lái)做這些事情:他們知道如何建立一個(gè)網(wǎng)站,并最終建立它??偟膩?lái)說(shuō),就是這么簡(jiǎn)單。還有其他類似的機(jī)構(gòu)通過(guò)出售程序員的時(shí)間(而不是網(wǎng)站)來(lái)賺錢。其中一些是按項(xiàng)目收費(fèi)的,包括程序員工作、測(cè)試、收集需求、管理人員等等。一些產(chǎn)品公司不賣員工的時(shí)間,他們通過(guò)制造有價(jià)值的產(chǎn)品來(lái)賺錢。這些產(chǎn)品本身已經(jīng)是一項(xiàng)有利可圖的(或可能不是)業(yè)務(wù)。還有其他類似的機(jī)構(gòu)通過(guò)出售程序員的時(shí)間(而不是網(wǎng)站)來(lái)賺錢。其中一些是按項(xiàng)目收費(fèi)的,包括程序員工作、測(cè)試、收集需求、管理人員等等。一些產(chǎn)品公司不賣員工的時(shí)間,他們通過(guò)制造有價(jià)值的產(chǎn)品來(lái)賺錢。這些產(chǎn)品本身已經(jīng)是一項(xiàng)有利可圖的(或可能不是)業(yè)務(wù)。還有其他類似的機(jī)構(gòu)通過(guò)出售程序員的時(shí)間(而不是網(wǎng)站)來(lái)賺錢。其中一些是按項(xiàng)目收費(fèi)的,包括程序員工作、測(cè)試、收集需求、管理人員等等。一些產(chǎn)品公司不賣員工的時(shí)間,他們通過(guò)制造有價(jià)值的產(chǎn)品來(lái)賺錢。這些產(chǎn)品本身已經(jīng)是一項(xiàng)有利可圖的(或可能不是)業(yè)務(wù)。
任務(wù)
如果你是新手,你通常會(huì)做相對(duì)簡(jiǎn)單的任務(wù)。經(jīng)驗(yàn)豐富的資深同事也希望您在遇到問(wèn)題時(shí)多向他們提問(wèn)。隨著經(jīng)驗(yàn)的積累,你會(huì)逐漸參與到更復(fù)雜的任務(wù)中,相應(yīng)地承擔(dān)更多的責(zé)任。程序員的日常任務(wù)因項(xiàng)目而異,但大多數(shù)任務(wù)都包括實(shí)際的編碼工作。而且您需要以特定的方式進(jìn)行操作。在處理 Web 應(yīng)用程序時(shí),程序員分為以下幾類: 前端開(kāi)發(fā)人員。當(dāng)我們打開(kāi)一個(gè)網(wǎng)站時(shí),我們首先看到的是他們?cè)谧鍪裁?。?yè)面上那些漂亮的塊、文本、模態(tài)框、排列整齊的圖像、動(dòng)畫(huà)——他們都對(duì)此負(fù)責(zé)。他們至少需要了解 HTML 和 CSS 才能設(shè)計(jì)靜態(tài)頁(yè)面。HTML 是一種標(biāo)記語(yǔ)言,它告訴瀏覽器將內(nèi)容放在哪里。例如,我想在網(wǎng)頁(yè)頂部放置一個(gè)導(dǎo)航菜單,然后在其下方放置兩個(gè)圖像,并在最底部呈現(xiàn)文本“站點(diǎn)”。所有這些都可以轉(zhuǎn)換為 HTML,因此瀏覽器可以準(zhǔn)確地表達(dá)您想要的內(nèi)容。CSS 是一種樣式語(yǔ)言,可為原始 HTML 元素提供美觀的外觀。它可以為文本或塊設(shè)置顏色、大小、寬度、高度等。借助 HTML 和 CSS,我們可以創(chuàng)建靜態(tài)網(wǎng)站。靜態(tài)是指不需要額外的邏輯操作,例如處理按鈕點(diǎn)擊、對(duì)鼠標(biāo)雙擊特定元素做出反應(yīng)等等。
Web 應(yīng)用程序是具有額外邏輯和復(fù)雜性的網(wǎng)頁(yè)。在網(wǎng)上很常見(jiàn)。我們購(gòu)買東西的在線商店是一個(gè) Web 應(yīng)用程序,因?yàn)樗幚恚何覀冞x擇一個(gè)項(xiàng)目,將一個(gè)項(xiàng)目添加到購(gòu)物車,打開(kāi)一個(gè)模式,詢問(wèn)一個(gè)送貨地址,等等。這些類型的網(wǎng)站需要前端開(kāi)發(fā)人員掌握一門編程語(yǔ)言,因?yàn)檫@些指令不能用 HTML 或 CSS 編寫。最常用的編程語(yǔ)言是 . 總而言之,前端開(kāi)發(fā)人員負(fù)責(zé)創(chuàng)建網(wǎng)站的視覺(jué)部分,同時(shí)他們還構(gòu)建了描述視覺(jué)部分應(yīng)該如何呈現(xiàn)的邏輯。除此之外,網(wǎng)站還有其他部分嗎?當(dāng)然,還有后端(服務(wù)器)部分。后端開(kāi)發(fā)人員。他們負(fù)責(zé)編寫用于傳輸、驗(yàn)證、從前端(可視化)部分清理數(shù)據(jù),將數(shù)據(jù)放入某個(gè)存儲(chǔ)中,然后檢索它。服務(wù)器負(fù)責(zé)管理數(shù)據(jù)。如果前端(我們稱之為FE)部分也可以有邏輯,那為什么還要有服務(wù)器呢?因?yàn)?FE 受限于瀏覽器環(huán)境,我們無(wú)法在前端實(shí)現(xiàn)一切。服務(wù)器端(后端,BE)開(kāi)發(fā)人員負(fù)責(zé)為 FE 或其他服務(wù)器編寫 API。什么是 API?讓我們看看 怎么說(shuō):應(yīng)用程序編程接口 ( ),一個(gè)實(shí)現(xiàn)兩個(gè)應(yīng)用程序相互通信的 軟件 中介。為什么我們有服務(wù)器?因?yàn)?FE 受限于瀏覽器環(huán)境,我們無(wú)法在前端實(shí)現(xiàn)一切。服務(wù)器端(后端,BE)開(kāi)發(fā)人員負(fù)責(zé)為 FE 或其他服務(wù)器編寫 API。什么是 API?讓我們看看 怎么說(shuō):應(yīng)用程序編程接口 ( ),一個(gè)實(shí)現(xiàn)兩個(gè)應(yīng)用程序相互通信的 軟件 中介。為什么我們有服務(wù)器?因?yàn)?FE 受限于瀏覽器環(huán)境,我們無(wú)法在前端實(shí)現(xiàn)一切。服務(wù)器端(后端,BE)開(kāi)發(fā)人員負(fù)責(zé)為 FE 或其他服務(wù)器編寫 API。什么是 API?讓我們看看 怎么說(shuō):應(yīng)用程序編程接口 ( ),一個(gè)實(shí)現(xiàn)兩個(gè)應(yīng)用程序相互通信的 軟件 中介。
這就像人的嘴和耳朵:我用嘴說(shuō)話——你用耳朵聽(tīng),反之亦然。API 就是這樣一種交換信息的方式。
作為一個(gè)更實(shí)際的例子,讓我們回想一下在線購(gòu)物網(wǎng)站。當(dāng)我們想從上面買東西時(shí),F(xiàn)E收集我們的數(shù)據(jù),發(fā)送到服務(wù)器,驗(yàn)證數(shù)據(jù)是否有效,在數(shù)據(jù)庫(kù)中檢索我們的身份(是注冊(cè)用戶嗎?有訂閱嗎?),然后進(jìn)行通信與銀行服務(wù)器對(duì)話,如果有支付入門寫程序下載什么軟件,銀行服務(wù)器處理支付。經(jīng)過(guò)這一系列的檢查和操作,服務(wù)器會(huì)回復(fù)FE,說(shuō):客戶已經(jīng)付款了,我們?cè)诰W(wǎng)站上給他發(fā)個(gè)感謝信息吧。因此,F(xiàn)E 通過(guò)提供的 API 與 BE 對(duì)話,他們交換信息并協(xié)同工作。有些程序員既能勝任 FE 又能勝任 BE 工作。全棧忍者。他們擁有處理 FE 和 BE 所需的所有技能。所以,他們可以自己完成Web應(yīng)用程序的創(chuàng)建。還有一些移動(dòng)開(kāi)發(fā)人員,我們將在接下來(lái)的章節(jié)中介紹。
學(xué)習(xí)什么開(kāi)始編碼
練習(xí),練習(xí),練習(xí)。在了解了程序員的工作類型之后,或許你已經(jīng)有了想要選擇的方向:FE、BE、移動(dòng)應(yīng)用。如果你還沒(méi)有決定也沒(méi)關(guān)系。你所要做的就是積累更多的經(jīng)驗(yàn),然后你自然會(huì)找到你內(nèi)心的渴望。
無(wú)論您選擇哪種方式,您都應(yīng)該開(kāi)始構(gòu)建一個(gè)真正的項(xiàng)目。這里提到的項(xiàng)目并不是指亞馬遜配送系統(tǒng)的大型項(xiàng)目。您編寫的任何代碼都可以被視為一個(gè)項(xiàng)目。你可以先了解一些基礎(chǔ)理論,比如目標(biāo)編程語(yǔ)言的知識(shí),或者計(jì)算機(jī)科學(xué)的基礎(chǔ)知識(shí)。如果您還沒(méi)有基礎(chǔ)知識(shí)也沒(méi)關(guān)系,只需開(kāi)始創(chuàng)建一些實(shí)用的東西。但是如果沒(méi)有理論基礎(chǔ)來(lái)支持它,我們可能會(huì)發(fā)現(xiàn)自己不知道在構(gòu)建時(shí)要注意什么。因此,我們應(yīng)該盡量避免這種情況。
前端路徑
這也取決于你打算做什么。例如,如果您想為靜態(tài)網(wǎng)頁(yè)創(chuàng)建美觀、美觀的設(shè)計(jì),那么 HTML 和 CSS 就足夠了。為此,您需要找到“HTML 指南”并在每節(jié)課后編寫一些代碼。然后,找一本《CSS 指南》,結(jié)合 HTML 來(lái)學(xué)習(xí)。您不需要學(xué)習(xí)所有 HTML 元素。
, ,
這樣的事情就足以開(kāi)始了。然后,當(dāng)您遇到其他問(wèn)題時(shí),您可以求助于 。CSS 也是如此,但可能還有更多需要學(xué)習(xí)的地方。如果您對(duì)制作 Web 應(yīng)用程序感興趣,那么您還需要了解 HTML 和 CSS。一開(kāi)始,你需要具備一些基礎(chǔ)知識(shí),比如如何編寫函數(shù)、調(diào)用函數(shù)、創(chuàng)建變量、求和、打印字符串等——了解你可能遇到的情況。網(wǎng)頁(yè)的 DOM 部分允許您將所學(xué)內(nèi)容與操作網(wǎng)頁(yè)相結(jié)合。例如,按下按鈕會(huì)將頁(yè)面上的紅色塊變成藍(lán)色塊。然后,在您熟悉了基礎(chǔ)知識(shí)之后,就該選擇一個(gè)前端框架了(但這也不是必需的)。框架是開(kāi)發(fā)人員用來(lái)解決特定問(wèn)題的工具,它可以幫助我們減少我們編寫的代碼量。但是,我們也可以建立沒(méi)有框架的網(wǎng)站。如果你開(kāi)始選擇框架,恭喜你,你已經(jīng)進(jìn)步了,是時(shí)候閱讀一些新的東西了。我應(yīng)該選擇什么樣的項(xiàng)目?最好是快速簡(jiǎn)單的項(xiàng)目。這樣我們可以在短期內(nèi)看到效果,而不會(huì)把前面拉得太長(zhǎng),最終放棄學(xué)習(xí)編碼。例如,您可以先創(chuàng)建一個(gè)個(gè)人網(wǎng)頁(yè)并將您的信息放在上面。一些帶有文本的原始 HTML 塊。用不同的積木練習(xí),看看效果。然后,開(kāi)始使用 CSS 添加樣式。想象一下多個(gè)類似的項(xiàng)目,在接下來(lái)的幾天或幾周內(nèi)練習(xí) HTML 和 CSS。掌握 HTML 和 CSS 后,您可以學(xué)習(xí)基礎(chǔ)知識(shí)。您將學(xué)習(xí)如何編碼,例如,按鈕單擊處理程序 - 單擊并且頁(yè)面變?yōu)榧t色。想一些類似的任務(wù),寫代碼。之后,您應(yīng)該能夠使用 HTML、CSS 和 . 例如,創(chuàng)建一個(gè)簡(jiǎn)單的頁(yè)面,包含頁(yè)眉、頁(yè)腳、內(nèi)容,并在其中添加一些邏輯:?jiǎn)螕粢粋€(gè)按鈕,會(huì)出現(xiàn)一個(gè)啟用輸入的塊,當(dāng)輸入更改時(shí),頁(yè)面標(biāo)題會(huì)隨之更改。大量練習(xí)新任務(wù)和項(xiàng)目。不要跳過(guò)這一步的練習(xí)!大量練習(xí)新任務(wù)和項(xiàng)目。不要跳過(guò)這一步的練習(xí)!大量練習(xí)新任務(wù)和項(xiàng)目。不要跳過(guò)這一步的練習(xí)!
后端路徑
你需要學(xué)習(xí)一門編程語(yǔ)言。Web 應(yīng)用程序的最佳選擇是因?yàn)槟梢栽谇岸撕头?wù)器端使用相同的語(yǔ)言編寫代碼。這是全棧開(kāi)發(fā)的不錯(cuò)選擇。你需要學(xué)習(xí) Node.JS 平臺(tái)——它是一個(gè)服務(wù)器端。可以通過(guò)閱讀或觀看介紹性視頻來(lái)學(xué)習(xí)基礎(chǔ)知識(shí):如何安裝 Node,并編寫一個(gè)簡(jiǎn)單的服務(wù)器來(lái)監(jiān)聽(tīng)請(qǐng)求并響應(yīng)它們。我們都對(duì) REST API 感興趣,因此您的第一個(gè)實(shí)際項(xiàng)目可能是創(chuàng)建一個(gè)具有兩條路由的服務(wù)器:“POST /”用于創(chuàng)建新消息,“GET /”用于返回所有已保存的消息。它可以臨時(shí)保存在內(nèi)存或文件中。如果你有興趣成為一名全棧程序員,
移動(dòng)路徑
我們一直在討論它如何幫助我們使用 React 框架創(chuàng)建移動(dòng)應(yīng)用程序。通常,開(kāi)發(fā)人員使用其他語(yǔ)言編寫代碼,例如 Java(適用于 iOS)或 Swift(適用于 iOS)。React 可以同時(shí)為這兩個(gè)平臺(tái)編寫代碼,甚至可以為 Web 和桌面編寫代碼。
總結(jié)
希望您現(xiàn)在對(duì)選擇哪條路徑有了更好的了解。無(wú)論您選擇什么,都應(yīng)該定期練習(xí)。沒(méi)有適當(dāng)?shù)闹R(shí)庫(kù),就很難看到大局,也更容易忘記。當(dāng)你掌握了基礎(chǔ)知識(shí)后,試著寫一些簡(jiǎn)單的項(xiàng)目,選擇那些需要一段時(shí)間的,但盡量控制在幾個(gè)小時(shí)以內(nèi)。否則,如果短期內(nèi)看不到提升效果,很容易放棄,甚至失去學(xué)習(xí)興趣
小編也遇到過(guò)剛開(kāi)始編程的時(shí)候不知道怎么上手,不知道學(xué)什么的情況?,F(xiàn)在我終于有所成就了。我想幫助那些想以低薪轉(zhuǎn)行的人,以及那些想進(jìn)入編程但不知道如何學(xué)習(xí)的人。我會(huì)給你我多年的材料。
獲取方式:請(qǐng)轉(zhuǎn)發(fā)關(guān)注并私信小編。關(guān)鍵詞:“學(xué)”獲取最全的編程自學(xué)視頻教程
你在等什么?
期間看不到進(jìn)步,很容易放棄,甚至失去學(xué)習(xí)興趣
小編也遇到過(guò)剛開(kāi)始編程的時(shí)候不知道怎么上手,不知道學(xué)什么的情況?,F(xiàn)在我終于有所成就了。我想幫助那些想以低薪轉(zhuǎn)行的人,以及那些想進(jìn)入編程但不知道如何學(xué)習(xí)的人。我會(huì)給你我多年的材料。
獲取方式:請(qǐng)轉(zhuǎn)發(fā)關(guān)注并私信小編。關(guān)鍵詞:“學(xué)”獲取最全的編程自學(xué)視頻教程
你在等什么?