Skip to main content

Web Technology為何征服世界?

· 11 min read
戈頓
Developer & Co-founder of Tecky Academy

2007年,蘋果宣佈發佈第一代iPhone,標誌智能電話時代的開始;一年之後Android亦宣告面世,從此時起,智能電話的發展迅速,Mobile App成為軟件的代 名詞,筆者初初成為軟件工程師時,總有朋友詢問我是否正在開發Mobile App,縱使筆者的專業一直都是網頁及後端開發之上。而其時亦有不少預測,預測網站將會被Mobile App完全取代。網站所用的HTML、CSS、JS等,亦將成為歷史,送入博物館之內。

結果十多年過去,Website 及Mobile App都依然存在,所謂的完全取代,從來沒有出現過。最大的改變,卻是網站所用的HTML、CSS、JS卻已在所有軟件領域落地生根。 後端開發有坐擁世上最多Package的NodeJS;資料庫有PouchDBMongoDB;資料交換格式有JSON,也就是Javascript的物件格式;網頁開發由十多年前的JQuery,變成了ReactAngularVue,也出現了漸進式網絡應用程式(Progressive Web App)JamStack的概念;桌面開發出現了Electron,眾多受歡迎的桌面軟件如SlackVisual Studio Code等都由 Electron所開發;手機應用開發也出現了React Nativenativescript,只運用Javascript就可以開發出一個完整的智能手機應用程式;iot中最常用的程式語言也是Javascript,有像Johnny Five一樣的程式庫;連人工智能的範圍,也有Tensorflow.js的存在。

Web Technologies

平常人都能掌握的Programming 原則

· 10 min read
戈頓
Developer & Co-founder of Tecky Academy

大家會定時整理自己電腦中的文件嗎?大家看軟件工程師工作時,往往會發現他們的檔案總是井井有條,資料有條不紊地排列。難道學習軟件工程能使人變得 整齊?原因其實在於軟件工程師經常需要處理大量檔案及資料,因此發展出一套完整的工程原則(Engineering Practice),久而久之,就掌握了資料管理 的要訣。而如果平常人也掌握了這些工程原則,在日常電腦使用,其實也有不少好處。

Visual Studio Code

如何對治思維籠統

· 8 min read
戈頓
Developer & Co-founder of Tecky Academy

以下情況相信大家似曾相識:

A公司希望完成一個專案,將專案外判給一間軟件開發公司B開發,專案開始後,總發覺B公司不太理解要求,製成品也與要求相去甚遠,與B公司的 程式設計師多次開會亦結果不彰,最終專案「爛尾」收場,A公司不得已又將專案再外判給C公司,同一問題似乎又再上演...

探究原因,何解此類問題經常出現?原因往往在於A公司的相關負責人本身沒有編程背景,因此給出的要求相當籠統,B公 司的程式設計師亦不理解A公司期望,因此導致專案最終失敗。

讀到這裏,大家可能會嚷道:「A公司的負責人當然沒有編程背景啦,不然A公司自己做就好了」其實問題重點不在於A公司本身是否有編程的專才,而在於產品 負責人(Product Owner)與程式設計師溝通良好與否,即使A公司本身有編程Team,如果溝通不良,專案失敗是不會改變的。要討論溝通良好與否,先 要理解平常人的思維方式,與程式設計師的思維方式,往往差別甚大。

Online Course不能承受之輕

· 10 min read
戈頓
Developer & Co-founder of Tecky Academy

Online course已成為學習的新潮流,尤其是學習科技類知識,大多數人都是上網於大規模開放線上課堂(Massive Open Online Courses) 選擇希望學習的課程。現時較熱門的平台有CourseraUdemyEdx等。 完全免費的例子例如MIT Open courseware亦是大行其道。 網上課程的普及,令不少人發出感嘆:「讀大學所為何?讀網上課程就好了。」然而,以網上課程學習,與真人教授課堂相比,有一道難以逾越的 圍牆:網上課程難以協助學習者建立編程所需的心智模型(Mental Model)。

何謂心智模型?

維基百科的心智模型(Mental Model)條目給出以下的定義:

A mental model is an explanation of someone's thought process about how something works in the real world. It is a representation of the surrounding world, the relationships between its various parts and a person's intuitive perception about his or her own acts and their consequences.

Qubit能吃嗎?

· 10 min read
戈頓
Developer & Co-founder of Tecky Academy

這幾天,各大科技網站都在報道IBM展示了世界上第一部商用的量子電腦, 不少科技網站也將量子計算形容為最期待的未來科技。那到底量子計算是何方神聖?為何令大家都引頸以待呢? 要理解量子計算的基本原理,最佳方法,就是由傳統的位元(bit)談起。

IBM Q System One

IBM Q System One

Source:https://www.pcgamesn.com/ibm-integrated-quantum-computer

Tecky新網站

· 8 min read
戈頓
Developer & Co-founder of Tecky Academy

如果大家在這一兩日有上過Tecky網站的話,應該發現了網站跟以前有些許不同:

  1. 網址由https://www.tecky.io 變為https://tecky.io
  2. 網站內容設計佈局有所不同
  3. 網站載入速度明顯加快

是甚麼改善令致有此分別?其實我們已將整個網站重寫,再重用本來現有設計及圖片。既然外表無大變化,那又為何要重寫呢?這不是浪費人力物力嗎? 要理解為何有此一着,要先從我們的舊網站講起:

舊網站

僅僅數月前,當Tecky Academy初組成之際,我們幾位創辦人曾經鄭重討論過網站該用甚麼技術建造,討論相當熱烈,最終訂下之策略卻很簡單:

先以wix 快速建立一個原型,再改善用戶體驗,然後用GatsbyJS重寫。

這個就是我們之前的原型製成品。

Wix Website

寫Blog與寫Code

· 9 min read
戈頓
Developer & Co-founder of Tecky Academy

在外國,程式設計師在課餘時間寫Blog是很平常的一回事,大家在找尋技術問題的解決方法時,除了全知的Stack Overflow之外, 很多時候閱讀的就是一些其他高手所撰寫的技術文章,博客平台如Medium等也應運而生。相較之下,香港甚少有聽聞程式設計師有寫博客的習慣,大概是由於 工作繁忙,抽身不暇。筆者此前也只是曾經在一些Facebook專頁寫過一些技術文,現在才算上是恆常出文。短短數月中,已感受到為何外國程式設計師如此樂 此不疲,即使要抽出私人時間,也會寫Blog出文。

Coding Horror

Source:https://ds6br8f5qp1u2.cloudfront.net/blog/wp-content/uploads/2015/03/9_Coding-Horror-blog-for-developers.png?x88475

新年願望:學寫程式懶人包

· 11 min read
戈頓
Developer & Co-founder of Tecky Academy

剛剛過了2019的新年,大家許下了甚麼新年願望呢?也許大家會希望在2019年學會寫程式,突破自己,但話分兩頭,又應該如何開始學習呢?今次就分享一個 MDN所提供的懶人包,供大家使用。以下所有預估時間,皆以小時計,方便大家估計所需時間。

所需工具

正所謂「工欲善其事,必先利其器」,學寫程式又怎可以無適當工具呢?首先當然你要有一部電腦,桌面電腦或手提電腦都可以,而平板電腦或智能電話就不 可以了。不論是PC或是Mac都可以,這個懶人包介紹的全部都是兩種平台都可以無礙使用的。軟件工程師通常會用文字編輯器去編寫代碼(Microsoft Word 不算),我會推薦的就是微軟推出的開源文字編輯器:Visual Studio Code(簡稱VS Code),推薦的原因, 在於VS Code本身開源,又是免費,而且有不少更新以改善功能,成為一個軟件工程師工作的利器。當然如果你從未曾使用文字編輯器的話,可能覺得很難上 手,因此附上官方文檔的連結,大家可以慢慢閱讀。

Visual Studio Code

馮紐曼

· 6 min read
戈頓
Developer & Co-founder of Tecky Academy

今日是12月28日,115年前的今日,一位對現今電腦有深遠影響的天才出世了。他一生對數學、電腦科學、物理學貢獻良多,被譽為電腦科學其 中一位奠基人,與廣為人所知的艾倫‧圖靈齊名,他就是約翰‧ 馮紐曼(John von Neumann)。

Von Neumann

軟件工程及軟件工藝

· 8 min read
戈頓
Developer & Co-founder of Tecky Academy

軟件工程是一個相當耳熟能詳的名詞,軟件工程(Software Engineering)由來已久,亦因此程式設計師(Programmer)又稱為軟件工程 師(Software Engineer)。 而有讀過以前《Programmer 做到三十歲就要轉行?》的朋友,應該對軟件工藝(Software Craftsmanship)這個字不陌生,同時科啟 學院其中一個創院價值,就是於香港資訊科技界推廣軟件工藝,於我們而言,軟件工藝代表的是軟件開發中創造的一面。

軟件工程

軟件開發真的是工程嗎?最容易理解的方法是看看軟件開發與其他工程範疇是否有類近之處:挑戰者號穿梭機因為一個密封圈失靈,就釀成意外。

Challenger Accident

好Programmer是怎樣煉成的?

· 9 min read
戈頓
Developer & Co-founder of Tecky Academy

有一個大部份僱主都面對的難題,在芸芸履歷之中,如何萬中挑一,找到好programmer呢?聘請程式設計師很難,不像其他行業,打開 履歷就一目了然:有時履歷上滿滿証書的,其實連FizzBuzz也寫不了;有時看起來像個fresh graduate的,卻又有無限潛力。 如果你是一個要聘請程式設計師的僱主,你應該如何是好呢?

資訊熵

· 5 min read
戈頓
Developer & Co-founder of Tecky Academy

資訊量有方法量度嗎?當然有,一句十個字訊息跟一百字訊息所包含資訊當然大相逕庭。光看字數準確嗎?同一語言還可,然而不同語言不同字數所表達的 意思不同,本身基本上不可比。看檔案大小可以嗎?有時可以有時不可以,因為不同檔案類型大小不同,例如png通常比jpg要大得多,光看檔案大小並不準確。 因此,電腦科學中有一個數學方式表達資訊量,此概念就是資訊熵(Information Entropy)

兩種檔案大不同

· 7 min read
戈頓
Developer & Co-founder of Tecky Academy

當你想寫好一個文件,用 .doc 檔.txt檔 有何分別? 驟看之下,最大分別就是 .doc檔 要用Microsoft Word開, .txt檔 只要一個簡單Notepad就可以。實情是 .doc檔 跟 .txt檔 分別代表兩種截然不同的檔案,如果你用一個純文字編輯 器打開他們,分別就顯而易見了。

Binary vs Plaintext

四個原因令Linux更適合作Server

· 7 min read
戈頓
Developer & Co-founder of Tecky Academy

在Tecky Academy教學中,間中會有同學問:「點解唔用Microsoft Windows做Server?用Linux有咩好處?」 誠然,於消費者電腦(不計算智能電話) 市場中,Windows有七成市佔率,Mac佔了一成,Linux只有可憐的一個百分比。為何在伺服器的市場上,卻是反而Linux占有約六成,擁有最大的市場份額呢?

桌面及手提電腦操作系統市場份額

Stat Counter

伺服器操作系統市場份額

Server market_share

Emoji是圖還是字?Emoji到底如何運作?

· 7 min read
戈頓
Developer & Co-founder of Tecky Academy

平日大家使用即時通訊軟件時,少不免加入很多表情符號,同樣一句說話,有否表情符號意思上有不少分別。當大家在選擇表情符號去表達心情,有想過 表情符號到底是甚麼?是圖?是字?曾經使用Android 及 iOS的用家,應該發現兩者的表情符號有些許分別。到底原因為何呢?

表情符號來自日本,英文是Emoji,是絵文字的日文羅馬字拼法。最初發明的目的是為了改善即時通訊軟件的一大問題,就是純以文字溝通往往使人感 到冷冰冰。因此加入不同的表情,去彌補訊息上無法顯示的語氣。請留意EmojiEmoticon並非同一樣,Emoticon指的是外國人比較常用 的 :), :‑), =.= 等等以ASCII 文字組成的表情,而非大家早已習以為常的 😣😕😶 等。

Emoji