準備學習 C, 想知道 HTML, CSS, JS, Ajax, JAVA, C 是做什麼的?

準備學習C 可是還是很迷糊 HTML、CSS、JavaScript、Ajax JAVA C C++
這些分別是用來做什麼的
比如說 學習 C 和學習 JAVA 學習HTML、CSS、JavaScript、Ajax 這些將來從事的工作有什麼區別,不懂這些,希望有這些知識的大神回復下,小白坐板凳等= =


  • C 相當於理論力學,其實特別簡單,就只有幾條原理,但是很多人依然望而生畏,而這其中的一些人是因為看了不靠譜的教材(就是那本書,那本,你們懂的)。嗯。
  • C++ 相當於結構力學,看上去比理論力學複雜好多,教科書一大厚摞,應用起來也特別麻煩。但是你在該用結構力學的時候用理論力學就不好玩了。基於理論力學。
  • Java 相當於建築學,有更多的條條框框,也有更多的人學。但其實精通起來也很難。很多人會背幾個公式(設計模式)就號稱自己會建築學了。實際上你背背公式基本上也能設計個像樣的住宅樓,出去騙錢是沒問題的,但是人住進去就會發現裡面結構各種不合理,開門就是牆,電源插口在房頂上,遇到地震就塌。有少數學建築學的同學成了大師,設計出了驚世駭俗的作品,但是大部分建築師看到以後驚嘆一下,然後依然繼續設計自己的豆腐渣住宅樓,並不想把自己提高到大師的水平。所以有些外行以為建築師這個職業特別 low, 其實不是的,low 的是人,不是職業。
  • HTML 相當於刷牆…… 不用學,你練練就會了。
  • CSS 相當於貼牆紙,基本也不用學,但是有技巧,你用錯了貼歪了都不好看。
  • JavaScript 相當於裝修規劃,和 Java 好像都屬於「建築」這個範疇,但是實際上沒什麼聯繫……………… 不過有很多做裝修規劃的人依然聲稱自己是建築行業的。
  • Ajax 相當於你去買建材……?

當準備踏入一個陌生的領域,首先面臨最大的問題其實往往是大量概念的問題 。

特別是計算機行業或者是互聯網行業,行業里每天新詞層出不窮。光是編程語言大混戰,什麼C/C++,Python,PHP,Java以及HTML,CSS是幹嘛的,很容易把人弄暈。

作為一個文科生,我也是用了很長時間才把這些搞明白。很早之前我開始學習C,對著編輯器敲代碼,然後在一個黑框框上面輸出,不知道到底在編輯些什麼的時候,那日子要哭啊。學過C的都有這個體驗。學完數據類型,運算符、表達式、控制流、學到函數那一節,感覺有點不太理解,遂放棄。

後面學些Javascript,仍然是數據類型,運算符,表達式、控制流、函數,但是這個到了面向對象這一環節卡住了,遂放棄。

最後開始學Python,這是唯一個語法學習過程沒有放棄的編程語言,然後開始學習web框架,了解爬蟲框架。在學的過程中逐漸了解模版語法,HTTP協議,抓包、進程、協程等各種以前沒接觸的概念。最後才豁然開朗,原來功夫不再語言之中,而在語言之外。

雖然說語言的思想差不了多少,那麼你提到了東西到底是幹什麼的?

先說HTML,超文本標記語言。這幾個字大家都認識,但是沒什麼基礎知識看著這幾個字仍然是一臉懵逼狀態。一圖勝千言。

如果你的網站首頁只用HTML來寫,那應該就是這個樣子,丑爆了。想當年互聯網剛發展起來的時候,網頁就是這個樣子,人們不滿意啊。那咋辦呢,就要對他進行美化,於是誕生了CSS,你可以CSS就可以把單調的HTML寫成的網頁修飾的美觀大氣,如下圖

你可以把CSS的樣式直接在寫在HTML文件里,也可以另外新建一個拓展名的文件,寫好之後引入HTML文件。

初中的時候QQ空間玩的比較火的一個功能,就是換膚,點擊一下按鈕,換了一個皮膚。再點一下,又換一個,當年直呼卧槽,大讚其神奇。再比如,在網頁上某一個地方點擊一下要實現彈出框,某個地方點擊一下整個側邊欄都隱藏,上面需求如何實現,也就是說要想實現網頁的交互功能,那需要什麼。HTML和CSS都不能滿足這個需求,時代的呼喚,偉大Javascript誕生了。這是一款運行在瀏覽器上的編程語言,讓頁面之間的交互動畫都變得很容易。不過誕生之初只是作為一個輔助性的腳本語言嵌入到HTML文件里的,跟CSS一樣。不過畢竟是編程語言,廣泛的群眾基礎再結合HTML5使得他今天變得異常強大。大家今天老是在說H5很火,作為一直背後默默奉獻的Javascript表示很悲傷,沒有Javascript,H5直接秒變植物人,橫躺不動。

所以你看HTML、CSS、Javascript實際上三者是不分家,這三個要學一個必然要學其中兩個。他們主要的應用就是web前端。而實際上真要是干起活來你會發現你可能還需要掌握點後端語言,比如Python或者PHP之類,還要懂得資料庫,簡單的增刪改查是少不了的。

那麼Ajax又是幹什麼的?
Ajax不是一門編程語言,是一門技術。那這個技術用在哪兒?
想像一個場景。打開某知名網站,準備註冊,填寫用戶名、手機號、郵箱、密碼,然後睜大眼睛在鍵盤和屏幕上來回掃視輸入了看著極其詭異的驗證碼,提交註冊。該網站給你返回消息,用戶名已被佔用,請重新輸入。剛才的辛苦百搭了,這個瞬間想問候該網站祖宗十八代有木有?

在你之前註冊提交的過程中,發生了什麼?你填寫的數據將會提交給伺服器,伺服器和資料庫的數據一對比,發現了你的用戶名在資料庫中存在,然後返回消息,於是你看見了你的用戶名被佔用。那麼怎麼避免這個問題呢?在你輸入完用戶名就直接和伺服器進行交流,發現資料庫中存在此用戶名,直接就返回消息提示,而不用你等到提交之後再給你返回消息。這就是Ajax技術的應用。

一個網站並不是只有你看見的頁面顯示,還涉及到和資料庫之間的交互、數據的增刪改查,這個時候你的Java就能派上作用了,類似的有Python,PHP。比如知乎這個網站,每個人由於關注的人,關注的話題不一樣,所以在你的時間線上和別人顯示的問題自然不一樣。Java、Python、PHP做後端語言就是運行在的伺服器上,進行業務邏輯編寫和數據的操作,使得伺服器返回給每個用戶的數據有很大不一樣。然後再使用HTML、CSS、Javascript將數據進行可視化呈現給你。前台你打開瀏覽器查看源代碼,你可以查看HTML、CSS、Javascript文件,後端如何與伺服器交互,用戶往往是看不見的,所以顯得比較神秘。

Java除了可以進行後端開發,還可以進行移動開發,比如安卓的應用,也可以進行桌面程序的開發。所以Java應用之廣今天使得它在編程語言排行榜上數一數二。所以你學習Java往往以後干後端開發、桌面開發、安卓移動應用開發等,各種職業等著你。

那好,既然Java可以進行桌面程序開發,那麼現在假設編寫一個Photoshop的軟體,你用 Java開始擼,擼出來之後發現跑起來有點慢,因為開發出來之後發現跑起來有點慢,這是Java的弱點之一。如何改善這個問題,這個時候你可以換下編程語言,這個時候C++就派上用場。C++特別適合高性能的軟體。當然你也可選擇用C開發,不過C開發起來要比C++慢一些,但是C卻是系統開發的首選語言,系統對性能要求是極高的,彙編效率高,但是開發效率太低了,效率和性能之間的平衡使得C往往是系統開發的首選,C往往被譽為高級彙編,所以C適合做嵌入式開發了,嵌入式開發這個對計算機功底要求也高。

看題主的情況應該不是計算機相關專業,所以不建議直接上手C和C++這類太偏底層的編程語言。天天對著黑框框,找不到任何成就感,看著書和視頻不到兩天就從上手到放棄,這不是潑冷水,計算機這個學科太過於博大精深。從底層技術走向頂層,這往往適合計算機專業的學生,沒有計算機基礎我覺得比較適合從頂層逐漸深入底層技術,編程語言從Javascipt或者Python開始吧!


其實這是一個涉及到行業技術概況的問題。計算機行業技術層出不窮,問了這個還會有更多類似的問題。

那麼不如拋開這個具體問題。從事計算機行業,你要首先有一個對行業概況的了解,尤其是小白入門,會有很多疑惑。那麼不如不要急著去學習某個語言,不如從計算機領域的發展史、計算機各個領域的概況、計算機公司各個職位的劃分開始了解。這等於是對一個行業整體的把握,也能對自己未來的方向有好的選擇。

舉例說明,從各大公司的職位招聘需求,就可以知道各個職位方向的劃分,需要什麼樣的素養與能力,用到什麼語言、框架和工具等等。那麼你就能依據自己的興趣對發展方向有所選擇,也就解決了什麼什麼語言能做什麼的基本問題,不至於糊糊塗塗的按著一門語言學下去而不知道學了到底能做什麼。

相信做了這些之後,有了分析能力,也不需要別人來解決這種具體的問題了。踏入各個新的行業應該亦是如此。


百度和Google 是給這種問題準備的。

這種問題就該摺疊,所有認真的回答都會讓題主誤入歧途


這種問題我回答了好多,有點疲了,正在寫一個文章,打算匯總下。
個人感覺除了特殊的興趣,不要從c開始學。
很多人都是從c開始,主要是因為:
1,c夠老
2,因為1,早一點的程序員都是從c開始
3,因為2,學校都把c作為編程基礎課
這個很正常,因為我一開始也是這麼以為的,但是我搞懂了編程之後,就不想讓後來人繼續這麼以為了。
編程的基礎是,變數(數組),函數,順序,選擇,循環。
只要有這個的語言都可以作為入門(有沒有的嗎?)。
但是c有個指針,會把大部分初學者搞得暈頭轉向,並不適合初學者。
而且c不是現代語言,沒有面對對象思想,如果不用的話,完全沒有必要學。
現在最適合入門的是python。
回到題主的問題。
前端三劍客(html,css,javascript),是做網頁用的,因為瀏覽器統一隻認這幾種語言,所以做網頁也只能用這個。(php,jsp,asp等的本質上是在後台進行標籤替換,最後生成的還是這些)
ajax不是語言,ajax是前後端通信的一種機制。
java,c/c++,c#等本質上沒有太大區別,能幹的事也差不多,只不過專長不一樣(純c多一個硬體控制)。
c稍微特殊點,是比較古老的語言,現在主要用於操作系統,硬體控制,高性能演算法等底層。
c++現在主要應用於遊戲,圖像處理等需要較高性能的應用軟體。
java現在主要用於伺服器開發,還有andorid 的原生開發語言用的也是java。
c#主要是用來開發windows平台的應用(暫時是微軟獨佔的)
這些應用領域也決定了工作的區別。
希望對題主有幫助。


HTML

超文本標記語言,是一種基於標籤的描述性的標記語言
標籤是html的基本單位,由尖括弧包圍關鍵字組成,通常成對出現,如
&,和&
形如&,前面沒有"/"的叫做開始標籤,&是結束標籤,成對的標籤標記一個元素(element),位於這兩個標籤之間的東西是這一元素的內容(innerHTML),直接位於這一對標籤之間的元素是這一元素的「子元素」,子元素的子元素的子元素……的子元素叫做子孫元素/後代元素,相對的,這個元素被稱為父元素,祖先元素。純文本是特殊的一種子元素

&
&題主是萌新&
&

html元素有子元素body,body有子元素「題主是萌新」,同時也是html的後代元素。
html是所有html文件最大的元素,是所有元素的祖先元素,被稱為根元素(這是龜腚)

另外,有些標籤是自結束的,形如
&
&
,在這個情況下,單個標籤定義一個元素。

注意到在開始標籤內部可以有形如key=value的鍵值對,這叫做元素的屬性。

示例,節選自某坑爹玩意
&
&
&南開大學學生選課系統&
&
&
&

& &
&

CSS

層疊樣式表,是一種描述性語言,形如
selectors1{
property1:value1;
property2:value2;
}
selectors2{
p3:v3;p4:v4;
}
其中的selectors叫做選擇器,用來指定這一條樣式被應用的範圍,大括弧裡面的鍵值對集合用來描述樣式

JS

javascript,一種多範式動態強類型腳本語言,有強大的引擎V8和chakra撐腰,由ecma組織定義語言標準,標準名稱為ecma 262,又被叫做ecmascript。
目前最新的標準是ecmascript 2016/es7。
畢竟你還沒有學C我也沒辦法說別的了。

Ajax

非同步javascript和xml,忽略這個名字,非同步也可以忽略因為js本身就各種非同步。
另外這個技術現在可以被叫做XMLHttpRequest(xhr),忽略這個名字中的xml和http。
有一個和這個技術有關的技術叫做web socket,這個名字比前兩個名字要好。

這個技術用於在瀏覽器中由腳本發起網路請求,並且將伺服器發來的信息交給腳本來處理,而不是直接作為html顯示出來。

這項技術主要用於由腳本動態得更新用戶看到的內容(又叫做局部刷新),並動態得和伺服器通信。這是使得易用的web application成為可能的技術之一。

JAVA

一種曾經很好的現在被很多人罵的由某法律公司發行的google欽定的被廣泛應用的世界第二好的過時語言。

但是不得不說java的運行時,又叫做java虛擬機,jvm,還是很厲害的,有很多其他語言是藉助jvm運行的。

不得不說一下ms公司的黑科技c#,自從很久以來就被認為是java的替代和超越者,但是現在還沒有得逞。將來會不會得逞呢,我覺得這其實和微軟並沒有什麼關係,而是主要取決於unity 3d。

C

一種簡單靈活好用的貼近底層的古老的靜態(弱)類型靜態語言。(逃


建議你看看head first 系列 。深入淺出,配插圖。


準備學習C

你為什麼要學習C?你是計算機專業或者嵌入式硬體的新生嗎?如果不是,你為什麼不學習VBA、Python、R、Matlab?從問題來看,你既不是計算機專業新生,也不是其它專業有經驗的開發人員。C語言不但難學,而且對你毫無意義。

最後逐條回復你的問題。然而這是最不重要的。

  • HTML:你看的網頁。不過現代的網頁通常只用HTML描述內容。
  • CSS:用來描述結構化的格式,最常用的地方是和HTML一起使用。
  • JavaScript:一種腳本語言。最常見的地方是用在網頁里,在瀏覽器里執行,用於描述網頁(在你這一邊)的邏輯、行為。每個瀏覽器都有各自的JavaScript實現,但基本符合同一標準。
  • Ajax:只是一種概念,瀏覽器動態地從伺服器抓取信息,而不是整張網頁,並且可以修改當前網頁的一小部分,而不是重新渲染整張網頁。
  • JAVA: 一種虛擬機語言,主要特點是編譯成中間代碼,以及掃描式的自動內存管理。
  • C:一種貼近底層的語言:C類型通常是CPU直接支持的類型,C函數調用通常是CPU call。操作系統基本都是C實現的,所以系統介面通常都提供為C函數。
  • C++:C套了個模板和對象的馬甲。

說句大實話,以下全為百度,請為我這麼愛學習的新手點贊! 23333333

C語言是一門通用的計算機編程語言,雖然在應用方面比較廣泛,但是貼近底層,運算符和運算順序那些掌握起來有些難。不適合新手。

HTML 超文本標記語言:超文本就是指頁面內可以包含圖片、鏈接、音樂甚至程序等非文字元素。結構主要包括包括關於網頁的信息(head)和網頁的具體內容(body),結合使用其他的web技術,比如腳本語言、組件等等,製作出一個功能完備的網頁。既然是要顯示網頁,自然要結合瀏覽器,但對於不同的瀏覽器,同一標記符可能有不同的解釋,所以顯示效果也可能不一樣。

CSS,層疊樣式表是一種用來表現HTML或者XML等文件樣式的計算機語言,能夠實現網頁表現與內容的分離。相對於傳統HTML,CSS能夠比較精確地控制網頁中的對象的位置排版,具有編輯網頁對象和模型樣式的能力,當然還有其它一些功能,可以說是目前基於文本展示最優秀的表現設計語言,有較強的易讀性。

JavaScript是一種網路的腳本語言,在Web應用開發中應用比較廣泛,屬於解釋型的,在程序的運行過程中進行解釋。比如我們常看到的網頁上各式各樣的動態功能,就是用JS來實現的。通常情況下,JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。

AJAX 是一種用於創建快速動態網頁的技術,核心是 JavaScript 對象 XMLHttpRequest,可以實現網頁的非同步更新。

C++是在C語言基礎上開發的一種面向對象編程語言,在很多方面與C語言都可兼容。當然啦,也是一樣的難。

Java是一門面向對象編程語言,看起來很像C++,但是Java取其精華,去其糟粕,功能強大,簡單易用。 (後端語言)

樓上的都建議新手可以考慮Python,其實在這裡我也建議學習Python,因為我也是新手。
看過一張圖,貼上來。

為了好好說話,不動手吵吵,PHP是世界上最好的語言。題主你自己看著辦吧。


還記得我們每個程序員最先的一段代碼都是列印helloworld,大學課程里學計算機專業的c語言都是最先開的,也就是說c語言相當於入門,但是c語言又不僅僅是入門,大學課程的c語言只是讓你去掌握一套通用的編程基礎語法,學好了c語言用處是很大的,當前流行的單片機和嵌入式開發都是用的c語言。c語言比其他語言更接地氣,它是在window平台下編譯的,可以做相當底層的工作。

html和css往往在一起,html和css是寫靜態網頁的,html用盒子模型劃分好頁面,往各個盒子裡面填充東西,再用css控制格式,這就是一個最簡單的頁面。

javascript是一種腳本語言,作用是網頁的數據校驗功能和一些特效的實現,一個好的網站不能是乾巴巴的文字和圖片,這就需要javascrpit了。

ajax主要用於在於通過後台進行少量的數據交換,就像你搭好了下水管道系統,總有有水的循環利用吧,ajax可以避免重新載入整個頁面的情況下進行部分網頁更新。

java、c語言、c++都是編程語言,就好比寫字的時候,一個是紅顏色的筆一個是藍顏色的筆,一個是黑顏色的筆,每個筆都有自己最適應的用途,但是它們都是筆,本質是一樣的。


大家都有過小白的時候嘛對不對,大一的時候我才剛剛開始接觸電腦,大二了連頭文件都不知道呢。。
如果不是有什麼特殊需要,用python 2.7開始練習吧。走到後來你會發現,自己又跑回去學習C了。
慢慢來,多參考別人寫的優秀代碼(github上面有很多,知乎也有很多推薦的),成長會很快的。

另,似乎題主對web開發很感興趣,學習python也是沒有錯的。


就這大小寫分明這個態度一定會比我學得好。我也是個新人,建議先學C語言,不需要學的太深,再看java。這些和html或者css不太一樣。後者感覺更偏向「畫」,前面這些像是「寫」,寫的邏輯性要比畫強。


前端來強答一記,略學過一點c,java以及c#的皮毛,現在主要做前端,所以以上語言我沒有發言權

html,css以及JavaScript主要用來寫網頁

html負責書寫頁面結構,css負責表現頁面樣式,比如你看到的網頁的顏色背景,再一個可以控制html標籤的位置以及大小等等,JavaScript主要用來寫一些你看得到的動態效果,比如那種點一下切換下一張的首頁焦點輪播圖,還有你看不到的利用Ajax與後台通信的一些功能等等


根據你的問題,你不太適合從C學習編程。。。


等你了解了你說的這幾個語言之後估計你就會放棄C的……


c是用來寫其餘這些語言的


選一門簡單的語言入門吧。php吧!目前php找工作容易,機會多!

本人學習c++的,做服務端開發,目前工作還可以,對於目前互聯網來說c++找工作難度是所有語言中最難的.


Ajax我不清楚,還沒學
HTML、CSS,乃至JavaScript(最後這個待議)偏前端,主要是展示在瀏覽器的,可以簡單理解為文科,女生比較適合(當然,軟體這塊女生本來就少)

JAVA C C++ 是後端,用於後台處理各種數據業務的,是不會展示在瀏覽器的.但是c介於高級語言和低級語言之間(不是日常生活中的那個高級低級)
java和c++是高級語言
他們之間雖然語法不同,但是這3門學會了其中一門的基礎,學另一門就可以很快上手,學的時候不單是學語法,學的是基礎,什麼是基礎呢,這裡介紹一些常見的概念:(c是沒有類和對象的概念的)
初級:基本數據類型,順序,選擇和循環結構,數組
中級:類和對象,封裝,繼承,多態,抽象,介面,異常

我現在學習的地方,一半java班(java+jsp+html+css+),一半ui班(學html+css+javascript+jquery+photoshop等等),ui還能看到幾個女生,java女生幾乎全滅,所以文科和理科就是我自己腦補的一種對比,也許不太貼切,湊合理解吧


C可以寫window平台Linux平台Unix平台你見過的所有程序。html,css,js是一體的,它們並稱前端,因為css和js可以嵌套在html里。AJAX是前端的一種技術。java是寫後端的,java開發人員拿到前端人員寫的html後,把它後綴改成JAVA的jsp文件,之後就是用jsp技術把html頁面從靜態變成動態了,說起來很抽象,其實就是用el表達式獲取資料庫數據顯示在頁面上,有時還需要Jstl標籤遍曆數據顯示在頁面。
html是靜態的原因是因為數據都寫死在文本上面,就像你C語言一樣,數組定義是寫死的,定義10個就只能填10個數據,要動態分配內存存儲數據的話需要用malloc函數,那麼動態頁面就是鏈接資料庫的頁面,也可以說css,js可以在寫在html里,那麼html可以寫在jsp里,jsp提供的el表達式就可以拿到資料庫數據。
再深入就是web層了。如何把數據帶到資料庫和如何從資料庫拿到數據再在頁面上顯示,都是後端要乾的呀,了解需求,才能設計資料庫表單,最煩就是設計資料庫表單了,搞定資料庫設計後就可以愉快地碼代碼了。


C/C++:是用來和計算機交流的語言。不考慮操作系統的情況,這兩種語言可以直接操作硬體(比如說讓你的計算機的串口/並口輸出高電平/低電平,控制內存中的電壓高低)。如果僅僅想從事軟體行業的話,建議只學習基本概念並掌握語法就好了。這玩意不適合一般人玩。
Java:基於一個通用的「虛擬硬體」的語言,除了不能直接操作硬體外,C/C++能做的基本都能做。而且由於入門門檻較低,社區環境較好,廣泛應用於企業信息系統開發領域。
HTML:面向瀏覽器的語言,或者說告訴瀏覽器如何顯示內容的語言
CSS:HTML的補充,讓瀏覽器把內容顯示的更好看一些
Javascript:和瀏覽器交流的語言,有限的控制瀏覽器的行為(例如如何響應用戶)
Ajax:這是一系列規範,不是一種語言,主要用於瀏覽器和伺服器交互

不過話說回來,這些東西其實跟學不學C語言沒什麼關係啊。還是看學習的目的是什麼,為了學習而學習的,就學個C語言就行了。


推薦閱讀:

程序員討厭面試被問一些基礎問題么?
WEB 前端菜鳥,感覺很迷茫,該怎麼做?

TAG:HTML | CSS | Java | C編程語言 | C |