1. 程式人生 > >程式設計師怎麼獲得高工資

程式設計師怎麼獲得高工資

經常聽見朋友抱怨自己水平和同事不相上下,甚至更強,工資卻沒有別人的高,主要原因有兩個:

1、技術面試:沒有表現出來自己的能力

2、人力面試:沒有與人資談薪資的技巧

下面我們一起來分析一下這兩個問題。

在技術面試中一般會從3個方面考核個人能力,專案的開發能力,技術能力的廣度和技術能力的深度。

1、專案開發能力,面試中在個人的開場白後面試官會選擇一個簡歷中的專案或者讓面試人自己選擇專案描述,這裡主要是檢驗面試人的專案能力,包括專案理解力,溝通能力和思維能力等。選擇哪個專案比較合適?描述和公司的業務或者和這個職位的業務相關的專案是一個更好的選擇,因為相關面試官會更瞭解業務,所以就要求面試人對專案的描述要更有條理。介紹整個專案的時候最好圍繞以下幾點描述:

1、專案的目標,專案主要解決了什麼問題,是否能講明白這點非常重要,只有說明白了問題域,才能使專案的實現更合情合理。

2、專案是怎麼實現的,採用了什麼技術,框架,有哪些困難,又是採用什麼辦法解決了?這個階段面試人要仔細的思考一下,是主要體現能力的地方。最忌諱簡單的描述實現方式是增刪改查,沒有難點和亮點。有句老話叫:“會者不難,難著不會”,所以當開發完成一個專案後總是發現專案沒有什麼難度,找不出亮點,其實是已解決的問題都會感覺到比較簡單。所以做完專案後總結一下,回顧一下專案開發過程中設計的優點和缺點,挖掘一下專案的亮點,使專案更飽滿。也不用迴避專案中的缺點,專案沒有一蹴而就的,不是所有問題都可以完美解決的,所以不妨說出專案的缺點,如果能給出一個補救措施會更好。

3、自己在團隊中是什麼角色,做了哪些貢獻?有哪些收穫?重點是哪些收穫,因為以前的都是過去式,將來能在新專案做多少貢獻才是重要的。所以專案中使用到的技術,框架,技巧等,如果能深入研究一下對以後的工作和麵試會有比較好的幫助。

2、技術廣度

如果上一條是考察專案開發能力,後面考察的就是技術點了。關於技術考察,聽過太多的人抱怨,網上看的帖子或者同事朋友的聊天,XXX公司傻叉問我堆排序/堆排序的時間複雜度/ArrayList和LinkedList優勢和劣勢/HashMap和HashTable的區別等,專案中也不使用,問這些沒有任何用處,純粹是刁難。工作過一段時間的程式設計師面試比較討厭回答基礎知識點,首先是工作中用不到,問這些沒有意義;其次是大學學的那點基礎知識早還給老師了,或者就沒學會。但是牢固的基礎知識是程式設計師職業能更好發展的推動力。

1、二八理論,程式中80%的程式碼是為了解決20%的場景,所以怎麼優雅的解決開發中那20%的場景就需要我們有超出常用知識以外的技術。

2、效能優化,使用合適的技術可以更高效的實現產品功能,積少成多效能就會有明顯的效能差別。

3、寫而優則架,隨著工作經驗的累積,大部分人會逐漸走上架構師或者技術經理的管理崗位,專案的架構,技術選型等都需要更多非程式碼的技術才能更好的完成。

所以良好的技術廣度會使程式設計師走的更遠。那麼作為程式設計師的我們需要學習哪些知識呢?

1、計算機基礎:作業系統,編輯原理,資料結構,演算法設計與分析,這些知識可以有助於我們瞭解計算機軟體基本的執行原理和執行效率。

2、應用執行環境:linux,apache/nginx web伺服器,mysql/oracle等db,redis/memcache快取等,hadoop,mango等nosql資料儲存

3、開發語言:Java語法,JVM,系統框架(spring系列, struts系列,ibatis/hibernate),各種封裝工具類:apache下的commons系列,常用場景開發工具包,HttpClient,JSON包,XML解析類,日誌輸出工具Log4j等;

備註:因為我是Java開發出身所以這裡只列舉Java相關知識

4、開發環境和專案管理:eclipse/idea等,maven/ant專案管理,svn/git等程式碼庫等

5、設計思想:面向物件設計思想,OOP七原則,測試驅動開發等

看的這裡估計會有很多人犯嘀咕了,完全學會這些要到猴年馬月(哈哈,明年就是猴年了,快了哈)了。雖然這裡列舉了很多,但是大家可以選擇性的學習,當然也可以超出這個範圍學習,藝多不壓身。天道酬勤,功不唐捐;日拱一卒,功不唐捐,每天一點進步,面試的時候就會有收穫。

3、技術深度

回想一下,當幾個程式設計師在一起討論問題的時候,若一個人講某個知識點的的深度和自己瞭解的差不多,就會感覺不過爾爾;當講的內容有部分沒有了解過的,就會感覺不錯有料;當這個人講出從來沒有想過或者沒有接觸到的時候是不是有點大牛的感覺。所以推己及人,當面對面試官的時候就某個知識點能講出足夠的深度會給面試官留下深刻的印象,對個人的評價,定級以及入職後的合作都有很大的幫助,因為人會更尊重能力強的人。

怎麼達到給面試官留下深刻印象的技術深度呢?

1、一個取巧的方式是在準備面試的階段,研究一個技術點,儘量深的挖掘,面試時如果有機會聊這個點,會有一定的效果。其實這種也不算一種取巧,技術深度的考察就是考察候選人是否有專研的能力,學習能力。研究的知識點儘量是以往專案中用到的,至於原因好好想想就明白了。

2、平常多積累,專案中使用到的技術點,向深層次挖掘,在使用的時候才能更好的應用。學習的時候最好能形成文件,看一遍和寫一遍是完全不同的效果。

看到這裡,很多人已經明白了,這不是面試技巧,是平時的學習技巧。是的,技術沒有捷徑可走,不經風雨無法見彩虹。沒有良好的基礎在面試中是無法獲得更多的認可的,所以需要平常要多積累。雖然沒有捷徑,但是如果真的按照上面介紹的3個方面整理一下專案的經驗,鞏固一下基礎知識,然後在找1-2個點重點突破一下,1個月的時間技術面試應該會有比較大的提高。不積跬步無以至千里,不積小流無以至江河,所以要想走的更遠,飛的更高,需要平時的積累和學習才是最重要的。

技術面試通過,只是拿到offer的第一步,是不是自己滿意的offer,人資面試是非常關鍵的一環。一般公司的人資是沒有拒絕面試人的權利,當然也存在一些公司的人資會稽核候選人的資格,如果資格不過就不會談薪資了,所以談薪資的時候不要有那麼多顧慮。很多候選人會把面試官作為對立面的人去考慮,其實他們可以是面試人的夥伴戰友,是面試人進入公司的推薦人。社招時公司一般是有人力需求,甚至需求比較急迫,所以人資這時的壓力比較大,它非常想盡快把“坑”填上,經過幾十上百份簡歷的篩選,一個個的電話通知,又溝通面試官面試,能通過的基本上也算百裡挑一了,所以人資不會故意設定障礙阻擋面試人進入公司,只是從公司的角度出發,壓縮成本,過濾南郭先生。當然能不能獲得人資的“助攻”,也要掌握溝通技巧,面試的時候做到不驕不燥,有理有據。

1、溝通中個人素質的表現:人資也是人,也會有好惡,體面的穿著,禮貌的談吐會給人資更好的印象。見多了不修邊幅的程式設計師,一副老子技術牛逼工作隨便挑的表情,這種表現很難獲得人資的認可,所以在談薪資的時候人資也不會給多大的助力。

人資面試時注意事項:

1、人靠衣裳馬靠鞍,雖然不用為了面試買西服套裝,但是也儘量讓自己職業化,服裝乾淨整潔。

2、伸手不打笑臉人,面試時候要有禮貌,禮貌不是謙卑,而是對彼此的尊重。也不要太客套了容易產生距離,不經意間談一下天氣,開個無傷大雅的玩笑,試試找找朋友的感覺。這個度需要好好把握,如果把握不好,就儘量不說髒話口頭語,謝謝長掛嘴邊,多微笑,這些也不會掉分的。

2、準備評估個人價值:很多人沒有拿到滿意的薪水都是因為沒有準確評估的自己的價值,入職了偶然打聽到同事的工資,或者朋友聚會了解對方的工資,才發現自己低了一大截,本來非常滿意的工作崗位瞬間成了雞肋,所以一定要評估好自己的價值。

1、首先要給自己定位,初級開發,中級開發,高階開發或者架構師,自己有一個準確的評估才能準確判斷職位是否適合自己;

2、其次摸底行情,諮詢最近換過工作的朋友,他們的工資有一定的參考價值,一些招聘網站上的職位也會有工資區間,都可以做參考;

3、最後給自己定價,建議定在職位工資區間的高段,萬一實現了呢。確定完價格之後,把自己的價值點列一下,為什麼自己值這樣的工資,這樣才能和人資溝通的時候去展示或者描述這些價值點,說服人資認可自己的定位,做到有理有據,這樣他們才能盡力去爭取。

3、正確判定職位薪資的區間:一般公司對職位會有一個工資區間,所以準確的判定薪資空間才能更好的談判,因為在談薪資的階段,只要沒有超過職位薪資區間人資都是可以談的,所以面對心儀的公司或者職位準確的薪資區間可以使自己處於更加有利的地位。人資一般都會問一下期望的薪水,獲得回答後,再次確認最低接受薪水,這個時候一定不要準確回答,說一個數字或者說不能降低了,可以描述說差不多就這樣啦,或者說自己根據目前的薪資水平或者自己的能力值這個價格等迂迴回答是更好的方式。如果人資給了一個數字,自己不滿意,不拒絕也不接受,找理由先考慮一下,然再請它幫忙爭取一下自己滿意的薪資,過段實際(最好要求一週左右的時間)再答覆。一方面自己可以試試其他的職位,增加一下談判的砝碼,另外比較緊急的職位人資也會為了儘快辦理入職而為候選人爭取調整一下工資待遇。

面試是進入公司的第一步,進入公司面試官就是要並肩作戰的夥伴、戰友,所以他們是應該是隊友而不是對手。誠以待人,以技服人,獲得面試官的認可,才能收穫滿意的職位。