看板 SuperTree
作者 標題 Re: [討論] 如何定義 "會" XXX 程式語言
時間 2013年04月03日 Wed. PM 03:29:37
※ 本文轉寄自 SuperTree.bbs@bbs.csie.fju.edu.tw
發信人: dick51207.bbs@ptt.cc (dick51207.bbs@ptt.cc) 看板: SuperTree
標 題: Re: [討論] 如何定義 "會" XXX 程式語言
發信站: 2012/11/28 Wed 16:15:41
看板 Soft_Job
作者 標題 Re: [討論] 如何定義 "會" XXX 程式語言
時間 Wed Feb 29 10:20:22 2012
※ 引述《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)
推 :這樣的說明好經典,看到senior programmer II段落描述,1F 02/29 10:54
→ :眼睛一亮.
→ :有很多技術demo會議,示範起來都是做一個面的示範,概括而清析
→ :眼睛一亮.
→ :有很多技術demo會議,示範起來都是做一個面的示範,概括而清析
推 :看 A successful Git branching model 看到入迷了我。4F 02/29 11:47
推 :好久好久沒有用到3NF/BCNF/4NF了, 好懷念...幾乎沒有任何開5F 02/29 12:45
→ :發用到過 XD
→ :發用到過 XD
→ :好奇依本文分類後各等級的薪資為多少?7F 02/29 13:48
→ :看公司(有賺錢沒賺錢)、看地區(台/美/歐/…)、看產業8F 02/29 14:20
→ :以平均較高(稅也較高、生活費也較高)Junior I約8~9
→ :至於BONUS就看個人表現,看公司賺錢情況,(不計STARTUP)
→ :抓10~25%當BONUS,合起來如果是N,每進一層約加30%
→ :當然這是完全不負責任的推估,只是給個"大概"的感覺
→ :台灣的話,Junior台北會抓4~6W台幣當N
→ :有興趣可以上www.glassdoor.com就可以查到大概的薪資
→ :以平均較高(稅也較高、生活費也較高)Junior I約8~9
→ :至於BONUS就看個人表現,看公司賺錢情況,(不計STARTUP)
→ :抓10~25%當BONUS,合起來如果是N,每進一層約加30%
→ :當然這是完全不負責任的推估,只是給個"大概"的感覺
→ :台灣的話,Junior台北會抓4~6W台幣當N
→ :有興趣可以上www.glassdoor.com就可以查到大概的薪資
推 :版主有沒有興趣被我挖來當網路公司的技術主管?15F 02/29 14:38
→ :文章應叫樓主吧xd16F 02/29 14:39
推 :sorry~樓主~17F 02/29 14:41
推 :我將這篇印下來了,將貼在我的桌前,作為自我的期許18F 02/29 15:21
推 :好文我頂!19F 02/29 17:45
推 :這篇讓自己好有目標XD20F 02/29 17:59
推 :推~~~21F 02/29 20:22
推 :讚22F 02/29 23:01
推 :好文推!!~23F 02/29 23:40
推 :好文推!24F 03/01 03:49
推 :有這樣的文章真是太好了!正好可以當作自我省思的清單!25F 03/01 11:10
推 :好文26F 03/01 11:13
→ :請問.. 能做到上述的薪水是??27F 03/01 11:47
→ :薪水除了實力外還有機運,這就是為什麼技術!=薪水。28F 03/01 13:09
→ :能認識前輩 是一種幸福阿29F 03/01 14:37
→ :@gname 我看過還沒作到這程度年薪就十萬美金的 這樣夠參考嗎30F 03/01 15:09
推 :推 技術!=薪水 不過技術越好,薪水高的機率越高31F 03/01 17:24
推 :借轉~32F 03/01 18:26
推 :有深度,大推!33F 03/01 19:41
推 :其實漏掉一點:英文程度能到跟老外全程面試34F 03/01 21:21
推 :推自我期許35F 03/01 23:48
推 :推好文!!觀念好清楚36F 03/02 10:29
推 :推!37F 03/04 14:24
推 :自我期許+138F 03/05 22:02
推 :如果我有一個團隊幾乎都是Junior Programmer II的39F 03/10 11:58
→ :卻要做Senior Programmer II的Projects的話...
→ :不知閣下有何好建議??? 目前困擾中...
→ :如果是你來帶這樣的team, 妳你會怎麼做呢?
→ :卻要做Senior Programmer II的Projects的話...
→ :不知閣下有何好建議??? 目前困擾中...
→ :如果是你來帶這樣的team, 妳你會怎麼做呢?
→ :用2~3個Junior的錢去HIRE一個Senior當leader43F 03/12 15:38
推 :謝謝分享 我好弱 我會加油44F 03/19 13:06
推 :COOL45F 04/11 17:10
推 :推~工程師升級表46F 07/25 07:51
--
※ 同主題文章:
04-03 15:29 Re [討論] 如何定義 "會" XXX 程式語言
● 04-03 15:29 Re [討論] 如何定義 "會" XXX 程式語言
04-03 15:29 Re [討論] 如何定義 "會" XXX 程式語言
04-03 15:29 Re [討論] 如何定義 "會" XXX 程式語言
※ 看板: SuperTree 文章推薦值: 0 目前人氣: 0 累積人氣: 51
回列表(←)
分享