蔡昌佑 Jonathan Tsai

叡揚FBU實習生


工作環境介紹

叡揚資訊協志辦公室

     我目前是在叡揚公司的協志辦公室工作,一整間工作室只有我們FBU部門與隔壁的網軟公司,在工作時我們用的是公司提供的電腦, 公司在今年決定為每一位新人都發一台全新的筆電,讓新人不用再帶自己的電腦到公司上班,也盡量降低了公司內部資訊外洩的可能性。 上班時間的部分,我們的是透過Excel表來記錄自己的出缺席,所以上班時間算是非常彈性的,幾點上班就寫幾點,公司是規定九點上班六點下班, 中間休息的一小時不算薪水,稍微遲到都是可以允許的,然而當事情做不完之時也可以自主加班,薪水都會照勞基法的算法給予薪水。 員工福利的部分,我們每周一都有免費的咖啡可以喝。工作環境的部分,我們工作室是採半開放式空間,目的是讓我們可以方便的討論, 如果需要開會也有會議室可以開會。公司附近的環境也有一些便當店,更有晴光市場,午餐基本上都可以不用煩惱。

工作詳述

負責專案

     我目前是被分配到公司的FBU部門,是一個專門處理財務管理資訊化的部門,我大部分的時間都是在一個P專案下做事, 職位算是後端程式工程師,寫aspx.vb還有aspx,少部分的時間會寫一些SQL撈資料庫的資料,最主要是幫忙P公司更新他們的系統,他們的系統很舊,所以要幫他們更新。 工作內容大部份時間都是在維護,維護大部分要做的事情就是他們如果對現有的系統有甚麼不滿意的地方,我們就是幫他們改到好為止, 所以作業的程序是他們會開一張需求單,告訴我們他們的需求是什麼,我們再跟他們要必須更改的程式後,在辦公室修改,修改完後再到客戶那邊去安裝, 而這些過程都是我會參與到的,所以在目前實習的這一段時間,我必須會要具備寫程式的能力之外,也要對修改的系統有一定的了解, 更要能在面對客戶提出的疑問時做出解答,甚至幫客戶現場Debug。在P專案底下,其實會學到的東西算是很有限的,因為他們的系統過於老舊, 許多程式的寫法都是以前的方法,而且系統的毛病蠻多的,在幫忙維護P公司系統時,都會有一種考古程式的感覺,看看以前的人程式寫法上會出現怎麼樣的Bug, 順便警惕自己不要犯一樣的錯。在最近大概是五月底的時候,因為P專案的維護大概到一段落了,所以我被調派到FBU部門的另外一個專案,在這專案就是以開發為主了, 都沒有維護的部分,這個專案就是使用很新的架構,因為這是一個最近幾年才開發的專案,而專案的底層還是我們部門新開發的架構, 所以在剛轉到這專案的這幾天我花了很多時間在熟悉那個架構。簡單來說,我們之所以會採用這個架構是為了要標準化新專案的控制項,讓我們寫相同類型的程式時, 都是透過程式自己長出程式,所以請我們部門的系統架構師寫了一套動態Excel,只要在Excel上面照著他們的指示輸入你想要用的控制項, 像是下拉式選單、按鈕或者是Textbox,就可以透過動態的方式在網頁生產出你想要的控制項,接下來就只需要在控制項的背後去撰寫運算邏輯就可以變成客製化的功能了, 第一次接觸了這種東西的時候,真的會很佩服那些系統架構師,可以利用這種動態的方式就長出控制項,但在開始要使用這些動態的東西時,痛苦就開始了, 常常會因為不熟悉底層的架構而浪費很多時間,而且底層的套件是公司內部的系統,在網路上並不會有任何的資料,遇到不懂的只能去問寫底端的工程師, 如果他們沒空可以教你,那真的只能等他們,沒有其他方法。

前半年實習期間完成的進度


     在P專案下我目前是完成了一些需求單以及系統升級,需求單的內容就是簡單的更改系統需求, 系統升級的部分就是將他們現有的單機版系統移植到網頁上。後來轉到銀行的專案,因為需要熟悉新的系統,只有做了幾張開發的單子, 內容大概就像是修改原先的運算邏輯,改成客戶需要的方式,就被調回去原本的專案幫忙開發新的系統。

工作當中扮演的角色


     在剛進公司的前兩個月,我都算是訓練生的部分,從TTDC的新生訓練再到FBU的訓練,都是經過一套的教學後,再實際演練。 到了FBU之後就變成是後端工程師的部分,後來變成專門修改弱掃的弱點工程師實習生。

叡揚實習生 Team Building 活動花絮

後半年實習期間完成之進度


     在暑假期間我大部分時間還是待在舊專案做著維護的工作,客戶系統上有問題,提出需求單就必須要幫忙解決,而暑假期間, 客戶他們有稽查自家內部系統的資安漏洞,因此我幾乎都在處理系統上的資安漏洞,從兩個系統的弱點掃描,再到網路版弱點掃描,最後還有人為攻擊的滲透測試。 從網路上常見的SQL Injection到一些很少見的Log Forging,這些問題都是我有解過的問題,後來解完問題之後接著幫忙開發客戶的新系統,而開發完之後, 也是有一大堆新系統的資安弱點要解決,經過了這個暑假,我從對資安完全不了解的新手,變成現在部門有一些資安的問題都可以提供解答。 我們會找到系統上的資安漏洞大部分都是透過公司購買的一個軟體來進行掃描,掃描之後會產生一個弱點報告,報告裡面會提供系統上有哪些弱點,以及錯誤的地方, 還有建議的修改方式,所以有一些錯誤是可以直接用他建議的方法修改,但有一些弱點是因為弱掃軟體設計問題所衍生的,我們系統並沒有這些問題, 因此要修改要先猜測軟體判斷出弱點的原因,再針對他的判斷邏輯來修改程式來讓軟體判斷不出來有弱點,或者是有一些問題我們會寫文件跟客戶說明這個弱點屬於軟體誤判, 所以在解決弱掃問題的時候不僅是要能了解資安漏洞,也要可以依據對自家系統的了解判斷是不是弱掃軟體誤判,更需要跟客戶溝通的能力, 讓客戶了解我們為什麼會採取這樣的解決方法。在學習這些能力時,對我來說最痛苦的應該就是剛開始了解資安漏洞的時候, 在什麼都不會的時候看到要解決的弱掃報告上有一百多個弱點,十幾種弱點要解決,那份無力感讓我至今難忘。在解弱點時,我都習慣先從中高風險的問題開始解, 因為那些比較容易在網路上找到答案的,拜Google大神所賜,網路上找到的答案幾乎都可以直接用,相當的方便,真正麻煩的反而是那些低風險的問題,就如同前面所說的, 要了解弱掃軟體的判斷邏輯才能解決這些問題,有時候真的摸不著,還需要去問我們公司的技術經理,遇過最誇張的一次是為了解決三種弱點,我花了將近一個禮拜, 才真的學會要怎麼解決那些問題。而在解決了那些問題之後,部門也為了提高效率,指派了許多新系統的弱掃問題給我解。每一次接觸到新的系統都是一份新的挑戰 ,每個系統所使用的架構不同,修補起來也會遇到不一樣的問題,過程中的我也只好不斷的學習,真的是獲益良多。


學習成果

公司新訓過程


     在進來叡揚資訊之前就有聽學長姐說這一間公司是很硬的實習機構,雖然學到的東西會很多,但過程真的很痛苦。 因此當初我會選擇這一間公司就是因為我覺得在學校學到的東西很有限,想要在外面接觸更多不一樣的新事物。 果不其然,在進來這一間公司之後,光是新人訓練就是長達兩個月的痛苦期,在公司統一的新人訓練就會訓練你寫SQL、JS前端並且規定使用KendoUI、 MVC架構、MVC架構分層以及後續程式Debug和資安漏洞檢測。在訓練的過程中我算是問題比較多的那一類人,常常卡在一個小地方, 然後浪費自己一大堆時間,因此帶領我的人就一直跟我說要多去問問題不要因為一些小細節將自己進度落後, 這時的我當然是一碰到問題大概卡十分鐘就去問問題,但發現我問問題的頻率還是比別人高出許多,最後我衍生出一種方式來減少自己問問題的頻率, 就是將目前遇到的問題先擺在一邊,先試著找其他的事情做,不要讓自己一直糾結在那個問題上,將遇到的問題先整理在筆記本裡面, 最後累積一定的問題量或者是不解決這個問題無法繼續下去時,才會一口氣找人把問題解決。透過這種方式,可以讓我在同樣的問題上不要糾結太久, 而這是進公司長達一個半月的新訓中學到最大的收穫。下了部門之後學習到的東西就更多了,一開始的部門訓練告訴我, 熟悉新的作業環境對程式工程師來說是相當痛苦的一件事。從新訓中學習到的C#轉換到VB雖然寫法感覺起來差不多,但又新增了公司內部的底層UI, 這讓我重新吃了不少苦頭。部門的訓練內容就比較輕鬆一點,主要目的是為了熟悉部門中常會用到的插件或者是底層架構, 基本上公司的每一個專案都會有基本的底層架構要了解,有些專案底層是套用同樣的系統,就不需要太多的時間去摸索,但越新的專案就會套用越新的底層, 像是我在P公司以及在銀行就差異相當大,參考的API也不太一樣,這就會很考驗工程師對作業環境的適應力,想當然,第一次接觸的我花了很多時間去適應, 像是有一份作業,別人只要花一天半的時間就可以完成了,但我因為參考的網站錯誤加上對系統的不熟悉,花了幾乎三天才把那份作業做完,好在後來熟悉了系統, 在編寫程式更新p公司的系統時,最快可以一天寫出四支程式,連前輩都很訝異我怎麼可以寫得那麼快。

專案中所學習的各項事務


     經過各式訓練後,我已經對部門常用的底層架構有基本上的了解,也終於可以開始寫專案的程式了。進部門時,印象最深刻的一件事就是我們部門的主管, 因為一位實習生還有一位正職和我是同時進到FBU部門,那時候部門主管開會就明確告訴我們,待在FBU前三個月的目標。那次開會後, 我深刻了解到我們主管是一個很會規劃且講話很有威嚴的主管。剛開始前三個月都是在P公司幫忙更新他們的系統,更新完之後可能會先轉到其他部門幫忙, 大概六月份時又會回到P公司開發他們新的系統。先前我對專案的運作方式不太了解,一直到了進軟體公司才知道一般的專案會分成PM專案經理、SA系統分析師、 PA程式分析師以及PG程式工程師,PM最主要工作是管理專案工作進度並與客戶溝通,SA則是開規格書給PA或PG來編寫程式,有些專案的SA跟PA可能是同一個人, 這種運作方式雖然不是什麼特別的方式,但我相信這也是學校無法教我們的。另外部門主管也規定我們這批新人每個月要開會匯報給他, 這個月做的事情以及學習到的新事物,一方面是訓練我們簡報的能力,另外一方面也是方便他了解我們到底有沒有達到公司對我們的期望, 對於新進正職人員更是如此,剛進來的這三個月算是他們的試用期,如果試用期後,主管們覺得他們不適任,就會將他們開除。聽到這, 還好我是以實習生的身份先出來工作,犯錯的空間比正職稍微大了一點,而且問問題時,也比較不會被質疑。在報告時,有了幾次經驗, 我能更知道在報告時要怎麼樣表達才能更讓主管們對我印象深刻。還有一件事是在公司實習才有可能會學到的,就是版本控管。 在進公司之前,我根本對這些東西不了解,也是到了公司之後才了解到他的重要性。目前常用來做版控的方式有兩種,一種是Subversion,另外一種則是Git, Git算是比較新的東西,他的功能也相對複雜許多。簡單來說版本控管對軟體公司之所以會那麼重要的原因, 就是因為每一支完整的程式大多都是由各個不同工程師一起做開發的,如何確保這位工程師所做的更改不會影響別人的編寫的程式, 或者是如果工程師不小心把程式改壞了,這些問題都是可以透過版本控管來解決的,在P專案時所使用的版本控管是SubVersion,簡稱SVN, 他的功能算是相對簡單的,大部分時間都是拿來當雲端硬碟做使用的,不太需要特別的教學,而我在新的銀行專案,所使用的版本控管是用Git, 在這上面我也是花了不少時間做學習,Git上面會開Branch,要會Merge新開的Branch,Merge時有機率會遇到Conflict,遇到時又會要怎麼解決, 測試程式時也都要先過版,總之就是一大堆Git上面的操作,光是學會這些東西就讓我覺得我在外面實習真的是值得了。不只如此, 原本以為不是那麼重要的資訊安全,在我們公司其實可以學到一些,我們公司甚至還有實習生就是專門研究資訊安全的漏洞, 像是我每一次要交檔案給P公司的窗口時也都要附上一份資安的檢查報告,如果裡面有任何漏洞就都要把它改掉,要不然就是要跟他解釋為甚麼程式會是這樣寫, 並讓窗口了解我們是怎麼防範駭客的。




向部門主管報告時,所總結的學習心得

實習對我生活的影響


     從寒假,我的實習生涯正式開始時,只要到公司上班就需要從內壢搭車到台北,車程加上走路到公司大概要花90分鐘, 來回加起來就是將近三個小時,完全可以體會到當時為甚麼學長姐們會說實習真正辛苦的地方,算上待在公司的九個小時,我每天就只剩下12小時, 要怎麼樣利用剩餘的時間來兼顧自己的興趣、課業,時間管理對我來說就是一件很重要的事。其實我是一個平常就會稍微規劃自己時間的人,但在有了實習之後, 每次回到家就是想躺到床上好好的休息,反而對我來說,自制力才是最大的考驗,要怎麼樣可以最快的放鬆身心,調適好自己疲憊的身軀, 強迫自己去那些應該要做的事情。當然一開始非常的痛苦,甚至還會影響到上班時的心情,但在摸索的過程中,我逐漸地找到能讓自己最快放鬆的方式, 就是躺在床上聽音樂,任由自己喜歡的音樂在耳邊環繞,腦中時而放空,時而思考今天發生了哪些事情,順便規劃接下來要做的事情。 慢慢地我開始做事越來越有效率了,不管是在工作上或者是生活上,我想如果沒有校外實習強迫壓縮我的時間,我應該也不會有那麼多的自制力成長。

對於資安的培訓


     在我忙於處理手上系統的各種資安弱點時,公司也很剛好安排我們這群實習生參與初級資安工程師證照的考試, 並且請在工研院的研究生帶我們了解資安的知識,上了兩天的課,讓我對資安的瞭解又更深一步,從網路架構的分層帶我們了解在資訊傳遞的過程中, 可能會發生哪些資安事件,上完課之後還有題庫可以讓我們練習,為了就是讓我們可以通過十一月的考試。不只如此,公司內部也會有資安的課程, 講師就是我們公司的技術經理,他從實作面講解OWASP TOP 10,也就是每一年度的前十大資安漏洞,讓公司內部的工程師都可以了解會有那些資安漏洞, 更製作了簡易的購物網站,讓我們可以模擬一些駭客的攻擊,以及要怎麼防範這些漏洞。在一個有通過ISO27001的公司實習,我們也會進行工作筆電的抽查, 主管會告訴我們哪一些軟體是不能裝的,以及要如何分辨釣魚信件。在七八月的時候有一些公司遭受駭客攻擊,我們公司之所以可以倖免於此, 就是因為我們平時對於資安的重視,以及充足的員工訓練。從開始實習到現在,我真的從這間公司上學習到資安的各種面向,也提升了我對資安的重視。


自我評估及心得感想

叡揚讚讚啦

     當初在選擇要專題還是實習時,我是因為沒有想要考研究所再加上想要多學一點學校學不到的知識,所以選擇校外實習, 當然也有聽說一些公司對待我們實習生不是那麼的友善,可能都是做一些生產報表的程式並不會接觸太多業界的東西, 但我真的很慶幸我當初選擇叡揚資訊作為我的實習單位,因為我可以感覺的到這間公司給予我們實習生是滿滿的信任,在教導我們那麼多程式相關的東西之後, 就放心地讓我們下去專案幫忙寫程式,雖然工作內容比起正職來說還是相對稍微簡單了一點,但這也是考慮到我們是否可以準時交出程式的關係, 而且有一件讓我非常訝異的一件事,就是我們公司的實習生人數,光是跟我同一批的實習生就高達十個,我原本以為公司會收的實習生應該不會太多, 但在這間公司裡卻有各種大學的實習生,包括輔仁、東吳、台科大、長庚還有我們元智大學。在五月底的時候,國內的疫情大爆發,全台都升級到三級警戒, 造成許多實習生都被迫暫停實習,好在我們公司所使用的電腦是筆記型電腦,所以大家都可以遠距上班。雖然比起到公司上班我一天可以省下將近三小時的通勤時間, 但在與其他同事溝通上面就會變得比較不方便,尤其那段時間剛好是我加入新專案的時候,許多事情都要向別人請教,常常一問就是一兩小時, 還要開Teamviewer,更占用電腦效能,因此同時執行太多程式時,就有造成電腦崩潰的可能,而且到了六月,雙北疫情加重,幾乎全公司的人都在家上班, 就會造成公司伺服器超負荷,在測試程式時也會很卡,上班時就綁手綁腳的。當然我們主管也很貼心的怕我們在家上班久了會悶壞, 還特別約下班時間大家一起玩遊戲,讓待在家的我們多一點互動。總而言之,我覺得當初的選擇在叡揚實習,不僅讓我學到了很多新事物, 也大大的提升程式設計能力。


對系上的建議

資訊管理系也是好棒棒啦

     對於在選擇要去哪一間機構實習事關係到那位學生接下來的一年實習生涯,我認為實習機構適不適合那位學生是很重要的,而就目前現階段的大二升大三的學生, 能夠了解實習機構的方式是有很多種,但我覺得最有效的方式還是直接地與在機構實習的學長姐溝通,而這種座談會,在我們這一屆只有兩次,我覺得可以多辦一兩次, 並提高學長姐參加座談會的意願,像是發放便當加飲料,多讓學弟妹可以跟每間實習機構的學長姐都能聊到,更有助於幫助他們選擇自己適合的實習單位。