Re: [討論] 如何定義 "會" XXX 程式語言

看板Soft_Job作者 (時間太少事情太多)時間13年前 (2012/02/29 10:20), 編輯推噓26(26020)
留言46則, 30人參與, 最新討論串5/11 (看更多)
※ 引述《qrtt1 (lonely)》之銘言: : ※ 引述《qwer820404 (beans)》之銘言: : : 到底什麼叫做 "會" XXX 程式語言 : : 常常聽到別人說 我會的程式語言有 XXX、XXX、XXX 零零總總至少有3項以上 : : 但是實際要用的話 卻寫不出來 那跟別人說你"會" 不是在唬爛嗎? : 因此,要札實地變得強大,你的產出得經過不同人的 review。 : 將你誤解的部分一一由你的觀念確實地修正。 : 你才能謙虛地說,你稍為能掌握某個語言。 當我和別人聊時(不管是Interview還是被Interview) 以下以網路公司為例(就是有網站的軟體公司) Junior Programmer: 基本上我認為只要能認真的FOLLOW經典的教科書讀完個一遍到二遍 我個人認為懂即可,這裡講的FOLLOW不是全會,但至少觀念都有 丟一個章節給你復習之後,你可以講解每個範例(或不看書重寫出來) 基本上CODE也寫得出來,至於對Library熟不熟,那是其次,基本的懂就好 不懂的Google到會就行,我對懂的定義就是 你Google到的答案你能理解,甚至改用 如果原始Library有錯,你能證明,這樣就行了 基本上,隨便參與一個open source的project 只要一個人能跟上別人的討論,回報BUG,甚至提出一些解法(不一定對沒關係) 我覺得這個程式設計師就合格 上面是普遍對學校畢業的學生的期許~簡單的講,給你問題你能解的了,就行了 Junior Programmer II (碩士以上 OR 大學畢業工作二年以上): 承上,再進一步(熟),如果要稱"熟" 我會期待這個人不只懂語言,還懂一點Framework,以及進階的課題 玩JAVA至少要碰過Spring / Structs / etc. 玩Python至少要碰過 Django / Pylons 簡單的說,我會期待這傢伙至少懂Design Pattern,並積極參與線上社群 通常我第一個問的問題都是,你stackoverflow.com的帳號是? 再來通常我期待你懂multi-thread或是unit-test等進階的課題 當然,你要會用SVN/GIT這一類的Version Control,不用是大師,但要會用 Senior Programer : 承上,再進一步通常就分"專"和"廣"二種 講專的,我期待你在某個framework很熟,也就是說 我不懂的可以請教你,而你給的答案能讓我滿意 你寫出來的CODE都follow convention,也會自動自發的refactoring或是幫助同事 我可把peer review的工作丟給你,你可以看得懂別人的程式並給見解 尤其是你的專業(可能是特定,例如multi-thread高手或是…) 你至少在單一方向要能勝過你的主管,大家以你為主要的"靠山" 至於走廣的 通常期待你參與過不少案子,以一般網路公司來說 你要能懂DB的正規化,什麼是3NF/BCNF/4NF要懂 或是不懂,也有能力快速PICK UP(靠自己) 能夠使用UNIX,遠端SSH用VIM處理或DEBUG問題,懂部署程式的流程 甚至能夠帶領團隊貢獻,並導入工作流程 具體一點的說,(以GIT為例)你知道什麼是branch 我丟給你一個文件,像是 http://nvie.com/posts/a-successful-git-branching-model/ 你可以導入這個流程,分析是否適合團隊,然後給一個簡報教大家 以上只是舉例,走廣的,簡單的講就是什麼懂 而且能快速上手一個大家(團隊裡)都不懂的技能 你懂大部份重要的Design Pattern,我期許你對工作上需要的演算法都了解 實務一點,像是UML或其它軟工的技能應該都要能"使用" Senior Programmer II (有人叫 Programmer Lead): 承上 但這裡專與廣的界線會模糊掉,因為通常你是很有經驗的開發人員 你處理的是一個面,不再是一條線或一個點 舉例來說 我期許你是open source project的active users 以Java為例,我會假定你有FOLLOW http://openjdk.java.net/ 簡單的說,Library有Bug時我相信你能解的了(或是想辦法繞過) 再者,如果是PhD,我假定你能把公司的問題當PAPER的研究解決 舉例,對新的規劃,提出一個可行的(Scalable)的Prototype 你follow目前業界的最新規格/標準 你會注意新技術的出現,像是NoSQL的Solution 你除了自己常用的語言外 你最少要能寫Script(Python/Perl),懂Bash, 玩過EC2 此外,你不只能寫對的程式,還能寫好的程式 你知道怎麼最佳化,甚至最好你能找出更好的解法(可能是自己想,可能是看PAPER) 通常你寫過一二本書,再不也也寫個熱門BLOG 總而言之,你可以獨當一面帶領7~8人的團隊完成feature 通常走到這裡,再往上就是 1) 走技術管理職,你的會議愈開愈多,對上對外對PM對客戶 2) 走技術研發職,參與國際Standard的制定,被邀請去CONFERENCE TALK 3) 走RESEARCH 研發,作Prototype的(下一代)系統,負責寫Pattern/Paper 擔任跨部門團隊的顧問(對外或對內),通常PhD比較多 4) 純管理職:跑去念個MBA,當技術出身的管理人員(管人 > 寫CODE) 5) 創業離職:跑去開公司一類的… 一樣老話,以上只是抓個"精神",而不是真的去定義說你達成幾項或那項沒有 就算你缺乏某一條,不代表你就不合格,也許你其它地方可以補強 不過就我看到的層面,你到底會不會"一個程式語言" 要看你應徵的是什麼樣的職位,這樣比較公平 通常FB在在大學徵人,就算是剛畢業,他們的要求至少都在Junior II以上 不過他們可更強調你對Algorithm的了解和寫CODE的速度及質量 (因為你以後是產CODE的人啊!) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 131.179.64.185 ※ 編輯: chucheng 來自: 131.179.64.185 (02/29 10:22) ※ 編輯: chucheng 來自: 131.179.64.185 (02/29 10:25)

02/29 10:54, , 1F
這樣的說明好經典,看到senior programmer II段落描述,
02/29 10:54, 1F

02/29 10:54, , 2F
眼睛一亮.
02/29 10:54, 2F

02/29 10:57, , 3F
有很多技術demo會議,示範起來都是做一個面的示範,概括而清析
02/29 10:57, 3F

02/29 11:47, , 4F
看 A successful Git branching model 看到入迷了我。
02/29 11:47, 4F

02/29 12:45, , 5F
好久好久沒有用到3NF/BCNF/4NF了, 好懷念...幾乎沒有任何開
02/29 12:45, 5F

02/29 12:45, , 6F
發用到過 XD
02/29 12:45, 6F

02/29 13:48, , 7F
好奇依本文分類後各等級的薪資為多少?
02/29 13:48, 7F

02/29 14:20, , 8F
看公司(有賺錢沒賺錢)、看地區(台/美/歐/…)、看產業
02/29 14:20, 8F

02/29 14:21, , 9F
以平均較高(稅也較高、生活費也較高)Junior I約8~9
02/29 14:21, 9F

02/29 14:22, , 10F
至於BONUS就看個人表現,看公司賺錢情況,(不計STARTUP)
02/29 14:22, 10F

02/29 14:23, , 11F
抓10~25%當BONUS,合起來如果是N,每進一層約加30%
02/29 14:23, 11F

02/29 14:23, , 12F
當然這是完全不負責任的推估,只是給個"大概"的感覺
02/29 14:23, 12F

02/29 14:25, , 13F
台灣的話,Junior台北會抓4~6W台幣當N
02/29 14:25, 13F

02/29 14:27, , 14F
有興趣可以上www.glassdoor.com就可以查到大概的薪資
02/29 14:27, 14F

02/29 14:38, , 15F
版主有沒有興趣被我挖來當網路公司的技術主管?
02/29 14:38, 15F

02/29 14:39, , 16F
文章應叫樓主吧xd
02/29 14:39, 16F

02/29 14:41, , 17F
sorry~樓主~
02/29 14:41, 17F

02/29 15:21, , 18F
我將這篇印下來了,將貼在我的桌前,作為自我的期許
02/29 15:21, 18F

02/29 17:45, , 19F
好文我頂!
02/29 17:45, 19F

02/29 17:59, , 20F
這篇讓自己好有目標XD
02/29 17:59, 20F

02/29 20:22, , 21F
推~~~
02/29 20:22, 21F

02/29 23:01, , 22F
02/29 23:01, 22F

02/29 23:40, , 23F
好文推!!~
02/29 23:40, 23F

03/01 03:49, , 24F
好文推!
03/01 03:49, 24F

03/01 11:10, , 25F
有這樣的文章真是太好了!正好可以當作自我省思的清單!
03/01 11:10, 25F

03/01 11:13, , 26F
好文
03/01 11:13, 26F

03/01 11:47, , 27F
請問.. 能做到上述的薪水是??
03/01 11:47, 27F

03/01 13:09, , 28F
薪水除了實力外還有機運,這就是為什麼技術!=薪水。
03/01 13:09, 28F

03/01 14:37, , 29F
能認識前輩 是一種幸福阿
03/01 14:37, 29F

03/01 15:09, , 30F
@gname 我看過還沒作到這程度年薪就十萬美金的 這樣夠參考嗎
03/01 15:09, 30F

03/01 17:24, , 31F
推 技術!=薪水 不過技術越好,薪水高的機率越高
03/01 17:24, 31F

03/01 18:26, , 32F
借轉~
03/01 18:26, 32F

03/01 19:41, , 33F
有深度,大推!
03/01 19:41, 33F

03/01 21:21, , 34F
其實漏掉一點:英文程度能到跟老外全程面試
03/01 21:21, 34F

03/01 23:48, , 35F
推自我期許
03/01 23:48, 35F

03/02 10:29, , 36F
推好文!!觀念好清楚
03/02 10:29, 36F

03/04 14:24, , 37F
推!
03/04 14:24, 37F

03/05 22:02, , 38F
自我期許+1
03/05 22:02, 38F

03/10 11:58, , 39F
如果我有一個團隊幾乎都是Junior Programmer II的
03/10 11:58, 39F

03/10 11:59, , 40F
卻要做Senior Programmer II的Projects的話...
03/10 11:59, 40F

03/10 12:00, , 41F
不知閣下有何好建議??? 目前困擾中...
03/10 12:00, 41F

03/10 12:02, , 42F
如果是你來帶這樣的team, 妳你會怎麼做呢?
03/10 12:02, 42F

03/12 15:38, , 43F
用2~3個Junior的錢去HIRE一個Senior當leader
03/12 15:38, 43F

03/19 13:06, , 44F
謝謝分享 我好弱 我會加油
03/19 13:06, 44F

04/11 17:10, , 45F
COOL
04/11 17:10, 45F

07/25 07:51, , 46F
推~工程師升級表
07/25 07:51, 46F
文章代碼(AID): #1FJOjeAv (Soft_Job)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 5 之 11 篇):
文章代碼(AID): #1FJOjeAv (Soft_Job)