目前分類:講師技術文 (27)
- Aug 10 Wed 2022 17:44
JavaScript的型別在TypeScript的應用
- Jan 13 Thu 2022 10:00
聯成電腦分享:什麼是網路爬蟲?為什麼每一個工程師都要會?
文、意如老師
會爬蟲的找工作很吃香?!在幾年前的確是這樣沒錯,就跟英文一樣,以前的人總說”會英文”很吃香?那現在呢?英文已經變成基本一定要會的科目了,而爬蟲也已經演變成是工程師的基本技能,這個技能已經不會幫你加到什麼分數了,但是如果你是個工程師或是你想成為工程師,爬蟲又會是一個必須所學的基本技能,所以今天我們就來分享到底什麼是爬蟲,為什麼每一個工程師都會要會。
網路爬蟲web crawler,也叫網路蜘蛛(spider),在認識爬蟲之前,我們先來聊聊什麼是蒐集資料?
舉個例子,假設最近我想要領養一隻1~3個月身體有黑有白公的貓咪,那接下來的每一天我就會到各大領養平台關注一下,看看有沒有貓咪是符合需求並且待領養的資料,這個例子可以套用在任何商品、任何資訊身上(例如每天都會更新訊息的股票、機票、電影節目)等等相關的事物,而這些資訊都是需要花時間去蒐集並分析歸類成我們所需的資料。
除了每天必須會花時間來做這些事,還得去篩選最新的資料,再來就是可能也會漏看了幾筆資料,既又勞心、又勞力、又浪費時間,又有可能找不到我們所需要的資訊。但這就是不論是個人或企業幾乎天天都在做的事情。
好,說了這麼多這些到底跟爬蟲有什麼相關?!
想想如果將上述這些蒐集並且重複性高的工作全都變成自動化呢?例如:將蒐集回來的資料自動做分類,自動篩選想要知道資訊,沒錯這個就叫做網路爬蟲。
為什麼叫網路爬蟲,在簡單的說就是讀取網頁html從第一行讀(爬)到最後一行,然後找到我們所需要的資訊把它抓回來,所以它也叫做網路蜘蛛。
當然爬回來我們所需要的資料後,就可以把它寫到我們的資料庫去,再來這些資料就隨我們怎麼使用囉!
企業中或專案中用到最多爬蟲的地方?
案例1:
我自己做過的專案中,真的用爬蟲並且達到收益的專案90%以上都是電商平台,網路商店,做電商最重要的就是如何找到廠商然後讓廠商的商品放到我們的電商平台上面賣。
但往往廠商要賣的商品最少也有1百多種多則1千種商品,光是上架商品到我們的電商平台這件事,就讓大多的廠商打退堂鼓了。
那我們的電商平台要怎麼招商呢?!別擔心!大部分這些廠商們的商品應該早都已經上架在露天、PChome或者MOMO、YAHOO等這些電商平台,都已經在上面賣許久了。
假設該廠商有1千個商品都放在PChome,這時候我們只要使用爬蟲技術寫一支程式到PCHOME把該廠商所有的商品資訊(例如:商品名稱、價錢、庫存、商品詳細說明),等等的資訊抓回來後,我們在寫一支程式將這些資料做上架就完成了。
完全不需要該廠商做任何事,這個大大減少廠商的麻煩,得來全不費工夫就可以多一個平台來賣廠商的商品,用這個方式大多數的廠商都可以接受,那電商平台賺什麼?
賺的是商品賣出的手續費還有廣告費等,越多人瀏覽商品或購買商品,電商平台的收入就越高。
接著我們來看看案例2還有哪個地方最常用到爬蟲的地方:
老闆或老闆朋友的股票資訊 — 這個雖然跟專案一點關係都沒有,純粹就是方便能讓老闆每天追蹤自己買的股票資訊,但坦白說工程師們確實蠻常會接到這種小案子。例如:老闆想分析一下最近石油的價格走勢,過幾天又想分析一下比特幣的走勢等等,諸如此類的小需求。其實就當練練手,也挺好玩的。
所以爬蟲已經演變成所有網頁工程師的基本技能了,還不趕快學嗎?
- Oct 28 Thu 2021 10:00
聯成電腦分享:想當工程師要朝哪個方向走網頁WEB、APP工程師
文、意如老師
軟體工程師居然也有分好多種類?先來介紹最常見的三大工程師
1. 應用程式(APP)工程師
2. 網頁(Web)工程師
3. 手機(Android、IOS)工程師
1. 應用程式(APP)工程師
大家看到APP工程師第一印象就是手機APP,但其實APP是Application(應用程式)的簡寫,所以除了手機上的APP外,APP應用系統程式也常用在不需要網路就可以執行的地方,例如電腦上的應用程式(小算盤、小畫家、OFFICE)等這些都是屬於應用程式,也都稱為APP,它的特點就是需要安裝才可以使用。
大多數的APP工程師都在開發那些軟體?
最常見的就是進銷存(ERP)系統,幾乎所有商店都會有的系統程式,下次有機會去商店時不妨可以觀察一下店員在使用的螢幕(從購買刷條碼、付款、結帳到取得發票的過程),這些等等功能都是需要APP工程師把它寫程式,讓店員可以方便的使用。
2. 網頁(Web)工程師
網頁跟傳統APP應用程式最大的差別就是,網頁的應用程式只要有網路的地方輸入網址就可以執行程式,因為方便性隨時都可以操作系統,所以業者也紛紛想把APP 的應用程式,改成網頁版的應用程式。
大多數的WEB工程師都在開發那些軟體?
最常見的網頁程式除了有剛剛介紹的進銷存ERP以外,像是公司形象官方網站、或電商系統(露天拍賣、MOMO等)也都是網頁工程師常常會接到需要開發的案子。
另外網頁程式有一半是給客戶端使用的,所以畫面視覺的部分也需要顧及到,因此網頁又分成前、後端,前端工程師負責視覺畫面和接資料,後端工程師則是負責到資料庫取資料,接著把資料提供給前端使用。
3. 手機(Android、IOS)工程師
手機端的工程師,因為作業系統就分為兩大派(Android基底Java語言、IOS基底C語言),除了過於常人的工程師兩種語言通吃,不然基本上工程師還是會選邊站。
手機工程師都在開發那些軟體?
攝影師:Dan Nelson,圖片來源:Pexels
手機工程師,開發的系統基本上都跟網頁開發的系統程式是一樣的,只是程式換在手機上執行,另外手機工程師會比較偏向前端的部分,負責視覺以及接資料的部分,至於資料的來源大多都是來自網頁後端工程師提供。
所以網頁工程師現在都會以功能為導向來寫代碼,因為資料需要提供給三個平台使用(Web、Android、IOS),所以也必須使用API 的方式來跟接資料都提供資料。
請參考什麼是API?
本篇希望能夠給正想轉職當工程師的朋友一點參考,雖然目前與未來的趨勢都是大數據工程師、AI工程師,但是這些工程師還是必須要有非常強的基礎工才有辦法,不妨先在(Web、Android、IOS)先選邊站,選一個有興趣的領域,專一先學一個語言,把基本功練好,這些基礎功都將會是未來轉職大數據工程師、AI工程師的敲門磚。
- Oct 07 Thu 2021 10:00
聯成電腦分享:Javascript網頁程式_處理日期、時間篇(上)
Photo credit:Pixabay
文、意如老師
任務開始:先建立環境
任務一:抓取目前標準時間
任務二:把抓到的標準日期時間顯示在網頁上
任務三:抓出"年、月、日、時、分、秒"
任務四:實作按鈕功能
日期時間: 顯示標準時間
今天日期: 只抓年/月/日
現在時間: 只抓時/分/秒
任務開始:
首先建立環境,在任意的位置上,例如:”桌面”,點選滑鼠右鍵新建 ”文字文件.txt”,改變檔名、副檔名為.html ,例如: index.html
再點選右鍵,使用記事本開啟。
打上網頁基本語法
<html>
<head>
<title>網站標題放這裡</title>
</head>
<body>
網頁內容放這裡
</body>
</html>
<script>
<!--Javascript 區塊-->
</script>
再使用瀏覽器開啟 index.html
任務一:抓取目前標準時間
在 <script></script>使用new Date()可以抓取目前標準的時間,再使用 console.log() 印出。
例:
<script>
Today = new Date();
console.log(Today);
</script>
將網頁重新整理後,按下F12(開發者模式) ,到console(控制台)看看是否已經有印出了目前的標準時間了。
任務二:把抓到的標準日期時間顯示在網頁上
先在<body></body>中放入一個空盒子<span></span>,id 名為 current
例: <span id="current"></span>
再使用Javascript 抓取日期時間後再塞入id=current 的空盒子中。
例:
document.getElementById('current').innerHTML = new Date();
再將你的網頁重新整理後就可以看到目前的標準時間出現在網頁上了。
任務三:抓出"年、月、日、時、分、秒"
標準日期時間 |
new Date(); |
年 |
Today.getFullYear() |
月份(月份固定+1) |
(Today.getMonth()+1) |
日 |
Today.getDate() |
時 |
Today.getHours() |
分 |
Today.getMinutes() |
秒 |
Today.getSeconds() |
試著用console.log() 印出效果看看。
<script>
Today = new Date();
console.log(Today);
y=Today.getFullYear();
console.log("年:"+y);
mh=(Today.getMonth()+1);
console.log("月:"+mh);
d=Today.getDate();
console.log("日:"+d);
h=Today.getHours();
console.log("時:"+h);
m=Today.getMinutes();
console.log("分:"+m);
s=Today.getSeconds();
console.log("秒:"+s);
</script>
接下來使用瀏覽器開啟,並按下F12(開發者模式),點選console(控制台)即可看到效果
任務四:實作按鈕功能
日期時間:顯示標準時間
今天日期:只抓年/月/日
現在時間:只抓時/分/秒
點選按鈕後,右邊出現日期/時間
首先做這三個按鈕,按鈕右邊分別放入空的盒子(預備要放日期/時間)的位置。
按鈕製作方式:
<button>按鈕中的文字</button>
空盒子
<span id=”幫盒子取一個名字”></span>
例:
<button>日期時間:</button><span id="mToday"></span><Br>
<button>今天日期:</button><span id="mday"></span><Br>
<button>顯示時間:</button><span id="mT"></span><Br>
如下圖:
到Javascript中,先把所需要的資料抓出。
<script>
Today = new Date();
yy=Today.getFullYear();
mm=Today.getMonth()+1;
dd=Today.getDate();
h=Today.getHours();
m=Today.getMinutes();
s=Today.getSeconds();
</script>
接下來要設定第一個按鈕 [日期時間] 點選後要在mToday盒子中顯示”標準的日期時間”
所以先寫一個方法myDate():
function myDate(){
document.getElementById("mToday").innerHTML = Today;
}
接下來到button中設定點選後呼叫此方法 myDate()
<button onclick=myDate()>日期時間:</button><span id="mToday"></span><Br>
接著就可以開啟網頁點選第一個按鈕試試看。
以此類推,再建立第二個與第三個按鈕的功能。
<!--今天日期-->
function mToday(){
document.getElementById("mday").innerHTML = yy+"年"+mm+"月"+dd+"日";
}
<!--顯示時間-->
function mTime(){
document.getElementById("mT").innerHTML = h+":"+m+":"+s;
}
到第二個與第三個按鈕呼叫如下:
<button onclick=mToday()>今天日期:</button><span id="mday"></span><Br>
<button onclick=mTime()>顯示時間:</button><span id="mT"></span><Br>
完成檔如下:
完整參考程式碼:
- Sep 30 Thu 2021 10:00
聯成電腦分享:當工程師遇到疫情的衝擊 ─ 經驗談
文、意如老師
這次受到新冠肺炎來勢洶洶的疫情,造成了許多產業人心惶惶,今天就來跟大家分享一下當工程師遇到這波疫情的時況吧!
工作狂的我白天是軟體工程師,晚上、假日則是補習班講師,除了上班外,一週需跨兩個縣市授課,所以這次的疫情一開始對於我的影響算是還蠻大的,第三級防疫快速的讓各公司採分流上班、遠距在家上班,而補習班則是被迫停課。
雖然這項政策可以讓感染風險少了點,但是說沒影響是騙人的,免不了還是要適應一下,突然的24小時全都宅在家,一方面擔心疫情、一方面又得擔心工作。
幸運的是我們補習班快速將實體課程轉化成線上課程,讓老師跟學生都能安心的在家停課不停學,瞬間解決了我要跨縣市授課的一大難題,而我另外一份工作工程師如何面對這波疫情呢?
" 面對疫情工程師不影響?"
以我是工程師的經驗來說,疫情爆發後,一直到現在都是採居家上班,遠端寫程式,到目前有什麼影響嗎?優、缺點一次告訴您。
工程師在家上班的3大優點:
1. 通勤
以往上班需要花45分鐘通勤,來回就將近1個半小時多,所以大大減少上班通勤的時間,確實省下了不少的時間。
2. 專注、提高工作效率
寫程式需要極高的專注力,在家上班非常安靜,可以非常專心的寫程式,效率提高不少。
3. 溝通、討論
現在所有的會議全都改成線上開會、線上討論、溝通,但以目前的視訊軟體技術來說表現幾乎可說是可圈可點,不論是在語音、視訊上的溝通上完全不會有什麼延遲,並且很多軟體也都有支援螢幕分享畫面的功能,相較之下跟傳統面對面大家聚在一起的開會、討論、溝(還時常一開會一個上午或一個下午就過去了)。
所以相對線上會議,大家重點講一講就結束會議,反而會省下不少的時間來寫程式。
工程師在家上班的3大缺點:
1. 常常工作到半夜
寫程式對於我來說算是玩遊戲,一寫下去沒完沒了,所以也不太會管下班時間到了,都要做到一個段落才肯放下電腦,寫程式到半夜1-2點算是家常便飯。
2. 要非常的自律
多了一些自由彈性的時間,但是必須時時刻刻提醒自己、管理自己,什麼時間做什麼事情,要非常的自律。
3. 社交
對於24小時宅在家裡,沒了社交,朋友只剩下電腦,可能有些人會覺得孤獨了點、無聊了點,但在我認識的大部份工程師好像都不太喜歡社交,所以在家中不需要社交反而好像也可以是一項優點。
整體而言,跟其它產業比較起來,我們這些工程師能在家工作也算是相當幸運的,受到的影響也不算太大,Stanford大學曾經進行了一項研究:兩組員工,一組在家裡工作、另一組則在辦公室。九個月後,研究發現在家工作的員工效率提升了 13%;而在辦公室上班的員工只提升了 9%,所以就算沒有疫情,很多科技公司其實在很早就提倡工程師居家上班的風潮,也有不少國外的科技公司在疫情結束後仍讓工程師持續居家上班,提高整體的工作效率。
- Sep 21 Tue 2021 10:00
聯成電腦分享:想當工程師,先了解這些工程師都在幹嘛
文、意如老師
IT業人人頭銜都是工程師,殊不知其實分成很多不同類型的工程師,工作性質也是天差地別,所以本篇文章想跟大家分享的是業界中最常看到的工程師類型,今天就來一次了解這些工程師都在幹麻吧!
每間公司一定都會有的工程師,這邊先將分成四大類:
1. 硬體工程師
2. 系統工程師
3. 韌體工程師
4. 軟體工程師
1. 硬體工程師
什麼是硬體?只要是有形的,可看到、摸到的設備都稱為硬體。如電視、電腦、螢幕、鍵盤滑鼠等等。
資訊(IT)產業最常見的硬體工程師工作項目大致包含開硬體規格表,買電腦、零件或者組裝電腦,甚至是維護、修理這些硬體設備,除了電腦外,另外還有平板、手機、印表機、視訊機等等,尤其是現在物聯網世代,什麼物品東西都要上網,洗衣機、冷氣、冰箱、窗簾都要上網,所以只要是有形的設備都會有專門負責的硬體工程師,讓設備可以動起來(可以開機)基本上就是硬體工程師主要的工作了。
2. 軟體工程師
什麼是軟體?它是無形的,我們也可以稱為它為應用程式,例如:小畫家、OFFICE、WINDOWS、ADOBE、或者公司上常會使用到的進銷存系統等等,只要是在硬體上執行的應用程式都是屬於軟體。
例如:
電視(硬體)+MOD(軟體),就有更多電視節目的選擇,
電腦、手機(硬體)+作業系統(軟體)+再加上一些你所需要的應用程式(軟體),全部的軟體都會需要硬體互相搭配,才能發揮它的價值。
所以軟體工程師的工作非常廣,但簡單來說就是寫這些應用程式給別人使用。
3. 系統工程師
系統偏向硬體及軟體間溝通的橋樑,以電腦為例:硬體工程師負責讓電腦可以開機,接下來系統工程師就需要開始安裝系統(軟體),例如windows、Linux等作業系統,還有OFFICE、ADOBE、另外大多都還有包含安裝該公司所需軟體,例如:ERP進銷存系統、員工請假系統。
除了上述這些基本系統(軟體外),如果公司自己有開發的軟體(網站)也需要由系統工程師來維護,例如:各式網站、露天拍賣、YOUTUBE、OFFICE365等等這些網站(軟體)都是需要保持系統伺服器全天候24小時不能中斷,這個就需要專業的系統工程師來維持維護了。
4. 韌體工程師
最近因為物聯網的關係,韌體被越多人提到,韌體又是什麼呢?
其實韌體也是軟體,但是跟我們剛剛介紹的軟體又有差別。
剛剛我們介紹的軟體程式是偏給使用者使用的應用程式,而韌體也是軟體程式,不過它的程式是寫在硬體上的,例如晶片上、記憶體上,所以稱為韌體。
例如:電腦開機時,會先檢查你的硬體(記憶體、CPU、硬碟等等)有沒有正常(這裡就是BIOS 韌體程式在執行),有正常的話才會開始跑作業系統(軟體-比較偏一般使用者在執行)。
每位工程師都有自己擅長的領域,各有各的專業及必要存在價值,只要找到一個適合自己有興趣,努力的持續專精研究,總有一天可以成為頂尖的工程師。
- Sep 02 Thu 2021 10:00
聯成電腦分享:什麼是物件導向,為什麼每一個工程師都要會
Photo credit:Pixabay
文、意如老師
工程師不論你寫什麼程式語言,共通一定要學會的是物件導向,資訊本科系也一定會有的必修課程。那什麼是物件導向呢?為什麼它那麼重要?
簡單的說就是重複的事情把它寫成物件,當需要使用時直接呼叫物件即可完成功能,不需要重造輪子。
我們在設計一套程式時,難免會碰到許多重複要做的事情,比如光是要對資料庫做存取時,一定都要存入建立日期時間及更新日期時間,這時候重複的事情就出現了”抓取日期時間”的功能,這時就可以把日期時間這個功能先寫成一個物件,當有需要時直接呼叫物件即可使用。這個就是物件導向的優點之一。
這些常用的功能(物件),有很多前輩早已開發出來,並免費釋放出來給大家直接使用,也就是我們只需要學習怎麼使用物件,而不需要浪費時間再去開發一樣的功能(物件),就像開車一樣,你只要學會怎麼開車,不需要了解汽車原理一樣,這可以大大減少工程師重複造輪子的時間,所以我們可以使用別人的物件,也可寫物件給別人使用,而這就是物件導向的精髓。
物件導向要認識那五大名詞呢?
(功能、類別、建構子、物件、類別物件變數)
Photo credit:Pixabay
什麼是功能(Function)?
首先要認識的是功能,有些程式則稱為方法(Method),我們可以將重複會使用到的程式碼寫成小功能。
什麼是類別(Class)?
接下來我們要認識的是類別,一個類別中可以放置很多小功能,簡單的來說就是相同性質的小功能將它分門別類,放在同一個類別中,這邊可以把類別(Class)比喻成一個大工具箱,用來放置相關性質的小工具(Function)。
比如就有專門處理日期時間的類別,只要我們程式有需要取得日期時間時(例如取得西曆、農曆等等),直接呼叫日期時間的類別即可以馬上使用,相當方便。
Photo credit:Pixabay
什麼是建構子( Constructor)?
每一個類別中,一定會有一個建構子,這個建構子就是當有人呼叫這個類別時必定會執行的程式,所以這個類別中的功能/方法如果有需要什麼變數時,一開始就可以設定讓使用者先傳進來後存入。
什麼是物件(Object)?
再來我們就要認識物件了,類別是可以被重複呼叫的,重複使用的,當我們使用變數去呼叫類別時,這個變數就成了物件了。
例如:A = new Date ( )
說明:A變數 = 去呼叫 Date ( ) 類別。
這時候A就成為物件了,成為物件後,我們就可以在自己的專案下重複使用A 物件,這個就是物件導向。
什麼是類別/物件變數 ?
類別變數是存放在類別中裡的變數,而物件變數則是存在我們的物件中可重複使用的變數。
例如建構子,先設定讓使用者傳入(姓名、年齡、地址),接著將這些值存入類別變數。這些就是類別中會使用到的變數,也稱為類別變數。
例如:
A 物件 = 呼叫類別時傳入(姓名A、年齡A、地址A)
我們可以再取一個變數(ABC) = A物件去調用類別中的方法/變數 (這個就叫物件變數)
例如:
ABC = A 物件 . 調用類別中的方法,ABC就成為了可以重複使用的物件變數。
以上就是一些比較基本的物件導向觀念,如果想當工程師也一定要學會的一個技能就是設計類別、使用別人的類別,徹底的了解物件導向,可以幫助我們減少重複建造輪子的時間。
- Jun 08 Tue 2021 10:00
聯成電腦分享:非本科系需學到什麼程度才有辦法當工程師(二)
文、意如老師
續上一篇Q3.非本科系要學到什麼程度才有辦法當工程師?
這邊我分成三個階段
1.打穩基礎工-請參考上一篇-非本科系學到什麼程度才有辦法當工程師(一)
2.資料庫應用-本篇介紹-非本科系學到什麼程度才有辦法當工程師(二)
3.準備實戰作品篇--請參考下一篇-非本科系學到什麼程度才有辦法當工程師(三)
第二階段,就可以開始往資料庫練習了,比較常見的資料庫語言以MySQL、MongoDB、PostgreSQL、Redis為大宗,大部份業界都還是使用MySql,根據調查指出有一半以上的企業挑選使用2種資料庫來支援自己的軟體應用程式。以Mysql為主,其它資料庫為輔。
例如:
MySql + MongoDB
MySql + Redis
MySql +PostgreSql
不管怎麼說,MySql使用度仍然遙遙領先,也是基礎中的基礎,如果今天想找一個基礎工程師不需要一次學那麼多種資料庫,但先學會MySql一定是必備的,抓準一個資料庫語言把基礎工練到滾瓜爛熟後就可以先上工了。
資料庫習得三大重點:
一、結構練習
二、語法練習
三、綜合應用
一、結構練習:
建議初學者可以先從PhpMyAdmim開始,因它有圖形化的介面,不需要任何語法即可建立資料庫、資料表新增欄位、編輯、刪除,方便使用者去存取資料。
因為圖形化介面好上手,可以自己先試著
▶ 新增資料庫
▶ 新增資料表(建立欄位)
▶ 新增資料
▶ 編輯資料
▶ 刪除資料
這裡主要是訓練建立資料庫的結構,了解資料庫的關聯性,等這個軟體掌握了,圖形化介面摸熟後,就可以開始往語法進攻。
二、語法練習:
在使用phpmysql建立時還有一個重點,雖然我們是點按鈕或填表單就可以達到我們要做的事,這是因為phpmyadmin它自動幫我們寫了SQL語法並執行,所以當您在點選按鈕操作時,就可以參考SQL語法怎麼寫。
舉個例子我們要修改一個欄位的值,先點選編輯
- Oct 05 Mon 2020 09:00
聯成電腦分享:工程師基礎知識打地基篇-什麼是編譯器與直譯器?
文、意如 老師
地基打得穩,才有辦法走更遠的路。
我們先認識一個詞Compile,指的是編譯,常常聽到比較資深的工程師會說Compile一下,這是什麼意思呢?
簡單的來說編譯就是”翻譯一下程式碼”,為什麼程式碼要翻譯呢?
這個就是今天要介紹的主題。
現在訪間各式各樣程式編輯器已經做得太好、太方便,只要寫好程式碼,按執行鍵▶,即可馬上執行程式碼,導致很多工程師已經忘了最基礎的怎麼編譯(Compile)程式,或者根本不知道Compile到底是什麼,所以本篇文章想跟大家聊聊什麼是編譯(Compile)。
什麼是低階語言(機器語言)、高階語言?
電腦不認識字、只認得數字0、1,所以電腦讀的語言叫做機器語言,也叫低階語言。下面這張圖一組一組的就是指令:
例如:0101,代表一種功能,0110又代表另一種功能,每一組都代表各自的功能,光是4個數字就可以有多種變化。
例如:0000、0001、0010、0101、1011等...
而我們寫的程式語言,就是人類才看得懂的叫做(高階語言),例如Java、PHP、Python等等。
所以我們寫好的程式碼,需要透過電腦來執行,但是電腦只認得0和1,所以我們會需要一個溝通的橋樑,一個翻譯官,把高階語言翻譯成電腦讀得懂的低階語言,好讓電腦執行我們的程式,這個就是編譯,所以不管是什麼程式語言都會需要編譯完後,才能執行。
編譯器跟直譯器又有什麼差別?
這兩者都是翻譯官,但它們的差別在於編譯器是寫完程式碼後,最後全部一起翻譯,翻譯完後才能執行。
而直譯器是一行一行直接翻譯執行。每翻譯一行程式敘述就立刻執行,然後再翻譯下一行,再執行,所以直譯器可即時翻譯、執行。
...
什麼程式語言是用編譯器?
像是C、C++、C#、Java等,這些都是屬於直譯器,寫完程式需要先編譯,編譯好後會多一個類似.class的檔案,這個就是機器語言,最後才能去執行程式。
所以以Java來講寫好程式後最少會有兩個檔案(你寫的程式碼java檔、跟編譯過的.class檔)。
什麼程式語言是用直譯器?
像是最多人一定會寫的JavaScript、還有PHP、Ruby、Python這些都是使用直譯器,我們在執行程式時,你馬上就看到執行結果,並不沒有編譯,而是直譯器本身是即時翻譯,所以你不需要再特別的去編譯它。
編譯器比較快還是直譯器比較快?
編譯器它是整篇一起翻譯後再執行、而直譯器是邊翻譯邊執行所以會比編譯器來的慢。
編譯程式碼,是工程師最基礎的功夫,這邊也建議剛開始學程式語言的初學者一定要學會編譯程式後,再去挑選比較好的編輯器,地基打得穩,才有辦法走更遠的路。
下一篇文章-將跟大家分享工程師都在用什麼編輯器來寫程式。
...
文章轉自 菜鳥救星,未經授權請勿轉載,原文為:菜鳥救星講程式:工程師基礎知識打地基篇-什麼是編譯器與直譯器?
- Mar 11 Sat 2017 09:40
聯成電腦小邱老師專欄:Unity橫向射擊(三)
- Feb 11 Sat 2017 09:05
聯成電腦小邱老師專欄:Unity橫向射擊(二)
- Feb 06 Mon 2017 09:00
聯成電腦小邱老師專欄:Unity橫向射擊遊戲(一)
- Dec 12 Mon 2016 08:58
聯成電腦小邱老師專欄:unity常用技巧-主角落入陷阱變色介紹
- Nov 30 Wed 2016 08:50
聯成電腦小邱老師專欄: Unity分享─遊戲開始前倒數計時
- Jan 17 Sun 2016 08:30
聯成電腦昭自老師專欄:Android手機上測試Unity開發的遊戲(經典好文)
- Aug 23 Sun 2015 10:30
聯成電腦APP精彩人物:設計遊戲APP前 你應該知道的事(經典回顧)
- Sep 10 Wed 2014 09:10
聯成電腦昭自老師專欄:Unity 2D介紹(五)-角色控制與動畫
- Sep 05 Fri 2014 09:01
聯成電腦昭自老師專欄:Unity 2D介紹(四)-角色控制與動畫
- Aug 12 Tue 2014 09:05
聯成電腦昭自老師專欄:Unity 2D範例(三)-基本概念
- Aug 08 Fri 2014 09:00
聯成電腦昭自講師專欄:Unity 2D範例(二)-場景設置