C語言是編程小白的噩夢,WEB開發成爲轉行程序員的福音!

大多數大學生接觸的第一門編程課即是C語言,這對於一個徹底不懂計算機的人多是噩夢。前端

很多人初次上C語言課都會被指針繞得暈頭轉向,然而大部分編程工做並不須要你關心指針的使用。此外,C語言對可視化編程並不友好,用C語言編寫圖形化界面十分繁瑣。在這種狀況下,不少大學生都會問C語言能作什麼?程序員

C語言看似簡單,實則無比強大,它主要的用途是系統級編程,操做系統,數據庫,編譯器,虛擬機等等,但是,並非每一個人都願意去嘗試或者有機會接觸。算法

這會致使大多數人學了C語言並無多少成就感和興趣,甚至由於這門課懷疑本身能不能學好編程,或者拿到計算機專業的畢業證。數據庫

事實上,這樣想是多慮的。並非每一個計算機專業的學生未來都要去搞操做系統,編譯器或嵌入式開發,應用型人才大有可爲。你徹底能夠先從應用層入手,得到成就感和興趣,再深刻鑽研底層開發。編程

在我眼裏,編程是世界上最好的工做。既能夠憑此得到報酬,還可做爲興趣愛好,享受解決問題的那種成就感。因此,當你第一次學編程或者對編程開始失去興趣時,不妨從Web入手,先作一個網站。Web開發所用到的語言大多數都是所見即所得類型,學了立刻能夠作出一個可視化的做品,頗有成就感。後端

Web開發是最簡單的,並且開發語言也多種多樣,好比JavaScript、PHP、JAVA、Ruby、Python等。互聯網上關於Web開發的學習資料是最多最豐富的,大多數問題均可以經過搜索引擎找到解決方案。這對初學者十分友好,下降了編程的挫折感。瀏覽器

儘管受到移動互聯網的衝擊,但不能否認,網站是互聯網最廣泛的應用形式,並將長期存在下去。若是你想作Web開發,Just do it!服務器

Web開發分爲先後端,前端包括HTML、CSS和JavaScript等,後端包括Node.js、JAVA、Python、PHP、Ruby等。若是你想作一個靜態網站,只須要學習前端技術便可。網絡

前端技術自己難度不大,但瀏覽器適配和響應式佈局稍微有點棘手。初學者徹底沒必要理會,先作出一個靜態網站便可。當你作出初版靜態網站時,你必定會興奮,由於這是你本身的做品。數據結構

網站作好後,你可能想更新網站內容,但手動更新又比較麻煩。這時你能夠選擇一門簡單的後端語言,嘗試下服務器搭建、先後端數據交互和Linux命令行操做等等。後端技術優先推薦Python、PHP和JAVA,三者選其一便可。

人生苦短,我用Python。Python內置了大量豐富的函數供你直接調用,有些語言寫不少行的函數,Python一行代碼搞定。此外,Python做爲程序員必備的腳本語言,在爬蟲、科學計算、AI等領域也很出彩。利用這個機會學習下,技多不壓身。

除了Python,PHP效率也不低。做爲世界上最好的語言(:-D),PHP爲Web而生,PHP能夠直接嵌入HTML標籤,十分方便。經典的LAMP或者LNMP搭配更是世界上絕大多數網站的標配(L:Linux,A:Apache,N:Nginx,M:MySql,P:PHP)。

最後推薦的當屬老大哥JAVA,在國內可能就JAVA程序員最多了,因此學了就業確定不愁。不過,JAVA的難度要Python和PHP稍高點。

學了後端語言後,你能夠作一個動態網站了。不過,還差一個數據庫,推薦MySQL。若是你不想學SQL語句,能夠尋找後端語言對應的MySQL圖形管理應用。可是,當你的數據量較大或者常常存取數據時,建議學習下基本的SQL語句以提升效率。

當你前端和後端都學完了,你就能夠隨性所欲的作你想作的網站。作出來後,記得分享給你的好友和家人,他們的鼓勵是你前進的動力。

這就完了嗎?萬里長征纔剛踏出第一步。

爲何個人網站這麼慢?多是由於前端靜態資源CSS或者JavaScript太大或者加載方式不對。你得學習下代碼優化、靜態資源壓縮打包和頁面渲染原理吧。

爲何查詢數據怎麼慢?你得學習下數據庫優化吧。

有小夥伴想和你一塊兒開發網站,怎麼讓別人快速看懂你的代碼?你得學習下代碼模塊化(低耦合,高內聚)和接口設計吧。

爲了使你網站穩定,你還會遇到不少問題。但經過前面學習,相信你已經學會了如何獨立排查和解決問題了。獨立解決問題的能力是程序員最基本的能力之一。

網站穩定了,你可能想設計出相似於熱門內容和推薦內容等。一看須要用到排序算法和推薦算法,恍然大悟,數據結構和線性代數被你學成了狗屎。不停的責罵本身,當年上課的時候幹啥去了。

不要着急,相信你如今回頭再去看時,必定能學進去。由於學了,你立刻就能夠用。如今你終於明白,數據結構中的時空複雜度、線性表、棧和隊列、樹、圖、排序和查找是怎麼用的。

誒,課本里的C代碼怎麼和我寫的Python和JAVA這麼類似。仔細搜索發現,C語言纔是這些語言的祖師爺。頓時心生悔意,要是當年好好學C語言,如今也不會這麼吃力。種一棵樹,最好的是十年前,其次是如今。趕忙學吧,少年!

如今網站也像模像樣了,想知道瀏覽器怎麼運行的嗎?HTTP協議是啥?不用搜了,趕忙回去看計算機網絡,」三次握手」必須爛熟於心。

終於有一天,服務器死機了。這下你得學習下服務器運維,瞭解下服務器工做原理吧。世界上絕大多數服務器系統都是Linux,Linux系統你得學習下吧。

多線程多進程貌似見過?你已經學過了,就在操做系統那本書裏,老師講的時候你沒認真聽。這下你恍然大悟,原來學校裏的課是有用的,只是本身沒發現。這樣你又回去把計算機組成原理和微機接口原理複習了下,瞭解了Byte和Bit的區別,瞭解了二進制編碼,瞭解了彙編語言等等。

大道至簡,心中有劍於無形。如今你明白了,編程語言只是術,而計算機基礎課纔是心法。萬變不離其宗,你再也不恐懼編程,也再也不把本身限定在某一種語言。你開始不知足於只作網站,你想作APP、遊戲、編譯器或嵌入式開發等。

經過以前的學習,你學會了如何用項目去驅動學習,學會了獨立解決問題,學會了快速上手一門編程語言,學會了先後端如何交互等等。即便你之後不作Web開發,這些能力都是通用的,伴隨你一輩子。

相關文章
相關標籤/搜索