A. 一名職場程序員應該具備哪些技能
第一部分總結一下,我認為,隨著你工作年限的增長、對生活對生命認識的深入,應當不斷思考三個問題:
1\ 我到底適不適合當一名程序員?
2\ 我到底應不應該一輩子以程序員為職業?
3\ 我對編程到底持有的是一種什麼樣的態度,是夠用就好呢還是不斷研究?
最終,明確自己的職業規劃,對自己的規劃負責並為之努力。
關於項目經驗
我在網上經常看到一些別的朋友有提出項目經驗的問題,依照我面試的感覺來說,面試主要看幾點:項目經驗+基本技術+個人潛力(就是值不值得培養)。
關於項目經驗,我認為並發編程網的創始人方騰飛老師講的一段話非常好:
「
介紹產品時面試官會考察應聘者的溝通能力和思考能力,我們大部分情況都是做產品的一個功能或一個模塊,但是即使是這樣,自己有沒有把整個系統架構或產品搞清楚,並能介紹清楚,為什麼做這個系統?這個系統的價值是什麼?這個系統有哪些功能?優缺點有哪些?如果讓你重新設計這個系統你會如何設計?
」
我覺得這就已經足以概括了。也許你僅僅工作一年,做的是項目中微不足道的模塊,當然這些一定是你的劣勢且無法改變,那如何彌補這個劣勢?從方老師的話中我總結幾點:
1\ 明確你的項目到底是做什麼的,有哪些功能。
2\ 明確你的項目的整體架構,在面試的時候能夠清楚地畫給面試官看並且清楚地指出從哪裡調用到哪裡、使用什麼方式調用。
3\ 明確你的模塊在整個項目中所處的位置及作用。
4\ 明確你的模塊用到了哪些技術,更好一些的可以再了解一下整個項目用到了哪些技術。
在你無法改變自己的工作年限、自己的不那麼有說服力的項目經驗的情況下(這一定是扣分項),可以通過這種方式來一定程度上地彌補並且增進面試官對你的好感度。
補充一點,在面試中聊你的項目的時候,有一個問題90%是繞不過的:談一下你在項目中解決過的比較復雜的問題。這需要在工作中不斷去發現和探索,不需要多,在你自己目前的項目中只要你找到一兩個能說的問題就行。一個小技巧是,即使問題不是你解決的而是別人解決的,但是你把這個問題弄懂、搞透了,在面試的時候你一樣可以把這個問題當作是你自己解決的來說----畢竟,誰來管這個問題當時到底是不是你解決的呢?
關於HR面試
如果你過五關斬六將,成功地通過了所有的技術面,那麼恭喜你,你離升職加薪、出任CEO、迎娶白富美、走向人生巔峰又進了一步。但是還沒有到談薪資待遇的時候,最後還有一個考驗:HR面試。基本所有的大公司都有這一輪的面試,不要小看HR面試,很多公司的HR對於面試者都有一票否決權的----即使前面的面試對你的評價再高。
所以,這輪的面試也必須重視起來,HR面試主要問的是幾點:
1\ 簡歷中寫的過去工作經歷的離職原因
2\ 當前公司薪資待遇
3\ 期望能到怎樣的一家公司
4\ 個人未來的發展方向
我專門提一下第2點。可能有人比較排斥也不想說這個,我個人倒是持開放狀態,問了就說了,當然一些的誇大還是必要的,當前公司薪資待遇多報個一千塊錢完全沒問題(畢竟是一家互聯網公司總多多少少有些補貼啊什麼的嘛)。因為這和你在新公司能拿到的薪水關系不大,新公司能拿到的薪水的決定因素是整個公司的薪資情況以及根據你的面試情況在公司的定位,都是有固定的薪資范圍的。HR問這個主要也就是心裡有個數並且看你是否誠信----有些公司入職時會要求你提供最近一家單位的銀行流水號。
HR面試就說到這里了,總結起來其實就是四個字:滴水不漏。整個面試過程態度積極向上,不要有任何悲觀消極的態度(尤其在談到以前公司情況的時候,即使有再多的不滿),就不會有問題。
關於面試心態
在我看來,回答問題的時候最最基本的兩個要求:
1\ 不緊不慢,平心靜氣
2\ 條理清晰
表達能力絕對是面試的時候重要的考察項目。咱們做的是程序員這一行,講究的是團隊協作,不是寫作、畫畫,一支筆、一個人就行了,一個表達能力不行的程序員,要來又有什麼用呢?
除此之外,就是保持良好的心態。古語說得好,只要功夫深,鐵杵磨成針,面試的成功與否,在於平時的積累,臨時抱抱佛腳,看兩道面試題是沒有用的,只要平時足夠努力,成功是水到渠成的事情,平時不怎麼研究技術的,那也就是個聽天由命的事情,只要充分地展示平時自己的所學就可以了。
因此在我看來,不要把面試當作面試,當做一次技術交流,把面試的心態從我要找到一份工作轉變為我要通過面試去發現不足、提升自己,這樣就會平和多了,即使失敗也不會有太多失望的感覺。
另外,如果平時自己熱衷於研究技術的朋友,真的要有自信,不要覺得別人面試你別人就比你厲害。面試官未必比你優秀,他問的問題往往都是他平時研究得比較多的問題,你一樣有很多自己的研究面試官未必知道。
B. 程序員,在公司不加班對自己職場發展有哪些影響
程序員這是我們非常熟悉的一個工作,一說到程序員,肯定大家第一時間都想到了加班,似乎加班已經成為一種常態。然而有很多機器人在面試的時候幾乎都會問到一個問題,就是對加班怎麼看待呢?
有很多人都會用低級程序員和高級程序員來相比,低級的程序員就像是一個井底之蛙一樣,永遠都停留在自己的一片天地當中,而且根本就不會用閑暇的時間來學習新的基礎,最終僅僅會白白的浪費這些寶貴的時間,然而最後等待自己的卻是被辭退。所以大家一定要利用好多餘的時間,績效正確對待加班這件事情。
C. 程序員一般都有哪些職業
程序員可以做的職業有很多,最多的是到軟體公司做程序員,編寫程序開發軟體,也有做軟體測試工作,工作經驗豐富的程序員轉到後台做項目管理。程序員是比較辛苦的工作,996是常態,經常熬夜,所以做程序員一般是年輕人為主,上了年紀的程序員很多改行或者換崗做管理,年紀大了思維和精力都跟不上,已經很難適應行業節奏,所以程序員做其他方面的工作也是很正常的。
D. 新入職的程序員在職場需注意什麼
我覺得最主要的就是謙虛,具有的團隊的合作的精神,以及應有擔當
E. it行業有哪些職位(程序員可以做的)
1.技術+技術(深入階段)
這算是一條純技術路線,具體又可以分3個方向:
技術(2年以上編程經驗)+技術(軟體測試,或系統分析師,或系統架構師)
有軟體開發的工作經驗,再加軟體測試,比剛開始就進入軟體測試行業的人要更具競爭優勢。軟體測試工作經驗越多越好,可以干到退休,不用擔心年齡問題。
如果選擇「系統分析師,系統架構師」,則首先要打好扎實的「理論基礎」(可以通過考證書,比如參加軟考),以保證自己「後勁力十足」,這樣等有了4,5年的工作經驗後,才有可能能沖上這個高端領域。平時工作中要不斷的鍛煉自己的「發散思維」,培養善於發現業務需求的「眼光」。
2.技術+管理 :比如 項目經理。
像雷軍說的那樣:「程序員象木工一樣,熟能生巧。程序員必須寫足夠代碼量(8萬行以上)的程序,才會有感覺,這是一個苦力活,沒有任何捷徑可走。」項目經理大多是從「優秀」的程序員里挑選出來,想走這條路,平時就要瘋狂的編碼,迅速累積豐富的編程經驗,然後再補充一些管理方面的知識。(本人打算走這條路,呵呵)
3.技術+銷售:比如 技術銷售工程師,技術支持工程師。
這類工作要有一定的技術背景(入門級也可以),具備較好的語言表達,溝通能力。工作比較輕松,月薪待遇主要看個人銷售業績等,個人收入差別可能比較大。
4.當培訓老師
如果你「樂於分享」工作經驗,傳授知識,或者覺得自己年齡比較大,精力不夠充沛,且往上升又比較困難的話,可以選擇去培訓機構當老師,就目前而言,當老師工作輕松,待遇也不錯。
5.創業
程序員創業除了需要有商業頭腦外,更需要具有較高的「膽商」(人有5商,包括智商情商),即有沒有膽量去做別人不敢做的事情(抓住商機)。
F. 程序員新手一般在項目中負責什麼工作
最基本的工作 增刪改查
G. Java程序員應具備哪些職場發展的素質
隨著軟體開發行業的高速發展,程序員的薪資普遍都很高,一般在一線的城市,工作一年多就能月薪8k,從而引發更多的人選擇IT行業,但發展的路上也會出現各式各樣的問題,只有在行業里具備更專業的職業素質才能在行業中取得更好的發展。
那麼作為一個真正合格的程序員除了具備完成一些代碼工作外,還應該具備哪些職業素質呢?
1、要有很好的學習能力(特別是自學能力)
目前Java行業飛速發展,技術淘汰速度也隨之增長,一年內你要沒有學習新的東西就會被市場淘汰,所以你要時刻保持學習的心態,能夠快速挖掘自己的不足,然後去尋找幫助你提升能力的學習資料,並記錄下你對此知識點的總結,不但能加深你對知識點的理解,也能方便你日後查找此類問題。
2、提高動手能力
真正的大牛程序員並不是糾結書本上的知識,書本上的知識點只起到輔助作用,更多的你需要從成千上萬的代碼運行中找出問題、解決問題,只有親自實踐過才能加深對這類問題的認知。
3、要有耐心和毅力
寫程序是一件很枯燥、乏味的事情,更多時候在寫完程序後又遇到一堆的bug,這會大大影響你工作的心情,此時,你要學會調整心態;也要學會逆向思維,這對你解決問題、調整思路很有幫助。
4、表達能力
要回表達自己的想法,能夠在大庭廣眾下把自己的想法有條理的講出來,同時還能夠確保對方聽得懂。
5、文檔習慣
每個程序員無論你水平高低都要會寫文檔,良好的文檔是正規研發流程中非常重要的環節,如果你大部分時間都在寫程序,那麼你不是一個合格的程序員,作為高級程序員和系統分析員需要花費大於30%的工作時間寫技術文檔,如果沒有技術文檔這個軟體就缺乏生命力,在未來的查錯、升級以及模塊的復用會遇到很大的問題。
6、要養成規范化、標准化的編程習慣
在編程中無論是代碼的變數命名、代碼內注釋格式、嵌套中行縮進的長度,還是函數間的空行數字都有明確規定。養成良好的編寫習慣有助於代碼的移植和糾錯,而且對後期不同技術人員間的溝通合作也至關重要。
7、編程的速度和效率
Java程序員在編寫程序前要有清晰的思路和節奏,也要制定一份好的規劃和設計方案,同時要對各種突發情況作出預估,這對提高你的編程速度、驗證你的經驗很是重要;另一方面,你要最少代碼實現你想要的效果,簡單又高效的代碼不但提高運行速度,還能節省內存和資源,做到這一點,你離優秀的程序員就不遠了。
8、養成好的測試習慣
對於軟體開發人員來說,養成好的測試習慣可以越早的發現問題,這樣可以降低解決問題的成本,所以,Java程序員在每段代碼、每個子模塊完成後都要細心的測試,盡早的發現一些潛在的問題,這讓整體系統建設的效率和可靠性得到了保障。在測試的時候也要注意以下幾點:
正常調用測試:這可以檢測程序是否能在正常調用下完成基本功能,這是身為程序員最基本的測試職責;
異常調用測試:例如在高壓力負荷下的穩定性測試、用戶潛在的異常輸入情況下的測試、整體系統局部故障情況下該模塊受影響狀況的測試、頻發的異常請求阻塞資源時的模塊穩定測試等等。程序員不用對每段代碼都進行完整測試,但程序員必須要了解代碼任務在整體項目中的各種性能展示,對需求要深入了解,只有這樣你才能針對性的進行相關測試,這樣可以經早的發現問題、解決問題。
藍鷗Java課程採用雙師授課,授課老師VCR講解+技術講師輔導實時練習。優勢:確保最好的老師把技術講解透徹,同時立即進入練習,技術老師再次講解及輔導,立即吸收消化知識點。進度技術講師可以根據學員吸收情況控制,確保學習效果。擴充知識點,翻轉課堂,學員深度參與其中。培養學習方法,形成學習習慣。
H. 程序員這個工作有哪些職業病
程序員有很多職業病,比如說頸椎病、滑鼠手、駝背、乾眼症等等。
三、皮膚乾燥是絕大部分程序員都會存在的皮膚問題,比如說青春痘、過敏等,因為程序員長期需要熬夜,而且電腦上由於靜電的影響經常會吸附很多的灰塵,久而久之就會造成皮膚乾燥、過敏等症狀。背部問題也是常見的職業病,主要表現在駝背,因為在寫代碼的時候需要長時間保持一個姿勢,而且很多程序員都沒有養成良好的坐姿,這樣就會出現脊背彎曲,所以當一名程序員一定要養成良好的習慣,才能讓職業病遠離你。
I. 程序員如何在職場上讓自己脫穎而出
最近組內先後招了兩名開發,作為他們的mentor,一方面我在觀察他們的工作方式和編碼習慣,另一方面也在對比思考自己的經歷。自己有些感悟,覺得一名新人程序員,應該做好以下三點:
1.遇事追蹤溯源,不要怕改已有的代碼
2.編碼在保證正確的前提下,要足夠快
3.主動承接團隊里他人不願意做的或者沒做的事
下面將逐一分析說明這三點。
1.遇事追蹤溯源,不要怕改已有的代碼
新人通常會從新加一個相似的功能或者修bug開始逐步熟悉原有的系統,這時無論原有的代碼寫的怎麼樣,都應仔細的思考每段相關代碼的作用和對應的需求,努力做到追蹤溯源,掌握它們的來龍去脈,這時再做task就會游刃有餘,在做相似功能時,你知道哪些地方已經實現可以復用,哪些地方因為新加的代碼應該做些重構;修bug時,你可以從根本原因出發,解決問題,而不是在出現問題的地方修修補補;更重要的是你不會打怵修改原有的代碼而躡手躡腳。當然一旦發現要修改大段的原有代碼或者設計,還是要主動和老員工先確認下思路是否可行,是否有遺漏的地方再開始。但不出意外,你會一下子就給別人留下一個好的第一印象,因為你沒有在機械的完成任務,而是先做了深入思考。
寫到這里不禁想起,自己剛工作時改了一個bug,當時的做法是在創建一個文件的代碼之後3行再把這個文件刪了,只加了一行代碼就修好了,發給老員工review時還在竊喜自己只改一行代碼就解決問題了,結果老員工一句話就把我問傻了,前面的那個文件為什麼要創建呀?我當然不知道了,因為當時我想原有的代碼我不熟悉就最好不動。於是,那一刻我得到了工作生涯第一個重要的建議,應該找到根本原因(rootcause)後再修改代碼。這時你不僅可以做好手中的任務,還能進一步思考問題是不是代碼設計不合理造成的,同時不會怕改已有的代碼。
2.編碼在保證正確的前提下,要足夠快
新人在做第一個任務時都想留下好印象的,首先要做的就是一定要保證修改是正確的,這里不僅局限於正常情況下功能正確,還應考慮邊界條件,錯誤處理情況等等,最後再提交代碼時要最終確認一下單元測試過不過,提交代碼後再注意下Jenkinsbulid過不過。這一切都是為了防止出現以下情況:
*一提交代碼就breakbuild或unittest
*測試隨便一點就有各種問題
*匆匆忙忙修了一個問題,一提交又有其他問題
別以為這些都些小事,它直接關乎別人對你的評價。不犯低級錯誤,建立起嚴謹的印象,是非常有助於你在新環境下脫穎而出的。
但僅僅這樣是不夠的,如何在保證正確的前提下,提高速度或者效率則是另外一個要點。試想一下,你持續超出別人的預期,並保質保量的完成了task,哪個領導和同事會不喜歡你呢?千萬不要狹隘的覺得自己做的快了要多做事,何苦呀。也許短期內你多做了一些原本沒分配給你的任務,但你在別人心中逐步建立起嚴謹高效的印象,從長期來看將給你帶來更多的機遇(本人就是因此受益)。
3.主動承接團隊里他人不願意做或者沒做的事
逆向思考下,人家為什麼招你進來?相信絕大多數情況是事情多做不過來,缺人了。事情多了一定有老員工不願意做,或者因為各種原因沒做的事。作為新人,做了別人不願意做的事可以緩和他人的壓力;做了別人沒做的事,將為團隊增加產出,如果這件事還是一個技術難題,那不是正好可以讓別人眼前一亮,證明自己的實力嗎?
其實關於這一點,在做的時候要進一步深入思考。別人為什麼不願意做或者沒做某些事?是因為缺乏相關知識而沒有做?還是因為沒有自動化每次手動操作既耗時又容易出錯?是因為優先順序不高?還是因為投入產出比不高?是因為代碼結構不合理導致無法快速加上?還是因為需求不明確?是不是團隊里的人因為思維定式錯誤估計了問題?是不是可以從其他的角度解決這個問題?要深入思考後,才能從根源入手,從而正確的解決問題。切記不要機械的完成任務,要努力讓你的加入使團隊變的更好。
自己在第二份工作的開始階段,就發現團隊還沒有使用持續集成的工具在統一的環境下交付測試,測試還在通過訪問開發機器上的網站驗證功能,結果開發之間互相break情況經常發生,項目質量也無法保證。詢問後才知道,大家也很希望改進現狀,只是因為一些原因沒法得到系統組的支持,組內也沒人來搭建持續集成的環境。於是我利用一開始相對輕松的時間,使用teamcity搭建出持續集成的環境,一時間大家都紛紛叫好,加上自己又接連解決了項目中一些棘手同時沒人做的問題,一下子就樹立了可靠的形象和在團隊里技術主力的地位,慢慢的即使是公司中其他組沒合作的過的人也對我評價很高。我自己琢磨出的原因是團隊里缺能幹活的人,但更缺能讓團隊變好的人。
其實巧的是,如何使用teamcity搭建持續集成環境是我在第一份工作離職交接時主動做的最後一個task,因為當時有個小項目是我獨立負責的,我想在交接時讓項目更正規些,就主動提出這個想法,雖然在離職的前天晚上還在加班調試,當天上午還在和同事討論一些細節,但就是這主動多做學會的技能成了我在第二份工作里出色開端的重要一環。
總結:
1.做事要知其然並知其所以然。
2.努力建立起嚴謹高效的形象。
3.成為讓團隊變的更好的人。
J. 作為一個程序員,有哪些職業自我修養呢
保持對代碼的熱情,持續學習
從現實工作的角度考慮,這可能不是最重要的一條,畢竟持續學習這類話,已經老生常談到快厭煩的地步了。比起學習,可能在每個寫過的類裡面加上你的注釋,甚至包括姓名還有聯系方法更實用些。但我想說的是,保持對本行業持續熱情,並不斷學習,應該是每個從業者最基本的素養,而對於程序員來講,就是保持對代碼的熱情。
當然,這里的保持熱情、不斷學習,並不是一句空話,而是要真正做到的。從長遠角度講,只有不斷提升自己的專業技能,才能更好的應付將來對本職工作提出的新的要求。同時,對於自己來講,也只有不斷學習,才能讓自己時刻保持出色的競爭力。
養成良好的工作習慣
從編程本身來講,盡量寫出邏輯嚴密的代碼,多寫注釋,少留bug,不要給後人挖坑,經常做代碼評審(code review)和代碼重構(code refactoring)。一個好的編程習慣可以提高效率、減少重復工作等等。從職場溝通角度來講,養成即時反饋,定時匯報的工作習慣,可以避免因為溝通不暢導致多走許多彎路。
因此,對於一個程序員來講,養成一個良好的工作習慣,也因該是作為一個程序員的基本自我職業修養。(高中上完想學電腦編程,電腦編程培訓多少錢)
及時調整心態的能力
大多數程序員的工作,都是項目制的。在項目期間,996甚至007都是常態,因此可能會有比較大的壓力。同時,在項目實施過程中,遇到挫折也要及時調整心態重整旗鼓。所以,作為一名碼農,也要有及時調整心態的能力。