黃子洋

近期工作心得以及日後的文章規劃

很久沒有到medium上發文了,此篇文章會分享我目前的狀況以及日後發文的規劃。

近期狀況

在Onboard IBM約兩個月後其實每天都過得非常忙,之前就有聽說過裡面的壓力不太小,但現在自己親自體驗後才知道那種每天被交易追著跑,修單,壓時間的那種感覺,不像學生時代可以慢慢的研究技術且開發。

雖然說這份工作自己知道不會做太久不過還是想分享一下目前對這份工作的感覺,我個人在團隊內的角色是PG(Programmer),平常負責的是一份系統的前後端的部分,來一份需求時前端需要同時更改網頁以及行動端(我們使用Cordova)的部分,前端的部分使用Angular,後端使用Java Spring,以下是我認為的優缺點。

優點

  1. 團隊成員的個性都很好,問前輩都很樂意回答你
  2. 對新人的容忍度蠻高的,最近瘋狂delay
  3. 分工明確,PG就做PG的事不會有事沒事叫你去面對客戶

缺點

  1. 使用技術老舊,但也是可理解礙於系統過大,想要更新版本或使用新技術成本是非常高的
  2. 團隊PG大部分都沒有在研究新技術,但也是因為大部分的人都有家庭了,但還是有遇到有在研究新技術的前輩,我認為跟他很合得來
  3. 缺乏新人訓練,之前onBoard時以為會有大量的新人訓練,但沒想到馬上就開工了。
  4. 文件匱乏,可能礙於歷史因素,對架構或coding style並沒有硬性規定
  5. 單元測試,整合測試都被拔掉了,原本想進來練習的說QQ

總結以上幾點,這份工作跟我原本的期待其實相差蠻多的,原本以為可以受到扎實的新訓以及開始練習運用TDD的開發手段,但抱怨歸抱怨,公司身邊還是有許多有關注新技術的前輩,平常也會聊些技術相關的東西,期許能跟他們一起成長。

如果有對IBM Associate Application Consultant有興趣的也可以一起討論,雖然我只onBoard兩個月左右。

近期文章規劃

最近看到了fireship.io,一個我追很久的youtuber在前一年的一個影片叫做

The JavaScript Survival Guide

https://www.youtube.com/watch?v=9emXNzqCKyg

影片的內容大部分都在講述一些關於語言特性所導致的一些專有名詞,例如closure, hoisting等等,這也讓我想起了之前在準備Javascirpt面試時的那些噩夢。

以下是影片內描述到的幾項主題

1. How to run Javascript

JS目前就我所知可以運行在browser上還有利用NodeJS來執行,也提到了一些關於script tag的知識

2. Primitives and Objects

在Javascript中,最廣義的資料類型就只分為上述這兩種

3. Control flow & truthy / falsy

介紹了關於一些比較新的流程控制語法例如tenary operator,以及truthy/falsy value

4. variables & operators

如字面上意思

5. Functions

JS中function算是非常特別的一種存在,他算是一種物件,也衍生出許多特別的主題,例如IIFE, arrow function, higher-order-functions, currying等等

6. Closures

早期在Javascript沒有class語法糖時,通常都是利用Closure的概念將某些的屬性進行封裝

7. Objects

在JS中,除了primitive type萬物皆為物件,物件本身也有許多特別的方法等著來探索

8. this

傳說中的大魔王,想要全盤理解可能得耗費數年,由於在JS中的this是動態決定其值的,所以常常會造成很tricky且意想不到的結果,通常也會搭配call, apply, bind這三個一起講述,畢竟他們三個的作用就跟this息息相關

以上8個是在影片中有提到的,以下這幾個是我認為也是非常重要的主題

9. prototype chain

JavaScirpt的繼承實作是透過此概念來完成

10. Hoisting

為什麼先宣告的程式碼可以呼叫後宣告的function,那你得去了結JS的hoisting

11. Loops and iterator

你知道可以對哪些物件使用for…of Loop與forEach loop與平常的for有什麼差別嗎,一切都與在物件上賦予特定的屬性有關

12. Promise & async await

非同步處理相關運作,Event Loop是怎麼運作的,macro task和micro task又是什麼東西

13. Deep copy vs shallow copy

在JS中如何複製物件

文章規劃

以上這幾個是我認為在JS中幾個非常重要的觀念,日後的發文目標是能清楚明瞭的講解這些主題,不要求講的非常之深,但必須能清楚地解釋每個觀念到底在幹嘛,這是我給我自己在工作之餘的一點目標。

總結

雖然目前身處在自己沒有非常喜歡的工作環境,不過也認識了很多前輩,學習到了許多觀念,不管身處在哪裡能學的東西一定有,但是要靠自己去找到,希望在日後在工作上也能enjoy並找到能持續學習的動力,keep going。

--

--

黃子洋

黃子洋

Software Engineer @ shopback Currently focus on frontend