跳到主要內容

當java程式設計工程師心得(5)2012-滿4年

 首先,第一件跟大家分享的就是我離職了,離開從事了四年的手機網路遊戲設計這個工作。

      今年發生滿多事情的,在上半年5月時,公司主管想將html5的技術導入遊戲開發,而不同以往是將ios與andoird分別用object-c與java撰寫,而是整合使用javascripts進行開發,兩邊的app也都可以使用mobile webview來執行html,有這個想法我們並非是先軀,但總不能是最後,因此我被選為進入這個新技術領域的人選,當然這裡也不例外,也是套了工程師必經的一句話就是「說很簡單,做很難」,不過最後結果,這個試驗品個專案目前已上架了,分別在ios與android上都有,是由我撰寫伺服器與app及整合,裡有些核心元件是由主管與同事提供,花了將近20天完成,不說手機方面的程式,光是主程式那支html就超過4000多行,全都javascripts,其他支html大約都300行以內,主程式會寫那麼多是因為我是接這個專案才開始學javascripts,所以有很多東西不會拆,例如怎麼把程式拆成n支,再以import的方式載入之類的,說到這些,或許有些人懂javascripts就會說,不就只是scripts src=xxx.js,我可以跟你們說這樣做穩死,這種寫法來載入js,會因為html的body先載入完成,而js是再之後載入,這樣會造成你在html已紿開始執行,卻讀不到js裡的function,會有機會讓程式掛掉,還找不到原因,因此這個方式是被我們捨棄不用的。

     在上文(其實是廢話,沒幾個人想看XD)提到,我雖然是以java出身,但不管工作幾年,自己還是要擁有挑戰新技術的熱情與信心,當然學習一定會遇到很多奇怪問題,這時就要提出來與大家討論或是去詢問技術主管,若是能自己找到解決方式再出來與大家討論這方式是否妥當會是最好的做法,這樣大家也可以分享到技術,在學生時期,自己會覺得學一個新程式語言很難學,那是因為自己本身沒有一個基本的語言底子當基礎,在此建議大家,盡量在學生時期,不管你是要自學、私下找老師問等等,挑一種程式語言,用大學四年的時間把他讀爛讀熟,並多寫,多試,多看書,以及多看別人寫的程式,去思考這樣寫會有什麼問題,以及別人這樣寫是為了要避免什麼問題,有時候很簡單的幾行程式,是有很深的技術在裡面,盡量培養了對程式的敏銳度,並且具備書上的基礎知識,知道哪些寫法會犯什麼錯,再加上只要會一種程式語言,並對語言的有深度了解,那當你要學習什麼新語言都是很簡單,最後你只要擁有無比的熱情與興趣,就可以去挑戰工程師這個行業了。

    最後,雖然我離開了,但也學到很多的技術,目前自行接了一個案子+休息中,邊休息邊開發,當你能力夠時,剩下的就是挑戰自己了,大家共勉之。

2012/11/26 補充:

    最近我去面試了兩間大公司,第一間是徵系統維護工程師,面試當天發了一份性向測驗以及專業科目、英文考卷(我英文極差),說真的,我完全不會寫XD,有一題是請您畫出之前開發過的系統架構與流程圖,要包含5個資料表以上,寫了一個多小時之後,有兩位主管進來面談,先請我自我介紹,之後就針對公司的需求人員技術方面提問,問題幾乎都是erp與pos系統的維護,當然,談到後來,不順利,對方也表明要做維護工程師,就不能有想開發、創新的想法,我似乎不是這種個性,在第二天,就收到對方寄來的感謝信(e-mail)。

    在面試完第一間回到家當天,我猜應該不會上了,所以我馬上就再投另一間是android軟體開發工程師職缺,沒想到第二天就收到電話通知約面試時間,約好面試時間之後,在當天因為下雨,路況又不熟,我迷路又遲到...,一樣到面試的公司時,還是要先填寫性向測驗以及專業科目,這次沒有考英文囉!不過專業科目都是問答題,要解釋mvc、xml、json、http get/post的差異點之類的問題,大約快10題吧,我只會6~7題,寫完之後,緊接的就是面談囉,這次進來的是一位主管與兩個工程師,首先工程師針對專業科目從空白的題目一題一題問我為什麼不會,有問到git控制版本、何謂reset,我很老實的說「不知道那是什麼,也沒用過」,之後再反問,那指的是怎樣的技術?沒想到對方也很客氣的簡單解釋一下,我聽了才發現有用過相關技術= =",我回答對方有用這個技術在專案上,並解說一下如何使用,其他我有寫的部份因為都是正確的,對方也就沒提問,這樣一來筆試部份大約拿到9成的分數了XD。

    在面試後半段,就拿一下我寫過的遊戲demo給對方看,並解說之前開發專案負責的部份,以及各伺服器如何溝通,架構如何規劃,對方工程師也有針對此部份詢問一些深入的技術,以及裡面的功能如何實作等等問題,在這部份都一一回答完之後,對方就以android手機舉例了一個問題,詢問我遇到時會如何處理?我也就針對此問題進行回答,我認為對方會詢問這個問題,應該是想知道我是否有能力在遇到問題時,能提出解決方案,以我之前工作經驗,當工程師遇到問題時,要先能整理問題,然後以目前所會的技術,提出解決方案,有可能不是最好,但可以提出來給大家討論,才是一個工程師應該做的。

    這間面談的滿順利的,最後對方主管也是直接表示錄取,然後細談待遇、福利等等細節了,在此給要面試的大家一些建議,如下:
1.年終要詢問清楚,幾個月?
2.公司是否會調薪?每年調還是半年調,調薪的百分比。
3.加班是否有加班費,加班費如何計算,加班如何申請(有些公司要事先,有些可事後補)。
4.中餐、晚餐是否自費。
5.月薪待遇(視個人年資與能力,若剛畢業通常只能問公司規定起薪囉),最好是跟對方談總年薪。
6.3節禮金(這部份我沒細問,要不要細問看個人)。
7.休假制度。
8.是否需要輪值班。
9.平常心面對。

留言

這個網誌中的熱門文章

當java程式設計工程師心得(15) 2022-滿14年

 現在是2022年最後一天最後一小時,blog也空了一年沒有撰寫了,來分享這2年我遇到的事情吧,在個人生活部份我完成幾件事情: 1. 2021年底時遇到了非常契合的聰明又漂亮的優秀的另一半。 2. 2022年初買了房子。 3. 2022年創了youtube頻道上傳吉他finger style影片。 4. 2021年開始試著用許多方式自學英文。 工作上也有些轉變及新的嘗試: 1. 2021年將入行多年使用的server、讀寫資料庫程式整理完後以open source方式發佈到maven。 2. 2021年開始參與公司GCP相關專案技術研究。 3. 2022年決定轉型當架構師。 上面每一項都能單獨寫一篇故事來分享給大家,上面每項的故事細節,之後我再回來補上吧 祝大家2023年新年快樂,以及幸福的與身邊的人開心過每一天

當java程式設計工程師心得(16) 2023-2週自學Golang

      距上次發文又超過半年的時間了,這次就來分享學習Golang吧,因應工作需求我要自學Golang,在這轉換過程約1個月的時間我從完全不會寫go、也不懂如何部署程式GCP上,到目前已經有初步成果寫成文章分享給大家,預計會分成3篇: 1. 我如何開始自學Golang? 2. 如何在學習GCP相關知識? 3. 如何從不懂CI/CD到規劃GitOps並在GCP上串接CI/CD? 這篇先分享第1點 我如何開始自學Golang?    我習慣做事會用 Sublime Text 做筆記,因此我初期先列出我要學的幾點 1.詢問很強的Golang大神朋友(很感謝Minchao給了我超多建議) 2.學習Golang的開發工具,我初期有用Visual Studio Code寫了hello world,後來IDE改用 Goland ,它真的太強大了      Visual Studio Code :          優點:免費          缺點:plugin要找適合自己的下載試用     Goland :         優點: 官方 有附詳細的附加功能使用說明,並且你想得到的通通都內建         缺點:試用只有30天,費用訂閱制,月付或年繳 3.了解基本型別、module、function宣告方式、常用package,例如string、array、File I/O等等…可以參考這篇 Golang roadmap 自學再加上網路搜尋大量的文章花1~2星期閱讀加上練習 4.學習 gin web framework 撰寫RESTful API(API文件可使用 Swagger )、 gorm 讀寫資料庫 5.單元測試(go test)、code format(go內建有)、code style、build執行檔相關工具或指令     有關code style其實可以參考 google官方 再加上 Uber go style 6.學習專案程式資料夾框架 project-layout    在學習過程我也發現學習Go千萬不要用JAVA的物件導向去學,反而要把JAVA的觀念拋開讓自己歸零去學習一種新的程式語言會更好吸收,也才不會讓自己觀念會卡住,Go本身的設計讓其彈性很大,對初學者建議掌握下列幾點: Struct Receiver Pointers 基本型別 容器&特

當java程式設計工程師心得(14) 2020-滿12年

今年我想分享兩件事 第一件事:       推薦最近看完的三本書的心得,書的內容對於想加強自身軟體開發能力以及朝架構師前進有些幫助 第一本 Code Complete 2: 有些章節適合project manager閱讀,可了解好的軟體開發集結的人、方法、工具,更推薦有2年以上開發經驗的軟體工程師閱讀,加強自身軟體開發觀念且功力大增,書裡寫了許多累積10年以上工程師經驗的做事方法 我個人覺得這書太晚讀到了,否則能少走好幾年的路,對我來說這本書裡提到90%以上都會了,但是這書還有一個功用,就是拿來用書裡提的數據打臉一些code亂寫的工程師🤣 第二本 無瑕的程式碼 書裡面提到許多設計原則,有些於軟體設計模式裡要應用,有些則是在系統架構上應用,也有用硬體面去套入原則,如果有碰系統架構也有寫軟體的工程師可以買來閱讀,這書能讓自己理清一些盲點。 第三本 Working Effectively with Legacy Code中文版:管理、修改、重構遺留程式碼的藝術 強烈推薦軟體工程師看這本書,內容講解如何對既有系統的code進行重構後可被測試,進而加新功能或提高程式的閱讀性及維護性,並且始終確保程式原功能不被破壞,書內介紹許多重構code高超技術,有讀有保佑,沒讀會出事🤣!裡面附的範例code為JAVA80%及C++20%,強力推薦大家閱讀來增強程式功力 第二件事:       我在google上搜尋"java吉他手"意外搜尋到一篇文章提到我,點進文章看原來是5年前曾來我網誌向我詢問過問題的網友寫的,我印象中有個網友向我詢問他想轉職相關的問題,最後我有給些建議,沒想到這位網友已經轉職且與我同行都是做後端,看文章內容也已經經歷了軟體業的洗禮了,在此一樣祝福他能工作更順利,朝自己的目標前進並加油努力,也對於還有這位網友記得我的網誌,我非常開心,我經營網誌撒出去的種子終於開花結果了(拉人入坑軟體業),哈哈哈。             最後聊聊今年心得,在工作上我也經歷了自身單內的部門對立、惡鬥、也曾深信一個人的人性,變成被這個人抺黑、我被拱成該部門共同敵人,對於這些事一開始會無法接受並讓自己陷入負面情緒狀態,慢慢的學會人要放下,不隨波逐流、也不被陷入對方的圈套或操弄而起舞,每個人進入這行追求的目標都不一樣: 有人追求薪水普通、工作不求質不求快、上班時上網網購