almost 11 years ago

Land Dream Rails Job http://get-rails-job.today 是我昨天發表的一本新書,主題是「Rails 工作求職指南」。

說是「求職指南」其實不太精確,正確來說應該是「成長指南」和「面試 / 被面試」指南。

撰書動機:解決困擾

在臺北辦 Rails Meetup 兩年多以來。這些年來:很多人來 Meetup 找我問過問題。根據統計:頻率最高的竟不是「開發上的問題」(基礎開發的問題我都轉交社群朋友回答,我本人只接受技術架構調整、Code Review、求職面試類的問題。),而是求職相關問題。

以下按照排名列出我常被問到的問題(也包含來信 email 統計):

求職篇

  • 如何找到一個 Rails 工作(超過150次)
  • 我夠不夠資格面試上一份初級 Rails 工作 (超過100次)
  • 我零經驗,想轉行寫 Rails。合適嗎?(超過100次)
  • 學完「基本」的 Rails 之後怎麼實做自己的 project ( 超過 50 次)
  • 我沒有太多開發經驗,想換公司去累積經驗,但人家又不收沒有經驗的開發者,要怎麼辦(超過 50 次)
  • 哪間公司目前比較適合我的程度(超過 40次)
  • 怎麼樣才算是 Senior Rails Developer (超過 30 次)
  • 你知道某某公司面試考什麼嗎?(超過 20 次)
  • 可以幫我看一下履歷寫這樣可以嗎?(超過 20 次)
  • 我要找一份 Remote 工作,目前這樣程度夠格嗎?(超過20次)

找人篇

  • Xdite 你有認識人可以介紹嗎?
  • 你的公司都怎麼挑人?
  • 你怎麼出筆試/面試題目的啊?
  • 怎麼正確鑑定一個 Rails Developer 的程度
  • 怎麼阻擋「亂來」的履歷入侵信箱
  • 去哪裡徵才可以找到優秀的 Developer?

身為職業 FAQ 答題機器人,我發現願意高薪求才的公司非常多,但他們找不到合適的人(或者說是從履歷上看不出來適合)。學習 Rails 的人也非常多( Rails 101 銷量非常好 )。但是這兩者卻對接不起來。

身為勞方,大多數人卡在「雞生蛋、蛋生雞」的問題,沒有作品開發經驗怎麼找工作。或者是不知道怎麼樣的技能需求才能達到面試門檻。

身為資方,不知道去哪裡找人。或者是信箱每天老是收到一些「完全來亂」的履歷。

其實這些都有解答。但不是一時用講的,甚至在 Meetup三小時內,能夠就講清楚的答案。但是我一年要回答這些問題非常非常非常多次...

於是最後我決定把這些問題和答案全部集結在一起編成這本書。

解決勞方 / 資方的問題

  • 如果你想自學,這本書裡面有一整份順序自學實作指南
  • 如果你想打破雞生蛋、蛋生雞的問題,這本書教你如何順利累積書本外的實作經驗
  • 如果你想找能正確累積經驗的工作,這本書教你找到適合等級的工作
  • 如果你想找工作大加分,這本書教你開金手指
  • 如果你不想履歷石沈大海,這本書教你寫出不容易被刪掉的履歷
  • 如果你不想搬家,想要找到 Remote 的工作,這本書教你如何應徵上 Remote 工作
  • 如果你想升上資深工程師,這本書會介紹資深工程師的進階方式

=== ===

  • 如果你是僱主,這本書教你怎麼樣快速刪掉篩選出來亂的履歷
  • 如果你想要找到好的人才,這本書教你去哪裡找人,刊登職缺最有效率
  • 如果你想快速鑑定出一個人是否唬爛,這本書教你如何出題

購買網址

美元售價 85 USD。台幣售價 2500 新臺幣。

(i.e. ReadMoo 會晚 LeanPub 一天更新,因為是人力更新)

FAQ

A: 我怎麼知道內容是不是唬爛?

  1. http://leanpub.com/dream-rails-job 有書籍部分章節 Sample
  2. http://leanpub.com/dream-rails-job 有 45 天無條件退款保證。看完覺得不滿意可以退掉這本書。(不過退掉這本書之前,還請幫我一個忙,Feedback 讓我有改進的機會。
  3. 如果你是 Senior Developer 或僱主。可填寫 Feedback 這個表單免費索取這本書。
  4. 如果你 22 歲以下 可填寫 Feedback 這個表單索取 discount

A: 這本書會不會拖稿?

  1. 這本書已經寫完了,所以沒有拖稿問題。
  2. 3/6 上架之後,因為讀者反映骨架稍微單薄,需要更多真實情境。5-10 章全部砍掉重寫,新版的內容多了十幾頁。
  3. 如果你有想知道的其他議題,但書裡面沒有這部分,可填寫 Feedback 表單建議新增。

A: 這本書為什麼這麼貴?要 2500 臺幣。

  1. 寫這本書的原因,純粹只是不想一直回答同樣的問題高達100遍。而回答書裡面的這些問題絕對會超過 1 個小時以上。而雇用我本人一個小時薪水不止 2500。而且我也不想賣這樣的服務。所以只好出此下策。
  2. 我相信求職一直被 Reject 的成本遠大於臺幣 2500。請假一天出去面試就要扣1-2000薪水了。

A: 有沒有折價卷

  1. 在 3/6 前購買 Rails 101 的讀者信箱裡面應該都有收到折價卷了。金額保密。

A: 什麼地方可以找到你問真人問題?

來我公司。或者是每個禮拜二我會參加 Rails Meetup

A: Lean SaaS 什麼時候更新?

3/16

 
almost 11 years ago

太常講了。乾脆寫成一篇...。主要是對 btn-danger 濃濃的不滿...=_=

Read on →
 
almost 11 years ago

What should we do? -- Part 1 ( Still using Wordpress)

OK。上一篇其實都是廢話。被整過的都已經知道「大概」是怎麼回事了。重點是 Solution。Solution。Solution。

如果你還是希望暫時繼續使用 Wordpress 的話,有幾件事情可以馬上處理。

Read on →
 
almost 11 years ago

今天路過 FB 看到朋友蔡校長寫了一篇政治文章,這篇文章的話題性之高( Visit 40,000+、Pageview 130,000+) 意外的衝倒了部落格本家。蔡校長不是不想解決,也一直為 Scaling 屢次搬家所苦,只是他遇到的狀況,會跟網路上能夠 Google 到的答案都不太一樣。剛好我在創業前,就是在 某科技網站 專注做 CMS ,這個主題還算略懂,所以打算寫篇文章來分享給有類似之苦的朋友。

(此篇文章特別的目標讀者是:針對使用 Wordpress 架站,並且苦惱一天到晚倒站的內容生產者)

Read on →
 
almost 11 years ago

今天在 FB 上看到這篇文章 為什麼新聞網站長這樣。看了覺得有點手癢來回一下。

某科技網站 願意讓我用「某科技網站」的形式,分享 2011 實作該網站首頁和內頁的細節。所以這裡就不截圖了。

首頁版面的編排

Read on →
 
almost 11 years ago

這篇是一篇有趣的觀察。主要的動機原先是因為想投稿 RailsConf 2014。填了報名表單以後發現有趣的細節,覺得可以分享,最後寫了這篇文章。

投這次 Conf 的動機主要是想省一點旅費。(投中者有一張免費門票 (750USD) + 500 USD 的補助費,沒中大會也會幫忙保留門票名額...)。不試白不試,所以也拿了一個小題目投了 CFP。

http://www.flickr.com/photos/xdite/12722098294/sizes/o/in/photostream/ (目前 CFP 的頁面已經關起來了,所以這是存檔畫面)

結果一開 CFP 的畫面我就笑了。因為界面和規則超熟悉 XD。

竟然是 YCombinator 式的徵題目方式 XD。( 去年秋天幫 Logdown 去投了 YC...)

傳統的 Conf 投稿流程

先聊聊傳統的 Conf 徵稿流程,以免讀者不太理解為什麼這件事值得記錄。

傳統 Conf 的 CFP 通常是這樣的:

第一次舉辦 (沒得投 CFP)

如果這個 Conf 是第一次舉辦的話,通常一般參加者是沒有參加 CFP 機會的。講者通常會是 Conf 主辦者到處去拜託他的大咖朋友們出席幫忙湊名單...。所以每個 Conf 的第一屆通常會很好看,因為 80% 以上的都會是大牌。

第二次以後舉辦(開始可以投 CFP)

如果這個 Conf 第一屆辦得好的話,很有機會隔年可以繼續再舉辦。這時候就會有可以投 CFP 的機會。通常投稿的格式只有一種:

1. 講者簡介:(你是誰?)
2. 主題介紹:(你想講什麼主題,內容摘要是什麼)

大概全世界 99.95% 的 Conf 都是這種徵稿方式。

所以取決會不會投上的因素通常也只有兩個。

1. 講者本人經歷以及背景
  • 當地大咖。上的機率就會 ++++
  • 社群活躍度非常夠。(有知名 opensource 專案或者文章非常多)
  • 演說經驗(有 meetup 演說經驗數次)
  • 任職的公司(如果公司有厲害的 scale 經驗,也容易上)
2. 題目本身

但用「人」去篩選題目,其實也容易出現誤差。因為一定會有其實題目很強,但講者是剛出道或是其他國家強者(有可能你不熟悉)。主辦者會試著想要捕獲落網之魚。這時候就是用題目篩...

不過主辦者會這樣想,投稿者也會這樣想。所以有時候真的節目單上會出現很厲害的 Title,但到現場發現演講者根本是一個什麼都不懂的新手在亂扯而已。

Rails core team member: Aaron Patterson 有一篇演講「算是」「半諷刺」的在 Talk 裡面塞這種現象:American Next Engineer。非常好笑,值得一看。

小結

然後結果就是我這樣一寫完,你就知道怎樣對一般 Conf 作弊了(?)。(不過不寫的話,你投稿失敗幾次後,自己通常也可以試出方法)。

不過很遺憾的,即便大家都知道遊戲規則和作弊手段,但還是沒有辦法有一套有效的機制防止。

RailsConf 歷年的 CFP

RailsConf CFP 我投過 12,13,14。12 是傳統的講者簡介/主題介紹。13 是講者簡介/主題介紹(但在第一階段禁止泄露個人資訊,進行海選)。14 是 YCombinator 式篩選。

YC 式是我寫這篇文章的主因...

RailsConf CFP 2014 ( YC Style)

備份的 CFP 辦法(存檔):http://www.flickr.com/photos/xdite/12722098294/sizes/o/in/photostream/

備份的 CFP 界面:

規則簡單的歸納是以下三點:

  1. 簡介你的 Talk ( Abstract )
  2. 敘述技術細節 ( Detail )
  3. 為何你有資格講這個題目 ( Pitch )

不過雖然必須要填寫(3)。但為了公平起見,還是嚴格禁止講者在此欄泄露個人資訊。

然後該份 Talk 可以選擇「Tag」。也就是大會這次有 Prefered 的主題。你也不必猜口味,直接選你的 Talk 趨向哪一種。

在第一階段的話,評審會 Review 你的 Proposal,然後透過盲問盲答的方式篩,由問答當中看功力。第二階段才會根據「你是誰」(該講者技術以及演講經驗決定是否入選)做篩選。

How YC do?

原辦法(存檔)https://gist.github.com/xdite/9173702

為什麼會說 RailsCFP 2014 跟 YC 很像呢?因為 YC 的規則更嚴問更多,其目的是試著讓創業公司以 360 度的方式審視自己並且線上 Pitch。

而且 YC 預設也會有一些偏好投資的題目讓你勾(比如說其中一個選項就是未來的媒體...)。

(填這份資料真的相當吃力,這份表格我們當初就寫了兩週多,還花了三天的時間錄了一段 interview 影片。還請朋友幫我們大修稿一遍)

審核程序

填完之後,( HN 上的謠言說) YC 校友會線上觀看這些 video 進行投票,高的會進 review。然後,YC 的 board 再視對你感興趣的程度線上問問題(要自己刷 HN),要你回答。

我們的成績是自介影片 1:30 左右平均被看了 1:08。有 8 個人看。然後 PG 本人寄了兩次信向我們要數據...(美國時間週六下午三點 submit 問題,然後美國時間週六下午八點寫信催我交,五個小時後我看到信,剛好在北京 RubyConf 最後一天晚上十點,回飯店累都快累翻了,結果只好熬夜寫 code 凌晨兩點抓數據...)。

海選的公平性

當初填過這麼慘烈的表格,所以這次才會印象這麼深。看到辦法馬上就會心一笑。

不過這的確是相當好的方法,因為熱門的創投投資公司,與熱門的 Conf 都會遇到相似的問題:

  1. 背景經歷顯赫的創辦者是好的經理人但卻不一定是適合的創業者
  2. 創辦者不熟悉自己所創辦的事業細節,卻精熟於 Presentation 的 Pitch

由這種互動方式也許能篩掉一部份的冒充者..

 
almost 11 years ago

自從開始用 Rails4 以後,一直踢到類似的 asset compiling 爛賬。在 development 端是好的,在 production 一壓卻是爛的。但是在 Rails 3 行為卻是好好的。

一直踢到類似的鐵板,很難試出 root cause 是什麼。最近在用別人包的 Gem,覺得再遇到這種狀況會抓狂,於是認真找了 root cause 是什麼。

Asset Pipeline 的邏輯

基本上在

  • app/assets
  • lib/assets
  • vendor/assets

上掛的東西應該都是有效的。上 production 也會壓得過。(在 Rails 3 是成立的,但在 Rails4 變成圖片時常會找不到,然後鬼打牆一直 debug 不出來 )。

經過人工暴力和看熱門的 Gem (如 font-awesome-rails ) 的作法,發現把 assets 搬到 app/assets 是絕對會動。

Root Cause

花了一堆時間找討論串,發現是 https://github.com/rails/rails/pull/7968 (一年前 Josh Peek 的即興 Design)造成的。底下可以看到一堆熱門的 repo 都 ref 了這支可惡的 pull-request。

原因是 Josh 認為 app/assetslib/assets / vendor/assets 之間的行為要分開。app/assets 是你自己開發的,應該要自動 load。lib 和 vendor 則應該要手掛。

所以如果 image 或 icon-font 放在 lib/assets & vendor/assets。開發者要自己在 config/enviorments/production.rbconfig.assets.precompile 下自動一個一個加入想壓的(非 css/js 的 asset) 才可以。

嚴重的問題點:慣例原則

Rails 的 Asset Gem 維護者大多很嚴謹的維持一個原則。把 Asset 儘量都放在 vendor/assets,表示裡面這份 code 他不是原作者。而且這個 Gem 很明顯是 3rd party libraray。

但是依據開發慣例,如果你把 CSS 放在 vendor/assets下面。那麼相關的 images 基本上 100% 也會放在 vendor/assets/images/, vendor/assets/*/images/。基本上你不會吃飽沒事幹,一份放 app/assets,一份放 vendor/assets

那麼 Johs Peek 的這個強迫行為,造成了原始採用 vendor/assets 設計且有非 css / 非 js 的 Gem,在 Rails 4 全部出事。(而且這個 bug 在 Rails 3 沒有)

然後查了這個一年以前的 Deisgn,竟然沒有在 sprocket-rails 官方文件清楚的指出來。( 去送了一個 pull-request 才發現原先的 README 講的非常含糊)。

暴力解決法

1. 在你的 project 加入這行
config/enviorments/production.rb
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
2. 把你維護的 Gem 從 vendor/assets 搬到 app/assets

結論

不過雖然可以解決問題。但是這兩個解決方法只是讓 Rails project 變得更髒而已 -_-。實在非常不爽 sprocket-rails 這個team。如果你長期有在追 compass-rails 與 sprocket-rails 這場戰爭的話,應該會非常非常討厭後者..。

 
almost 11 years ago

前年我寫過一篇 3 招實用 Asset Pipeline 加速術

這次打算再追加三招。

Read on →
 
almost 11 years ago

TL;DR; 我不確定有沒有人對這個主題有興趣。不過我承認我是蠻神經病才這樣幹的...

[警告] 這樣作有危險。而且我並不會回答讀者為何你的專案跑不起來的問題。(這是一個超級拼裝車的架構)

起因

我們公司內部的幾個 Project,因為現在一開始都會作 Landing Page,所以 Asset 略顯壅腫。在以往的 Deploy 流程中,我們都是使用 Capistrano 這套工具,策略是到機器上再 compile asset,然後重起整個 project。

這樣的想法是不要卡住 developer 端 deploy 的流暢度。開個新窗放著讓它跑就可以。

只是在機器上 project 越大,compile 越跑越慢。我想我已經是非常會 tune aseet pipeline 的開發者了,但是還是對這樣的情形越來越沒輒。

Read on →
 
almost 11 years ago

TL;DR; 這篇很有可能大家看不懂。只是整理來分享。(把同事 v1nc3ntlaw 的筆記從 Redmine 搬到 blog,他說他懶得寫 XD)。我想作國際產品的人應該很有可能會撞到這個問題...

前陣子我們的 Logdown 某個使用者 blog 匯入一直失敗。後來查了很久以後,我同事 v1nc3ntlaw 追到是 MySQL utf8 編碼沒有完整支援所有 utf8 字元的問題。要解決的話必須使用 utf8mb4

Read on →