網頁製作的前端和後臺要學會什麼?

柔柔上課別睡覺


網頁製作的前端需要學習

1、html語言

首先要學這個,任何網頁的顯示都要靠html語言來表達,瀏覽器解釋html語言顯示在我們面前。

2、服務器架設

要製作網頁就需要架設服務器來調試你做出來的網頁,有iis等很多種,可以在網上搜索得到。

3、css語言

用網頁製作三劍客做出來的東西,css大部分是自動生成的,很難理解,需要學習基本的css知識,是步入高手的必經之路。css控制著網頁圖片、表格、文字等等內容在我們面前的顯示樣式,比如顏色,邊框,大小等。

4、divcss佈局

這個東西是走向專業製作的必經之路,網頁元素靠它來搭建基本框架,像百度空間,QQ空間的皮膚等就是利用這個來做的。

5、數據庫

走向動態網頁的基礎,比如百度知道的提問回答這些,都涉及數據庫的讀、寫、改、刪。常見的數據庫有mysql、mssql、access等。數據庫是所有軟件的基礎,80%以上的應用程序都涉及數據庫,而作為網頁製作來說沒有必要學得很深,夠用就行。

6、動態語言,asp,php,jsp,.net(c#等)

要操作數據庫,交互就需要動態語言,現在好多動態語言像php都有“框架”,用框架建站好比用活動板房的零件建房子,全部自己寫好比一塊一塊磚砌房子。

7,java

網頁裡面的驗證碼,彈窗,特效等就靠它了,一個沒有java的頁面基本沒有,這個也有好多的框架可用,這個語言是難的,也是強大的,網頁木馬,病毒大多用這個語言。

8、平面涉及軟件

flash,photoshop等,頁面美化還要靠圖片等東西。

這些個東西你會一個,或者一個都不會,都能做出一定水平的網頁(用三劍客,或者直接用word做好後另存為htm文件就行),要深入的學,這些知識基本的。


網頁製作的後端需要學習

1. 學習一門語言

語言的選擇有很多種,為了方便您的選擇,我將它們進行了分類。對於剛接觸後端開發的新手,我強烈建議你們選擇一門腳本語言,因為它們的需求很多且上手較快。最好的選擇當然是Python,它的需求正在急速增長,有大量的職位可供選擇。

2. 學以致用

最後的學習方法就是動手實踐。一旦你選擇了語言,然後對其有了基本的瞭解,開始使用它。運用它進行儘可能多的練習,寫一些小程序練手,熟悉它。下面是一些小例子,可以幫助你開始。

* 實現一些bash中你常用的命令, 比如ls的功能

* 寫一個從reddit的/r/programming頻道抓取數據並將之保存為JSON格式的小程序

* 寫一個程序將目錄結構保存為JSON文件。

* 根據上面生成的JSON文件,生成目錄結構。

* 想想日常工作中的任務,嘗試將之自動化。

3. 學習包管理器

一旦你瞭解了語言的基礎,同時用它寫過些示例程序,接著學習該語言的包管理器。包管理器可以幫助你使用第三方庫,同時你也可以通過它發佈自己的庫以供他人使用。

假設你選擇的是Python,你應該已經學習了Pip。Node.js有NPM或Yarn、PHP有Composer,Ruby有RubyGems。無論你選擇了什麼,進一步去學習它的包管理。

4. 規範以及最佳實踐

每一種語言有其規範以及最佳實踐。你需要掌握這個東西。比如Python有PEP8跟Google Python代碼規範。Node.js各社區有不同的規範。其他語言的狀況也大同小異。

5. 安全

務必要掌握安全最佳實踐。讀讀OWASP指南,瞭解不同的安全問題,同時要知道如果避免這類問題。(你選擇的語言)

6. 實踐

現在你已經掌握了語言基礎,最佳實踐,安全相關以及包管理,你可以去開發自己的庫供他人使用了。如果你用Python,你需要發佈在Pypi,如果是Node.js,你需要發佈在Npm。

到此,你可以在Github上找一些項目,參與進去。

* 重構,實現你學到的最佳實踐

* 修復已知的問題

* 添加新的功能

7. 測試

測試分很多種,要了解每一種測試的類型以及其目的。但是現在,首先學習單元測試以及綜合測試,應用在你的程序中。此外,還要了解不同的測試術語,比如mocks,stubs等等。

8. 實踐-測試

為你所寫的所有程序編寫單元測試,特別是在Github上參與的項目。

同時,學習覆蓋率的概念,計算測試代碼的覆蓋率。

9. 關係型數據庫

學習利用關係型數據庫保存你的數據。在學習之前,首先掌握數據庫相關的術語。比如:keys,indexes,normalization,tuples等。

可供選擇的數據庫很多,你只需要掌握一個,其他的也會變得很簡單。流行的有MySQL,MariaDB(MySQL分支,與之非常相似),PostgreSQL。推薦選擇MySQL開始。

10. 動手時間 - 實踐

到了將所學融合的時候了。

創建一個簡單的應用,運用你所學的一切。實現一個想法,可能是創建一個簡單的博客站點,實現一下的特性:

* 賬戶系統——註冊&登陸

* 註冊用戶可以創建blog

* 用戶可以查看自己創建的所有的blog

* 用戶可以刪除自己發佈的blog

* 保證用戶只能看到自己發佈的blog,不能看其他人的

* 為應用編寫單元/綜合測試

* 為查詢創建索引。分析查詢,確保索引生效

11. 學習一個框架

根據你的項目類型以及你的語言的不同,你可能會需要一個框架輔助開發。(也可能不需要)。每種語言都有不同的選擇,選擇一個合適的即可。

如果你選擇了Python,建議你選擇Django,對於微框架,建議Flask。

對於Node.js,最知名的框架是Express.js。

12. 實踐-框架

利用選擇的框架重構你的博客應用。不要忘記了集成測試代碼進來。

13. 學習NoSQL(not only SQL)數據庫

首先了解什麼是NoSQL,以及它們與關係型數據庫的差別,同時為什麼需要它們。NoSQL數據庫也有多種選擇,瞭解並比較它們之間的特性以及不同之處。常用的有MongoDB,Cassandra,RethinkDB,Couchbase。建議選擇MongoDB開始。

14. 緩存

學習如何在你的程序中實現應用級的緩存。瞭解如何利用Redis或Memcached實現緩存,同時在你的博客應用中實現緩存功能。

15. 創建RESTful APIs

瞭解REST,學習如何編寫RESTful APIs,閱讀關於REST的白皮書。(By Roy Fielding)。理解REST不僅僅是HTTP APIs。

16. 學習不同的認證方法

學習不同的認證以及認證方式。你需要明白它們是什麼,它們的不同點,以及它們適用的場景。

* OAuth--Open Authentication

* Basic Authentication

* Token Authentication

* JWT--JSON Web Tokens

* OpenID

17. 消息代理

學習消息代碼,瞭解什麼時候以及為什麼使用它們。有很多可供選擇,最知名的是RabbitMQ & Kafka。建議從RabbitMQ開始學習。

18. 搜索引擎

隨著應用程序規模的增長,簡單的查詢已經無法滿足要求。這個時候,你需要用到搜索引擎。同樣有多種選擇,每一種有自己的特點。

19. 學習使用Docker(容器)

Docker可以為你的開發提供巨大的便利。它可以讓你的開發環境與生產環境保持一致,可以讓你的系統保持乾淨,可以加速你的編碼,可以測試部署。Docker的好處,請自行google。從現在開始,學習Docker。

20. Web服務器的知識

到了這個時候,你可能已經處理過服務器相關的問題。這一步驟主要是瞭解不同的服務器之間的差異,侷限,以及不同的調優方法。

21. 學習Web Sockets

雖然不是必須,但是具備Web Sockets的技能是有好處的。學習編寫實時的web應用。可以在博客應用中,實現即時更新blog列表。

22. 學習GraphQL

學習GraphQl的APIs。瞭解它與REST的不同,然後為什麼它被稱之為REST 2.0。

23. 研究Graph數據庫

Graph模型具備非常好的靈活性——在處理數據間的關係的時候。Graph數據庫提供高速&高效的存取以及查詢。學習瞭解Neo4j或者OrientDB。

24. 不停探索

在你的學習以及實踐過程中,肯定會碰到路線圖裡沒有提及的東西。你只需要保持開放以及飢渴去學習新的東西。

時刻謹記,學習的關鍵是實踐。多動手!剛開始的時候,你可能會感覺不大好,隨著你的堅持以及時間的推移,你會變得越來越好。


困難群眾代表


網頁設計是伴隨著互聯網的發展,衍生出來的一個行業。互聯網發展得越迅速,網頁設計也會隨之發展得迅速,那麼網頁設計就業前景也就可想而知了。網頁設計是要分前端和後臺的,網頁設計師是前臺後臺都要學習的,學習的內容主要包括:

一、網頁設計前端包括:網站Logo圖標的製作、網頁頂部圖片的製作、網頁背景圖片的製作、網頁中SWF動畫製作、WEB網頁頁面製作、網站導航欄設計等等;HTML網頁構架與窗口布局製作、常用工具欄設計、創建頁面以及頁面製作,超級鏈接、表格設計、框架技術;CSS 層疊樣式表;DIV+CSS網頁佈局;個人和工作室網頁;企業類型網頁;門戶類網頁。

二、網頁設計前端JS交互開發,Jquery使用Jquery框架的擴展、結合各種事件和對象的選擇。

三、服務器的組建:使用apache搭建PHP網頁服務器,MySQL服務器。

網頁設計師只有前端和後臺都系統學習了才能更好的結合運用,才能做出好的作品!




宇波波夫


很高興能夠回答你的問題目,本人也是一個從技術員轉型到前端開發,目前在管理層做產品管理

首先我們先了解一下整個產品的一個框架。

前端:就是你瀏覽網頁能夠看到的圖形化的東西通過瀏覽器展現出來。

這一部分的組成,主要結構是html+css這是幹什麼呢?就是畫出整個頁面的圖片或者是文字,還有佈局。

那展現出來的數據是通過什麼樣的程序來實現的呢?就是通過JavaScript.

前端開發主要是靜態用戶界面加上一些動態效果,不涉及數據邏輯!

比如如:一個登陸頁面: 前端開發只要做好靜態頁面部分 ,加上鼠標移入輸入框、移出輸入框的顏色變化

Javascript主要就是來調用後臺數據庫裡面的數據,這個中間有一個橋樑我們通常稱之為一個API,用文字描述的話,通常稱為接口。

前端三大語言: HTML, CSS和 JavaScript

現在web前端三大框架Angular、React、Vue

下圖就是我目前在做的一個公司產品:

那麼這些API我們也是需要有人在後端通過各種編程語言來進行開發,開發的人員就稱之為後端開發。

後端開發人員也可能會參與系統架構,決定如何組織系統的邏輯,以便能夠正常維護和運行。

他可能會參與構建框架或系統架構,以便於更容易編寫程序。後端開發人員比前端開發人員花費更多的時間在實現算法和解決問題上。

後端開發人員通常的工作是從數據庫或其他數據源寫入、讀取和處理數據,因此擁有SQL等技能會非常重要。這裡包含各種主流數據庫的熟悉運用掌握一門是不夠的。

比如:mysql,SQL Server,Oracle Database,mongodb等

以最簡單的Java為基礎你要知道集合(Map、List、Set、Queue)、併發包(線程池、線程、併發工具類(Tools、Sepehone))、JVM(GC、JMM、運行時數據區域)、NIO,定時器等基礎知識集合(Map、List、Set、Queue)、併發包(線程池、線程、併發工具類(Tools、Sepehone))、JVM(GC、JMM、運行時數據區域)、NIO,定時器等基礎知識

這還只是冰山一角,最基礎的部分你還要熟悉網絡這一塊。後端要說的實在是太多了,因為後端是一個涉及性比較全面的一個職業,哪怕是16進制二進制這種都是平時經常用的。

像下面這些網絡協議都是基礎知識要熟練掌握。

TCP 報頭格式

UDP 報頭格式

TCP/UDP 區別(不僅是宏觀上的,還要了解各自的機制)

HTTP 狀態碼(熟悉使用場景,比如在緩存命中時使用哪個)

HTTP 協議(一些報頭字段的作用,如cace-control、keep-alive )

OSI 協議、TCP/IP 協議以及每層對應的協議

SESSION 機制、cookie 機制

TCP 三次握手、四次揮手(面試官最喜歡問的,建議每天手擼一遍,而且不只是每次請求的過程,各種 FIN_WAIT、TIME_WAIT 狀態也要掌握)

打開網頁到頁面顯示之間的過程(涵蓋了各個方面,DNS 解析過程,Nginx 請求轉發、連接建立和保持過程、瀏覽器內容渲染過程,考慮的越詳細越好)

http 和 https 區別 (https 在請求時額外的過程,https 是如何保證數據安全的)

IP 地址子網劃分

POST 和 GET 區別

DNS 解析過程

後端開發人員——至少對於Web開發——也需要擅長他們正在使用的技術棧的服務器端語言。

例如,雖然前端Web開發人員更多地專注於HTML,CSS和JavaScript,而後端開發人員需要更多地瞭解PHP Web框架,Ruby on Rails,ASP.NET MVC或任何正用於構建應用程序的服務器端Web開發框架.

好了就說這麼多,希望我這些只是能對你有所幫助,當然了這些都是需要在職業生涯中不斷去學習掌握的一些技能。活到老學到老。

如果你將成為一個資深的程序員,或者是正在轉型成為程序員的話,我建議你從前端慢慢開始做,慢慢去熟悉,從一些個人網站或者是個人的博客部署這方面去先學習瞭解一下,現在各種組件教程也都有。

加油吧!


分享到:


相關文章: