發表文章

當java程式設計工程師心得-資深工程師(12)2018-滿10年

  十年磨一劍,霜刃未曾試。 出自於賈島的《劍客 / 述劍》       入行從事軟體程式設計工程師已經10年了,幸運的是在目前任職的公司能夠有機會發揮應用過往所累積的經驗及能力,但我個人覺得還沒用到全力,還有很大的空間,在此希望進入這行業後輩們能保有初心,記住自己堅持的目標努力不懈的前進,先求穩再求好。       分享下今年獲得了一些經驗,今年出差去了中國上海參加QCon上海2018|全球軟件大會,有興趣的人可以點超連結去看看投影片,當時進入會場時讓我感到非常震憾!!非常多世界各地的大神在台上演講新技術及應用,滿滿的人潮在會場走動,在那裡吸收到許許多多的新技術,當我們還在用舊技術的這一刻,在相同時空下已經有人在用新技術並且應用於更大型的系統,希望在軟體界的各位能一起提升彼此的能力,分享這個資訊。       再來談談工作部份,在新公司不例外的再度遇到能力被上級認可,其實從錄取到進入公司一直到負責的專案上線,過程中一直被上級詢問是否接任升遷為主管,這件事一談就談了一年多,後來經由種種考量我選擇接受升遷,但是整個團隊的運作風氣保持,目前陸陸續續也在徵新人,忙著將建立新人訓練流程,不斷的調整流程,當中也有通過與無法通過的新人,短期目標也是慢慢擴大團隊並將人的能力提升上去,接著提升開發流程品質,才能團隊一起挑戰新技術、新專案。       最後問你(妳)一個問題,你覺得百萬年薪很難嗎?這沒有絕對答案,有許多因素會影嚮,但若以我自身經驗來回答,我會回答你(妳):保有初心,堅定目標,努力提升自我能力,挑戰別人認為不可能並且想放棄的機會,你根本就不需要去思考達到百萬年薪難不難這個問題,答案自然就會有。 有任何問題歡迎留言詢問~祝大家新年快樂!

當java程式設計工程師心得-專案經理篇完結(11)2017-滿9年

過去的選擇,成就現在的你,現在的選擇,成就未來的你。       我選擇放棄感情、選擇了工作、選擇追求高薪、選擇爆肝拼進度、選擇錯過不錯的對象,不論我做過怎樣的選擇,成就了現在的我,雖然我目前達成了現階段人生目標,同時也失去人生目標了,但我不後悔也不會抱怨所做過的選擇。      我的信念是每天都要努力付出,認真對待每一件事,以及把握每個機會,過去這信念只應用於工作,今年也嘗試應用於感情,但不是很順利,覺得滿灰心的,但是我會繼續對於感情努力,多認識些對象,如果有緣看到這篇的人可以跟我加個fb交個朋友(當然是女生的話我會很開心XD)。      上面是今年的心情分享,接下來聊聊我換了新公司新工作吧,新公司新同事新氣象,有正妹工程師跟正妹統計師(我不會附圖的,才不想被追殺),可惜正妹都有男友了,但是工作氣氛真的很棒,在此給大家一個建議,真的找工作時不知道要找什麼工作,就挑團隊能力不錯及氣氛佳的公司就對了,大家合作一下工作快速完成,剩下時間就是聊天、泡茶、聊聊新技術、跟正妹同事聊聊我認識女生不順利之類,或許當你在工作上追求的某條路已經到底時,不仿轉個彎,你會發現還有路可以選擇,此時記得我文章開頭的第一句話,也絕對不要後悔,也不要抱怨,持續努力吧!! 

當java程式設計工程師心得-專案經理篇(10)2017-滿8.5年

這次心得會分享工作、減肥、未來方向三部份,首先分享工作的部份。        今年二月大約過年前後,我開始思考要提離職,主因是對於目前工作內容已無成就感,對公司開發的產品沒辦法產生認同感,我無法發自內心向好友推薦這些產品及app有多好用的,此想法在心裡一直在擴散,直到6月底,公司也剛好想對部門進行業務減縮,趁這機會離開了長達四年半的工作,在這段時間裡經歷了許多事,體重也一路往上飆,健康也亮紅燈,在去年11月公司辦的體檢,拿到健檢報告後,非常的慘不忍睹,因此決心開始減肥,減肥下一段文章再細說,回到工作話題,在這裡從一錄取進入時心態是想說待在傳統產業養老,不要出頭,領個薪水就好,但是偏偏就遇到了能擦出火花的同事,一起從4 、5人小組一起打拼到整個團隊成立為部門,人數擴編到22人,中間經歷了無數加班的夜晚,當然最後有做出對部門貢獻的成果,因此也被認可升上了專案經理,讓我又有再次一機會可以擔任管理帶領團隊,我曾在帶人方面失敗過,此次機會我不想再失敗,當然剛接手時也是一陣慌亂,要面對10個人不同的個性,不同的溝通對應技巧,如果讓每個工程師對自己心服口服,又能支持我,大家一起努力,在6月底時把最後一個專案完成,順利交接工作,部份同事離職後也有繼續聯絡,讓我實實在在體會到在工作上要重視人際這塊,因為有緣就再遇到一同共事的,離開了公司,對曾共事過的人只有感謝,對前公司也是只有感謝,只是現在的方向理念不同罷了。      減肥對我來說比debug還難,比開發新專案還難,我花了很多時間在看減肥文章,也曾經節食減肥過,但後來又胖回來,不過胖回來主因是工作時間長到常錯過晚餐時間,太晚回家就會餓到吃2份餐,例如去小7買1個便當+1個水餃,久而久之就變胖,因此此次減肥約半年多,前4、5個月先調整飲食,讓自己吃飯吃八分飽,少米飯多蔬菜的三餐,這樣做之後,並不會讓自己一直處於飢餓狀態,之後1、2個月搭配每日快走1小時,時速6公里,慢慢的大腿變瘦、肥肚也變平了,減肥真的沒有速成,只有堅持以及可以讓自己不痛苦的減法,節食是最要不得的減法,容易變成溜溜球效應,有心減肥的人先從飲食下手吧。      至於未來方向呢?目前我還在找工作中,也有找了幾間面試過,對於自己想做的工作、認同感是重點,有不有趣也是一項考量...

當java程式設計工程師心得-專案經理篇(9)2016-滿8年

       又到了每年寫入行心得的感觸時刻,不知道之前發的幾篇又有幾個過路客看過,這篇又會有幾個人看過,有幾個人能體會發這篇文的心境呢?       就先說說這一年來上任專案經理的部份吧,去年發的那篇最後有提到我要把人帶上來,以及汰換掉部份掉隊的人,沒錯,這些都達成了,花了近一年,我帶的人大約10個左右,分為android team、iOS team,一年中讓每個人都有機會獨立負責一個專案,並讓每個人能夠學習如何從頭到尾進行專案,而非只是會寫程式而已,當然細節就不在這多寫了,在過程中,我深刻體會到要在這行業有所成長,不是學歷好、也不是能力好,而是在工作時完全投入,並積極的像海棉一樣吸收一切,將工作中所見所學佔為已有,當然這樣會付出相當大的精神力,為何我會這樣說呢?當然除了我自身是這樣經歷過以外,去年年末也找了我帶領的工程師,每位都進行約談(其實就是聊聊天),有被我認可的幾位工程師,我有問了他們對於自己去年的表現如何,他們都一致認為自己已付出全部精神來處理每次的工作,並認為已做到最好,但每次都會被我打槍,但他們還是會再次收拾好心情,再次找我回報,最終被我認可,這對他們與我都是對工作的一種尊重,而不是只是單純來上班、寫code、下班。       去年下半年有來一、二位新人,我後來也試著讓我認可的工程師(入行約2年多),讓他試著去帶1位新人,也教他如何帶人,在去年年末與他的訪談中,他也要提到他在那新人身上看到自己過去被帶時的感覺,才了解自己之前是如何不好帶,這滿有趣的,被帶的變成帶人,心境上會轉變,也會更了解如何跟其他人共事,對團隊來說是一種正向成長。       上面也有提到有部份工程師抱著上班、寫code、下班,這並非不好,每個人有自己對工作的認知以及想要投入的程度,我也尊重每個人自己在工作與生活的百分比分配,每個工作也都需要有人做,就算是一位工程師只打算照著文件(類別圖)按圖寫code,不想參與分析設計,我也能接受,每個工程師都有自己的喜好。       最後寫點這些年來的對於戀愛感情的想法,話說這故事要從我讀夜校高職時提起,我讀夜校高職時很幸運的認識了一個在租漫畫店打工的日校女生,因為常常去租漫畫進而認識...

當java程式設計工程師心得(8)2015-滿7年

      過去一年裡,我在android、iOS開發上都有獲得滿多知識,也在一年裡面試了許多要嘗試寫android或iOS的面試者,有些有趣的發現,相同年資與技術來比較薪水方面兩邊差距滿大的,若是想寫手機app,以技術上來評估,我個人覺得iOS與android在開發上android還是比較難的,且薪水也比較低,但可獲得比較多困難的技術跟資源,而iOS與前面相反,另外我想給走入行寫app的人一些建議: 1.深度要有,把一種語言的本質、特性札札實實的學透徹,像java有ocjp(scjp),真正的去懂各種容器、語法熟用、理解,開檔、寫檔等等,一些基本的SDK、甚至要熟用常見的design pattern、排序法。 2.廣度要夠,當自己達到了第2點時,應開放自己心態,不要讓自己只會寫一種語言,甚至有些工程師會設定自己只會寫UI,會調畫面、按鈕事件就好,在專案會議討論時會發言說出非常極端,以UI角度觀點提反對意見,例如:那效果不好寫啦,畫面不好刷新啦等等,這些是對整體專案沒有任何實質幫助。 3.綜合1、2點,再往上提升一個層次,讓自己保持著積極的心態,虛心接受各平台上的技術應用,不要閉門造車,不要讓自己只會寫iOS或android、甚至可以去學js、server等等,這些在手機上都會有機會用到。 4.自願挑戰專案各位置,讓自己的配合度高,以我們公司部門專案,在app開發程式部份會分為web api的sdk、db的sdk、app架構整合、再加上此次專案需要用到的功能拆功能寫library,ui實作,基本光是程式部份上會由1~3人合作,每人需要熟各部份的實作。       隨著我現在公司部門從我進來時只有5個人,一直到現在2x個人,裡面人混雜的能力高高低低,強跟弱的能力差大10倍以上都有,但不管能力差或強,但差別最多的是工程師的心態問題,滿多人沒有達到上述幾點認知,又或者以前待的公司並沒有人教導應讓自己朝這方面學習,以致於在目前我們公司有些磨合,甚至磨擦,三年過去了,一路上碰碰撞撞,也感覺到了些有人並不適合團隊合作,曾經花了近一年時間,要調整那些人的心態,但最後失敗收場,只能重新調配工作分配,讓那些人做簡單的工作,這將會是管理的問題,非程式設計方面問題。      這篇文章也是我純做工程師...

當java程式設計工程師心得(7)2014-滿6年

     今天是今年最後一天了,提早下班回家來寫入坑滿6年心得,我是從2008年入行的,有看過前面幾篇的讀者就會知道了,那一年台灣經濟超慘烈的,而我在那一年退伍入行,一切從政府的22k開始,我也是受害者之一,進入這行業時的第一個月薪水是23k(未扣勞健保前),現在的薪水是當時的2~3倍,我入行時心中有一個目標想達成,我想在工作滿第一年時達到月薪40k,當時不知道是中邪還是被附身,每天狂寫程式以及思考寫的程式是不是有什麼地方沒考慮到的,想表現出積極性跟讓寫出來的程式穩定,拼了1年才達到29k,在第2年中間曾經想過打開104,但看到每間公司都要求2~3年經驗,我就放棄了這種想法,之後想著做滿5年再離開,慢慢的公司方向轉變,我也覺得自己做的工作開始在重複了,重複的設計server架構、元件設計來應用於一再重複的專案上,一切都變的乏味了,因此我選擇了離開,也在這個下了這個決定之後,技術主管(副總)與我聊天,他想不斷的說服我,想留我下來,提出要把我月薪從35k加到40k,在那公司主管認為台灣中部rd頂只能到40k,雖然這是我第一年的目標,花了4年才有機會觸碰到,但最後我還是選擇了離開。      我想表達的是,對於程式設計師這工作,我追求的是rd魂,我想做我覺得有興趣的工作,但工作是不可能100%都是自己有興趣的工作,不然就不是工作了,我能接受70%有興趣,30%乏味,而當你目前的工作已經讓自己覺得沒有養份了,也提不起興趣了,那就表示你該走了,否則只是讓自己的熱情消滅而已。      今年我在工作上最感到困惱的反而不是技術研究或不同程式語言的學習,而是不同團隊之同的合作問題,我目前所在的部門分為server組、android組、iOS組、美術組,原本在android組的工作模式,每個人所負責的部份都很契合,因此產出的app給大家的評價有80~90分,但一樣的人數,一樣的工作模式套用於iOS組,卻套不上去,每個人都自己做自己的,有自己的寫法,有自己的堅持,最後同一iOS組產出的多套app一個比一個慘,光是一個app開發了1年,bug多達200多個,而且一直解不完,還有大量的第三方不熟悉的library套入,目前主管請我(隸屬android組負責設計架構&會寫obj-c)介入ios組,...

當java程式設計工程師心得(外傳2-Team work)2014-滿5.5年

      從事程式設計工程師也好幾年了,合作過的程式工程師也很多人,那就再來發一篇我對於團隊合作的心得吧。       一個研發團隊最理想的狀態就是可以互相支援對方對方60%~80%的工作,舉例說,有工程師A與工程師B,不論年資,只單純看能力,若是A對於B負責的功能或專案有80%的熟悉度,反之B對A也有80%,那好處就是當A突然有事請假,那專案進度並不會delay到,又或者業務臨時急件要拿B的專案去demo,那A可以馬上處理解決,這樣可以讓整個team給其他部門有好的印象,不會讓人有這部門怎麼什麼都不行的感覺,當你自己有自覺寫的程式不是代表自己,而是代表整個團隊時,那自己就要主動去跟團隊裡每個同事學一下技術,或了解相關進度,這絕對對自己有好處的(若是你想在短時間內有急速成長,並在多年後成為神(註1),就一定要這樣做)。       雖然是理想,但在現實上要達成是有很大的難度的,我目前待的研發團隊正面臨這個難題,整個團隊也為了這件事開會討論過,當一個團隊出現了有人能力跟不上,甚至會造成對個團隊進度負成長(註2),團隊裡就會開始有不好的氣氛,會有人開始抱怨,每個人對於這種負成長根源解決方式不同,我是把android team的人都找出來,之後用引導對方式向那位上班不集中的工程師問他原因,問他為什麼一個功能只要1小時可以寫完,他需要花上1天,並且我也直接跟他表明目前這個團隊需要的是可以跟上進度,有能力學習、不拖累別人的強者,之後他也承認他上班時都在玩,沒有認真寫程式,當然最後也有請主管與他談,後來他向主管承諾會改善,但這問題並發只有一人,別的小組也有這情形,但那位工程師被主管約談之後,他自己也覺得拖累大家,當天就決定離職了。       對於團隊合作,我目前所在的團隊討論了一個方式,大家之後會互相把專案功能切開,並把架構、UI、功能都分離,有人專負責架構,有人UI、有人功能,最終由1人整合,每個人都要有UI的基礎,這是基本的,剛進來不會的人就會先被分配去學做UI+流程,再由強的人去打主架構,然後大家都可以實作功能,功能有相同的可以集中成utility(註3),整合的人則是要對全部都很熟,要會寫架構、UI、功能、元件,才有能力進行整合並分配各工作,這樣的做...