這次是特別針對上次大家的問答票選製作的貼文
這次的問題是
如果想要轉換跑道
進入傳產或科技業
通常面試會問什麼方向的問題?
再開始之前
要先說明
我相信很多人其實都沒有搞懂這些產業背後
到底真正包含了什麼產業
但是在不清楚產業內容的狀況下
針對面試官的詢問
或是規劃自己的生涯發展
其實都很不利...
這次是特別針對上次大家的問答票選製作的貼文
這次的問題是
如果想要轉換跑道
進入傳產或科技業
通常面試會問什麼方向的問題?
再開始之前
要先說明
我相信很多人其實都沒有搞懂這些產業背後
到底真正包含了什麼產業
但是在不清楚產業內容的狀況下
針對面試官的詢問
或是規劃自己的生涯發展
其實都很不利
👉因此下方也針對各產業的主要內容,科普給你聽
(以下資料為網路上的公開資料,整理出來分享給大家)
👉在這之前,我想先說說我的小故事給你聽
(如果想跳過,可以直接看下下個箭頭手指)😆
👉當初我是在一個跨國型的製鞋集團工作
那時候還沒有疫情,所以前景一片看好
集團內的晉升標準與薪酬幾乎都是可預測的
大家都知道幾年會晉升到哪裡
只要待下去,該拿的你絕對拿的到
(我認為這也是傳產很標準的一個特色,人員配薪穩定、晉升固定、年資重要!)
而我們的福利也幾乎是業界聽起來最好的
但那時候的我聽著科技導讀(pocast)心裡卻在想
這產業的未來跟這種環境真的是我想要待一輩子的嗎?
如果不是,我是不是得趁早轉換
我還記得那時候光總部每個月發布的人資規章
讀到我都快吐了
然後我們的大型的廠房(我們叫做車間)
與我們為了製鞋而使用的膠水藥水化學味道
封閉的體系、封閉的環境
都讓我覺得似乎不是長久之計
即便我的職務是能與最高主管協理直接溝通
但考量產業特質
我還是決定花些力氣
為自己的未來鋪路
所以後來我從傳產跳轉到軟體業
下面也在跟大家說明原因
👉以最簡單的來說,科技業大致上可分為「電子資訊/軟體/半導體相關業」
而最常出現的類型包括:
「電子零組件類」(ex鴻海、金寶電子)
「電腦及週邊設備類」(ex華碩、仁寶電腦
「半導體類」(ex台積電、聯發科技)
👉其中在科技業領域內
我認為最不一樣的是「軟體相關產業」(另介紹如下)
(其中又包含軟體設計開發/系統整合服務/資料處理服務/通路經銷)等
👉為什麼呢?
因為他不倚賴硬體上的開發設計與輸出
從成本與利潤面來看
他的毛利通常穩居各產業的龍頭
另外變動快速(有挑戰性)、掌握趨勢、重視溝通(夥伴好溝通多了)
這些也都是我當初為何決定從傳產跳轉到軟體業的原因
👉以下為各軟體相關產業初步介紹:
【應用/系統軟體設計開發】
配合客戶營運需要,開發特定應用的系統與軟體,其開發出來的軟體通常會產業而異,如金融、醫療、流通業等,也有依軟體功能而異的特殊應用軟體,如商業智慧(Business Intelligence, BI)、企業資源規劃(Enterprise Resource Planning, ERP)、顧客關係管理(Customer Relationship Management, CRM)、資訊安全(Information Security)等。
【系統整合服務(System Integration Service)】
依客戶特定營運需要而建置軟、硬體,從前端規劃、設計、執行、整體專案管理到後續的顧問諮詢服務及整合資訊系統服務等。這種模式屬於專案性質,客製化程度較高,泰半囊括了不同的平台與技術,如系統與客製化的應用開發,可能還要整合既有的應用軟體,故每次專案都必須建立合約,藉此定義解決方案的規格、不同層級的產出績效等。
【資料處理服務(Data Processing Services)】
提供資料備份、回覆、資料重複備份及網站代管等業務。電腦系統由許多元件組成,不管是天災或人為破壞,都有可能造成系統當機、故障,甚至只要一個小小的元件故障,就有可能使長久累積的資料毀於一旦,無法再使用,因此資料處理服務是維護企業資訊安全必要的一環,也因此帶動解決企業資訊安全方案的市場商機。目前資訊安全與隱私權問題更形重要,尤其行動裝置與無線網路日益普及,衍生的資安問題將會愈來愈複雜。
【通路經銷】
通路經銷業者係提供套裝軟體的銷售,包括代理國內外品牌業者商用軟體、開發軟體、辦公室應用軟體等,而且也提供客戶相關軟體的教育訓練,協助客戶與消費者能夠使用其代理銷售的軟體。
👉而傳統產業的基本介紹如下(由於包山包海,因此僅列出特點供大家參考):
特點
主要是勞動力密集型的、以製造加工為主,多為標準化大批量生產。在工業化過程中起支柱與基礎作用。近年來,許多國家和地區在一些傳統產品上也依靠新的知識和技術經歷了進一步的現代化。
組成
主要是工業,也包括傳統農業和第三產業的一部分。鋼鐵、煤炭、電力、建築、汽車、紡織、輕工、造船等工業。其中有較典型的一類為定位於高工資地區的手工製造業,如義大利的製鞋業、丹麥的家具業、瑞士的鐘錶業。
🤣看完以上漏漏長的介紹
你是否對於產業終於懂得更多一些了呢?
🤣留言
1覺得產業科普很有幫助
2 喜歡這次的小故事
🤣後面將會在發出
*我如何從零經驗,前進跨國企業(英文要很好嗎?)
*資訊軟體業HR要會什麼?如何轉職?
👉最後,不要忘了愛心與追蹤我
因為下一波放福利RRR!😀
開啟鈴鐺才不會錯過 😍
如果你有更多問題想問
可以留言貼文
讓我知道
你還想知道什麼?
系統家具定義 在 智慧家庭實驗室-智家嚴選 Facebook 的最讚貼文
#IKEA是怎麼做智慧家庭的呢?三分鐘了解IKEA是怎麼做智慧家庭~(全文請看 http://bit.ly/3vgmiBt)
#IKEA的情境按鈕與人體感測器也加入蘋果HomeKit
#ikeahomesmart #IKEA #宜家家居 #宜家
IKEA這些年來顛覆了居家產業,這次也準備來顛覆智慧家庭進入家庭的方式。
IKEA 智慧家庭的全名是 IKEA Home Smart,而不是常看到的 Smart Home,是的,揚棄了被用了幾十年也快被一些賺快錢的SI搞爛了的 Smart Home,強調宜家的切入點是「Home 家庭」,而不是與絕大多數的智慧家庭產業強調在「Smart 智慧」這個字的上面,宜家認為智慧家庭最後終歸是走入家中,從家庭的使用場景出發,一方面也是由於宜家最擅長的就是設定場景,相信大家逛 IKEA 最幸福的時刻,就是被一間間的家庭各式場景所融入,不自覺的就把某個情境擺設放入了購物車,或者收入腦中正在規劃的新屋擺設之中。
雖說 IKEA 用場景銷售與 DIY 概念顛覆了居家產業,但是同樣的套路擺到智慧家庭市場來就能解救蒼生嗎?當然不是。與居家產業的不同點,在於傢俱每個人都可以組裝擺設(至少照著IKEA展示間擺起來不會差很多),DIY 不了也有到府組裝服務,擺了也不至於不能用,但智慧家庭不然,在不同的場域、不同的 2.4G 干擾程度需採用不同的無線協定產品組合、不同家人使用習慣、不同的應用場景,都需要用到不同的產品功能、情境設定、自動化規則定義,再加上三不五時網路不穩定,客戶第一通電話就是打到智慧家庭服務商尋求協助,林林總總的售前售中售後複雜度都不是居家產業可以比擬的,相信 IKEA 之後也會在同樣的問題遇到瓶頸。
IKEA 在居家產業的銷售模式,就是用一幕幕的居家情境帶動高CP值產品引導用戶回購,相信在智慧家庭這邊也會採同樣做法。IKEA Tradfri Gateway (Bridge HomeKit) 也通過了 Apple HomeKit 認證,可以帶著 IKEA Zigbee 智慧週邊裝置進入蘋果智慧家庭生態系之中。包括了最近加入 HomeKit 行列的情境按鈕(USD9.99)與人體感測器(USD14.99),這是IKEA在智慧家庭產業的策略…
#IKEA不做平台只做最受歡迎的商品與裝置
除了平價家具、居家用品和北歐食品,IKEA 的智慧家庭成員包括了原本IKEA在居家的長銷品項,包括了燈飾、窗簾和插座等,也包括了與 #SONOS 合作的智慧音箱、情境按鈕、人體感測器等智慧家庭入門裝置,相比起其他智慧家庭系統,IKEA 提供的產品類別更居家化,售價也親民。
從一天使用最多的LED燈具與插座導入,簡單的開關覆蓋大多數的使用場景,接著就是音樂與窗簾百葉窗,而情境按鈕 (Shortcut Button),預計也會同時把 IKEA Home Smart 整個打包帶入宜家賣場的線下展示間中,而最終,我始終認為,IKEA 目前肯定有上百個 User Experience 專家,正在構思著數百個居家情境,把各式各樣的傳感器置入各種房間的傢俱、廚具、小家電之中,這邊才是 IKEA 無敵的舒適圈,也是其在智慧家庭產業後來居上的終極武器。
最後提到 IKEA 在無線充電這邊押寶了Qi,而兩年之後當蘋果 iPhone 也加入了 Qi 的陣營後,立即確立了無線充電的霸主地位,而這一次,IKEA 壓在了 ZigBee 這個有悠久歷史的無線協議之上,同樣的比谷歌、蘋果、亞馬遜這三家聯合 ZigBee 聯盟共同推動的 CHIP (Project Connected Home over IP) 協議早了幾年,而 IKEA 也是這項目共同發起人之一,而這次宜家會不會又一次的壓對寶呢?還是 IKEA 本身就是造就趨勢的臨門一腳呢?
#智慧家庭是一個系統不是單品銷售!
雖然很多品牌想把產品切開當單品來販售,但是一個接一個的購入配對進入系統中才是智慧家庭的常態,消費者要買的時候未必一定要買領導品牌,但是選擇一個有心「在地化」做長久服務的智慧家庭品牌,而且願意以及有能力與各種國內外聯盟協議接軌的品牌是必要的,IKEA 無疑是最有機會與信賴感的智慧家庭品牌之一。
而國內廠商要思考的是,迴避來自大廠的競爭,還是打不過就加入?不管怎麼樣,這都是必須深思的題目。IKEA的產品發展策略值得品牌公司仔細研究。
---
www.smarthomelab.tw #智慧家庭實驗室
#智慧家庭 #智能家居 #smarthome #智慧城市 #smartcity
系統家具定義 在 XXY 視覺動物 Facebook 的精選貼文
#金馬57 影展觀後短評
《游牧人生》Nomadland
★★★★☆
《游牧人生》讓我再次讚嘆趙婷對於美國文化的掌握,對影像敘事的技巧,以及對人物側寫的精準度;她將以車為住所、四海為家的「游牧族」,透過法蘭西斯麥朵曼所飾演的女主角芬恩,對「家」和「房」的概念重新定義,加注了更深刻的靈魂。
.
世界之大,我們何需將自己的人生鎖在那個被金錢系統所控制的房地產中?電影大量捕捉自然風景,遼闊的荒野,留下看似孤寂的人物和公路,對照到來來去去的繁華都市,我們真的因為城市的群組而飽滿靈魂嗎?更有趣的是,電影裡花了相當多的篇幅,描述了遊牧族的社群對於「社群」的概念,對金錢機制並非排斥,而是能夠讓「社群」發會到真正的實質意義;他們將人與人之間的交流,對物質的需求回歸到最根本的「解決問題」,而非地位、權力、和滿足慾望的象徵。
.
用泰坦廳的大銀幕欣賞這部片真的相當過癮,我也特別喜歡片中將人物放置在遼闊場面中,一種油然而生的舒坦心情浮上心頭,心曠神怡;而片中聚集游牧族的人群,劇情聚焦在人與人之間的接觸和來往,則是讓本片充滿溫馨氣氛的關鍵;諷刺的是,越是荒涼的地方,人們越能發揮人性的善良面,不吝嗇給予鼓勵和支持,沒有人在談論犯罪、掠奪或是資源不均的問題。「社群」雖是人與人的聚集,但「網路社群」和實際的人與人接觸兩相對比之下,相信在看完這部片後能夠有所反思;因為「虛擬」的社群,始終需要建立在「實體」上才有穩固的基礎。
.
我也喜歡劇情特別安排了一段芬恩和親戚的短暫相聚,對比到朋友回歸定居生活的改變;那些靠著金融風暴,在炒地皮中獲得暴利的人們,和這些透過游牧找到自己內心最需要填補的空缺,那個真正屬於自己的「家」或「歸屬」,我想不論是白色箱型車,還是一棟塞滿家具的房子,也都不是那麼重要了。
.
.
.
#電影 #影評 #游牧人生 #nomadland #movie #review #filmcritics
#XXY #金馬 #金馬影展 #金馬57 #goldenhorse #tghff #taipeigoldenhorsefilmfestival
系統家具定義 在 小吃貨的英國生活日記 Facebook 的最佳貼文
#關於成為工程師這件事 #文長慎入
如果有follow 我之前寫的種種文章,大概就知道我的一些經歷。但這邊還是來快速回顧一下。
大學的時候唸了歷史系,雖說跟分數也有關係,但一部分也是因為我對歷史很有興趣,小時候當所有人都想當老師,或醫生護士這種職業的時候,我總是想說要當那種什麼考古學家~探險家之類的,當然歷史學家跟發明家也是在考量的項目中,長大以後才發現,這好像有點不是現實中可以很容易實現的職業。
很多科目,像是歷史,或者其他社會科學相關的,在台灣畢業以後都非常難找工作,即使你認真向學,決定一路念到博士,也不見得畢業後可以找到教職或博後。即使是商學院畢業出來,在台灣可以做的也很有限,尤其當你是什麼管理學院相關的出來,也不太有機會直接躍升管理職。
台灣的產業其實比很多國家來的少,可以做的工作也有限,大部分都是科技相關,這也造就了台灣過去二三十年的榮光,到現在也一直是科技業為主流。當然科技業變成世界主流已經不是這一兩年的事情,全世界越來越多人想要擠進科技業,因為科技進步導致很多傳統產業面臨倒閉或者被迫改變。
說起來一開始除了自己想要試試看自己到底學不學得會寫程式這件情,再來就是因為不想一輩子領著低薪過著普通OL的日子,加上一直對國外有的憧憬,很想去國外看看外面的世界,體驗國外的生活,尤其是對歐美國家有著美好的想像。
要說當時為什麼做了這種倉促決定,其實大概就只是一個不甘心吧!因為在台灣沒有辦法念研究所,被各大學拒絕以後,就心想乾脆嘗試國外的大學,看有沒有人要我。其實大概就是個背水一戰的概念。
一直以來我都有點,盲目的亂衝。就是想到什麼就決定做什麼,當然有時候我也會變得很膽小,就會想太多,然後不敢前進。可是時常又覺得,應該要強迫自己前進,因為知道自己是個懶惰的人,所以不想辦法把自己帶到那個不得不的情況,自己就會一直怠惰下去。
說起來,一開始我也不是很認真的想要當工程師,也就是半推半就,覺得試試看的心態,身邊也沒有什麼人把這件事情當一回事,這都是到英國念研究所以後,才開始覺得自己可以做些什麼事情。但最近我也在反省,覺得自已以前在研究所也是很混,覺得自己第一年工作真的完全不知道在幹嘛。
最近到了新公司工作以後,發現公司很多人都是轉職的人,有人在媒體業待了十年,有人在金融業,有人從醫療產業,有人從產品經理轉職,大家都非常的認真,比我還要認真許多。
雖然我一直覺得,自己跟其他本科系畢業的人比起來,年紀很大,甚至會覺得自己轉行轉得太晚,有時候也會想說,為什麼自己國高中的時候不自己上網學寫程式,為什麼不好好念數學,這樣可以考個工程相關的科系。
可是在新公司遇到了很多他們以Graduate身份進來的轉職者,真的讓我覺得,其實自己轉的好像也不太晚。當然他們比我有毅力很多,很多人都是Bootscamp出來的,有的人甚至快要40歲了才以一個畢業生的身份進來。
我覺得在英國很好的一點是,這邊有很多公司可能願意收這種,想要轉職工程師的人。這些人有的可能甚至沒有唸過大學。
公司一個跟我一起onboard的資深工程師,他告訴我他沒有唸大學,全是靠自己學的,但網路上有很多開源專案他都是主要貢獻者。我覺得很厲害。
來英國以後我一直在反省自己,覺得有時候就是,自己會過得太安逸,就不太想努力生活,又或者覺得努力的生活好累,我幹嘛要這麼累,甚至會有一種,反正我只要表現得比其他人好就好。
因為一直以來在台灣的生活成長環境,我覺得自己的價值是被社會被周遭的人定義出來的。例如你的學歷,你的工作職稱,你的薪水,你的資產。
有時候我會覺得自己可能是個悲觀的人,又或者是其他人喜歡隱藏自已過得不好的部分?每次我看別人的部落格,或者別人敘述自己的職涯時,總是覺得別人的職涯好像都過得很順遂。
一直以來我都覺得,自己的職涯好像不是很順遂,其實跟很多人比起來好像已經不錯,畢竟有個工程師的工作,還是在國外的工作。可是實際上我都覺得,自己好像是個很差勁的工程師,為什麼自己好像寫出來的code都很爛,為什麼自己好像什麼都不會,為什麼自己好像學東西學得很慢,還有自己就是一個,很怠惰的人。我沒辦法像很多人是,可以一直去摸不同的東西,例如看到個新的東西出來,就馬上想要打開電腦去碰,我也不是那種,遇到一個解不出來的問題就想要一直去解開的人。更不是那種可以一直帶著我愛的電腦,去世界各地旅行,沒事就打開來寫code的人。
所以一直以來,我也時常在懷疑自己,自己是否適合當一個工程師。
這幾年在英國認識了一些朋友,我也一直覺得其他人都很優秀,尤其是當我一個很好的朋友說,他喜歡選擇困難的事情來做的時候,我真的覺得很愧疚,因為一直以來我都在嘗試避免困難的事情,大概也是因為這樣我開始覺得,自己是不是根本不適合當一個工程師,因為我根本不想要做有挑戰性的工作。
可是回顧自己以前在DHL做個海運OP的工作的時候,又覺得自己在那種環境下,很容易疲乏,就是那種,我該學的都已經學玩,然後每天接電話打電話發Email, 遇到的問題也都是用類似的方式去處以就可以解決。我也覺得自己沒辦法就這樣做個十年二十年。
當然那樣的生活還是有好處的,至少你不工作的時候可以全心全意的放空,也不用每天回家還要擔心deadline, 擔心code寫不出來,或者去想到底要怎麼寫,也不用整天擔心新的東西出來,沒辦法跟舊的東西相容,或者是不學新的東西,自己會很快被淘汰掉。
有時候自己也在想,乾脆逃去其他國家寫程式會不會比較好?我們公司因為是全球性的,所以可以調派到其他國家,但是公司說,假設我們去了其他國家可能是senior level, 不代表我們在英國可能一樣是senior, 因為不同國家的科技和技術能力是不同的。這代表說,工程師即使在某個國家做到一定的程度,去其他地方也不代表一樣厲害,所以自己還是要不斷的學習最新的世界趨勢,學習新的科技,不眠不休。這也是為什麼工程師很容易過勞死吧!
以前在台灣一直加班我覺得是身體勞累,但現在我覺得自己比較是心靈上的勞累。我甚至覺得自己應該要早早退休,然後開一個小店之類的,來賣便當。
不過如果現在要我轉去做其他的職業我也不知道要幹嘛。即使都是工程師,都是科技業,也分得很細,尤其在英國都喜歡分門別類。工作到現在快三年,若你要問我我的強項是什麼,其實我也說不太出來,大概就是web 相關的東西吧!所以關於職涯規劃這件事情我也一直在思考。
我認為自己應該至少要有個什麼Machine Learning 的相關知識,然後一些系統設計,或者DevOps的能力跟知識要有。當然,大部分的人可能會問到,在英國如果當工程師,當到一定的歲數會需要轉管離職嗎?其實好像不一定,很多公司的管理職跟技術職都是分開的,也就是說你走管理也不一定會領比較多錢,反正有兩條路讓你選。有的人可能做到退休都是工程師。
在英國工作到現在,其實我還是常常會覺得很不順遂,不管是技術,文化還是語言,應該說也不是不順遂,就是不自然,當然很多可能還是跟我英文不夠好有關係,我雖然可能可以理解90%的內容,可是剩下的10%如果不懂還是讓人感覺煩躁。
當然現在的情況是比剛開始工作好很多了,至少很多技術的東西已經有經驗了。我覺得剛開始轉職並且在英國工作的時候,真的讓人覺得很心累,雖然說也可能是因為我的Team剛好都是英國人,不知道為何,即使是現在的公司,公司很多元化,我被分到的Team也幾乎都是英國人QQ
反正大概就是會有一個時期,或者偶爾在聊天的時候,你覺得別人在講的某個東西,你完全不知道是什麼。你可能就跟著笑這樣。。。或者在講一些專有技術的名詞時,別人可能知道,你卻不知道,就會有一種恐慌。
我自己是覺得這方面有逐漸改善一點點,希望我在現在的公司可以做得比之前好,至少我現在比較聽得懂大家的北方口音。
至於寫程式方面,還是一樣很心累,就有一種,無底洞的感覺,不管你怎麼學都學不夠,學不完。像是跑馬拉松但是永遠到達不了終點的感覺。從我一開始學寫程式到現在還是這樣。
但如果說可以回到以前剛開始學的時候,我想我應該會希望自己看到任何不會的東西都不要跳過。我知道那樣可能會變成學得很慢,可是很多時候,像是我們想要建立一個網站,可能我們會Google,然後就會看到很多建議,例如用WP, 或者推薦你用什麼vue, react, angular, 可是問題來了,即使你會一些基本的JS, 你可以用這些框架或library建一個SPA(一個網站), 你還是不知道它實際上是怎麼運作的。他底層是怎麼跑的。這樣會有什麼問題呢?
當你自己在家裡按照教學做都可以做得很開心,可是當你要改東西,或者在工作的時候,發生了問題,你就不知道該怎麼辦,因為你不知道到底發生了什麼事情,為什麼會報錯。
另一種學習路線是,好,我要學寫程式,然後你就開始去看學習物件導向,學Java, 初學者都是,學寫一個Class, 學習那些型別,然後寫個hello world, 按下那個play 鍵,他就自己開始跑一些東西,然後build好了,你就看到下面的視窗打出hello world, 接著教學就會說,那我們來簡單的寫一些function, 然後你就會寫出一些基本的加法function, 給他int a, int b, 就會跑出a+b的結果。
更進階一點可能會有一些題目是,印星星,或印九九乘法表,或者用Apache web server, 架一個簡單的網站。學一點html, 一點CSS, 一點JS, 讓他看起來漂亮一點。
這個時候你個課程就差不多結束,你也有一個作品。
如果你想要找工作,可能會發現,工作很多考的內容你還是不會,或者你開始工作以後,發現很多東西還是不會。因為前面你做的那些事情都只是,根據指示做,就像你去IKEA買了家具按照那個指示來做,可是傢俱本身都已經切好了,零件也都配給你。今天如果要你自己去工廠買那些材料才切割才做,設計一個櫃子,你也做不出來。
所以問題來了,到底要怎麼樣學寫程式?我覺得大概就是,在做那些教學的時候,去思考,我現在做的每一步,是為什麼,如果不知道,就去Google, 不要貿然的進行。然後做完教學以後,看看自己能不能做出一個跟教學類似但不一樣的網站,最好是可以不要一直看著教學。
可以拿白板或紙,來畫一些圖,想想自己要做什麼,例如我要做一個,賣衣服的網站,我需要什麼東西,或者我要設計一款小遊戲,我要創造幾個角色,要有哪些怪獸,要有哪些關卡。
我自己是沒有去過BootsCamp, 但感覺BootsCamp的訓練都滿扎實的。英國有滿多免費的(雖然大部分是Women in Tech)的,所以想轉職的男生們可能要找付費的。
很多BootsCamp也是保證找到工作的,找不到可能會退錢。或者可以嘗試那種網路上免錢的。
當你開始工作以後,你可能要開始思考,你寫的code乾不乾淨,你有沒有寫測試,甚至你可以嘗試練習TDD(測試驅動開發),思考怎麼樣可以寫出好的程式碼,什麼叫做好的程式碼,越簡單越好,簡單易懂,白話程式碼,如果今天一個不會寫程式的人,可以經過你的解說,看得懂你的code, 那你真的就大成功了。
為什麼說要簡單易懂,因為通常工作以後你寫的code不是只有你自己要看,還有別人要看,甚至一年後的自己要看,之後你是不是還看得懂,例如命名,例如空行,例如有沒有重複的?
像是在工作以後,很多同事會用一些詞彙,例如DRY(don't repeat yourself), 或者網路上也可以找到很多文章,寫說要怎麼樣寫出乾淨的程式碼。除了乾淨以外,還要思考延展性,就像DIY的傢俱,或者書櫃,你一開始可能買了一個兩層櫃,你會希望你如果要變成三層可以加上去。或者是床,沙發,你會希望他們是可以我不佔空間,好收納,或者可以延伸。寫程式你也希望你寫的一些東西是這樣子。例如共用的程式碼,你可以寫一個可以把'2019/12/03' 轉換成 ’兩千零九年十二月三日‘ 的function, 你會希望這個function, 可以被廣為使用,可以是'20191203', '2019,12,03', 進來都會被轉換成文字的寫法這樣,那你要怎麼做?可以先去思考以要做的事情,然後寫出測試
像是在JS很多的測試是非常口語化的
describe('dateConvert', ()=>{
it('should return date using word format', ()=>{
expect(dataConvert('2019/12/03')).toEqual('兩千零
九年十二月三日');
})
})
如果有錯誤請各位糾正
反正工作以後,寫測試變成一件很重要的事情,還有要怎麼寫,因為當其他同事在看你的code的時候,如果你有寫完整的測試,同事也會比較好看得懂你的程式在做什麼
當然,沒有一個開發方法是完美的,也沒有什麼完美的code, 即使寫完了以後,也要檢查看看自己能不能把它變得更好,像是使用 TDD就可以一直加上新的測試,然後去想能不能把它變得更好,去重構。
各位如果有興趣的話也可以買一些書來看,雖然很多書已經出版很久,可是程式設計,跟軟體工程這塊,經典還是經典,可以幫助你了解,為什麼現在我們都用C語言而不是A語言,B語言,為什麼我們大眾使用物件導向來寫程式,不是使用Functional programming.
當你工作越久以後,可能會越容易遇到,你要去選擇你要用的程式語言,你要用的框架,你要用的工具。
有一天我問我的同事,到底要怎麼貢獻開源,他說不要為了貢獻而貢獻,一般都是,你因為自己在用這個開源軟體,遇到了一些問題,所以你去把它改善,或者說你需要一個工具,可是你Google很久發現都沒有,於是決定自己做一個。
雖然我覺得以目前的我來說,還很難達到這種程度,但希望我有一天可以。就像Vue.js的創辦人因為覺得Angular.js不夠好,於是決定把好的部分留下,再加上自己覺得可以讓他變得更好的部分,創造了Vue.js
其實我自己也很害怕去討論這些非常技術的東西,我很怕自己講錯誤導大家哈哈
成為工程師真的需要很強的心臟,因為需要接受很多批評,很多反饋,才可以進步。當然有時候我也很玻璃心,常常因為被其他工程師點出自己的錯誤就心情不好,可是如果都沒有人批評自己,自己大概也不會進步。我想這大概是跟其他工作最大的不同吧!
以前在做海運出口的時候,即使可能做錯也不會一直被講,除非你真的是做了很嚴重的事情,不會你每接一通點話,每寫一封信都有人來看,有人來糾正,有人來說,你Email要怎麼怎麼改,你這樣寫不行。
可是寫程式,你寫出來的每一行code都可能被品頭論足,每一行code都要確保它的質量,當然我知道不是每個公司都有code review, 可因為我一直以來都有這個東西,也導致我覺得壓力滿大的哈哈
不知道分享這些會不會讓大家也覺得壓力大