總網頁瀏覽量

顯示具有 程式 標籤的文章。 顯示所有文章
顯示具有 程式 標籤的文章。 顯示所有文章

2023年6月7日 星期三

著名的「鳥哥的Linux私房菜」網站/書籍 的 作者,是 崑山科技大學 的老師!

在資訊科技圈之中 相當著名的 「鳥哥的Linux私房菜」網站/書籍 的 作者 鳥哥 就是 蔡德明 教授,他已在 崑山科技大學 資訊傳播系 任教十幾年。

也許很多朋友不太清楚上述這個狀況,故在此分享。
 
長年來,許多台清交成等名校大學的相關領域師生,以及眾多產業界工程師,也因為 鳥哥的Linux教學網站和書籍 而受益良多。

而剛好從這學期開始,我自己也有幸至 崑山科技大學 兼任講師,實在是深感榮幸。

崑山科技大學 Kun Shan University
.


-----

歡迎各方洽談合作,務實/踏實追求共好。

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章


2021年8月23日 星期一

【好書介紹】電腦技術並不是只有軟體! 介紹一本介紹Intel 80x86為核心的IBM電腦系統軟硬體的好書

歡迎透過合法的方式分享此文內容,若要轉載/轉貼,請明確貼出此原始連結並標示作者基本資訊請勿抄襲及非法轉貼(例如擷取內文但並未註明出處)

因為搞不清楚狀況的人很多(執著表面的年份、新舊),先介紹一款Intel 在2016年所推出的基於x86(1993年推出的Pentium) ISA Compatible CPU 的Inte lQuark系列 微控制器(MCU): D2000

該MCU內的CPU的類型是1993年推出的Pentium(本來是要被命名為80586) ISA Compatible的CPU,在這款2016年推出的MCU的Intel官方Datasheet內的介紹可見下圖紅框圈起處

- 其內部CPU info :

32 MHz, 32 bit, single core, single thread, Pentium ISA compatible (如果看不懂這是x86的人,請自己google一下,做點功課,或見下圖的Intel官方手冊內容)

https://static6.arrow.com/aropdfconversion/3675d6354c6d8ac364213bdd827aacc81c93c43d/119736798394079quark-d2000-datasheet.pdf


- 其內部I/O :

SPI, I2C, GPIO, SPI, Comparators, ADC, PWM, DMA, UART

- Wikipedia的Intel Quark系列介紹: 

Intel Quark is a line of 32-bit x86 SoCs and microcontrollers by Intel, designed for small size and low power consumption, and targeted at new markets including wearable devices. The line was introduced at Intel Developer Forum in 2013.

...... However, in 2016 Arduino released the Arduino 101 board[3] that includes an Intel Quark SoC.

https://en.wikipedia.org/wiki/Intel_Quark

- Datasheet

https://static6.arrow.com/aropdfconversion/3675d6354c6d8ac364213bdd827aacc81c93c43d/119736798394079quark-d2000-datasheet.pdf

- Wikipedia的Pentium系列內容介紹: 

https://en.wikipedia.org/wiki/Pentium

------------

執著技術和平台的表面年份數字、或者人云亦云沒有必要重點在於是否合適

很多事情,尤其是電腦技術領域,真的不見得是越舊的年代的東西就代表完全過時無用,事實上有許多技術概念真的都是通用的,而去了解80x86和其相關系統設計的觀念,也是一樣的。

真實的專業研究之所以有價值,原因也在於此,技術不限於年份數字的這種表象,只要是適用、可解決或改善問題的idea觀念,都極有可能再拿出來被使用。

例如8051已經是40年的老MCU IP,但從台灣一線的IC設計公司公告的職缺內容可看出,至今仍有著需要了解8051的能力的工程師職缺,可參見我的下方PO文 (點選 查看更多)


------------

先聲明,這篇不是工商服務廣告,單純介紹過去讀過的電腦技術類的好書

這本80x86 IBM PC and Compatible Computers Assembly Language, Design, and Interfacing Volumes I & II , 2002年出版,作者是Muhammad Ali Mazidi和Janice Gillispie Mazidi,出版社為Prentice Hall(Pearson)。

https://www.amazon.com/80X86-IBM-Compatible-Computers-Interfacing/dp/013061775X

中譯版書名為: IBM PC and Compatible Computers Design, and Interfacing - IBM PC系統設計與介面技術(第四版),東華書局出版,譯者為 方志鵬。 

這本書涵蓋了很多電腦系統的軟韌硬體基礎觀念內容,在當年(十幾年前,大約19歲的時候)給了我不少啟發。

和 計算機組織/結構課本(科目)的一個不同之處在於,這本書或這類的科目會實際介紹8086/8088/80286/.../Pentium等微處理器IC及一些組合語言程式之外,也會介紹一些關於 介面電子電路 以及許多周邊IC與硬體(如8288 bus controller、8284 clock generator、記憶體介接電路、Programmable I/O的8255、LM34/35溫度Sensor、ADC0848、DAC808、8259中斷控制器、8253 Timer、LCD驅動、步進馬達驅動、 DMA 8237、UART 8250、UART轉RS232電壓位準轉換器、硬碟、鍵盤、印表機、數學運算coprocessor、視訊、以及其它許多IC,包含與微處理器IC之間的各種實際訊號狀態)的內容。

雖然這本書介紹的許多IC的型號比較舊,但是許多基礎原理觀念至今仍是共通的(畢竟電腦技術就是這幾十年來持續演化)。

另外還包含一些支援OS的微處理器的特性基礎,如80386的user/supervisor mode、virtual memory、page table、TLB等觀念,到了高速記憶體介面與存取章節也有各種記憶體的介紹(DRAM、SDRAM、cache memory的存取機制、write through、write back、cache coherence等觀念。後續談到80486時也會介紹到Pipeline;Pentium章節會提到superpipeline、supersclar、Harvard architecture、pipeline hazard、compiler的instruction scheduling、RISC/CISC的特性比較、out-of-order execution、branch prediction;MS-DOS的結構、記憶體管理;PCI、USB bus;BIOS;MS DOS和BIOS的ISR (INT _ _H對應的ISR),涵蓋內容相當廣泛。

許多讀資訊工程系的朋友可能會不太清楚,這門課的名稱通常叫作微處理機與介面設計、微算機原理、介面設計,但現在在學校關於這種科目通常都是拿MCU(微控制器)的開發板來讓學生實驗,而不是像早期真的用微處理機(微處理器,如8086、Z80等)搭配一堆IC的兜成介面的方式來教了。另外,嚴格來說,這門課的範圍比計算機組織的範疇還廣(包含一部分計算機組織的內容),但通常學校只會教到這本書的內容的一小部分。外國的書像是現在介紹的這本比蠻有名,而台灣比較常見的書是台灣科大電子系林銘波老師所出版的一系列微算機原理書籍。

這是一門在本質上很偏向實務和基礎理論觀念並重的課程,許多大學在這方面的教學都很輕忽。此外,這科也並不是研究所指定考科,所以常被忽略,研究所考科通常是計算機組織結構,但是性質和內容仍有不小的差異。

而關於介面硬體電路的方面,是近年來許多國內大學的電資工程系所普遍比較不重視的一環,畢竟現成的硬體用慣了,就容易忽視其存在與重要性。

但其實電腦系統技術絕對不是只有純軟體,若沒有紮實的硬體系統(包含類比式與數位式硬體),軟體哪來的用處呢?就算現在的SoC和MCU的集成度很高,很多週邊硬體都整進去了,但是基礎觀念和介面電路還是少不了啊!



註1: 這裡講的微處理器(微處理機)就真的是傳統所指的 "微處理器"(Microprocessor),例如8086/80286/80386/80486/Pentium IC裏頭就是CPU單元, 而不是微控制器(MCU, Microcontroller)!   並且也不是在指SoC或MCU被稱作的嵌入式微處理器(Embedded Microprocessor)的狀況。

順帶一提,這本書在談到鍵盤的章節,也會介紹到標準IBM PC內的鍵盤內都會有一顆微控制器(MCU),該微控制器內含一顆微處理機(微處理器)、RAM、ROM以及幾個I/O Port,這裡很清楚就可以釐清微處理機和微控制器的差異!

註2: 這本書後續還有續作: The x86 PC: Assembly Language, Design, and Interfacing, 5/e,2009年出版, 作者: Muhammad Ali Mazidi, Janice G. Mazidi, Danny Causey)

https://www.tenlong.com.tw/products/9780135026489




--------------------

孫文良 (阿良的嵌入式系統技術學習區)

個人簡介: https://sites.google.com/view/wenliangsun/

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先參考 課程招生網頁連結

2021年8月13日 星期五

【Embedded Linux(嵌入式Linux)系列課程】Bootloader開機啟動程式之編譯建置與執行 課程簡介

Embedded Linux系列之Bootloader課程簡介

Bootloader 為 開機啟動程式,其主要任務簡而言之為在電腦系統上電(Power ON)之初的階段,對系統硬體(包含CPU自身、Clock系統、周邊裝置、DRAM、Storage device等)進行一系列的初始化,並負責啟動作業系統核心(OS Kernel)。

註: 若拿SoC based嵌入式系統和PC系統作比對,粗略而言,則嵌入式系統的bootloader,即涵蓋了PC系統的BIOS及bootloader的功能(意思就是負責上電之初的硬體初始化與帶起OS Kernel等工作,在嵌入式系統上都是由bootloader負責)。這只是作個粗略的比對/比擬,當然兩種系統在細節上還是有些差異。

本課程將會帶領學員:

  • 在Host PC端之安裝於虛擬機器的Ubuntu Linux distribution環境中,透過純文字指令式(command line)之方式進行開發(讓學員了解Embedded Linux系統於產業界的常見開發方式)
  • 使用GNU編譯工具練(GNU Toolchain)對UBoot source code進行編譯,建置出MLO或稱x-loader的SPL (Secondary program loader) 與 uboot.img (Third stage program loader),並且於核心系統晶片(SoC)為ARM Cortex-A8 CPU based AM3358的BeagleboneBlack RevC開發板上執行
  • 針對課程實驗內容所用到的Storage Device(SD Card)作妥適的分割與格式化處理
  • 介紹UBoot的部分常用指令並引導學員進行實作練習
  • 背景基礎觀念
    • Bootloader運行流程,從ROM Code(bootROM)到MLO (SPL, Secondary program loader)階段,再到 uboot.img (Third stage program loader)的執行流程基礎原理
    • 相關軟韌硬體平台觀念(non-OS/OS based系統差異、MPU/MCU/SoC、DRAM/SRAM、NOR/NAND/eMMC flash memory特性,何謂Memory map I/O與Port map I/O)

UBoot於BeagleboneBlack開發板之執行之畫面 (尚未置入Linux Kernel與filesystem)如下影片。

註: 實驗用開發板並不一定只限於BeagleboneBlack,若學員希望使用/學習其它款式的硬體平台,請事先與講師討論協議。


本園區之FB粉絲專頁如下:


--------------------

孫文良 (阿良的嵌入式系統技術學習區)

個人簡介: https://sites.google.com/view/wenliangsun/

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先參考 課程招生網頁連結

 

2021年7月30日 星期五

於10年前,在大二暑假時期設計製作的以8051 MCU為核心的PCB電路,順便聊聊某些名校大學系所的推甄文化。

想當初就讀大學時期,除了堅持學業成績常保持在第一之外,幾乎每個寒暑假、甚至修課讀書以外的時間都自願在實驗室做專題專案度過(坦白說比起多數人的大學生活來說,真的不輕鬆,但很充實,將碩班生活提前到大學時期來過),

當時主要為了想要多參加教育部競賽,以便推甄名校大學的碩士班。沒想到後來到了所謂名校大學,看到不少名校大學大學部直升的學生幾乎是不用花太多時間做專題,更不用積極參加校外全國競賽,很輕易就可以直升本系碩士班(有些系所真的只看考生大學就讀的校名、系名,或者看是否有認識的教授推薦,就佔了大部分的錄取因素,但如此的作法確實也錄取了許多大學時期不太用心在專業方面的直升學生,說真的不少人的專業實力在大學時期是真的沒什麼累積,就連學科理論基礎也未必比較有概念),坦白說,時至今日,個人對某些不太客觀的推甄錄取標準現象仍感到有些感慨。

分享一下10年前,於大二升大三的暑假時期,在實驗室開發的一個小作品(印象中這個小作品後來沒有拿去正式參賽,後續我和同學們還做了另外四至五個作品專案去參加教育部舉辦的競賽,也在大三這一年內,拿到了4個教育部競賽獎項),這是一個8051 MCU為核心的PCB電路,包含MCU韌體程式的撰寫(使用KEILC開發環境)、電路設計、PCB電路Layout和製作。這是就讀大學時期的第一個PCB電路  (記得在更久以前,在就讀高職時期,就有做過小型電子琴電路,當時也是洗板子,但印象中當時Layout好像是用手繪的方式..所以當時電子琴電路的走線沒辦法這麼筆直)。

而當時還不流行Arduino這類的現成MCU板子,所以除了韌體程式和PC端GUI程式的撰寫之外,我們大學那間實驗室的電路板幾乎都是學生們自己做電路設計、Layout設計 和 洗版製作的。

主要透過Counter計數來自8051 MCU外部的紅外線遮斷模組的訊號,並透過GPIO顯示於LCD,同時也藉由UART輸出串列資料,再藉由ICL232  IC將8051 UART訊號電氣位準轉換為RS232 Cable訊號位準,將資料傳輸資料至PC端由GUI程式做後續應用處理。

當時設計製作的PCB電路,如下FB貼文中的照片所示。



--------------------

孫文良 (阿良的嵌入式系統技術學習區)

個人簡介: https://sites.google.com/view/wenliangsun/

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先參考 課程招生網頁連結

2021年7月15日 星期四

【學員成功轉職案例】脫離22K低薪,學得一技之長, 從非本科系成功轉職韌體工程師 經驗分享

大家好,這篇文章是一位長期接受本園區作者(講師)輔導的一位學員人士,在當時成功轉職韌體工程師的經驗與心得分享。


以下文章內容為學員分享的經驗與心得: 

各位想轉職的朋友大家好😀,一開始容我先自我介紹 

學員的學經歷:

  • 國立名校大學 研究單位 韌體研發工程師 (專任研究助理)
  • 私立科技大學 電機工程系 碩士
  • 國立科技大學 水產食品科學系 學士

大學畢業2年後,決定轉職的動機?

大學時期,其實大多數時間也沒有接受到畢業後到底該做什麼的引導或觀念啟發,大學畢業後,不清楚該做什麼工作比較有發展性,大學剛畢業後的2年,曾做過收銀員、百貨櫃姐、作業員....(服務業、製造業等居多)。

上面這些工作的共同點就是薪水都在22K左右,好一點的也不超過29K,且都是花大量時間換取金錢。每次工作回到家就是放鬆時刻,洗完澡看看影片、滑滑臉書(我是老人),摸一摸時間一下子就到12點了,隔天一早再次過著重複的人生,就算放假也只想發懶、睡覺休息,一點進步的空間都沒有。但是隨著年紀增長,有時候也會想:我能一直這樣工作到老嗎?答案當然是否定的。

想要脫離22K,就是要跟別人不一樣,要有不可取代性,要學一技之長。

就是因為有想過要改變,想脫離22K的人生才開始有了轉職的想法。當時身邊認識的朋友就是在科技業上班,以及一直以來都是就讀工程背景的專業人士,有猜到嗎?就是這個技術部落格的作者阿良老師啦(灑花)。


不是相關科系也可以做韌體研發?會不會贏不過理工相關科系呢?

對於想轉職的朋友,這個問題確實是相當重要。想當初我也問過阿良老師一模一樣的問題🤓。

當時大學畢業,剛出社會工作兩年的我,在阿良老師的建議下,決定轉職電資工程相關領域(電機電子資工),由於我是食品科系畢業,在阿良老師的輔導及討論評估下,認為我需要再去修習理工相關科系,原因是有利於找尋電資工程方面相關的工作,當然每個人狀況不同老師都會給予不同的建議(老師在學界及業界都有相關經驗)。

經過他的評估、輔導和討論之後,我決定再次地回到學校(沒錯,我想都沒想過我會讀碩士,我又不喜歡讀書🤣),當時我已經24歲。

從一開始報考碩士班考試,阿良老師就開始輔導我,針對碩士班考試相關基礎和科目開始準備,像是程式語言、計算機概論、數位邏輯電路、作業系統、資料結構等專業內容目標一一教學。

後來順利考上研究所碩士班之後,阿良老師依照他對於產業界和學術界的了解,輔導我該如何選擇學校的課程,過程中遇到任何專業領域問題,阿良老師都跟我一起參與並解決我的問題。在修習研究所的過程中,除了課堂上所需完成的專案(project)外,阿良老師也安排、鼓勵我參加聯發科與經濟部合辦的比賽,來增加自己的表達能力等經驗以及增加後續應徵工作的經驗值,一直到寫碩士論文,阿良老師也非常積極的指導我研究方向及內容,一直到我碩士畢業。

碩士畢業後,阿良老師也持續輔導我關於找工作的方向,甚至包含找工作所需的履歷表、面試內容準備,阿良老師都會給予經驗的傳授,過程中也會不斷地指導專業內容相關的細節

經過阿良老師的長期用心輔導後(包含就業過程),我在26歲時轉職成功!順利地在當時找到國立名校大學(國內四大名校之一)研究單位的韌體程式研發工程師的工作(待過這學校的幾個單位,工作內容都是與嵌入式系統&物聯網裝置相關的軟韌體程式研發相關),工作過程中也不斷有阿良老師的輔導協助。

值得一提的是,在名校大學研究單位的其中一段工作時間內,在我辦公室座位的右手邊坐的是清華大學電機工程碩士畢業的工程師同事,而我左手邊坐的是台灣大學畢業的工程師同事,這些是在以前不是畢業於電資相關科系、也不是名校畢業的我,在過去從來沒想像過可以達成的事


名片

然而,在國立名校大學的研究單位上班,其實也常會接觸到許多的博士後研究員(博後)同事、主管和研究生們,許多人都是國立名校大學畢業,當然也看了許多令人「大開眼界的事情…比如說某些名校畢業的同事在專業基礎能力上的一些狀況,有時也會讓我感到相當意外 (當然這又是另一方面的許多故事了(笑)),讓我深刻理解到什麼是阿良老師長期以來所敘述台灣社會很普遍發生的「產學落差」、「學用落差」。

所以,關於非本科系是否適合做韌體、專業方面是否一定會比不上本科系名校畢業生?在看完上述內容之後,我想,大家的心中應該有答案了。


轉職為韌體工程師,學到了什麼?

對於大學就讀食品科系的我轉職到電資工程領域,覺得落差真的是蠻大的。現在回頭思考,會發覺過去我個人在大學時期比較多是背誦題目及應付考試(當然也有實驗課),相較起來我個人在當時是比較缺乏深度的思考,也缺乏有經驗的老師的引導。

而在後來跨入到電資工程領域並且參與工程專案研發之後,發現很多是需要深入思考的邏輯。過程中也有參與比賽(需要表達),因為要介紹自己開發的作品的功能發想及特色,所以表達能力也會訓練到、需要簡報presentation,製作簡報PPT的能力會變強(至少要有基本sense)、在過程中對於比賽作品專案時程的掌握、過程中開發作品遇到bug,也要學會找答案,所以找資料的能力會增加相對的英文能力也會增加,最最重要的是透過參與比賽、以及科技發展技術及綜合以上的能力增強後,自己的認知與視野會不同!其實這些都是無形中就增加的能力,有的甚至還要會拍影片😅(例如參加競賽的時候)

韌體研發工程師的薪水真的比較高嗎?

對於在大學剛畢業時期的我,每個月的薪水大約落在23K~28K左右。而在經過阿良老師的長期輔導、電機碩士班畢業之後,我找到的韌體工程師職位工作的薪水相較於過去大幅增加了50%~60%,等於投資自己、替自己加薪加值,在經濟方面終於也不用像以前那樣的緊迫,而且所學習到的軟韌體相關專業技能,是會隨著經驗的增加而持續精進進步,所以我覺得,學得專業一技之長」是真的非常重要


最後最後鼓勵各位朋友一句話:

「你不需要很厲害才能開始,但你需要開始才會很厲害」

雖然這句話已經聽到老掉牙了,但這句話在我有時候失落時都還能鼓勵到我😝


以上為學員之經驗與心得內容



--------------------


阿良的嵌入式系統技術學習區

部落格作者(課程講師)簡介: https://sites.google.com/view/wenliangsun/

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先參考這篇介紹文章




2021年7月6日 星期二

【阿良的韌體科普系列】系列文章─開張文

這幾年來逐漸發現,現在因為某些議題被過度炒作和放大(如AI,不論在新聞媒體/報章雜誌上面),且學術界(大學校院)又過於績效導向,大多為了角逐計畫和資源,而不斷地去追求所謂比較的名詞的相關議題(未必能反映台灣產業界的真實專業技術人才需求),導致一些重要的紮實專業技術教育越來越不受到重視。

於電腦相關領域(資訊工程領域),在較上層的程式語言(如Python)隨著上述議題而一同受到社會高度重視的同時,越來越學生 或 初入社會的人士,能了解何謂電腦系統的底層(如 韌體硬體),

但是,其實產業界對於電腦底層相關的工程師職務需求量是很大的(可自行搜尋人力銀行求證),

許多人似乎都快忘記,軟體終究是被拿來控制/驅動電腦硬體的、軟體是被硬體所執行的,

而且,其實軟體也有很多不同的層面和種類,軟體 並不是 只有一般人眼睛看得到的 視窗介面軟體、APP 或 網頁 而已,

不少人似乎把底層系統都給忘記,甚至不太曉得 較底層的系統軟體(韌體、驅動程式、開機啟動程式、作業系統核心等名詞)存在和意義


有鑑於上述狀況,本園區這邊最近會開始撰寫並分享【阿良的韌體科普系列】系列文章,希望透過比較淺顯易懂的文字介紹方式,讓更多人對於電腦底層、韌體相關的軟體程式、硬體等底層單元,能有更多的了解。

這系列文章的撰寫風格,會盡量避免太過繁瑣詳細的內容,但同時保持內容的正確性,雖然這樣的有可能會犧牲一些詳細的說明,但還是希望能藉此方式,讓更多朋友能對於電腦底層的軟硬體相關知識有些了解。

希望讓大家能擴展自己對於職涯的選擇性和技術視野,而不是等到去工作了,才知道自己做的工作到底是在做什麼。

--------------------


孫文良 (阿良的嵌入式系統技術學習區)

個人簡介: https://sites.google.com/view/wenliangsun/

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2021年4月8日 星期四

當軟硬體研發工程師,一定要數學和物理學科成績很好才適合嗎?

在臉書上看到任教於成功大學資訊工程學系的蘇教授的這篇fb公開文章:




雖然我個人大學時期對於所有數學科目(微積分、工程數學等等)都深感興趣而且成績都算不錯(其實成績好 並不一定能代表有掌握觀念,但我是花了不少時間在思考數學背後的物理意義,而這不一定能顯現在考試分數上),我自己當年的碩士論文也有用到演算法的整合應用設計並且包含實際的開發實作。

但按照我個人的產業工作經驗,我對於蘇教授的這篇文章內容感到很認同。

坦白說,在某些科技業之中,其實許多號稱研發類的軟/韌/硬體工程師平常真的幾乎沒有用到基本加減乘除以外的數學(或極少用到),但必定會需要許多邏輯思考,還有最重要的其實是實際的經驗。

或許在某些基礎學理的理解過程上會用到數理觀念(尤其一些電學),但是其實所謂的觀念建立,不一定就是傳統教育考試制度的那套能體現。

是否直接用到數學 要看工作性質,也不一定是技術深淺程度的問題,也不是沒數學的就比較不吃邏輯(而且也不一定就比較容易,例如上萬次的壓力測試會有隨機當機的這類bug,這就牽涉到開發者對於整體系統和一些細節的了解程度)。

當然也有少數工程師的職務會直接用到數學,例如做演算法設計與應用相關的工作,但那不是多數。

邏輯絕對是必須的,但如果以為要數理學科很好(很好的標準是體制內所定義的,也未必完全客觀)或者 以為要善於解題 才代表適合走這行,那絕對是錯的,這是台灣社會常有的錯誤認知。

因為其實所謂電資工程(例如軟體或電路)相關的工作實在有太多種類和層面。

- 數學學科考得不好,不代表邏輯不好
- 邏輯可能有很多種
- 應對考試不一定等同於讀書(學習知識)
- 所以也不是讀名校畢業就是做什麼都好,何況現在入學管道早已不是早期的樣子(不一定就是一路都很會考試,何況會考試 和 會做事本來就不是等號)

所以才會有一些過去是讀中文系的人、讀地球科學系的人、讀食品科學系的人,依然可以在軟體程式領域做得很不錯甚至傑出的成果。

當軟硬體研發工程師,一定要數學和物理學科成績很好才適合嗎? 一定要出身於本科系嗎? 一定要名校畢業嗎? 我個人的答案是NO

相較之下,更重要的應該是興趣、熱忱和決心

其實對於學問的追求方式也不需要迷信或盲從,現在是資訊普及的時代,取得知識的管道很多,該需要什麼背景知識的時候,就用心的去補足所需的相關部分即可,看是哪裡不足就去補足,實事求是就可以。不必過度糾結於一些傳統上對於學科的觀念,也不必將這些學科當成神主牌無條件信奉膜拜,更不要讓社會對於這些學科的傳統既有印象變成阻礙自己的絆腳石。

相關文章:

2020年8月24日 星期一

【阿良的嵌入式系統技術學習區】嵌入式系統軟韌體 技術課程 招生



  • 可開設之課程

        (1) 嵌入式系統基礎原理與實務課程介紹連結

    • 包含嵌入式系統軟韌硬體基礎學理,包含:組合語言介紹、C語言複習、基礎介面電子電路、MCU架構、各式周邊裝置、各式感測器、無線通訊模組、IoT專題製作等內容。若您希望打下嵌入式系統的紮實基礎,建議要有這個學習過程,奠定進入此領域的專業基礎。
    • 若希望客製化課程內容 (例如針對工程師工作遇到的問題做為課程/諮詢內容,也可與講師討論)
    • 軟韌體工程師 職涯 工作內容方向選擇之分析建議,
      • 常見問題例如: 韌體到底有哪幾類工作方向?  該從事Linux系統軟韌體? 或者non-OS裸機類的MCU韌體? 或者介於兩者之間的工作?  按照經歷背景適合哪種? 該如何選擇? 有哪些對應的企業職缺? 如何避免找錯職缺、導致浪費時間?

        (2) 嵌入式Linux (Embedded Linux) 基礎實務課程介紹連結 

    • on ARM Cortex-A based平台

        (3) STM32系列MCU韌體程式設計基礎實務課程介紹連結 

    • on ARM Cortex-M based平台

        (4) FreeRTOS應用基礎

        (5) C語言程式設計

        (6) 基礎電子電路

    • 包含類比電路、數位電路之基礎觀念
        (7) Linux作業系統操作基礎
    • 如基礎觀念、基礎指令、目錄與檔案權限、vim編輯器基礎操作、ssh檔案傳輸應用、Samba server建置 等

        (8) 應徵科技業 軟韌體工程師相關職缺 之諮詢輔導

    • 包含履歷製作過程、面試應對方面之經驗分享教學

        (9) 基礎C#程式設計

        (10) 基礎Java程式設計

        (11) 基礎Python程式設計

        (12) Raspberry Pi(樹莓派)、Arduino等平台之應用

        (13) 適合初學者或學生的圖形程式: 如App Inventor、Scratch、Blockly等

        (14) 推甄(甄試)電機/電子/資工系 相關系所之研究所碩士班之指導諮詢

    • 包含系所選擇、研究方向分析建議、備審資料製作、指導教授選擇、畢業後未來工作方向分析 建議等

  • 輔導學員錄取軟韌體工程師職務之成果:
    • 陳x茹(食品系學士、經輔導後取得電機系碩士)錄取 知名大學研究中心韌體工程師職務(專任研究助理)
    • 任x誠(機械系學士)錄取 老牌光纖與照明系統廠公司MCU韌體工程師職務
    • 方x翔(機械系碩士)錄取 兩間知名大型系統廠Embedded Controller韌體工程師職務
    • 方x傑(能源與材料系學士)錄取 中小型上市公司單晶片應用工程師職務(工作內容為韌體程式與電路設計)
    • 解決其他多位產業界工程師實質基礎及開發問題(包含系統廠 & IC設計大廠工程師)
    • 其餘案例省略...(族繁不及備載,暫時不詳細更新)

  • 講師本身的產業業界經驗
    • 曾於 知名IC設計公司 擔任軟韌體開發、軟硬體整合開發設計 的研發類工程師 (產業經驗)
    • 於產業公司擔任 產品研發顧問、領導產學技術開發案 (產學經驗)
    • 曾於大專校院擔任講師 (教學經驗)
    • 曾輔導多位產業界工程師,給予明確方向協助其解決工作或轉職問題  (產業教學經驗)
    • 受邀參與 勞動部工研院 所舉辦之 「110 -111年度職業訓練政策研析暨基盤優化計畫服務案」研提技術職類訓練課程綱要:「韌體設計工程師課程」專家諮詢會議
      • 開會通知發文字號:工研學字第1110010784號
    • 曾實質共同指導 國立成功大學資深教授與其碩士班學生完成實質產學合作案之技術研究與開發
    • 曾實質共同指導 國立成功大學資深教授與其碩士班學生之碩士論文內容
    • 曾實質共同指導 國立成功大學資深教授與其碩士班學生參加政府部會舉辦之實務作品相關競賽獲獎
    • 詳情於  https://sites.google.com/view/wenliangsun/  進一步了解講師的資歷和各類經驗

  • 講師的教學經驗
    • 曾經輔導多位產業界工程師學員、希望轉職或就業韌體工程師相關職務之學員
    • 曾經與南科園區的艾克夏醫療儀器公司合作,開設嵌入式系統相關課輔導該司之工程師
    • 曾在台科電科技股份有限公司擔任 產品研發顧問
    • 曾經輔導過 機械背景 與 食品背景的人士,成功轉職 嵌入式系統/韌體研發工程師
    • 自離開科技業之工程師專職後,曾回校指導多位國立成功大學碩士生之研究內容(包含指導一般研究案、參加競賽、產學合作案、碩士論文等方面)的經驗,深刻了解國內大學校院在嵌入式系統教育方面的不足。
    • 於2間科技大學擔任過業界講師
    • 於2間科技大學擔任兼任講師(負責嵌入式系統、物聯網軟硬體整合相關課程)

  • 課程特色
    • 講師本身兼具軟體、韌體程式與硬體電路整合開發背景
    • 主要以一對一家教 或 極小班模式(將視情況而定)授課 
      • 原則以網路通話+畫面分享的方式遠端授課,除非學員人數足夠並且有適當的地點與交通方式,則可討論是否採取面授
    •  可在課程方向範圍內,按照每位學員的不同狀況與需求(如就業內容需求)針對授課內容進行客製化安排規劃
    • 上課時間可自由動態調整(與講師討論確認即可)
    • 上多少課程付多少費用,上課費用每次結清,可自由決定上課時數,不必被強制綁死整個系列課程,不須要在事前就將系列課程的所有費用付清
    • 課程內容重視 基礎理論原理基礎 與 實務技術的訓練,並不是只讓學員按照範實驗例的那種表面上讓功能work的課程。
    • 可從嵌入式軟韌體相關產業職缺與狀況之相關觀念開始輔導,與坊間補習班偏向制式化的課程性質有所差異
    • 可協助企業針對企業公司內部工程技術研發開發人員進行嵌入式系統技術培訓輔導


  • 歡迎下列類型的朋友來信洽談:

1. 已經身在業界、自身原本工作內容並非工程師但有興趣踏入電子、資訊產業的軟韌體開發工程師職缺,但不知道該怎麼做、感到茫然的朋友

2.     已身在業界,但覺得自己對於工作內容之專業基礎仍然不太熟悉、希望加強基礎奠定的朋友。 

3. 覺得在大學本科系學了四年或六年(加上碩士班的兩年)還是覺得沒學到什麼紮實的專業技術,自己不太知道要如何找到確切方向及目標的朋友

4. 原本為非電資工程本科系背景,但有意願希望能轉職(轉行)至電機電子資訊相關產業就職(尤其是嵌入式系統、軟體、韌體開發工程師相關職缺)的朋友

5. 學校專題或學位論文研究所需技術基礎輔導 (嵌入式系統、物聯網平台 方向相關,如STM32、Raspberry Pi、Arduino、8051、Atmega(AVR)系列等,或者其它嵌入式系統相關平台)

6.   希望應徵科技業 韌體工程師之 求職者所需之應徵諮詢服務(包含學經歷整理、履歷製作過程、面試應對等經驗分享與指導)

7.    希望推甄(甄試)電機/電子/資工系 相關系所之研究所碩士班之學生 (可提供指導諮詢服務,包含系所選擇、研究方向分析建議、備審資料製作、指導教授選擇、畢業後未來工作方向分析 建議等)


  • Q&A

相關文章: 

【這個學習區開設的課程目標是什麼? 要找科技業軟體開發相關的工程師工作,不是靠名校碩士學歷或者刷Leetcode比較快嗎?】 

【課程原則】 賺錢很重要,但還有其它更重要的事! 關於我開設課程的原則


    附上幾篇過去的嵌入式系統相關觀念教學文:

    1. ARM Cortex-M3 CPU bit-banding功能機制講解,以STM32F103最小系統開發板之GPIO範例程式為例

    2. 【你所不知道的Arduino】Arduino UNO電源選擇電路之設計機制與動作原理分析 & 實際進行實驗量測結果之差異探討

    3.   現代計算機系統核心硬體常見平台的分類與簡介概述

    4.   Arduino到底是什麼? MCU又是什麼?

    5.   許多人對於8051 MCU的常見錯誤觀念闢除

    6.  適合學習Embedded Linux及RTOS的開發板


    【若需要上述技術輔導課程,可email來信洽談合作方式: iws6645@gmail.com】


    本學習區之Facebook粉絲頁如下: