Huli's Blog

Learning by sharing

[心得] 新加坡看病初體驗

| Comments

事情的開端

事情是這個樣子的,原本我眉毛左邊有長一小粒東西,我想說可能是青春痘所以就沒去管
就在上禮拜日晚上(5/21)覺得那邊有一點腫腫的,想說會不會其實是撞到什麼腫起來
晚上睡覺的時候就想說那我揉一下好了,不是腫起來都要揉一揉嗎
接著我就進入夢鄉了

好戲登場

隔天早上起床,就是見證奇蹟的時候了

[心得] 寫 blog 的好處

| Comments

前言

這篇我原本是回在 ptt 上面的,整理一下之後轉到 blog 來
其實對於這個主題,91 哥的這篇:我為什麼鼓勵工程師寫 blog已經講得很好了,建議大家先看一下這篇文

而我這篇心得文呢,主要是因為看了上面貼的那篇之後滿有感觸的
所以提出幾個自己很有共鳴的點來做延伸

幫助自己

我寫 blog 的最大收穫之一就是幫助自己
很多人都以為寫了技術文章就是要給別人看的,但卻忘記自己也是文章的受眾之一

很多時候我寫 blog 是因為要留下自己的筆記
想說放 Evernote 到時候很難找,不如公開在網路上,還可以讓 Google 幫我備份
而那些筆記對別人有沒有用我不知道,但至少對我自己很有用

有很多不會頻繁接觸的東西,過一陣子沒碰之後你一定會忘記
例如說新電腦的環境設置,我習慣裝 zsh,然後自己改一些配置
可是這種東西一定設定過一遍就忘記了,因此我就整理一下 po 在網路上

前一陣子剛換工作,要幫新電腦設定 zsh 的時候,就跑回去看自己以前的文章

「阿!幸好我那時候有寫下來,這次只要照著做就好了」

或是之前 postgresql 在設定的時候也碰到一些問題,一樣寫了 blog 記錄起來
下一次碰到的時候我完全忘記當初怎麼解了,就會很感謝當時的自己有記起來

又或是最近想寫個 Slack 的 bot 玩玩看,但已經很久沒有寫這東西了
但幸好我 blog 以前有寫一篇 Hubot 的心得,只要稍微看一下,記憶就都回來了

相信我,寫 blog 幫助最大的一定是自己
你看我可以舉那麼多例子就知道,我被自己的 blog 幫助到多少次

若是你在初期真的不知道要寫什麼,沒有什麼 idea 的話
建議你可以從技術筆記開始,可以不用是那麼完整的一篇技術文章
甚至只是整理一些連結也可以!

我以前寫過一篇文章標題叫做:[Android] 到底什麼是context?
裡面我只是整理了一些看到的不錯的連結,當作筆記就 po 在部落格了
結果你現在如果去 Google 搜尋:「android context」,會發現這篇出現在第一頁

只是一篇再簡單不過的筆記,卻帶來意想不到的效果
(但這種奇怪的事不是天天都有啦,當作運氣好的結果就好XD)

再舉一個例子,我當初在理解從 callback, Promise, generator 一直到 async 的時候
有把自己的心得記錄下來整理成文章:[Javascript] Promise, generator, async與ES6

像我現在其實就有點忘記這整個脈絡跟 code 要怎麼寫了
但只要再把文章看完一遍,我就可以回憶起八九成了XD

再一次的學習

理解一項東西是一回事,要寫出 blog 文章又是另外一回事

有時候你在研究一個主題,東看看西看看覺得有點 insight 可以寫
或者是覺得有些心得想要跟大家分享,於是決定立刻動筆開始寫文章

可是,寫一寫卻發現這個點好像不太懂為什麼是這樣,那怎麼辦呢?
還能怎麼辦,只好去查一下再把它弄懂
或者是在文章上面寫:其實這部分我也不是很懂...

但如果沒有弄懂的話,你會發現文章愈來愈寫不下去,因為不懂的地方只會愈來愈多
於是你就只好認命,乖乖的再去把更多的文章看完,補足自己不懂的部分

沒錯!在你終於把文章寫完的時候,你的知識又再消化了一遍,又把更多的洞給補齊
這就是寫文章的好處之一,可以強迫自己再一次學習
說穿了,其實寫文章就是把知識重新整理、歸納的一個過程

像是我前幾天寫的一篇文章:我遇過的最難的 Cookie 問題

其實原本我是沒有想要把問題追根究底解決的,可是我文章都寫一半,頭都洗一半了
文章的結尾如果是:這個問題我也還沒有答案...的話,總覺得不太完整
只好硬著頭皮去找更多資料,最後終於把問題透徹地搞懂

我寫這篇文章主要是想告訴大家,原 po 這篇裡面講的寫 blog 的好處都是真的
因為那些好處我幾乎全部都體驗過一遍了

像是把自己的知識公開在網路上,就可以讓全世界的網友來幫你糾正錯誤
這是一個多棒的機會!有些東西如果沒有人來跟你講,你可能根本不會知道

例如我一個月前寫的:讓我們來談談 CSRF

po 完之後有一個朋友傳訊息給我說:「講 CSRF 居然沒講到 SameSite」
我就傻了幾秒跟他說:咦?這個我居然找資料的時候沒找到!
然後就去把相關知識惡補了一遍,再把內容補上去原本的文章
就這樣,輕鬆再賺到了一個新知識

意外的收穫

我當初寫 blog 的理由就兩個:幫助自己、幫助他人
對我來說,其他額外發生的好處很多其實都是額外價值,但也會成為你繼續書寫的動力

像是以前寫了一篇講 redux 的 middleware 的文章
http://huli.logdown.com/posts/294284

不定時會有路過的網友看過之後來留言,說這是他們找很多資料以後,看過最好懂的文章
這時候內心當然就會小感動XD 至少知道自己的東西是真的有幫助到人
也知道自己真的有能力,可以把一件複雜的事情講的簡單許多

其他的好處像是收到演講邀約、上課邀請甚至是公司的合作機會
或者是聚會時別的工程師會講一句:「阿!我有看過你寫的....」

講到這裡,或許會有人認為說:你能得到這麼多好處,是因為你的 blog 比較多人看啊

聽起來也是挺有道理,可是,如果你不是本來就有名氣的人
剛開始寫 blog 的時候,大家的起跑點都是一樣的,都是 0

我也是一樣,剛開始寫那些筆記的時候根本就沒有人看,也沒有人會來回應
所以這時候我覺得寫 blog 的心態就很重要
假如你一開始的心態就是:「我要靠著寫 blog 成名!」
那這時候你的挫折感就會很大,因為你的 blog 根本沒有人會來看

可是我剛有講過,我寫 blog 的心態是為了要幫自己留筆記
如果有人來看當然很好,但沒有人來看我也沒差,反正我可以幫到我自己就好

但你要相信,真正有價值的內容是不會被埋沒的

如果你覺得你寫的技術文章很棒,真的很有質量,也能夠幫助到很多人
可是卻沒有人知道的話,你可以貼到 Facebook 的技術社團
或者你要投稿 TechBridge 也可以,我們會幫你曝光的XD

我的 blog 有八成的流量都是從搜尋引擎來的
只要你的文章是真的有價值的,就一定會越來越多人點,然後 Google 排名就越來越前面
看的人會越來越多,流量也會越來越多,你就會更有動力寫出更好的文章

這是一個很棒的正向循環,希望大家都能進入到這個循環之中XD

總結

講了這麼多,還沒寫 blog 的人應該對這件事情很心動了
不要再等了,現在就是「好,那我找個時間來寫 blog」的那個「時間」
至少先創一個 blog,大概才花你十分鐘而已

如果你想找一個線上平台,我用了兩年的 logdown(免費版)我覺得很不錯

或者你也可以考慮國外很紅,國內也越來越多人 po 文的 Medium

想要自己架的話可以考慮 Hexo
或其實用 Github Issue 寫 blog 也可以!

不要再等了,讓我們一起寫 blog,一起成長吧

該進大公司還是新創?

| Comments

標題來自於 Rabbie Kao 的個人臉書的這則貼文,建議大家可以先去看一下原文再回來看這一篇。

身為一個比較早出社會的人,最近也剛好有朋友問到我這一題,想說也來發一篇我自己的看法。

你想成為怎樣的人?

首先,我十分認同這個是非常重要的一個問題,是人生中的核心問題。你的重大決定應該都會跟這個核心問題有關,所以這也是為什麼這一題這麼困難,因為它太重要了。

但我認為如果得不出這個答案也是很正常的一件事,也不用覺得灰心什麼的。

有些事情本來就需要透過不斷地探索才知道嘛,隨著你經歷過的事情愈來愈多,也會更知道自己想成為一個怎樣的人。而且這個答案也不是固定不變的,其實也可以變來變去。

你可以十歲的時候想成為一個守護地球的人,二十歲的時候卻變成一個想要毀滅地球的人,這也是 ok 的。

但儘管如此,還是希望大家都對這個問題有一個基本的答案,就是大概模糊地知道自己「目前」想成為怎樣的人,對以後做任何決定都會有幫助。

好了,然後呢?

假設我們已經回答完「自己想成為一個怎樣的人」了,然後呢?我們就可以來回答「該進大公司還是新創」了嗎?

我想成為一個,藉由程式教學讓每個人都不再覺得程式是一件困難的事情,專注在程式教育這塊的人

那我應該要進大公司還是新創?

嗯,顯然是回答不出來的。

為什麼?我覺得是因為在「想成為一個怎樣的人」與「我應該進大公司還是新創」之間有一個 gap,這個 gap 太大導致你沒辦法從這個前提直接導出結論。因為前者的這個問題太核心了,是整個人生價值觀的核心問題。

再者,其實「我應該進大公司還是新創」這個問題其實也問得不好。如果對方真的只問:「我該進大公司還是新創?」這種問題,那我也會覺得這個很空泛很爛。但就算對方這樣問,其實我們也還是可以再追問幾個問題,才會更明白提問者想要問的到底是什麼,例如說:

  1. 你為什麼想(或不想)進大公司?
  2. 你為什麼想(或不想)進新創公司?
  3. 你目前猶豫的點是什麼?

以我的經歷來說,通常會問我這個問題的人,可能是已經拿到一間新創公司跟一間大公司的 offer 了,這時候才會提出:「我該進大公司還是新創」這個疑問。

而他們通常會提出這個疑問,其實背後的點有可能是:

  1. 以職涯發展來說,大公司的經歷會不會比新創更吃香?至少大公司大家都聽過
  2. 聽說新創做的事情比較雜,會不會到那邊之後什麼都要做,反而比較像打雜的?
  3. 聽說在大公司只能當小螺絲,只負責其中一部分,會不會很無聊?
  4. 聽說人很少的小公司因為培養新人的成本很高,來了就不想放他走,是真的嗎?
  5. 在新創公司如果公司倒掉怎麼辦?
  6. 新創公司的升遷跟獎金制度聽說都不完整,那選大公司是不是比較好?

因為原本的問題範圍太大,所以我們必須把這個大問題切成很多的小問題,其實這些小問題才是重點。而且你把這些小問題解決以後,大問題也就跟著解決了。

不只是「我該進大公司還是新創」這個問題範圍太大,「我想成為怎樣的人」這個問題範圍也太大了。

如果以選擇公司的角度,我覺得試著回答以下幾個問題會更有幫助:

  1. 我想進去什麼樣的公司?
  2. 我想擁有怎樣的工作環境?
  3. 我希望的工作內容是什麼?
  4. 我的職涯規劃是什麼?

當然,這三個問題跟「我想成為怎樣的人」也是有關聯的,例如說你想成為一個很注重環保的人,你就會比較想進去標榜 Eco-friendly 的公司。或是你想成為 40 歲就退休的人,你在職涯規劃上就必須要有完整的規劃,讓你在 40 歲以前可以存到之後一輩子需要的錢。

為了接下來方便舉例,就以我個人為例來回答看看這些問題好了:

  1. 我想進去一間網路公司,因為我喜歡網路快速傳播以及即時的特性
  2. 我想待在一個壓力不要太大但也不能太小的工作環境,壓力太小會讓我覺得無聊,太大會讓我覺得喘不過氣,我不希望找那種可以養老的公司,我需要進步。但我也不希望找每天加班的公司,我覺得這樣的工作環境是有問題的。
  3. 我希望能夠專注在做自己的事情,寫前端就寫前端,寫後端就寫後端,不要找的是前端工程師卻又叫我寫後端。
  4. 我的職涯規劃就是沒有規劃,且戰且走

回答完這些以後,你就有了對於工作的核心價值,這些回答形塑了你想要進去的公司的樣貌,也決定了有哪些因素會讓你考慮進去一間公司。

把上面整理一下,你會發現我想進的公司應該是:

  1. 網路產業相關
  2. 工作 loading 普通,不能太閒也不能太忙
  3. 能夠只專注在一個地方
  4. 沒有升遷制度是 ok 的

職場前輩,就決定是你了!

順利地幫助提問者找出自己對於一份工作的期待以後,接下來就是職場前輩(也就是被提問的我們)可以幫到忙的時候了,還記得上面那些問題嗎?

  1. 以職涯發展來說,大公司的經歷會不會比新創更吃香?至少大公司大家都聽過
  2. 聽說新創做的事情比較雜,會不會到那邊之後什麼都要做,反而比較像打雜的?
  3. 聽說在大公司只能當小螺絲,只負責其中一部分,會不會很無聊?
  4. 聽說人很少的小公司因為培養新人的成本很高,來了就不想放他走,是真的嗎?
  5. 在新創公司如果公司倒掉怎麼辦?
  6. 新創公司的升遷跟獎金制度聽說都不完整,那選大公司是不是比較好?

以提問者一個社會新鮮人的角度來說,他為什麼會問這些問題?因為他不知道嘛,是真的不知道。所以才會用了很多「聽說」,但是實情是不是這樣他也無從得知,因為他根本沒有工作過,所以才會跑來問你。

那誰會知道?就是已經工作過的我們「可能」會知道,儘管不是全部都知道,但至少會比一個社會新鮮人瞭解得多。這就是我認為提問者會來找我的原因,因為我工作過,至少我有在幾間公司待過,所以我能夠回答出上面的問題。這些問題才是我真正可以幫到忙的部分,而我也很樂意回答這些問題。

假設這些問題都被回答了,那現在就有一些事實是提問者能夠參考的,例如說:

  1. 沒錯,大公司的升遷制度通常會比較完整。
  2. 一般來說,新創做的事的確會比較雜,但可以接觸到的層面也越大,可以學習到的面向越廣。相對來說大公司可能就會讓你專注在某一個部分,比較精,但可能接觸到的範圍就沒那麼大。

這邊要注意的是,如果提問者是有具體提出哪一個公司,那當然是最棒的,因為每間公司的狀況都不同嘛!

像我以前也覺得我進了一間五千人的大公司,制度應該跟我想像中的大公司差不多,誰知道進來之後才發現原來我們擁抱新創理念,組織架構比我以前待的新創還新創!有些通則,當然就有些特例,很多東西都是每間公司不一樣的。如果能針對某一間特定公司來回答上述問題,那當然是最棒的。

而有了這些事實可以參考之後,提問者就可以對照剛剛他回答的那些對工作的想像來獲得結論,例如說:

  1. 前提一:我希望能夠只專注在一個地方(這是我想進的公司的第三點)
  2. 前提二:一般來說,新創公司會比較雜,大公司比較專注在一塊(上面回答的第二點)
  3. 結論:以這個因素來說,大公司會是比較好的選項

把每一個因素都這樣比一比,就可以大概得出哪一個比較適合自己。

到這邊為止,其實就差不多可以把原命題「我該選擇大公司還是新創公司」給順利解決掉了。

後記

我覺得原文的回答是針對原問題的其中一個面向,但其實還有更多面向值得我們去思考與回答。就如同我上述說的,在「想成為怎樣的人」跟「該進大公司還是新創公司」之間其實還有一條很大的鴻溝,我們可以試圖把這條鴻溝補起來,就能更明確地、更有幫助地來好好回答這個問題。

前端工程師的價值在哪?

| Comments

起頭

標題來自於我一位朋友在Front-End Developers Taiwan裡面所提出的問題,完整問題如下:

誠心請問:前端工程師的價值在哪?
我是很想走前端、視覺、美感的人。但是一邊在路上,一邊卻不自主的質疑著這些東西的價值在哪?
比方說前端就是一些畫面、表單,boostrap套一下或是用Material UI套一下,就變成RWD。不夠的東西再自己用CSS手刻一下。
但大都時候不就是個畫面嗎?就算很醜好像也沒什麼人在意。"功能有出來、資料是對的就好了。"
目前我想到的是像D3.js這種視覺呈現,是後端做不出來的東西。除了這個還有其他價值嗎?
這是我想到的價值:
(1) 做畫面、用RWD,讓各個裝置都能有對應畫面
(2) 如果載入時間太久,前端有責任透過微調,讓它的載入時間變短。
(3) 像D3.js那一類的視覺呈現。
一直想很問問大家,請問前端有什麼地方是價值所在?

原文連結:https://www.facebook.com/groups/f2e.tw/permalink/1254841954553167/

以下僅就我淺薄的前端經驗,給出一些我認為的答案並附上理由。