學寫網頁教學2019 - 9個課程

如果你想學習網頁設計,隨便到圖書館或網上一找,便會發現,怎麼這麼多資料?

網上關於網頁設計的資料雖然很多,但就是資料太多,初學者根本無從入手。

我叫Jack,是一位Awwwards認可得獎,有多年的編程教學經驗的編程員。

今天,這篇「學寫網頁教學2019 - 9個課程」,將會分開9個章節,由基本概念,架站方法到編程學習路徑等。內容濃縮至你真的需再知道才會講解,用最簡單易明的「人話」去說明各種概念,讓你打穩基礎,好好去學習網頁設計。

如果你正在想學習網頁設計,看這篇文章就對了!

準備好了?我們開始吧!

1. 基本概念

要編寫一個網頁,原來可以分為前台(Frontend)後台(Backend)

前台(Frontend)就是網頁的外觀。例如你看到的文字,圖片,美麗的排版等等,通通都是前台(Frontend)。

後台(Backend)就是網頁的功能。例如網站可以讓你註冊,提交數據等等,就是後台(Backend)。

還是不明白?讓我們看看這個例子:

假設你到一家網店買東西,看見一個漂亮的主頁。

在主頁中,你看見一件T Shirt,於是按了那T Shirt一下。現在你處於T Shirt這頁。

到目前為止,你已經看到了兩個layout,分別是Home及T Shirt。這兩個不同的layout,就是前台(Frontend)

然而,事實上,當你由Home到T Shirt時,中間其實會經過一台Server(伺服器)。

在這台Server(伺服器)上,會有一些Program運行。而這些Program,是有Logic的。比方說,可能你以前從來沒有訪問過這網站。於是,它便不讓你看到T Shirt這頁,反而是帶你到Register這一頁。

另外一個情況,就是你原來已訪問過這網站。因此,它今次便會帶到T Shirt這頁。

在Server上的這些Program,便是後台(Backend)

後台(Backend)除了有Program外,還會有Database(數據庫)。Database主要負責儲存數據,例如用戶的登入電郵,密碼等等。

接下來,我們來看看Frontend及Backend,是由什麼編程語言組成的。

Frontend是由3種編程語言組成,它們分別是:

  1. HTML
  2. CSS
  3. Javascript

HTML主要是負責外觀的結構
CSS負責把結構變得更美麗
Javascript負責外觀元素的控制

至於Backend,則有很多種選擇:PHP, NodeJS, C, JAVA, RUBY, PHY, Python......我們只要選擇一種來用就可以。

你可能會問,我應該選擇哪一種語言來學呢?以我的經驗,PHP比較普遍,多人使用。NODEJS則功能強大,但很難學。C, JAVA, Python等等都是熱門的編程語言,但卻不是寫Website的最好選擇。

2. 內容管理系統(CMS)

接下來,另外一個重要概念,就是內容管理系統(CMS)

CMS的全寫叫Content Management System。意思就是讓一個不懂編程的人,也能夠更新網頁的內容。

如果網頁沒有CMS,你不懂編程的話,是不能夠更新網頁內容的!

有了一個CMS後,你便可以像更新Facebook一樣,輕易地更新網頁內容。

跟據https://trends.builtwith.com/cms,Wordpress是現今最多人用的CMS。

像Wordpress,Drupal等等,我們稱之為「開源」的CMS。意思是它們的源代碼是公開的,全世界的編程員也可以一起維護,開發這些源代碼。你可以免費,合法地使用它去為你或你的客人建立網站。

3. 響應式設計(Responsive)

現今的網站,約有1/3的流量都是從手機而來。

因此,如何確保網站在手機,IPAD等都美觀地顯示,也是一個重要的題目。

而最常見的處理手法,就是使用響應式設計(Responsive)

響應式設計(Responsive)就是使用同一堆源碼,讓你的網站在桌面,Tablet或手機上都可以美觀地呈現。

讓我們看看例子吧:

burdstrom.com在桌面上是這樣的:

在手機上則是這樣的。

你會看到,透過一些外觀的小改動,在桌面或手機也可以美麗地呈現網頁。

我們通常會利用CSS,及少許Javascript做到Responsive的效果。

4. 架站步驟

一般來說,要建立一個網站或平台,一共有4個步驟。

他們分別是:

  1. 用家體驗 (USER EXPERIENCE)
  2. 資訊架構 (INFORMATION ARCHITECTURE)
  3. 設計 (VISUAL DESIGN)
  4. 開發 (DEVELOPMENT)

1. 用家體驗 (USER EXPERIENCE)

建立一個網站的第一步,原來並不是直接坐下來畫layout或是做Programming。反而,你應該要跳出自己是設計師的身份,把自己當作網站的用戶,想想看:

  • 網站的用戶是誰?
  • 他們年紀有多大?是男是女?
  • 他們有什麼特點?興趣?
  • 他們為什麼要上你的網頁?有什麼目標?
  • 有什麼功能是他們喜愛/不喜愛的?

如果可以的話,最好是找出這班目標用戶,和他們聊聊天吧!

和目標用戶聊天,除了可以了解以上問題的答案外,更重要的是,你可以從與他們對話中,了解他們說話的用字,語句,把他們都記下來。

不要小看這些語句!遲一點你在為網頁寫文字內容的時候,這些語句會對你幫助很大。因為他們都是從目標用戶親口說出來的。

2. 資訊架構 (INFORMATION ARCHITECTURE)

第2步,我們叫「資訊架構(INFORMATION ARCHITECTURE)」。這一步有點像一個橋樑,去把你想做的東西,變成編程員會看得懂的東西。

資訊架構(INFORMATION ARCHITECTURE)通常有以下的東西:

  • Sitemap
  • WireFrame

Sitemap很容易去理解。你網頁將會有什麼頁,便把它們都列出來。如下圖,網站有Home, Service, Contact等頁:

WireFrame則是用一枝筆,把網頁大概的樣子畫出來:

上圖其實是twitter的wireframe! (來源:
https://www.flickr.com/photos/jackdorsey/182613360)

WireFrame不用畫得漂亮,它只是你網站外觀的大概,初稿。接下來我們還是會把它交給設計師去設計。

3. 設計 (VISUAL DESIGN)

當有了sitemap及wireframe後,我們便會把它交給設計師去做設計。

設計師通常會使用AI,Photoshop,ADOBE XD等軟件去做設計。如下圖:

要注意設計出來的會是一個圖檔。圖檔是靜態的,而網頁則是動態的。因此,設計師在設計時,還應考慮當中的動態元素。

4. 開發 (DEVELOPMENT)

當設計完成後,你便可以把設計交給編程員,去做開發了。

編程員通常會跟著設計,把外觀Frontend做好,然後再做後面的功能Backend或把網頁連上CMS。

5. 常見的3種架站方法

在前一章,你學習了不同的概念,如Frontend/Backend,CMS等等。

然而,作為新手的你,想實際去建立一個網站,究竟有什麼方法呢?

以下是現今, 市面上最常見的3種架站方法:

1. 使用第3方服務如wix/shopify
2. 使用Wordpress架站
3. Custom Built Frontend + Backend

1. 使用第3方服務如wix/shopify

難易度:★☆☆☆☆
靈活度:★☆☆☆☆

如果你不想編程,最簡單的架站方法,就是使用第3方服務如wix/shopify,去建立一個網站。

wix/shopify提供簡易的drag & drop介面,讓你使用他們的模版,去建立網站。

wix.com讓你建立一般的公司網頁:

shopify.com讓你建立網店:

當然,使用這些第3方服務也有其缺點。就是你沒有網站源代碼掌控權(因為你是在使用他們的服務)。因此,網站的靈活度,可擴充性會較低。另外,某部分服務也可能需要收費。

2. 使用Wordpress架站

難易度:★★☆☆☆
靈活度:★★★★☆

利用Wordpress架站是另外一個非常流行的方法。

Wordpress是一個最多人使用的CMS。它是免費,開源,也具備大量模版及可擴充的功能。即使你不懂編程,你也可以利用wordpress架站。

要注意我們這裡討論的是wordpress.org,而不是wordpress.com。wordpress.org是一套免費,開源的CMS。而wordpress.com則是像wix一樣的第3方服務。

利用wordpress架站的難度,會比wix/shopify高一點。(因為你還需要設置伺服器等)然而,它的靈活度及可擴充性則會大得多。你是完全掌控網站源代碼的。因此,你會編程的話,基本上任何的功能,外觀也可以加到你的網站裡。

了解更多Wordpress:Wordpress教學全攻略2019 - 15個課程

3. Custom Built Frontend + Backend

難易度:★★★★★
靈活度:★★★★★

最後一種架站方法,當然是自己Custom Built Frontend 和 Backend。這是我最常用的架站方法。聽下去好像很難,但其實現今的Frontend及Backend Framework已經非常成熟,即使要從頭編寫一個網站外觀及功能,也可以很快。

6. 尋找靈感

在開始設計網站時,我們一定會做Research。

比方說,我正在為一家HR公司設計網頁。在設計前,我一定會先看看

  • 其他HR公司的網頁(香港)
  • 其他國家HR公司的網頁
  • 香港/其他國家,做得出色的公司網頁

做Research時,你除了可以看見你競爭對手網頁的layout外,還可以看到他們的用字,表達的內容等等。對你在設計網頁時,非常有用。

7. 培養設計美感

我在教授網頁設計時,發現學生常常遇到一個問題:

明明他們選擇的template很美麗,但當真正使用,做出來的作品卻不太專業。

為什麼呢?

原來,他們缺乏設計美感。修改template時往往把它改得亂七八糟,不倫不類。

設計美感是要培養的。而最快去培養設計美感的方法,就是:

多看一些美麗的作品

behance收集了世界各地最美麗的平面設計

awwwards收集了世界各地最美麗的網頁設計

最後,如果發現自己的設計美感還是不太行,在修改template時,就盡量不要做大的修改!以免改得不倫不類。

8. 編程學習路徑

好了!如果你終於下定決心,要學習網頁編程。那麼,你應該從哪裡開始學起?

我的建議,是你應該由Frontend語言開始學。

第一樣需要學習的是HTML(外觀的結構)。

關於HTML的教學,可以參考以下文章:
HTML教學全攻略2019 - 9個課程

接下來可以學習CSS(讓外觀更美麗)。

學習完基本CSS後,你可以學習一些常用的CSS Framework,例如Bootstrap。再進一步就是CSS的動態元素,如CSS3 Animation,GSAP等等。

Framework是一堆一早寫好的源碼,讓你隨時使用。利用不同的Framework,可以讓你大大加快開發速度。

再下來就是javascript

學習完基本javascript後,我們通常還會學習jQuery。jQuery是javascript以上的一個Framework,實際應用很多。

到了這步後,你已經成為了一個Frontend Developer!如果你想更深入去編寫Web APP,更可以學習一些Web APP Framework,如Angular,React等等。

至於後台,你則需要選擇一種語言去專精。

在眾多後台語言中,我會建議初學者學習PHP。因為比較普及又易學。

學習完基本PHP後,你可以學習一些以PHP為語言的CMS開發,例如WordpressOctoberCMS等等。

如果你想開發功能繁複的平台,你更可以學習一些PHP MVC Framework,如Laravel等等。成為一個真正的Backend Developer。

MVC 全名是Model-View-Controller。開發功能繁複的平台時,我們通常會利用MVC去架構後台功能。(現階段看不明白是正常的!)

9. 網址與伺服器

在前幾章節,我們常常提及到伺服器(Server)

究竟,什麼是伺服器呢?

「伺服器」其實就是一台連著互聯網的電腦。這台電腦的主要作用是,讓其他人看見這台電腦上的網頁。

如何在茫茫互聯網中找到這台「伺服器」?當然,它會有一個地址,這個地址就是叫IP Address

IP Address通常都像這樣:192.3.4.2。很難記吧?因此,我們把它弄得易記一點,就變成網址(Domain)了。

整個上網的流程,就像這樣:

  1. 用家開電腦
  2. 開瀏覽器
  3. 在瀏覽器輸入網址
  4. 網址變成IP Address
  5. 根據IP Address,找到伺服器
  6. 問伺服器可否看你的網頁
  7. 伺服器說OK,它給你HTML
  8. 瀏覽器收到HTML,把它變為你看得懂的網頁

明白了嗎?看到這裡,通過這9個章節,相信大家己對網頁設計,掌握了各種重要的基礎概念。

今天的教學到這裡,希望大家可以好好學習!