The two most important days in your life are the day you were born and the day you find out why. -Mark Twain

顯示具有 IT人生 標籤的文章。 顯示所有文章
顯示具有 IT人生 標籤的文章。 顯示所有文章

#91 如何寫有影響力的履歷表

根據 Facebook 社團上的成員資料,目前三百多位成員裡有將近 40% 成員的年紀在 34 歲以下,因此,希望這篇文章可以提供年輕人有關撰寫履歷表內容時的參考.

一般來說,我會把履歷表的寫法分成兩種,一種是屬於年輕工程師的寫法,另一種是資深工程師的寫法,我將年資不到十年的人定義為年輕工程師,所以可能是在 32 - 36 歲之間,就看你在幾歲從學校畢業.在這年資以下的人,撰寫履歷表時應該要著重在技能的部份.也就是說,你得在履歷表上說明你用過了那些工具與方法來製造軟體系統,以及你運用了那些專業知識 (課本上學的) 在你的工作上.比如,某個年輕工程師從事電商系統前端功能的開發,屣歷表上就需要清楚說明用 Javascript/TypeScript 寫了什麼東西,是否用到其他的 framework,如 Angular 等等,並且做過那些功能,如購物車系統,付款流程,購物體驗等等.把這些東西寫清楚來,讓看履歷表的人明確知道你過去曾用過的工具以及熟悉的產業環境是什麼,這樣能幫助雇主加快認識你的速度.

為什麼年輕工程師要寫這樣的內容呢 ? 因為年輕工程師通常被給予的任務是小而明確的,如解 bug 或做一些小功能.履歷表上寫一些技能類的事情可以幫助未來的雇主知道你過去做過些什麼,也能幫助雇主評估是否要找你來進行面試.

如果 32 - 36 歲以上的工程師 (超過十年的業界經驗),理論上來說,在業界工作了十年應該要達到資深工程師的水準了.我猜想在台灣的公司對於職稱上的給定標準並沒有一致且較寬鬆,所以中小企業或是非資訊科技領域的公司做了三五年後就能得到資深工程師的職稱.在規模大且制度嚴謹的公司裡,要在三到五年內拼到資深工程師是件不容易的事情,資深工程師的履歷表就應該著重於有關 "影嚮力" 的事情,比如,製造一個付款交易系統,讓整個網站可以在一分鐘之內完成 n 筆交易,使得網站可以承受 m 個使用者的流量.再舉另一個例子,重新製造了購物車系統,讓原本客戶評價極差的用戶體驗變成零負評的新體驗,並且讓網站提升 n % 客戶滿意度.再舉另一個例子,製造了一套基礎建設程式庫用於處理公司內所有系統的溝通機制,將原本平均一分鐘執行時間的動作提升至十秒鐘完成.或是一個更利害的例子,製做了一個很利害的 open source software,放在 Github 上得到了 n 顆星星,造福了世界上許多的軟體工程師.透過這些簡單例子,我相信你一定明白我所謂的 "影響力" 是什麼意思了.

回過頭來,並不是說年輕工程師就不用寫影響力.對於年輕工程師而言,如果你可以寫出令人信服的影響力,一定要寫下來,因為那些都是能讓你換到新公司時談職位與薪水的利器.

不論你寫的是技能比較多或是影響力比較多,千萬要記得別亂寫或是誇大地寫.若有機會面試時,這些技能和影響力是很容易被檢查出來的,一旦面試官發現你在 "唬爛" 時,你有可能永遠不會出現在這公司的面試名單裡.

履歷表內容的基本上包含了你的個人基本資料,工作經歷,學歷,技能以及一些參考資料.以我的經驗來說,我會將影響力放在工作經歷的內容裡,所以每一個工作都會是一段描述,而不是一行文字只包含公司名稱,職位名稱和時間而己.通常來說,一到兩頁的履歷表就應該要把你自己說明清楚,過長的內容,雇主很容易跳過不看,因為有名的公司每天都會收到很多履歷資料,沒有人會把細節看完.同時也要告訴一些年輕的工程師,工作要慎選,常常換工作並不是一件好事情,技能的程度高低也許不會受到換工作的影響,但我相信影響力是需要時間累積的,若常常換工作,則很難說明與說服其他人你在短時間裡能在一家公司做出有影響力的事情! 所以,找新公司時要好好想清楚,工作經歷就像是學歷一樣無法抹去也無法作假的,因此,在換公司時也要好好想想你該如何在新公司做出影響力的事情.同時這個題目也可能當成你和你老闆一對一面談時間裡的內容.

Hope it helps,

Share:

#85 如何聘用適合的軟體工程師

如果你是一個團隊的領導者,尋找適合的軟體工程師一定是你份內工作裡不會缺少的一項任務.我這邊採用 "適合的軟體工程師" 而不是用 "優秀的軟體工程師",其主要原因在於每個團隊的任務與能力不同,所以無所謂的優不優秀,只要是適合的人,對你團隊來說都是優秀的.

人們常說 "物以類聚",這句話適用在許多人類的活動裡,對於建構一個軟體開發團隊而言,其實也是適用的.真正優秀的工程師對於技術含量低的工作通常不見得感興趣,相同地,能力不好的工程師也無法在技術含量高的團隊裡存活下來.這些原因可能來是一個現實的條件 - 薪資.

一般而言,薪資高的工作對於工程師的品質也會要求較高,相同地公司付出的薪水也會比較多.這是一個很簡單的經濟學原理 Supply-Demand 的觀念.一個健全的社會裡都是有這樣的現象.因此,身為團隊領導者的你首先必須思考一件事情,你需要什麼程度的軟體工程師.在你設定下了一個範圍之後,接下來的問題便是該如何衡量一個軟體工程師是否適合.

以下是我的做法,已經行之有年了,這些做法並不是我發明的,只能說是被 "同化" 後的結果.

1. 設定基本功夫的內容

既然是從事軟體開發的工作,你得先確保來面試的人具備基礎的資料結構與演算法的頭腦. 若是你資工相關科系畢業的,你應該能明確深刻的體驗到軟體工程師的工作就是將專案中的問題轉換成程式可以操作的模型,然後在電腦的架構下,不斷地在這些可操作的模型上做 "資料處理" 的動作,最後將結果產生出來.在這過程中,了解資料結構是一件非常重要的基礎.你可以從前面的文章裡了解到一個軟體工程師對資料結構的熟悉度將決定了程式的好壞 (Time complexity and Space complexity),最終將會影響到整個專案的品質.

如果你團隊的工作是一般簡單的資料處理網站,使用者在表單上輸入資料,然後在其他表單上輸出資料.類似這樣的工作,你至少得確認你的軟體工程師懂得 Array, List, Stack, Queue, Hash table 這些基本的資料結構以及相關的應用.如果你團隊是製造一個資料庫引擎,那麼 Tree/Graph 的操作與相關應用將會是你團隊裡所需要的最基本的功夫.

透過考試來了解面試者的情況是最快速的方法之一.但我通常不建議拿一般市面上的考題.我建議的方式是準備一個在你過去的專案經驗裡值得拿出來當考試的題目.這是一個真實世界的問題,所以題目內容是容易能面試者明白為什麼是這種考題,同時也能讓面試者體會到未來有機會進來工作時,面對的情況這類似是這樣.通常準備一個簡單的和一個難的題目.

2. 設定操作工具的熟練度內容

世界上有許多程式語言以及相關許多不同的產品與工具.如果你需要的是一個可以盡快上戰場協助團隊的軟體工程師,那麼你便需要確保來面試的人員具備相關工具的知識與熟練度.例如,團隊的工作裡需要大量用到 Visual Studio/Microsoft SQL server 來進行專案開發,則你必須確認面試的人們對這些工具是熟悉的.最簡單的方法就是上機考.透過上機考的過程,你便可以清楚知道面試者對一個工具操作的熟悉度是在什麼程度.

3. 設定其他所需知識的領域

若專案是用關聯式資料庫做為 repository 時,你必須確定面試者具備 ER Model 的知識以及相關的知識,如 Index 的設計等. 若專案是用物件導向的方法來開發時,你必須確定面試者明白什麼是 class, object, 以及其他物件導向的原則與應用.同樣地,透過考試是最能直接明白面試者的情況.我在這邊也是給相同的建議,那就是考試的內容最好是團隊過去所面臨過的情況,分別找出簡單與難的問題來做為面試題目.

4. 設定人格特質

每個團隊都有一種 "文化",這種文化的事情實在困難說清楚,而這種文化確會大大地影響整個團隊的產出和品質.身為團隊領導者的你必須了解到團隊的文化是什麼,然後將這些文化融入在團隊的運作過程中.比如,沒有經過 review 的 code 不能 check-in source control, 沒有加上 unit test 的 function 不能 check-in source control.類似這樣的事情讓面試者了解到團隊運作是有規則地運行.因此,態度散漫或不夠嚴謹的人自然無法能適應這種文化.

分享一個以前的經驗,我多年前參加一個公司內部的面試,面試的過程中,那位老闆不斷地提出許多問題來轟炸我的思緒,除了看我的反應以外,也看我能不能耐住性子來穩健地解決問題.他們團隊的工作是一個線上問題支援的網站服務,所以工程師們必須 on-call 並且有抗壓的能力.

一個適合的軟體工程師除了要寫出符合團隊期待的程式碼品質以外,還要執行團隊所規定用來幫助便於軟體管理的事情.要盡量讓一切的團隊活動都是在可受控的範圍內,這是團隊領導者非常需要的.

最後,找工作是緣份,找到適合的軟體工程師也是一種緣份.千萬別為了補滿工程師的人數而濫芋充數,因為最後倒霉的將是整個團隊,這是團隊領導者最需要注意的事情之一.


Share:

#77 部落格的原始動機與人生所需的財務智商

這篇文章來分享二個主題,第一是為何我開始寫這個部落格,第二是人生所需的財務智商.

我在 "大毛電腦科學筆記" 裡從 2015 年 3 月開始寫下第一篇文章到現在已經有三年半的時間了.剛開始的第一年,由於我沒有設計任何的讀者回饋方式,因此第一年並不知道寫的內容是否有用.後來第二年開始加入 Google Form 讓讀者們可以留下回饋資訊,並且也為網站上加入 Google Analytics 用來查看網站的流量資訊.大約一年前成立了 Facebook 社團以及舉辦公益課程來做為另一種推廣此部落格的管道.從去年 (2017) 開始,我陸陸續續收到一些讀者們的回饋,有些是單純地謝謝我寫這些淺顯易懂的內容,也有些是來問我一些工作上的問題.謝謝大家的捧場和問題讓我知道這個部落格已經發揮了一些作用.其實,我最早的想法並不是寫部落格,而是打算把所有的資訊匯集成冊出版用.早在十年前,我收集了以前在台灣和美國念的上課筆記,打算將這些內容寫成書來出版.但可惜,後來因為搬家緣故,那一大本的筆記已下落不明,所以把筆記匯集成書的想法便中斷了.但我並沒有忘記要分享電腦科學的基礎知識這件事.後來心想,匯集成冊需要大量時間並且有出版時程的壓力,於是 2015 年初便改用部落格的方式進行分享.這樣一來,沒有時間壓力,可以一篇一篇慢慢寫.最主要的想法是要將電腦科學裡的基礎知識分享給在資訊界裡非本科系畢業的資訊人.與其說是分享,也可以說是一種對自己人生中某幾段求學和工作過程的記錄.誠如我在 "有關作者" 的頁面裡所寫的,我自己在大學時念的是機械工程,但因緣際會的人生巧合,我轉換跑道到電腦科學,在台灣待過一般的軟體專案公司,然後也在美國待過所謂的大型軟體公司進行軟體產品的開發工作.這一路走來,像我這樣在大學時學非所用然後因好運氣而進入到大公司參與軟體產品開發的人應該是相當少見,也因此更激勵我把許多知識和心得分享出來.一方面希望能幫助或鼓舞其他人,另一方面也為自己的 IT 人生留下一些深刻而明確的記錄.在這三年半的時間裡,記錄了文章大致上有資料結構,資料庫系統,些許的程式設計,以及正在撰寫的演算法.後續的內容還會有更多的程式設計,作業系統,分散式系統,甚至影像處理,人工智慧,以及其他大家有興趣的內容.我自己並未設限要寫到什麼情況下才算結束,就一切隨緣吧! 根據這一年來的網站流量資料,每個月大約有二百個連線拜訪這個部落格,若以網站經營的角度來看,這是一個流量超級低的網站.不過,這部落格不是以營利為出發的網站,除了 domain name 要花些錢註冊以外,其他都是免費資源,因此沒有營利需求.大部份拜訪到此部落格的使用者都是經由 Google search 而來的.這些網路上來的使用者都是經由關鍵字搜尋而找到此部落格,例如搜尋 Heap file, database B-tree 等等.因此,有緣來拜訪此部落格的朋友都會對這裡的文章感到興趣,也是這樣的情況,我才會從去年開始陸續收到網站拜訪者的留言與回饋.若你有任何建議,也別忘了留言告訴我.

之前我曾在 IT人生 的系列文章中提到一個與銀行戶頭有關的文章.簡單地講就是 "錢".這也是一般年輕人比較容易忽略的事情,但這件事情卻又是如此地重要.對我自己而言,錢能提供的不是成就感,而是一種安全感.在你依照自己的目標追尋自己的成就感時,有點錢在身邊是一種安全的保障,能幫助你應付一些緊急的狀況.也許你可能會覺得找份工資高的工作不就好了,我也希望事情有這麼簡單就好了.以許多進步的國家來看,來自國家所設計的保障在未來都是有倒閉破產的風險,像是台灣的勞工保險 (非勞工退休金),在未來某一天也會因繳的人少且領的人多而面臨入不敷出的情況,既便是像美國的 Social Security 在未來的十幾二十年後也是會面臨同樣的問題,這樣的問題在許多國家都存在.因此,只想要依靠當初政府所設計的保險制度來領取退休金的人們要小心了,因為錢不一定領的到.我相信大部份的讀者都是二三十歲的人,離退休還有很長的一段路.因此,要讓自己保有良好的 "財務智商" 是相當重要的事情.不論你從事什麼樣的工作或是領多少薪水,財務計畫和規畫是每一個人都不該錯過的課題.自己的退休金最好還是要自己先準備好.所以,我才會特別強調這件事情讓還沒準備的讀者們要想一想這件事.如果你願意花假日的時間去上課學習一些新的軟體產品與開發技術,那何不也花一些時間讓自己學習有關 "錢" 的事情.你花時間學了一個新的產品或技術,頂多只能用個三四年,然後就有新的版本或新的技術需要學習,成本是很高的.若你學習有關 "錢" 的事情,那是一輩子受用的事情,不會有什麼每隔幾年得重新學習的情況.最近,我在 YouTube 上看到兩個年輕的台灣網紅 (柴鼠兄弟),他們錄製了許多的短片,每一個短片都用淺顯易懂的方式來說明與投資理財有關的內容,這就像我喜歡用淺顯易懂的方式來描述許多電腦科學裡的知識一樣,因此我非常喜歡他們的影片.我強烈建議對 "錢" 還沒什麼概念的讀者們可以看看他們的影片來增加自己的財務智商,為你未來的生活增加財務上的安全感.

Hope it helps,

Share:

#67 IT人生 - 有關你的銀行戶頭

最近工作上和生活上寫太多 code 了,用了許多腦筋,於是今晚決定來休息一下  ,來寫篇與 IT人生有關的事情.今天的主題將和錢有關係.


由於我花了太多的時間在學校,當我在博班三年級決定離開學校去工作時,我已經三十五歲了.當時的我,口袋沒什麼錢,只是一個剛離開學校的窮人.以前二十多歲時雖然也沒什麼存款,但錢這件事並沒有真正對自己產生很大的衝擊.這樣的情況在我三十五歲離開學校後沒多久有了很大的改變,因為我當時看到了一個調查.這份調查是台灣一份財經雜誌,針對台灣三十五歲以上的人所做的調查.這份調查的內容主要是詢問被調查者在三十五歲時是否擁有超過一百萬以上的資產.根據這份調查結果,75% 左右的調查者在三十五歲時並沒有一百萬元的資產.當時才發現自己也是在 75% 的這一群人中,仔細想想,一百萬並不是很多的錢,許多人都當成是人生的第一桶金,而自己連第一桶金也沒有,這似乎是件不太妙的事情.在那之後便讓我開始重視有關錢的事情.首先要做的功課就是除了一般的工作薪資以外,還有什麼方式可以增加收入,好為自己的未來與退休生活做準備.接著找了許多資料和評估自己的情況後,我選擇的方式是 "投資".


投資並不是買樂透,所以不會一夜致富,而是需要透過長時間的慢慢累積才能得到一定的成果,換個簡單的方式來講,在世界上有許多很有希望在未來數年內能快速成長或是獲利穩定的公司,而這些公司中一定可以找到願意將獲利與股東分享的公司,因此只要持有這些公司的股票,享受其股價上升或股息分派的好處.換句話說就是用你的錢去買這些好公司的股份來讓他們幫你賺錢,是一種用錢賺錢的想法.簡單地說這兩三句結論,卻是我用兩三年的時間才決定要採用的投資方式.金融市場裡有許多投資工具,這對我們做軟體的人來說是完全不同的領域,因此自己也必須花時間尋找適合自己的投資工具.


以我自己的情況而言,我選擇的方式是投資某個區域或某個產業的 ETF,比如像台灣的 0050, 0056 等.這類型的 ETF 依照他們的目標將大部份的資金投資在許多的目標公司,因此,這些 ETF 的漲跌和股息將是這些目標公司的總和表現.只要透過長期投入並且將得到的股息再投入產生複利效果,我相信整體的年化投資報酬率一定可以大於 5%.別小看這 5%,想想看,假設你二十年後累積到了二千萬的投資金額,二千萬的 5% 將是一百萬,換句話說,你什麼事都不用做,一年就有一百萬的收入.二十年後在台灣也許一百萬不算很多,但至少可以讓自己過個很安穩的基本生活,而不用擔心中晚年失業或轉業等問題.


接下來,談談另一個與錢有關的事情,稅.在大部份的國家裡,只要有工作收入就得繳稅,這是無法避免的事情.不同的收入所繳的稅率也不同.比如薪資收入和股利收入所採用的稅制就不一樣.少繳點稅也是一種能存下更多錢的方法,但如果你的收入只來自工作薪資,這可能有矛盾.所以,當你在累積資產時,一開始無法降低你的稅,一旦你的投資資產漸漸上升時,股利或是資本利得也將增加,此時你可以有計畫地讓你的薪資 "降低" 以使得稅可以少繳一點.降低的方式有好幾種,比如像結婚,有了老婆和小孩能增大免稅額,比如像買房子或是房租支出,保險支出等來增大免稅額.但這幾年台灣政府對投資的稅制已有點改變,比如證所稅到頭來還是白忙一場,而股利和利息所得還得多扣上一筆健保補充費.這使得台灣股市變成是一個資本利得不用繳稅,但股利所得者卻要繳稅 (所得稅與健保補充費),似乎有點鼓勵大家儘量炒股而主.這情況與美國的稅制剛好相反.目前來看,美國聯邦政府所採取的方式是持有一年內的股票交易所產生的資本利得和股利是計算個人所得後來計算稅務,而一年以上的資本利得和股利是另外一種算法,這算法會比較優惠,而股利也分兩種,一種是 qualified 股利,也就是股票持有數個月之後所產生的股利,這類型的股利對一般人來說幾乎是免費,因為一般人不太會有一年七八萬美元的股利收入,如果有超過,其算法也是比同級距的所得稅率要低,另一種是 non-qualified 股利,也就是股票在持有數個月之內所產生的股利,這類型的股利將併入一般薪資所得來計算.所以,美國聯邦政府的制度似乎對領取股利的人較為有利.不論你在那一個國家,使用那一種投資方式,都需要了解稅制,因為賺到的錢減掉繳出去的錢,剩下來才是真正留在自己口袋的錢.


這一篇文章講的不深入,不深入的原因是每一項內容都是許多的細節所組成,而且不同的人所得到的結果都會不同.自己得依自己情況來計算.寫這一篇文章最主要的目的就是提醒大家,平常除了努力學習新知識,努力學習新技術以外,也別忘了為自己的財富加點新知,別只當個努力工作賺錢而不知怎麼運用錢的工程師.



Share:

#59 出國工作的 Why and How?

如果自己的家鄉有個地方可以滿足自己的理想並且能得到好的待遇,我相信大部份的人會選擇留在自己的家鄉工作.就像在花蓮台東長大的孩子,若是踏上了軟體開發一途,幾乎應該都會離開自己家鄉到北部或其他地方找工作,一來工作機會多,二來待遇也比較好.相同地,如果台灣的資訊業滿足不了你的理想或期望的待遇,你一定也希望找台灣以外的機會.但從台灣到國外並不像從花蓮到台北那樣地單純.所以,我寫這篇文章是用來留下一個記錄,讓年輕人參考有什麼方式可以進行.

再談論可行的方法之前,請先好好想一想你為什麼想出國工作.以下的原因可能是大部份人的答案:
  1. 為了理想: 希望到具有規模的軟體公司接受更多的考驗來充實自己的人生經驗.
  2. 為了更好的待遇: 台灣薪資普遍低落,想追求更好的薪水.
原因可能有上百種,但這兩種應該是符合大多數人的答案之一.水往低處流,人往高處爬,這是再自然不過的事情.因此,我先就這兩個原因說明.

第一,為了理想.以台灣的純軟體開發產業來說,真的不多,若你還想找個有軟體產品賣向全世界的公司,可能用手指頭就數完了.畢竟,台灣的整體 IT 產業結構並不是強於這一塊.早期的那些軟體產品,如作業系統,資料庫系統,程式語言,辦公室軟體或是一些企業用的商務軟體,這些早被許多美國公司和其他國家的軟體公司搶佔了市場.所以這一類型的工作基本上都給在台灣以外才能找的到.較近期的手機作業系統,也早被 Android 和 iOS 把市場括分光了.因此,要做出一個手機作業系統跟 Google 和 Apple 去對拼,以目前來看幾乎是不太可能的事情.因此,在台灣的軟體公司大部份都是做商業用或消費端的應用程式,例如開發 ERP, CRM, 製造業用的 MES 產品等.這類型的軟體除了軟體開發本身的知識外,還需要有其他領域的專門知識,如財務會計或製程等等.因此,你在台灣能找到的軟體工作大部份都是這類型的工作,也就是說用某公司的作業系統,用某公司的程式語言,用某公司的資料庫系統來開發自己所需的商業軟體,這類的工作在許多的國家都有.因此,如果你想做的是這種商業軟體,那就不一定要離開台灣.例如,台灣有許多製造業大廠,全世界沒幾個國家有台灣製造業的能力,因此若要從事製造業的軟體開發,離開台灣不見得能學得較多經驗.如果你想做的不是這種應用程式面的軟體,而是還再往底層走的,如作業系統,程式語言等等,那麼離開台灣到外面找工作看來是必然的.

第二,為了更好待遇.這點其實不需要太多說明了.錢嘛,人之常情,大家都懂的!

接下來,我記錄下我看到的可行方法.

這幾年我在網路上看到有越來越多的人想嘗試著找國外軟體公司的工作.有的人到日本,有人去新加坡,有人遠渡重洋到了歐洲或美國.我之前看到日本 Amazon 到台北招聘人才的消息,裡面曾提到會不會日文不是絕對必要的條件.從招聘的介紹文來看,在日本 Amazon 有許多外國人,因此他們內部反而比較需要英文.我想這是比較特別的例子,貼那文章的是一位已經在日本 Amazon 工作的台灣人,已經有前人成功了,後面的人也可以參考其做法.由於我本身是到美國,所以我分享美國這一條路的情況.通常來說,要到美國工作有幾條路可以選擇:
  1. 透過念書: 來這邊念個大學或碩士 (網路上俗稱洗學歷),畢業後就可以合法找工作.在美國找工作的競爭很大,因為實在太多人,每年都有一堆中國和印度來念 computer science 的學生,而且美國政府每年釋放的工作簽證有一定的限額,所以不代表你找到工作就沒事了,因為沒抽到工作簽證的話,還是得打包回家.我覺得許多事情一切都是緣份,不用太強求.幾年前,我工作的單位來了個剛畢業的印度人,想想他也好不容易找到了在微軟的工作,但偏偏運氣不好就是沒抽到工作簽證,最後只能打包回印度去.一般的大公司比較不會要求求職者要有美國公民或具綠卡的身份,但許多小公司就比較會要求.因此,無形中也造成要擠進大公司還真的不光是實力的問題,還需要有運氣.
  2. 透過公司內轉: 如果在一般美商公司而且他們在台灣或是你工作的國家裡有分公司的話,透過公司內轉到美國也是一種方式.例如,從台灣 Google 到美國 Google, 從中國微軟到美國微軟等等.
  3. 到美國自行創業: 這需要許多資金,我想這應該不是大部份的人會走的一條路.
  4. 取得合法身份到美國後再找工作: 我以前念書時,有一位中國來的同學,他老婆跟著他一起到美國來念書,後來他老婆找到了一家小公司的工作.相當利害,但這需要轉換簽證,因為陪老公念書來的簽證和一般工作簽證不同.
如果你還年輕 (如三十歲以下),我會建議你走第一條路.在美國找科技業的工作,最好還是有一張美國學校的學歷.如果你想要到好一點的公司,那麼學校最好是榜上有名,也就是大約在美國排前一百名的學校.另外,在學校念書時,也能讓自己加強英文的聽和說,這是很重要的部份.即便是你考過 TOEFL 到美國來念書,那還是差很多.因為你要加強的不僅是老美的英文,你還得熟悉各地的口音,因為工作後遇到的人可能來自不同的國家,尤其是印度人很多.想要跟他們打交道,還真的得多練習聽懂他們的英文.

在美國這裡的科技業文化跟亞洲的許多公司有很大的差別,工程師也是可以做到年紀很大的,我想這是一般亞洲公司比較難發生的,我想在台灣公司也是如此.所以,在美國做技術職不見得會比管理職差.

如果你只是為了更好的待遇而想出國工作的話,我提供以下的資料給你參考.以我在西雅圖的生活以及在微軟公司從事工程師待遇做為例子.
  1. 薪資: 在微軟公司,剛畢業的社會新鮮人或是應徵初階工程師的人,年薪大約是十萬出頭美元.微軟公司給的薪資不是最頂尖,但也算不錯.如果是到 Facebook 或 Google,有機會可以再高一點.
  2. 所得稅: 以年薪十萬出頭來說,單身的人要繳的稅大約是 30%,如果是一個小家庭有老婆小孩要養,稅率大約是 20%.
  3. 房價: 西雅圖這房價這幾年漲的很多,我現在租屋處的對面剛蓋好了新房子 (town house),每一戶有三層樓,三層樓一共面積大約 56坪,一樓是車位,二樓是客廳廚房,三樓是寢室,要價 86 萬美元,這價錢也差不多可以在台北市買個不錯的公寓,而在我這區域每年要繳的房屋稅,這可是比台北的房屋地價稅高很多.
  4. 房租: 我以前也曾在台北租過小套房,以我經驗來看,等級差不多的公寓,在房租上西雅圖 (非市中心) 比台北 (市中心) 高個 2 - 3 倍左右.
  5. 醫療: 微軟公司提供不錯的醫療保險,若看一個小病 (如發燒,喉嚨發炎),自付費用可能是一兩百美元.是的,你沒看錯,是美元.你該好好珍惜台灣的醫療資源和便宜的費用.前幾年,我有次去看了心臟專科,看了醫生,照了心電圖,照了超音波,抽個血檢查,事後醫生打電話跟我說明結果,這樣子的診療自付額是四百多美元.請記得我前面說了,微軟公司提供不錯的醫療保險,如果沒提供那麼好的醫療保險,那麼自付額的比例將會拉高.
  6. 吃飯: 這裡在外面餐廳吃飯貴,我在附近一間便宜餐館吃中飯跟你在台北 101 地下樓的美食街吃一頓是差不多的價錢.
大致上粗略地算一下,如果你在台灣已經有了一百多萬到兩百萬的年薪的話,那麼到美國西岸來工作不見得能比你在台灣能存下更多錢.若看長遠一點,在台灣年薪兩三百萬應該是工程師薪資的天花板了,在美國,如果你能做到資深工程師的位置或是當上主管的話,純以金錢考量是值得來這拼一下的.

最後,每個人都有權利選擇自己的人生,看你要的是什麼,就努力把時間花在那上面,讓自己的人生能豐富精彩些.

Hope it helps,

Share:

#55 當兵,我的 IT 人生起點

這一篇文章講的是將近二十年前的人生故事 - 當兵,我的 IT 人生起點

當兵,這是一個身為台灣男人都避免不了的過程.除非身體上有不適合的,不然每個男人都得去當兵.對許多人來說,當兵都是很辛苦的,可能是在辛苦的步兵連或每天要顧著大砲的砲兵連,甚至是在特種部隊.不管是在那裡,每個人所經歷的辛苦都是不同的,每個人所留下最深的回憶絕對不是退伍那一刻的光榮或快樂,最深的回憶往往是那些被操的最辛苦的時候.如果你也當過兵,我想你也會同意我這樣說.然而,當兵對我來說卻是我的 IT 人生的起點.雖然也是辛苦,但卻不是身體上勞累,而是承受較多的心理壓力.故事是這樣開始的....

在大學剛畢業沒多久後,我收到區公所的通知要去抽籤,那一天只有兩個人需要參加抽籤,我是其中一個.當時我覺得奇怪,怎麼只有兩個人而己.到現場了之後,有位長官就拿著一個小布袋,聽的出來布袋裡有很多的籤,然後他拿起了一些海軍陸戰隊的籤丟到小布袋裡,同時提醒我和另一個仁兄說,這布袋大約有十多個海軍陸戰隊的籤,然後就祝我們好運了.另一個仁兄先抽,他抽起來後,其中一位長官說: "海軍陸戰隊!".我當時心想,天呀,才剛放進去就被抽起來,有這麼神準嗎? 接下來換我抽,手進去攪拌了一下然後拿出一個籤,"空軍".又是一個天阿,我沒想過我會抽到空軍.結果這時那位長官就說,怎麼前一個跟後一個差這麼多,我想這是一個緣份吧.接著過了一個月左右,我就坐上火車專車到新兵中心報到了.在新兵中心大約一個月之後就要分發部隊了.因為我大學的主科是機械系,所以就被安排到台灣某個空軍基地,也就是某一個機場.如果我的記憶沒錯的話,我那一梯大約有二十多人都被分發到同一個空軍基地.到了基地之後,我們就被安排到一個會議室裡等待基地裡不同單位的長官來挑選.不知你們有沒有過那種等在那邊被挑選的感覺,心情是上上下下,因為被挑走之後,未來將近二年的生活就確定了.我估計我應該會被修飛機相關的單位挑走,畢竟我大學主修是機械系,所以當時就沒有想太多.後來,一切發生的事情就只能用緣份來形容.那時進來了一位年輕少尉軍官,感覺上只是大我個二三歲而己,他進來後就說他是資訊單位的,要挑選會電腦的阿兵哥.我一聽就馬上報名參加他的面試.接著他對每個阿兵哥都做簡單的面試,會問我們對電腦懂多少,有什麼經驗,有沒有當過 BBS 的版主之類的.後來,輪到我時,我跟他說我是機械系畢業,但我會 C 語言,也會用太陽作業系統 (Sun Solaris),而且也會做 HTML 網頁,BBS 也非常熟,並且我中文打字很快.也許我是幸運的,在那一稊的同學中沒有人是資工系畢業的,於是那位年輕的少尉軍官就挑選我了.我就獨自一個人跟著他到他的單位去報到.

這個單位蠻特別的,人不多,但是裡面絕大部份都是職業軍人,而那位年輕的少尉軍官其實是一名資訊預官,他是某間國立大學資工所畢業的,專長是網路工程.整個單位裡只有我跟他是義務役來當兵的.後來我都稱呼這位預官叫崇哥.也許是工作環境與個性的關係,崇哥並不會以軍隊裡學長的姿態來壓榨我,反而幫助我很多.他跟我說之前我這個缺的阿兵哥在我來之前才退伍不久,而他跟我是念同一家大學畢業的但不同科系.想想,這一切應該都是緣份吧.

一開始我在單位上的工作很簡單,由於我是唯一的阿兵哥,其他人都是軍官,所以單位上所有粗重或下等的工作都是我做,例如所有的清潔工作,不管是掃地掃廁所倒垃圾等等.單位裡的老大是一位中校軍官,也是盯我盯的最緊的人,因為他非常注重乾淨.在這單位工作唯一的好處是這些軍官們到了下班時間後就會回家了,所以晚上也是我唯一可以比較輕鬆的時光.

過沒多久後,崇哥丟了一本 “網路通訊” 的書給我,要我把書念一念,因為接下來他要分配一些他的工作給我.他只剩一年就退伍,我猜想他是要我接他的工作吧.那時沒想太多,崇哥要我做什麼,我就做什麼.每天有空的時間就讀那本網路通訊,看了之後才明白基礎的網路原理,包括了網路的類型,區域網路廣域網路等等,還有不同的材料,如同軸電纜或光纖,然後也介紹許多設備,如 Hub, Switch, Router 之類的.最後還介紹 TCP/IP 協定,看完之後讓我對網路有基本的了解,也才知道電腦之間是如何溝通的,也才知道不同的環境下有那些網路連線方式.接下來的幾個月裡,崇哥也會帶我到機場裡不同的單位去拜碼頭,認識不同單位的長官,而其中更重要的是他帶我去看每個單位的網路是如何連接以及相關的設備在那裡.對我來說,這是個很有趣的學習,除了可以從課本上得到知識外,還可以親眼看到那些課本裡講的網路線材以及設備.我想這是開啟我 IT 人生的第一步,而崇哥就是幫助我走上第一步的貴人.

除了遍布整個機場的網路以外,在單位上還有一個相當重要的電腦機房,裡面有一些大型主機執行著一些空軍的電腦系統.漸漸地,我也慢慢被安排做一些日常的機房工作,例如換磁帶等等.我在機房裡看到太陽作業系統的電腦,心裡想這也許是崇哥會挑我進這單位的原因.日子就這樣過了幾個月,依然每天做打掃工作,每天睡覺前去倒垃圾,整理好辦公室,會客室以及長官的辦公官,沒做好的話,隔天早上又被會單位老大罵了.就在崇哥準備退伍前一二個月左右,這時總部來了一道公文,配合新一代戰機,整個空軍的所有電腦系統與設備會進行提昇.其實當時我根本還不知道那些東西是要做什麼的,我還記得當時單位上的軍官們都在恭喜我,我有很多工作要做了,顯然不是件涼差事了.

過沒多久,這項專案就開始了,每天有許多的工人到機場裡面來,在規定的路線上挖土埋管.這是一樣很硬的工程,我是個監工者,每天就跟著這群工人們在大太陽底下工作,每天寫著我的工作日誌.那段時間,我記得我曬到我的耳朵都脫皮了. 還記得有一天傍晚正好在機場的跑道尾端工作,當時滑行道上正好有三架 IDF 戰鬥機緩緩地滑行到主跑道,整齊的編隊,其中一架引擎點火,迅速地衝出去,過沒多久之後就飛上天空,接著另外兩架也依序地升空.當時的我剛好在跑道的尾端看到這一幕,那麼近距離地在戰鬥機後面看到戰鬥機點火並且迅速升空,這真的是一件很酷而且很有視覺震憾的事情.

埋管的工人們完成埋管工程之後,便換來了另外一批佈線的工人,從室外光纖到室內的網路線,我還是都一路跟著跑遍機楊的每個地方.最後換成一批比較高級的工人,我稱他們為工程師,他們架起網路設備,設定 Switch 和 Router,因此那時我也學會基本的 Cisco router 設定.當初崇哥在我一進來時丟給我那本網路通訊一書,在這個專案的過程中可說是發揮的淋離盡致.這個專案前後執行了數個月,在開始沒多久後崇哥就退伍去竹科上班,所以機場裡的網路工程就剩下我這個小兵一肩扛起來.現在回想起來,年輕就是年輕,才有這種勇氣和衝勁.雖然如此,整個單位還是只有我一個阿兵哥,所以我還是得負責單位上的清潔工作.有時在餐廳裡遇到同梯時,有人都表示他們很羨幕我可以在資訊單位工作,上班還可以吹冷氣等等.但我都跟他們說,我們來一年了,你們現在一定都比較輕鬆了,因為你們後面都有學弟一直進來,但我不是,單位上只有我一個阿兵哥,即便是我們來一年了,我還在掃廁所.聽了之後,我的同梯也覺得有好必有壞.但我知道,其實我自己是很幸運的,因為就算是資工系畢業的學生,我想他們網路工程的實務經驗絕對不會有我多,也拜了這次專案之賜真的讓我學了最真實的 IT 工作.這也就是我為什麼說我的 IT 人生起點就是在當兵的時間了.

最後,整個專案的硬體部份完成之後,總部的長官們來視察成果.單位的長官們忙著接待總部來的長官們,然後也派我跟著某個軍官做檢查.這位軍官就說他要進行抽查,到他指定的地點去,然後看所有的電腦與設備是否都正常運作.我就陪著這位長官從機場頭到機場尾,最後抽查完成後,這位長官就拍拍我的肩膀說: "幹的好,辛苦了".那時我心裡有一種爽快的感覺,心裡正盤算著我應該可以放假了吧! 但也有另一種想法湧上來,這網路線連一連,設備設定好,電腦設定好,不就都可以通嗎 ? 難道有人會抽查不過的嗎 ? 後來我請教了這位抽查的軍官,他跟我透露有些單位還真的有遇到網路不通的.沒通也是件蠻神奇的事.在整個專案的執行過程中其實有太多搞笑以及太多辛酸的事情了.搞笑的是常常跟著那些埋管工人們一起工作,聽他們說一堆五四三的事情,一起喝那個對我來說超級難喝的保力達 B, 他們都是做粗重工作的工人,跟他們相處起來卻是最輕鬆,最有人情味.辛酸的是在工地裡騎單車掉到坑裡,受傷不能靠腰,然後無線電的某一個開關保護套掉了卻被長官罵到臭頭.總之,這就是當兵,這就是人生.

故事還沒結束.過沒多久之後,總部又來一個公文,要求每個基地都要架設自己單位的網站.當時我被通知這個消息之後,深刻地覺得崇哥實在太有遠見了,挑選我進來真的是想過的.也許這一切只是巧合,或許是一個緣份.整個單位裡十來人只有我知道怎麼做 HTML 網頁,所以這項工作就由我來執行.當時我就用了一台 PC 裝了 Windows NT Server 做為網站伺服器.那時我對 Windows NT 懂的很少,所以當時有一段學習困難的時間,還好最後也搞定了,最後網站也上線.沒多久後,單位老大說能不能做出像留言版那種東西,可以讓路過網站的人留下一些建議等.我也只能答應老大的要求.因為以前沒有寫過這種東西,不太確定要怎麼寫,還好以前有一點 Perl 經驗,所以就用 Perl 試試看.但寫來寫去,覺得 Perl 超級麻煩,很多內建元件都沒有,許多功能都要自己寫,而且有些東西我也不會寫.於是,就開始找其他的方式.那時,剛好 Microsoft 推出了 ASP.我找了一些 ASP 的資料,試著了解它之後發現這東西實在是太酷太好用了.它內建了許多元件,所以幫助我可以容易地寫入和讀取檔案內容.於是最後決定用 ASP 來做.後來,組長發現我能寫了之後就開始到其他單位去包 “工程” 了,比如到氣象單位去幫他們做一個氣象網站,讓飛行員與其他長官可以很容易地透過瀏覽器就可以看到氣象資料.所以就在那一系列包工程的過程中,我把 ASP 做的很熟練了,而且還學了簡單的美工以及用 Javascript 做一些簡單的動畫效果.

也許最後你想要問的是,我是不是一個人做打掃工作做到退伍.答案是接近了,即便是我升到下士了,我還是得掃廁所.若你當過兵,你應該很少看過下士在掃廁所的吧.即便是我的工作感覺上越來越重要了,但我還是得每天掃廁所倒垃圾,一直到離退伍的二個月左右,單位裡才來了一位士官班剛畢業的年輕新人.因此,我退伍前是有人幫助我的.我這樣的當兵經驗應該是相當少見,不僅學到了網路工程也熟練了寫網頁程式,更利害的是掃了近二年的廁所和清潔工作.至少我這樣的際遇沒有發生在跟我同梯的朋友上,近兩年的當兵生涯,身體勞累不敢說有,心裡壓力比較大,因為你不會希望在重要的時刻來個主機當機或是網路斷線.現在回過頭來看,當兵這段時間真的是我的 IT 人生起點,也是把我從機械系的畢業生變成是一個 IT 人的起點.

Share:

#43 StackOverflow.com 2016 年度調查 - 有關畢業科系

調查網址 http://stackoverflow.com/research/developer-survey-2016

Stack overflow 在美國的資訊業界是個名氣響亮的網站,很多開發者都會在這邊做技術問題的問答與交流,因此這網站可說是許多 IT 產品的技術知識庫.在前陣子,他們公布了今年度的調查,調查的內容很廣泛,從年紀,性別,職業,薪水,國家,開發工具,程式語言等等,在最上面的網址可以看到他們調查結果的報告.

在這報告裡顯示了台灣有 76 個回答問題的人,這人數的確是蠻低的,不知道是不是因為英文的關係而讓參與討論的人數與訪問該網站的人數呈現很大的落差.從職業的角度來看,web developer 的人數是最多的 (full stack + front end + back end),這也顯示了在 IT 業界中 web 相關的工作是最多的,同時也讓 Javascript 成為最普遍使用的語言.

這份報告的內容很多,有興趣的讀者可以慢慢分析,其中比較令我感興趣的,也就是在這個 blog 有關的,到底有多少人是非電腦相關科系畢業在從事程式設計的工作呢 ? 從這份報告算起來有 65.1% 的人是念電腦畢業的 (BS/BA in CS, Master in CS, PhD in CS),也就是說將近 35% 的人們不具備電腦科學的學歷.想必這 35% 的人一定有很大的興趣在支持著他們在這行業裡繼續工作下去.

不知道這個比例在台灣的話是比較高還是比較低呢 ? 從以前到現在似乎沒看到有任何機構做過這樣的調查.如果你知道一些線索,再麻煩你告訴我.

現在許多的軟體與工具都做的很優良,讓許多非電腦科系畢業的朋友們只是經過適當的訓練或練習就可以真正上戰場去寫 code,在這過程中,我相信一定有人會半路退出了,也一定有人在這條路上找到了一些興趣而繼續努力下去.所以,我也會繼續努力地寫下去.

Share:

#24 我的 IT 人生 - 簡短篇

這一篇內容我不談資料結構,也不談資料庫,更不談寫程式,我來簡單地談一談自己的 IT 人生.

在我還是高中生時,當時有接觸一些電腦課,學會了操作 MS-DOS 系統,也會寫一些簡單的 BASIC 程式,對電腦的確是有相當興趣,但還沒想過要把它當成一生的工作方向.後來,念了大學之後,我念的是機械工程,原本我的打算是想要念電機工程,因為自認為在物理課本中,電學念的比力學好很多,不過也奇怪,我當時還是把機械工程填入到志願卡裡,若我印象沒錯的話,我記得我的志願卡裡還有土木工程電子工程等等相關的工程科系.大學四年就這樣念到畢業了,說實在,到現在我還是覺得大學那 4 年似乎是浪費的,因為我現在沒需要用到任何機械工程的知識.不過,人生就是這樣,現在回過頭來看,就當做是用人生的時間換來了一些人生經驗.

接著,學校畢業後就直接去當兵了.我想這是我整個 IT 人生的起點.我很幸運地被分配到資訊單位,我還記得一進去時學長丟給我一本書,網路概論.我就從網路開始學習,從區域網路到廣域網域,也包含通訊協定如 TCP/IP 等等的都學了,後來還得學習寫網頁程式,一開始用 CGI 後來用 ASP 寫.在那近兩年的時間裡就像是一個職業訓練所一樣,我把基本的網路和網頁程式學了起來,退伍後就直接在資訊業找了工作.當時是差不多 2000 年的時候,Internet 和電子商務正在蓬勃發展,所以許多公司也不會在乎學歷或科系,只要真的能拿出工具寫出一些真實的東西,很多公司都是歡迎的.我的印象中,當時我快退伍找工作時,每個星期總是可以收到公司邀請面試的信件.

在工作了幾年後,我腦中漸漸地有越來越多的問號,比如要怎麼才能寫出好的程式,要如何才能是好的設計,甚至細節到為什麼資料庫的搜尋可以這麼快,在工作上有太多太多的問題實在讓我很好奇.因為我覺得我如果要在工作上更進一步的話,我最好還是去了解這些問題的原因,因此我決定回學校去念書,但我選擇不是回去念資訊科系的大學部,我選擇是去考資工研究所.我還記得當時大部份的學校都會考資料結構,演算法,作業系統,計算機組織以及離散數學.我當時買了一堆書,一堆補習班的講義就開始念了.在念書的過程中也得到不少的收獲,比如作業系統裡提到了 CPU Scheduling 才知道電腦要做多工環境的概念,念了資料結構也才知道原來程式的效能是透過 Big O 來評估的.在那過程獲得不少心得,但可惜準備的時間太少還無法完全熟悉以及融會貫通,最後我用三個月的念書時間考到一家國立大學後段班的資工所.

在念研究所時,我已經 30 歲了,對自己來說算是項蠻挑戰的投資,在那段時間我到大學部去上課,作業系統,離散,資料結構,演算法等等,把這些基礎課目透過學校課程補起來,然後也念了物件導向,分散式系統與資料庫等課程,自己也蠻開心可以走到這一步.在畢業前,我收到了一間美國大學的入學許可,我申請到了電腦科學博士班,畢業一年後,我就前往美國念書.到了美國後,學校規定演算法和計算理論是必修,成績不達標準不能畢業,光是這兩個科目就讓我很辛苦,重修一次後才過關,也是因為這樣的辛苦,所以對電腦科學才有更進一步的認識.雖然最後沒能把博士學位完成,但還是覺得自己能走到這一步也是不賴了.在我大學剛畢業時,我可從沒想過自己能走到這樣的地步.

寫這篇文章時,我 40 歲了,在美國一家軟體公司上班,每天就寫著一些程式來改進公司的工具與產品.從現在回過看,在我 28 歲之前,連 Big O 是什麼都不知道,也不知道什麼是 Binary search,這十年來的變化就好像變魔術一樣讓自己的 IT 人生起了很多的改變.把自己的 IT 人生寫的很簡短,現在我有新的人生方向,但短期內還不會離開資訊業,就如同前面說的,這一切都是自己的選擇而造就自己的人生經驗,也希望這些經驗能提供其他年輕人做為參考.如果你認為我有值得讓你參考之處,歡迎你留言給我. ^_^

Share:

#16 我是非電腦科系的,真的需要懂這些嗎 ?

這問題其實一個很好的問題.

我假設你是個非電腦科系畢業出身的軟體工程師,回想一下,你當初憑著自己的邏輯能力學習如何寫程式,也學習如何善用大家所熟知的 framework,便可以應付自己工作上所遇到的問題.我想那是因為你的工作以及所面臨到的專案都是屬於商業型導向的應用程式.我所謂商業型導向的應用程式就像是你在金融界中工作,每個需要處理的就是把資料讀出來做報表,或把資料新增進去到資料庫,或是把這資料用某一種格式包裝起來,然後傳到其他的系統再做更多的資料處理.又比如說你在不同領域裡做該領域的工作,例如在航空公司做訂票系統,在電信公司做帳務系統,在電子商務公司做庫存系統.這些軟體工作其實在台灣是佔大多數的.所以,在這些工作中,若你沒有懂這些資料結構或演算法,你照樣也可以把程式寫出來,系統照樣地可以上線,公司照樣可以營運賺錢.因為我自己也曾有過這一段路,所以我知道是可能的.

不知你是否曾問過自己,我怎麼知道我寫的程式是不是好的,我該怎麼評估,或是別人又會怎麼看待我的寫程式能力.我相信非電腦科系畢業的人在做軟體工程師時一定會有這樣的問題.如果你有這樣的問題,很恭喜你,因為你的內心對知識有了渴望,因為你想知道自己的能力或寫程式的技巧是在什麼程度.所以,最好的方法就是回到事情的本質去找答案.因此,資料結構是需要懂的,演算法也是需要懂的,但我們並不用像 Microsoft 或 Google 工程師那樣了解所有的細節,我們只需要知道最基本的道理,這樣就能幫助你了解當某個產品某個新功能出現時,那些大公司的工程師是怎麼做出來的.比如,之前的文章談過 ArrayList,到底是 Array 還是 List,.Net framework在台灣還算流行,幾年前 Microsoft 把基本的 .net library 都開放原始碼了,所以你可以去看看 Microsoft 的工程師是如何設計 ArrayList,看它到底是 Array 還是 List.

若你從前面的文章一直看到這裡,到目前為止你可以發現我講了很多有關時間複雜度和空間複雜度的事情.所以,你就知道我們寫程式時會在乎的事情就會包括這兩個,而別人看待你的程式好壞時,自然而然也會從這兩件事情來思考.考慮程式的好壞的因素很多,而時間複雜度和空間複雜度算是最基本的要求.

所以,即便是一般的商業型應用程式,你也可以回頭去看看你以前寫的程式碼,是不是有些地方可以用 Hash table 能加快資料處理,是不是有些地方可以用 Binary search 能加快資料搜尋,是不是有些地方可以用了 Stack 讓程式更簡單好寫了.透過這種的改進,我相信你寫的程式一定會更有品質.因此,資料結構和演算法是很重要的,在未來的各項主題中都還是會一直介紹下去.

Share: