這是第一百篇文章,不是學術理論文章,也不是工程技術說明,只是一個單純的生活回顧文.這幾年的變化很大,對許多年輕人來說,看部落格應該不是件流行的事情.對我這個老人來說,用文字方式來表達想法,是一個比較嚴謹的方式,畢竟是腦筋思考過,文字修飾過的產物.除此之外,還能練習自己的中文寫作能力,讓自己的頭腦繼續保持對文字寫作的熱情.從 2019 年開始,我的工作和生活有些改變,所以讓我沒有太多空餘時間能整理自己的腦袋來寫部落格的文章,特別是那種圖文並茂的技術說明文章.回顧來看,前面許多文章都是我用小畫家或是 Powerpoint 一個框一個箭頭去畫下來,然後再上傳到 Github 做儲存空間.這一路走來,我收到了一些讀者回應,大部份的人都是來謝謝我寫出那些文章,幫助他們了解背後的原理.非常感謝這些讀者們的回應.誠如第...
#91 如何寫有影響力的履歷表
根據 Facebook 社團上的成員資料,目前三百多位成員裡有將近 40% 成員的年紀在 34 歲以下,因此,希望這篇文章可以提供年輕人有關撰寫履歷表內容時的參考.
一般來說,我會把履歷表的寫法分成兩種,一種是屬於年輕工程師的寫法,另一種是資深工程師的寫法,我將年資不到十年的人定義為年輕工程師,所以可能是在 32 - 36 歲之間,就看你在幾歲從學校畢業.在這年資以下的人,撰寫履歷表時應該要著重在技能的部份.也就是說,你得在履歷表上說明你用過了那些工具與方法來製造軟體系統,以及你運用了那些專業知識 (課本上學的) 在你的工作上.比如,某個年輕工程師從事電商系統前端功能的開發,屣歷表上就需要清楚說明用 Javascript/TypeScript 寫了什麼東西,是否用到其他的 framework,如...
#85 如何聘用適合的軟體工程師
如果你是一個團隊的領導者,尋找適合的軟體工程師一定是你份內工作裡不會缺少的一項任務.我這邊採用 "適合的軟體工程師" 而不是用 "優秀的軟體工程師",其主要原因在於每個團隊的任務與能力不同,所以無所謂的優不優秀,只要是適合的人,對你團隊來說都是優秀的.人們常說 "物以類聚",這句話適用在許多人類的活動裡,對於建構一個軟體開發團隊而言,其實也是適用的.真正優秀的工程師對於技術含量低的工作通常不見得感興趣,相同地,能力不好的工程師也無法在技術含量高的團隊裡存活下來.這些原因可能來是一個現實的條件 - 薪資.一般而言,薪資高的工作對於工程師的品質也會要求較高,相同地公司付出的薪水也會比較多.這是一個很簡單的經濟學原理 Supply-Demand 的觀念.一個健全的社會裡都是有這樣的現象.因此,身為團隊領導者的你首先必須思考一件事情,你需要什麼程度的軟體工程師.在你設定下了一個範圍之後,接下來的問題便是該如何衡量一個軟體工程師是否適合.以下是我的做法,已經行之有年了,這些做法並不是我發明的,只能說是被...
#77 部落格的原始動機與人生所需的財務智商
這篇文章來分享二個主題,第一是為何我開始寫這個部落格,第二是人生所需的財務智商.
我在 "大毛電腦科學筆記" 裡從 2015 年 3 月開始寫下第一篇文章到現在已經有三年半的時間了.剛開始的第一年,由於我沒有設計任何的讀者回饋方式,因此第一年並不知道寫的內容是否有用.後來第二年開始加入 Google Form 讓讀者們可以留下回饋資訊,並且也為網站上加入 Google Analytics 用來查看網站的流量資訊.大約一年前成立了 Facebook 社團以及舉辦公益課程來做為另一種推廣此部落格的管道.從去年 (2017) 開始,我陸陸續續收到一些讀者們的回饋,有些是單純地謝謝我寫這些淺顯易懂的內容,也有些是來問我一些工作上的問題.謝謝大家的捧場和問題讓我知道這個部落格已經發揮了一些作用.其實,我最早的想法並不是寫部落格,而是打算把所有的資訊匯集成冊出版用.早在十年前,我收集了以前在台灣和美國念的上課筆記,打算將這些內容寫成書來出版.但可惜,後來因為搬家緣故,那一大本的筆記已下落不明,所以把筆記匯集成書的想法便中斷了.但我並沒有忘記要分享電腦科學的基礎知識這件事.後來心想,匯集成冊需要大量時間並且有出版時程的壓力,於是...
#67 IT人生 - 有關你的銀行戶頭
最近工作上和生活上寫太多 code 了,用了許多腦筋,於是今晚決定來休息一下 ,來寫篇與 IT人生有關的事情.今天的主題將和錢有關係.
由於我花了太多的時間在學校,當我在博班三年級決定離開學校去工作時,我已經三十五歲了.當時的我,口袋沒什麼錢,只是一個剛離開學校的窮人.以前二十多歲時雖然也沒什麼存款,但錢這件事並沒有真正對自己產生很大的衝擊.這樣的情況在我三十五歲離開學校後沒多久有了很大的改變,因為我當時看到了一個調查.這份調查是台灣一份財經雜誌,針對台灣三十五歲以上的人所做的調查.這份調查的內容主要是詢問被調查者在三十五歲時是否擁有超過一百萬以上的資產.根據這份調查結果,75% 左右的調查者在三十五歲時並沒有一百萬元的資產.當時才發現自己也是在 75% 的這一群人中,仔細想想,一百萬並不是很多的錢,許多人都當成是人生的第一桶金,而自己連第一桶金也沒有,這似乎是件不太妙的事情.在那之後便讓我開始重視有關錢的事情.首先要做的功課就是除了一般的工作薪資以外,還有什麼方式可以增加收入,好為自己的未來與退休生活做準備.接著找了許多資料和評估自己的情況後,我選擇的方式是...
#59 出國工作的 Why and How?
如果自己的家鄉有個地方可以滿足自己的理想並且能得到好的待遇,我相信大部份的人會選擇留在自己的家鄉工作.就像在花蓮台東長大的孩子,若是踏上了軟體開發一途,幾乎應該都會離開自己家鄉到北部或其他地方找工作,一來工作機會多,二來待遇也比較好.相同地,如果台灣的資訊業滿足不了你的理想或期望的待遇,你一定也希望找台灣以外的機會.但從台灣到國外並不像從花蓮到台北那樣地單純.所以,我寫這篇文章是用來留下一個記錄,讓年輕人參考有什麼方式可以進行.
再談論可行的方法之前,請先好好想一想你為什麼想出國工作.以下的原因可能是大部份人的答案:
為了理想: 希望到具有規模的軟體公司接受更多的考驗來充實自己的人生經驗.
為了更好的待遇: 台灣薪資普遍低落,想追求更好的薪水.
原因可能有上百種,但這兩種應該是符合大多數人的答案之一.水往低處流,人往高處爬,這是再自然不過的事情.因此,我先就這兩個原因說明.
第一,為了理想.以台灣的純軟體開發產業來說,真的不多,若你還想找個有軟體產品賣向全世界的公司,可能用手指頭就數完了.畢竟,台灣的整體...
#55 當兵,我的 IT 人生起點
這一篇文章講的是將近二十年前的人生故事 - 當兵,我的 IT 人生起點
當兵,這是一個身為台灣男人都避免不了的過程.除非身體上有不適合的,不然每個男人都得去當兵.對許多人來說,當兵都是很辛苦的,可能是在辛苦的步兵連或每天要顧著大砲的砲兵連,甚至是在特種部隊.不管是在那裡,每個人所經歷的辛苦都是不同的,每個人所留下最深的回憶絕對不是退伍那一刻的光榮或快樂,最深的回憶往往是那些被操的最辛苦的時候.如果你也當過兵,我想你也會同意我這樣說.然而,當兵對我來說卻是我的 IT 人生的起點.雖然也是辛苦,但卻不是身體上勞累,而是承受較多的心理壓力.故事是這樣開始的....
在大學剛畢業沒多久後,我收到區公所的通知要去抽籤,那一天只有兩個人需要參加抽籤,我是其中一個.當時我覺得奇怪,怎麼只有兩個人而己.到現場了之後,有位長官就拿著一個小布袋,聽的出來布袋裡有很多的籤,然後他拿起了一些海軍陸戰隊的籤丟到小布袋裡,同時提醒我和另一個仁兄說,這布袋大約有十多個海軍陸戰隊的籤,然後就祝我們好運了.另一個仁兄先抽,他抽起來後,其中一位長官說:...
#43 StackOverflow.com 2016 年度調查 - 有關畢業科系
調查網址 http://stackoverflow.com/research/developer-survey-2016
Stack overflow 在美國的資訊業界是個名氣響亮的網站,很多開發者都會在這邊做技術問題的問答與交流,因此這網站可說是許多 IT 產品的技術知識庫.在前陣子,他們公布了今年度的調查,調查的內容很廣泛,從年紀,性別,職業,薪水,國家,開發工具,程式語言等等,在最上面的網址可以看到他們調查結果的報告.
在這報告裡顯示了台灣有 76 個回答問題的人,這人數的確是蠻低的,不知道是不是因為英文的關係而讓參與討論的人數與訪問該網站的人數呈現很大的落差.從職業的角度來看,web developer 的人數是最多的 (full stack + front end +...
#24 我的 IT 人生 - 簡短篇
這一篇內容我不談資料結構,也不談資料庫,更不談寫程式,我來簡單地談一談自己的 IT 人生.
在我還是高中生時,當時有接觸一些電腦課,學會了操作 MS-DOS 系統,也會寫一些簡單的 BASIC 程式,對電腦的確是有相當興趣,但還沒想過要把它當成一生的工作方向.後來,念了大學之後,我念的是機械工程,原本我的打算是想要念電機工程,因為自認為在物理課本中,電學念的比力學好很多,不過也奇怪,我當時還是把機械工程填入到志願卡裡,若我印象沒錯的話,我記得我的志願卡裡還有土木工程電子工程等等相關的工程科系.大學四年就這樣念到畢業了,說實在,到現在我還是覺得大學那 4 年似乎是浪費的,因為我現在沒需要用到任何機械工程的知識.不過,人生就是這樣,現在回過頭來看,就當做是用人生的時間換來了一些人生經驗.
接著,學校畢業後就直接去當兵了.我想這是我整個...
#16 我是非電腦科系的,真的需要懂這些嗎 ?
這問題其實一個很好的問題.
我假設你是個非電腦科系畢業出身的軟體工程師,回想一下,你當初憑著自己的邏輯能力學習如何寫程式,也學習如何善用大家所熟知的 framework,便可以應付自己工作上所遇到的問題.我想那是因為你的工作以及所面臨到的專案都是屬於商業型導向的應用程式.我所謂商業型導向的應用程式就像是你在金融界中工作,每個需要處理的就是把資料讀出來做報表,或把資料新增進去到資料庫,或是把這資料用某一種格式包裝起來,然後傳到其他的系統再做更多的資料處理.又比如說你在不同領域裡做該領域的工作,例如在航空公司做訂票系統,在電信公司做帳務系統,在電子商務公司做庫存系統.這些軟體工作其實在台灣是佔大多數的.所以,在這些工作中,若你沒有懂這些資料結構或演算法,你照樣也可以把程式寫出來,系統照樣地可以上線,公司照樣可以營運賺錢.因為我自己也曾有過這一段路,所以我知道是可能的.
不知你是否曾問過自己,我怎麼知道我寫的程式是不是好的,我該怎麼評估,或是別人又會怎麼看待我的寫程式能力.我相信非電腦科系畢業的人在做軟體工程師時一定會有這樣的問題.如果你有這樣的問題,很恭喜你,因為你的內心對知識有了渴望,因為你想知道自己的能力或寫程式的技巧是在什麼程度.所以,最好的方法就是回到事情的本質去找答案.因此,資料結構是需要懂的,演算法也是需要懂的,但我們並不用像...