㈠ 作為程序員,最怕什麼
作為程序員,最怕以下幾個方面:
沒有文檔:缺乏程序文檔會使得代碼不容易維護,更改一個宏觀變數可能會對整個程序造成不好的影響,因此缺乏必要的文檔資料,會給程序員帶來很大的困擾。
需求變更頻繁:經常的需求變更可能導致計劃瞬息萬變,代碼需要不斷地進行修改,這會浪費開發者許多時間和精力。
時間緊迫:缺乏時間是一種非常常見的現象,人們總是感到時間不夠用,對於程序員來說,時間緊迫可能會使得他們沒有足夠的時間來優化程序,使得程序更加完善。
代碼質量不高:直接影響到程序最終的成品,代碼質量不高,一定程度上會導致程序的不穩定、性能低、維護成本高等問題,讓程序員陷入望而生畏的境地。
不適合的開發環境:一個良好的開發環境是非常重要的,對程序員的工作效率和工作態度都會產生影響,如滑態果開發環境不適合,那麼殲讓派很可能會讓程序員們感到非常疲憊和無助。
對於上述問題,程序員們需要具有良好的溝通能力、自身的承受壓力能力、專業的氏賀技術水平,以及始終保持心態穩定的心態和良好的團隊合作精神,才能夠更好地面對各種挑戰和困難。
㈡ 程序員的壓力有多大
作為一名程序員,壓力來自於生活中各個不同的方面,寫代碼完成工作只是一部分。
第一就是來自家庭的壓力,其實和大多數人一樣,程序員的第一壓力來自於家庭。單身的被催婚,結婚的又為生活中的瑣事各種鬧心。所以一個和諧穩定的家庭可以減少程序員絕大部分壓力。
第二是來自學習的壓力,為什麼是學習呢?因為IT技術變革和更新非常快,不想落後就得不停地學習,一個不擅長於學習和研究的程序員職業道路走不遠,因而也會因為自己的學習腳步跟不上而產生恐懼。
第三是來自房子的壓力,大多數程序員特別是在一線城市的,想買房太困難,去二三線城市發展,薪水很低,所以就像一個圍城效應。有房產的程序員就比較自由了,沒房產的就會壓抑一些。
第四種壓力,工作!沒得說,遇到坑跪著也得填完。
第五種就是年齡大了干什麼工作的壓力,畢竟程序員是青春飯的,到了35歲左右可能公司就要裁員了,隨著年齡的增長可能腦力活著學習能力都在下降,敲代碼熬夜的話可能會熬不住的。
關於程序員壓力的問題,網上普遍認為程序員「壓力大」、「996」、「易猝死」,就算直接采訪程序員:「你壓力大不大」,估計不同的人也有著不同的答案;下面我根據十多年的程序員工作經驗,談談自己的看法。
關於加班,關於996
首先不能否認,作為程序員,幾乎沒有沒加過班的,只是加班多少的問題。有些公司常年996,甚至到半夜也是經常的事情;能夠正常下班的公司,也至少在需求緊急的時候,項目上線的時候加加班。我現在在一家金融公司的IT部門,這些時候都是需要加班的:
但是,根據我的觀察,很多公司、很多人996都是 「政治996」 ,他們的工作量並不需要996,而是因為公司要求、領導要求、回家也沒事兒乾等原因,留在單位直到很晚。對於真假996我的看法是:
程序員的壓力究竟有哪些?
那麼程序員的壓力究竟有哪些,在我看來,有這幾個方面:
不過在我看來,哪些行業又能說毫無壓力呢?既然選擇了這個行業,那就堅持下去,如果真的覺得自己不太適合做程序員,那就果斷轉行。
我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。
項目工期的壓力
從我的從業經驗來看,尤其是從事互聯網行業的程序員壓力是很大的,經常會遇到來自運營那邊的緊急需求,比如什麼時間要上線個活動,時間都卡的很死,如果上線不了,對整個公司來說影響很大,我還清楚的記得,有一次公司臨時來了一個很重要的對外的合作,公司要求七天內上線,如果不上線,就會影響投資方對我們的投資,沒辦法啊,我們整個開發團隊,七天沒回家,在酒店住了一周封閉式開發,幸運的是,我們完成了,如期完成了項目上線,類似這樣的事情還比較多,有時候會讓人心力憔悴,還好那段時間我們年輕,扛了過來。
加班的壓力
首先選擇這一行,我們就應該有清楚的認識,加班是避免不了的,比如 996 這個概念有一陣子被炒的很火,我個人覺得,在一段時間內,比如為了趕一個項目上線,進行996我覺得是可以接受的,但是長時間,比如一年兩年都是這種狀態,你就得思考這正常嗎?問題出在哪了?這個公司是不是值得呆了?其實出現這樣的情況,大多數是內部管理問題或者所謂的領導為了迎合老闆的喜好,政治996,如果收入又不高,佔用太多的私人時間,就沒有了自己的生活,除了工作就是工作,你沒有辦法去提升自我,長久下來,你的技術會與時代脫鉤的,建議盡早離開。
年齡增長,工資增長慢,收入少的壓力
隨著年齡的增長,曾經我認為年輕的90後,也慢慢的30了,也不小了,大多數已經結婚有孩子了,雖然到了這個年紀,工資大概能到2萬左右了,但是這兩萬真的夠用嗎,房貸,孩子教育,贍養老人、自己的各種生活開支,算來算去,自己能留下的錢已經所剩無幾了。
我曾經看過《雲棲社區2017中國開發者調查報告》中顯示中國開發者月收入水平在10000元以下的佔49%,另有32.2%的人月收入在1萬~2萬元,真正月入10萬元及以上的高收入群體僅佔1.4%。 社會 普遍認為開發者群體是高收入人群,而實際上,相當多的人並不是。其實我們大多數程序員只是一個普通的打工仔而已。我們要正確認知這個現狀,拿高薪的只是少數而已。
技術更新太快的壓力
作為開發的我們深有體會,就拿我從事的前端來說,前端幾乎每年都有新的東西出現,有時候還沒學完,新的版本又出來了,為了讓自己的職業有保鮮期,不落伍,只有不斷的逼迫自己學習,不能有絲毫的放鬆。及時自己從事了管理崗位,對技術我也不敢絲毫的怠慢,還是在不斷的充電和完善。
每年湧入不少新人的壓力
我們都清楚,如果要是從事基礎的編程工作,門檻並沒有想像的這么高,基本上培訓學校出來的人只要有幾個月的時間,高中基礎的人,出來以後也能上手基礎的項目工作。因此造就了每年有大量的新人來到這個行業,剛入門的新人,工資低,又年輕,多少對我們這些比較一般,還從事基礎編碼的程序員增加不少壓力。沒有誰是不可替代的,即使你是老員工,有時候公司為了生存和發展,也不得不犧牲一些人老人,去招聘能力又強又便宜的新人。
焦慮:在別人眼裡你很「光鮮」,其實你就是一個普通人
我經常會遇到身邊的朋友這么說,你們這些在北京工作的人,尤其是做互聯網開發的,年薪也至少50萬+了吧,甚至還補充到,我朋友或親戚誰誰,在BAT、微軟、華為做開發都年薪百萬了,難道你不是嗎?每次聽到這個問題,我真的是很無奈笑而不語,難道真的是自己很失敗嗎,千萬不要被身邊的人左右了你的心情,你需要清楚的認識到開發者群體中只有少數人能成為管理者或高薪的技術人才,絕大部分還是普通人。一定要把自己的心態放平,不要被這些所謂的外因,讓自己整天憂心忡忡焦慮,做好自己就行了。
如何擺脫這些所謂的壓力和焦慮呢?靜下心來,踏實工作,做好職業規劃
首先我們要清楚的認識到我們是一個很普通的人,特別隨著年齡的增長,尤其到了中年之後,面臨著年輕人的壓力同時還有生活的壓力,確實要求我們有著強大的內心,生活確實很艱難,千萬不要給自己定性認為自己不行了,你越這么認為,生活就會越針對你。
其次想必大家和我都想過這個問題,如果我40歲了,還要和現在一樣從事這樣基礎的業務代碼工作嗎,環顧四周,這么多小年輕,我和他們從事一樣的基礎工作,是不是很尷尬,IT行業發展太快,需要不停地學習,年齡大了身體不如年輕人,就容易被淘汰。
然後你還要思考自己是不是一直要走技術路線,對開發來說,經驗沒有太大幫助(少數還是有幫助的,比如技術架構的能力),而且技術淘汰速度快,就拿我們前端的jQuery框架曾經是多麼的火,自從有了vue、react後用的就少了,這就說明了一個問題經驗往往很快就過時了,而轉管理崗位又太考驗天分了,比專研技術更難。技術路線,堅持精進和學習,跟著潮流擴充自己的知識體系,是沒問題的。但是開發能力只是個工具,做到最後牛的還是那些思維能力好、推演能力強的人。你在走技術路線的時候,千萬別忘記了基礎學科的學習,比如數學,計算機基礎理論。(搞AI的那幫人水平真高。大部分都是博士、數學等基礎學科方向畢業,而且接受過很好的教育,而這樣的人才,即使不在互聯網行業做開發者,往往也能獲得高收入,因此比我們選擇更多),所以建議大家在條件允許的情況下,考一下本專業的研究生,讓自己的理論和思維更加寬闊起來,及時以後不從事這個行業了,也能有更多的選擇。
最後,如果你實在堅持不下去了,無非就是轉行,你就要提前思考下做什麼,找個一個自己的興趣愛好,比如先做當下比較流行的自媒體,短視頻,或者弄個生意都行,還有一個比較有意思的事情,我也忘記在哪看過的文章,說的是一些一線技術大牛40多歲後,利用自己的互聯網思維,搞起了傳統的餐飲行業,而且弄的還很不錯,可見傳統行業也未嘗不可,只要自己喜歡,有時候我就想著弄個奶茶店,哈哈。
小節
今天和大家聊得比較多,請大家見諒,我們要清楚的認識到,天無絕人之路,不要杞人憂天,做好自己就行,我們就是一個普通的人,平平淡淡過好自己,做好職業規劃,堅持學習就夠了,老天是不會不辜負努力付出的人。
對於科班出身的程序員我不是很確定,但是對於非科班出身,尤其是培訓的程序員,他們的壓力真的是非常大,每一個堅持下來的同學都非常了不起!
金三銀四的時候,一位老學員和我說的:自己經人推薦,面試一家大企業,技術面試通過了,但在談薪水階段,hr很明顯的傳達,表示自己是非科班出身,不是特別滿意……雖然最後還是拿到了offer,但心中不免有些意難平!
相比於計算機相關專業,作為非科班出身的學員,從開始工作到有2年經驗這個階段,跳槽幾乎都會「被照顧」到這個問題,這很容易讓人產生對自身的不認可。同時因為基礎不夠扎實,對所學知識半知半解,不確定更大,從而加深自卑心理。有的時候明明已經學好了,但總覺得心裡沒底。
焦慮解決不了問題,只能拚命學習!
晚上下班回去依舊學習,像現在的演算法,Python都自主的學習;
因為非科班的出身,剛開始基礎不算好,所有周末都會去上海徐匯的圖書館學習;
這只是他和我交流中說到的這幾句,但是這幾句話背後付出了多少努力只有他知道吧,這僅僅只是自己在學習方向的壓力!
而面對職場,還有各種各樣的壓力向每一個程序員襲來,尤其是危機意識很強的人。因為技術變化也是非常快速的,而程序員可以說的上是技術前沿的職業,面對這種變化比旁人是更加清晰的,為了延長自己的職業壽命,多少程序員已經開始自學Python、自學演算法了,為的就是在今後的變化中自己能有競爭力!
你說壓力大不大,每個人都有壓力的,畢竟 互聯網帶來了機遇,也放大了焦慮,在焦慮面前,誰能淡然一笑!
沒有哪一項工作不辛苦,沒有哪一項工作毫無壓力。對於我們來說,最重要的是正面壓力,讓自己成長。
作為一個曾經在Oracle、阿里、網路都待過的程序員,來談談我對這個問題的看法。我認為,程序員的壓力,一部分來自工作環境,一部分來自內心的焦慮。
來自工作環境的壓力
來自工作上的壓力是必然的。特別是互聯網公司,長期處於快速迭代的節奏, 並且以結果為導向,以成敗論英雄。筆者從業多年來,曾經幾度面臨崩潰的邊緣,好在通過不斷調整,內心變得強大從容。總結下來工作上的壓力可能來自幾個方面:
來自內心的壓力
身在職場,工作是永遠都做不完的。其實更多時候,壓力是自己給的。這里筆者主要來剖析一下自己所面臨的問題:
做好規劃,時刻保持競爭力
有壓力不可怕。在外企朝九晚五,也會面臨諸多壓力。在互聯網公司小步快跑,加班成了一種常態,壓力更不用說。那麼我們要做的只能是調整好自己,直面壓力,獲取更大的成長。
歡迎關注筆者,每天分享架構干貨 。
程序員加班多,壓力大,有多大呢?有辣么大!
我不說壓力有多大,我就說說為啥壓力會這么大。
作為程序員,需要通過編程做出一款產品,然後把產品賣給客戶,這樣才能有持續的收入。而程序員的壓力很多是來自自己公司的銷售和客戶。
1、自己公司的銷售
銷售要把產品賣給客戶,就需要與客戶坐下來,大家一起開個會,銷售向客戶介紹自家產品,有時會出現吹牛皮吹過頭的現象。比如產品某個功能目前沒有實現,或者未來很長時間也不能實現,但是銷售已經誇下海口了,不能自己打自己的臉啊,於是,這壓力就轉到程序員身上了。
2、客戶的需求
銷售或者項目經理與客戶開會,談某個項目落地的事情。由於客戶比較急,要求多少多少天之內落地,於是壓力又集中到了程序員身上。
3、還是客戶的需求
項目落地了,但是客戶的需求隨時在變化。每變一個需求,程序員就要改動一次。如果需求變更比較急,程序員又要加班加點了。
程序員的壓力總是有的,在壓力中挺過去海闊天空!
程序員的壓力有多大?
壓力肯定有,至於說程序員的壓力是不是最大的,那就不知道了。各行各業的壓力都大,主要壓力來源於幾個方面,就看自己的調節能力了。
1、工作壓力,這個主要根據項目,要求按時交貨,必須加班加點完成。特別是產品調試階段,出現BUG的話,基本都是通宵,想辦法來解決問題,有時候連續幾個通宵。
2、知識更新太快。前端幾乎每年都有新的東西出現,有時候還沒學完,新的版本又出來了,為了讓自己的職業有保鮮期,不落伍,只有不斷的逼迫自己學習,不能有絲毫的放鬆。及時自己從事了管理崗位,對技術我也不敢絲毫的怠慢,還是在不斷的充電和完善。
3、家庭的壓力。雖然說程序員的工資高,基本都在加班,沒有時間談個戀愛啥的,家裡天天催。結了婚的,由於天天加班,不能好好的陪伴家人,也容易產生家庭矛盾。
4、程序員對年齡要求嚴格。一般程序員過了35歲,企業基本就不再會錄用了,所以程序員必須在35歲錢,完成兩件事,一,賺足錢,實現財務自由。二、努力提升成為管理者。過了35歲的程序員,沒有走上管理崗位的,基本都考慮轉行了。
歡迎留言討論
都這樣了,還有啥說的~
這個需要區分在什麼單位或者是部門做開發以及開發軟體的性質。工作中的壓力來自幾個方面,包括如下等一些方面:
首先,工作進度壓力是指要在規定的時間完成開發任務,上級確定的開發完成截止時間前必須完成任務,而開發工作具有很大的不確定性,每個系統的開發都和之前的開發工作有不同,雖然所用的技術是類似的,但總能碰上不一樣的或者需要公關的技術。所以為了完成任務有時只能加班加點,還要預留足夠的時間做測試等,每個人都不想拖項目的後腿,不能因為自己一個人延期而影響整個項目的進展,所以平時最大的工作壓力來自進度壓力。
第二點,軟體開發的技術更新非常快,參與開發時會碰到很多你不熟悉的技術,包括新的技術選型所採用的新技術,也包括開發軟體所涉及的業務領域的新技術,比如軟體涉及到系統安全,就需要學習加密解密,邊學習邊開發導致難度增加,還要保證進度,所以壓力就大。
另外,如果所從事的是核心系統的開發,比如電信的線上計費系統,互聯網的線上實時運行的系統,開發這類系統的壓力也會比較大,因為如果這類系統運行出錯,則影響會比較大,會導致使用者的經濟損失和惡劣的影響,所以從事這類開發的都需要小心翼翼,盡可能的避免出錯,需要嚴格的審核和測試,這種對工作後果的擔憂會對開發人員產生很大的壓力。
總體來說,程序員的壓力還是很大的,但也有一些單位或者項目對開發進度要求不緊或者對成熟的程序員來說沒有什麼難度,又或者說是不太重要的系統,參與這樣的項目會則會相對輕松,但熟悉的工作對開發者的技能提升有限,就看個人如何取捨了。
是很大,這個行業能在這么短時間發展的這么好,應該說是目前發展最好的行業之一吧。發展這么快,技術不斷更新升級,必須保持學習的狀態,否則很難做好這行,將面臨的就是淘汰。
這個行業薪資相對高,從業人員素質比較高,大都不安於現狀,每個人都不甘心落後,再加上大多公司都採用末尾淘汰制,不努力的淘汰掉。每年都有大量優秀的畢業生加入,競爭壓力可想而知。
錢不是那麼好掙錢的,通過薪資就可以看到一個行業的壓力。
㈢ 如何向外行解釋產品經理頻繁更改需求為什麼令程序員煩惱
客戶購買產品的出發點都是為了幫助他解決問題,買個10w的車是解決出行問題,買個100w的車是解決應酬問題,買個1000w的車是為了解決面子問題。但是很多客戶由於搞不太清楚他面臨的問題到底是什麼,就導致他們對自己的需求不明確,對於要做什麼東西總是模模糊糊沒有清晰的概念。此時客戶會下意識的將他們想到的功能以不成熟的設計描述出來,並且希望產品那邊趕緊出一個demo看看是什麼樣子。如果做出來的東西恰好能解決他們的問題,那就皆大歡喜(從經驗上看,這種概率一般都低於20%),如果做出來的東西無法完全解決他們的問題,甚至都不搭邊,這樣就會引起更改,有可能不斷的重復這個過程。PM的角色應該是通過引導客戶對其面臨的問題進行詳細描述,從而主抓他們主要面臨的問題,進而形成一套解決方案。了解客戶面臨的問題是很關鍵的一步,因為很多客戶對自己面臨的問題看的不全面,考慮的不周到,往往只從一個方面描述問題,有很多因素都沒有考慮到。如果PM在跟客戶確認需求時,沒有對客戶描述的問題進行深入分析,那麼以此設計出來的產品成熟度就很低,需要反復修改的風險就很大。之前聽到一個例子很好的描述了這個情況:一對夫妻找到他們的律師決定立一份遺囑,這對夫妻對遺囑的描述很簡單,就是有一方如果仙逝,則財產全部自動歸到另一方名下。此時如果是一個不稱職的律師(PM),基本就會按照這對夫妻的描述來起草遺囑。如果是一個稱職的律師(PM)則會想這對夫妻問以下這些問題:律師: 如果你倆同時遇難,財產如何分配?夫妻:財產全部歸我兩個孩子,一人一半。律師:如果在你們遇難時你的兩個孩子都未滿18周歲,那財產如何分配?夫妻:額,那個,財產暫時由男方父母代管,18歲時再分配給子女。律師:如果你們的兩個孩子先於你們過世,財產如何分配?夫妻:那就捐給基金會。律師:如果你們遇難之後不久男方父母也過世,並且兩個孩子都未滿18周歲,那麼財產如何分配?夫妻:這個。。。額。。。好吧,我們還是決定如果孩子未滿十八歲,財產由信託基金代管,Hope信託基金能堅持到兩個孩子都滿18歲。律師:好的,跟信託基金簽署的合同是另外一個topic。如果你倆一方仙逝後,另一放再婚,財產如何分配?妻子:我那份留給兩個孩子丈夫:。。。在產品的開發過程中需求變化是在所難免的,好的PM應該能從解決問題的要點出發,盡可能的幫助客戶找到適合他的解決方案,同時在跟研發團隊設計產品時應該盡可能的讓產品模塊化,留出可擴展空間,解釋清楚每個需求變化的原因,讓研發團隊了解修改的合理性,以便能盡可能的滿足客戶需求。
㈣ 為什麼中國的程序員總被稱為碼農
實際上IT行業在中國並不是特別差的行業,而程序員的工資也並不低,但為什麼中國的程序員總被稱作碼農或者說是苦逼的程序員?中國的程序員生活和歐美的有什麼不一樣?之前,研發頻道曾發過《東方程序員怎麼看西方程序員》和《西方同行眼中的東方程序員》這兩篇文章。來自世界各地的程序員們各抒己見。或許,從上面兩篇文章中也多少能得出「」下面是來自知乎網上各位大牛的看法。讓我們來一起看下!一位叫吳濤的程序員的回答:編程活動和機械電子一樣可以視為一種工藝(craftsmanship),從事此類工藝活動的人可以叫做工匠或者工程師。經歷過工業革命的歐美國家,有深厚的工程根底,從機械到電子再到軟體,都是國家產業的支柱,滋養著社會中堅力量的中產階級。工程師的社會地位普遍比較高,他們有工藝的傳承,有文化圈,有產業的歷史。而國內目前的軟體工業和製造業非常相似,以來料加工式的低水平重復勞動為主。就好像農民仰賴著老天提供種子、土壤、陽光和水,中國程序員仰賴著洋人提供設備、技術和理念,從微處理器、操作系統、編程語言、編譯器、IDE、編程框架到應用程序,除了做晶圓的沙子是本地產的,幾乎沒有什麼屬於自己,每天的工作內容主要就是把別人已有的東西按照自己的——甚至不是自己的——需求裝配一下,沒有什麼創造性,也很少有業界的技術積累和傳承出現,即便有也流傳不開,畢竟程序員文化水平普遍不高——「有知識,沒文化」,就是說這樣的狀況。記得劣質盜版VCD滿天飛的時代,有個程序員做出一款醜陋但是解碼容錯能力很好的播放器,貼合國情,一炮成名,結果好容易寫本書,沒有幾個句子能寫通順的。這種技術書籍的拙劣狀況一直保持到現在,而且拙劣的方式更加多樣化了。沒有技術傳承,沒有文化圈,不乏有人上大學之前對編程一竅不通,學計算機只是因為計算機「熱門」而已。如同包辦的婚姻,沒有一絲愛情,最後以編程為業,只是因為也不會做別的什麼了。另一方面,國內程序員不論薪水如何,的確很苦。許多人長期被迫加班,最後甚至會成為一種自願的習慣。可生產率和產品質量並未因此而提高,就像千百年來用慣鋤頭和鐮刀的農夫,很少有人會想要去學習、改進自己使用的工具和習慣,甚至對於新興的思潮和方法抱有非理性的抵觸情緒。生活如此悲慘,卻又如此不思進取,和農民的問題很相似。再加上,就好像城裡人眼中的鄉下人一樣,程序員們木訥、邋遢、缺乏情調、土。可偏偏又自負而且互相看不起。總而言之,在中國做一個程序員,很少有什麼事情能讓人覺得自己從事的工作很體面。那麼,在整個社會以自嘲為風尚、許多行業都喜歡好勇鬥狠地自輕自賤的狀況中,使勁貶低自己的職業,自嘲和群吵時,就不會有什麼心理包袱。不過,就好像黑人可以自稱或者互稱「黑鬼」,但是白人如果敢講立刻會惹禍一樣,喜歡以此自稱的程序員並不見得能容忍其他人這樣稱呼自己。最後,英語有類似的說法,將帶有隔斷的辦公室叫做cube farm,常見於傳統的軟體公司。以諷刺(但不限於)軟體公司日常生活為主題的漫畫Dilbert就有不少格子辦公室里的場景。不過cube farm說的並不是程序員們像農民,而是說他們像地里的莊稼或者果樹,產出成果,等待收割。畢竟,歐美發達國家的農民生活往往比程序員更好。高收入,農機勞作,大片的私有土地,寧靜的田園生活。農民的生活在那裡,如果不是令人嚮往,至少也並無貶義。補充:本版同文所說的code monkey在英語中的語用,與「碼農」在中文裡的用法並不一樣。code monkey是指以計算機程序員或者那些以編碼為生的人。這個術語可能包含輕微的貶義,這意味著開發者可能編寫代碼,但不能執行復雜點的任務,比如:構建軟體結構、分析和設計,一般指初級程序員。如果一名code monkey正在努力增加知識和提升職業技能,那麼會有另一個等級名詞賦予他。其實code monkey這個術語在層次劃分上還是有點困難的,因為像那些真正熟練的開發人員或程序員他們仍然在做編碼工作。或許像這樣劃分會好一點:coder:編碼員programmer:程序員software engineer:軟體工程師software analyst:軟體分析師software architect:軟體架構師或許還可以在前面加「初級」、「中級」、「高級」這幾個前綴。這些都反映了一定的等級、技能水平和薪資。請注意:它只能在小范圍確定的某種層次結構,例如在一個公司、甚至一個部門。一個在A公司工作的「程序員」可能比B公司的中級架構師所要求的技能更多。下面是關注前端技術的鄧陳華同學的回答:首先, 問題的題目」「是有一定的可辯論性的,因為我所了解的事實是,大多時候是「中國的程序員自稱為碼農」,很少有不同行的人稱呼程序員為「碼農」。當然,可能和我所處環境有關系。認可濤吳所說的「自稱碼農的程序員並不見得能容忍其他人這樣稱呼自己」,因為這就像他所舉的例子,黑人允許自稱,但不允許白人稱呼,同樣的詞在熟人說來是親切、是自嘲、甚至可以是自諷,但在外人說來,那不僅是不尊重,還有可能是侮辱。其次,身處互聯網行業,程序員工作辛苦,加班再正常不過,項目進度、突發情況、公司文化都可能成為加班的理由,雖然收入不一定差,但夠苦逼。另外一方面, 程序員魚龍混雜,水平參差不齊,而互聯網向來是一個強調能力的開放行業,有多少能力就拿多少工資,這樣註定有相當大一部分因為水平不夠,導致收入問題成為「碼農」的心病。而「 工作辛苦」、「收入低」和農民有類似,所以無論自嘲或者是被別人冠以「碼農」的稱謂,辛苦、收入低這兩個標志包含其一的可能性非常大。如果兩者兼有,那就是純種『碼農』一枚,夠苦逼。當然,還有第三種情況就是像趙劼姐夫這樣,「彈鋼琴的碼農」,已經做「碼農」做到一種境界,並不一定強調其辛苦、更不會收入差,以「碼農」調侃的口吻戲謔人生,這個心態和大家自稱屌絲是一樣的,更多的自嘲自諷。其實,這樣收入高而且相對不這么辛苦的精英「碼農」在行業內也不少。下面是在讀研究生吳洲提供的,來自圖靈中文社區電子雜志《碼農》第一期的首卷語:《所謂碼農》一文的解釋:對於「碼農」這個稱呼,有些人喜愛有加,有些人不以為然。區別在於對待「農」這個字的感覺。農當然是指農民,這個詞寓義很豐富,既可以說它偉大,也可以說它渺小。說它偉大,是因為我們的生存離不開農民,而且中國一直是個農業為本的國家,曾經說是百分之八十的人是農民,這意味著往前翻�9�2兩代,你我眾人皆是農民出身。以此觀之,農可謂大哉。說它渺小,則是因為大家的觀念里,農民意味著有很多缺點,冠冕堂皇的說法是劣根性,比如目光短淺、思維陳舊、自私小氣等等,總之是為我們受過教育的人群所看不慣的種種毛病——這些毛病雖然我們自己也有,但是我們看不見——於是乎「農民」成為了罵人時常用的字眼。其實,把自己的編程生涯與田間地頭的鋤禾日當午對應起來,確是有那麼些相似之處的。你能想像得到,田間整齊栽種的秧苗,與屏幕上顯示的錯落有致的代碼行有幾分神似。各種莊稼的種植是有講究的,正如你要注意編程風格。施肥灌溉,猶如你對代碼進行的編譯鏈接。除草除蟲,自然是在做著debug 。你挑水來我澆園,大概是在小菜園中進行的結對編程。因為靠天吃飯,農民們也要學點雲計算,去五道口職業技術學校進修的人也多起來了。收割的季節,活多人少,也常常是要搞外包的,因為deadline 很重要。不過坦率地說,「碼農」這個叫法讓人體會更多的是滑稽、搞怪、無厘頭。畢竟一個是簡單的體力勞動,一個是高智商的腦力勞動,不可同日而語。而程序員卻偏愛這樣的時空錯亂的感覺,自嘲(我就是個農民!)的同時卻又自命不凡(我是碼農我怕誰?!),特立獨行極了。碼農的草帽底下,是一顆充滿創造力的自由不羈的頭腦。他們遵從最佳實踐而痛恨陳規教條,他們欣賞天才而不迷信權威,他們喜歡思考而不輕易苟同。他們是技術人,卻追求人文理想;他們敢於吶喊,說出自己的觀點和主張,也更善於腳踏實地,用自己的點滴工作去改變現狀。碼農們是勤奮的,加班加點的工作是常有的事情,城市夜間的燈火,有多少是在碼農們的辦公室和居所點燃?周末四處舉辦的技術交流和講座,又活躍著多少碼農的身影?線下讀書,線上討論,冥思苦想,動手實踐,新技術驅動著碼農們的腳步,碼農們在改變著我們的生活。生存離不開農民,生活離不開碼農。
㈤ 程序員遇到很難的技術問題是怎樣的感覺
昨天剛領一個線上P0級重大事故,持續時間1小時,影響范圍全站 !准確的時間點是下午17點開始,具體問題定位且聽我下文細細道來。
先說感覺,那感覺真是太刺激了,本來下午五點,昏昏沉沉的,瞬間一個激靈就清醒了(想像一下高中課堂,你在打瞌睡,突然老師走到你面前給你一下子的感覺),原本准備再過一小時吃晚飯了,吃完晚飯再摸魚到21點就可以下班了呀,別問我為啥到21點,問你就不是程序員!
帶著無比緊張且顫抖的心情開始定位問題,先來個錯誤日誌嘗嘗鮮:
1、下午五點開始有少量的慢sql報警,沒有人當回事,因為這種事情總發生,雖然大家都知道在實際開發中如何避免慢sql,但是整個團隊要想完全避免慢sql卻很難;
2、五點十分左右,開始零星有用戶反饋指定功能不可用,SLB開始報警,技術開始介入排查;
3、十五分左右,客服部門電話開始爆炸,用戶密集反饋指定功能不可用,技術部開始重視;
4、二十分左右,所有服務大面積出現介面無法響應,整體服務不可用;
5、我們一開始定位覺得是MySQL的問題,因為前面有mycat的慢SQL報警,後來定位並不是MySQL,因為MySQL的內存、連接數、流量這些指標都很平穩;
6、最終在五點三十分的時候我們定位到是ES出問題了,因為所有的Java服務不可用最終都指向上面的錯誤日誌,bbo提供的服務線程池滿了,再有請求進來直接拒絕了,查看這個服務的代碼,最終查詢的是ES,此時的ES進程已經處於假死狀態。
那接下來大家說怎麼辦?如何快速的恢復線上服務?
重啟!
是的,只有重啟大法此時是最快的解決辦法,你不可能說保留ES事故現場,讓我用arthas之類的工具來現場分析jvm內存情況。
然而重啟之後服務依舊是不可用,介面還是無法響應, 大家知道這個時候是什麼原因嗎?為什麼重啟了ES服務還是不行?
後續繼續重啟報錯bbo日誌的相應服務,當這些服務全部重啟完畢後,我們的服務終於恢復訪問了,這個過程持續了十幾分鍾,確切的說,直到17點五十多分,我們的所有服務才恢復了訪問。
接下來就是事故總結、相關責任人、產生問題的原因、接下來的優化方案,全公司郵件通報!
你說這個難不難?本身並不難,難的是事情緊急且重要,這個時候你慌了啊,亂手亂腳的,大家你一言我一語的,如何冷靜提取有效信息然後盡可能快的解決生產的重大故障才是最難的!
最後,當一切都恢復平靜的時候,你會發現:「卧槽,好累啊!」。
虛脫的感覺!
最後祝大家程序員節日快樂,今年可是程序員的本命年哦
2020 = 1024 + 996 = 404 + 404 + 404 + 404
這種感覺能難受,很壓抑。
技術難題,對於程序員來說,是經常有的事,關鍵是如何面對吧。
說下我的事情,雖然也會寫點代碼,但並不是以此為正業,所以對於真正的程序員來說,可能說法會有點偏頗。
遇到難題時,一般都在網上搜索解決方法,一般來說,都有很優秀的程序員分享他的勞動成果,所以一般都能解決問題。但也真正碰到難的問題,一個就是循環的問題,無限極菜單問題,當時都是找了很久,看了很多遍才明白過來,當時自己是幾天都不太開心,也不太想說話,總是在測試著程序。挺煩也挺不開心的。只是最後做出來了,心情就好多了。
這是我的一些經歷,當然,如果全職程序員,可能壓力就更大了。
如何形容這種感覺呢?焦躁,緊張,失落,無助,亞歷山大...
再多詞可能都描述不清楚。本人在工作中經常遇到難題,有些問題一兩個月都搞不定。遇到這種問題,估計只有下面這張圖的表情能描述此時此刻的心態了。
程序員遇到的難題其實分為兩種,一種是沒有辦法定位清除的問題,另外一種是定位清除了,但是沒辦法,或者很難解決的問題。
難定位的問題所謂難定位的問題,其實就是你根本不知道這個問題是什麼。比如系統突然掛掉了,你從現有的信息根本不能確定問題在哪。這個時候你剩下的可能只有滿腦子的問號了。
如果系統只掛了一次,後面不再出問題,那就很難找出問題的根源了。不過這樣也有好處,那就是問題的影響的程度相對較輕,畢竟不容易出現。所以在軟體開發中通常不是什麼問題都解決的,因為不是所有問題都能搞清楚是什麼問題,談何解決呢!
難解決的問題難解決的問題是問題搞清楚了,但是基於現有架構很難,或者沒法搞定。遇到這種情況,通常先是很高興,興奮,然後就只剩下無奈了。
當然,從技術層面來說並不是完全解決不掉。只是如果要解決需要涉及架構調整或者其它方面的改動,修改調整的內容太多。這種情況下就要考慮利弊得失了。
如果改動太大,可能會引入很多新的問題,可能得不償失。因此,遇到此類問題可能會採取一些規避方案。
當然,在開發和運營當中遇到各種問題是很正常的,關鍵是遇到不同的問題採用不同的策略。首先保證的是業務的正常運行,然後是考慮是否需要徹底解決。這樣慢慢調整,心理壓力會小一些。
作為一個工作多年的老碼農,在工作也遇到過一些艱難的技術問題,就以切身體會談談對這個問題的看法。
首先需要明確一下,問題是否困難除了取決於問題本身之外,還在於解決問題的人的水平,也許對你很難的問題,在別人看來不過是小菜一碟。明白了這一點,那麼這些技術問題也就成了考察程序員水平的試金石,有些人可能會因此氣餒,甚至放棄;而有些人則通過解決問題學到了很多新的技術,也讓自己進一步成長。
記得多年前看工作中要用到一款開源庫,那時候剛學完C++不久,自以為對面向對象了解甚深,然而學習這個庫時卻是一頭霧水,最後在經過泡論壇,然後又認真的學習了面向對象設計模式,後來不但能使用那個庫,更重要的是對面向對象編程有了更深的認識!
後來還有很多類似的事情,剛開始時感覺無比困難,但是通過自己的努力,或求助他人、或查閱資料,當最終問題解決時,你會發現自己又牛逼了一些,然後再遇到一些新的問題,如此循環……
其實編程也是一個學習的過程,就如同爬山一樣,每一階段都會有一些山頭,只有當你爬上山頭才能欣賞美麗的風景,但是當你爬上一座山頭的時候,就會發現更高山峰!只有當你爬上最高峰,才能「一覽眾山小」,可是到那時,你可能會嚮往地球之外的天地!
很難解決一般就是遇到某些瓶頸了,不同瓶頸的感覺是不一樣的,但無非可以歸結為下面幾類。
成本原因
不讓馬兒吃草,還想讓馬跑。這個是有些不太理解互聯網的一些領導的錯誤觀念,他們會給你安排一個老舊台式機,想要讓你承載幾萬、幾十萬並發的秒殺系統,你當然很難解決。
外界的評論可能是,「這幫程序員是吃干飯的么?這系統也太垃圾了!」
老闆的評論是,「我這台式機也不少錢呢。」
程序員的評論是,「這摳門老闆不會是個傻子吧。哎,再優化優化吧。」
當然,有些情況也是能夠理解的,公司明白需要更好的設備,但是由於成本控制,不得不在某些方面節省。但換句話說,設備成本是占不了一個大頭的,可能有其他方面的成本更加需要收緊。
如果是因為成本原因,我們的心情可能是無奈,又有些不能施展拳腳的束縛感。
歷史 原因
舉個例子,系統用了5年了,迭代了N個版本,在面對新的需求的時候,就會出現需求限制於系統的情況,常常會有程序員說,這個實現不了,那個不符合現在系統規則。其中很大一部分是這些年的積累,欠下的技術債造成的。俗話說,大船難調頭。
這種情況更多的出現在剛創業之後的幾年,由於一開始的快速迭代,追求先把業務流程跑通,先生存再規范,會讓一開始的軟體開發流程並不那麼規范,如果在1-2年內沒有進行重構,那麼積攢的3-5年的技術債就會慢慢把你壓得喘不過氣來。
解決這種情況,一是需要時機,給出足夠的空間和時間讓技術團隊重構,二是需要魄力,你得有成功的把握,不能幹著干著說不行了,咱們還是回到原來吧。
如果是因為 歷史 原因,我們的心情可能是期待和渴望,又有些對現狀的無奈。
能力原因
雖然說專家很厲害,但說白了,大部分企業需要的研發人員,還到不了需要專家的級別。所以,一般而言,沒有什麼技術是攻克不了的。如果真的遇上了,那就說明你的公司已經到達了一個新的層次,從而需要那個層次的人員來解決,可以通過外聘或者顧問的方式,引進新的技術。
如果是因為能力原因,我們的心情雖然有些力不從心,但又為公司在新的台階而高興。
不管怎樣,程序員是一群追求美好的人,不管是外部限制還是內部限制,不能解決的難題對於技術人員來說總是很憋屈的。
不能著急,慢慢分析,找到問題點,沒有解決不了的問題
程序員的技術問題,排除架構師技術選型錯誤以外,都是程序員的功夫不到家所致。
1,面向網路的程序員會第一時間問度娘,各大社區求助大神。
2,面向源碼的程序員會第一時間查看源碼實現,查找api文檔,思考解決方案。
3,不管技術如何發展,架構如何延伸,不變的是基本功,再先進的組件都是由基礎語法書寫出來的 。
練武不練功,到老一場空,共勉!
首先說下這個很難的技術定義,個人認為在你知道之外的知識都是很難的,一旦你深入了解其使用方式,原理,甚至閱讀了他的源碼,你會覺得有的時候會恍然大悟。程序員是一個不斷要學習的崗位,就要面臨很多從未知到已知技術的時候,每當遇到這樣的情況時候,總有種不解決了這個問題,睡不著覺的感覺,心裡不踏實,總是想盡各種辦法去解決這個問題。甚至可以一直追查這個問題。也許這就是一種執拗吧
我老公最近就遇到一個大石頭需要敲碎,我作為一個旁觀者,都挺心疼他。
他還在讀博,最近遇到的問題是他一個項目上的問題,也跟他的畢業設計相關。他剛讀博的時候確定了一個方向,去年開題的時候他覺得這個方向沒有什麼前景,真的是考慮了好久要不要換,如果不換,就是安穩的畢業,換的話接下來的一年多時間他會很艱難,很多新的問題需要一一克服,最後他決定換了,他說他讀博就是為了提高自己,還是想挑戰一下。
年前,系統板設計好了,然後最近做好回來了,開始調試,說這個板子跟個石頭一樣,不工作。本來就是禮拜一到禮拜六待在學校不回來,周日是休息的。現在放假回來都是在啃變壓器的東西,早上起的很早,晚上又很晚。真的挺心疼的,他還安慰我說,他又要進步了。挺擔心他的身體的,我特別希望時間能快點過去,能順利畢業。他卻不希望,總覺得時間過的太快,沒有時間搞研究。
今年的生日願望,希望他科研順利,身體 健康 。
以我的從業經歷,說說遇到很難的技術問題是什麼感覺吧: 興奮、充滿挑戰性 。尤其是在開發中遇到了技術難題,很多情況下真有種可遇不可求的感覺。
我認為能遇到技術難題,至少證明這個工作是有價值的。 這種價值體現了兩個方面,一是你的工作在整個產品開發中占據重要地位,甚至是核心地位。二是你的認知和經驗,仍然有成長的空間。如果你的工作一直沒有遇到難題,輕而易舉地就解決了一切,那麼很可能是你沒有機會深入重要的核心部分,或者你的工作性質可替代性很高,簡單重復性很高。
分解法。 把技術難題拆分,盡量的單元化、模塊化,這樣有利於逐步攻破,逐步解決。主要是降低技術難度,尋找真正的難點所在。如果問題無法拆分,就是那麼一個點,那麼需要逆向思維,可以先把問題擴大,看看涉及面有哪些,然後再縮小范圍,鎖定關鍵之處。
刨根法。 把技術難題抽象化,理論化,從根本的源頭去解決。很多技術問題,從基礎理論的角度去看,其實真的不難,只要你能定位到相關的技術點,困難點,知識點,就很容易進行快速解決。解決的終極辦法就是從理論上徹底解決,做到知行統一。
討論法。 三人行,必有我師。很多情況下,所謂的技術難題,在別人的眼中,也許並不是難題。很多情況下,小組討論,交換意見,方案互補,就可以解決難題。有些情況下,還需要和供應商一起討論,主要是補充信息的錯漏。經常出現的晶元問題,很多情況下供應商都更加有經驗。因為供應商有更多的使用客戶,有很多解決問題的經驗。最主要的是,晶元是他們設計的,他們更加清楚緣由。
沒有絕對的技術難題,有的只是尚未解決的技術難題。
㈥ 如何看待程序員把Bug都改完就被開除了
作為一名碼農、程序員,加班算是家常便飯了。周一至周五晚上加、周末加、辦公室加、回家加、有償加、無償加……確實讓人看見就怕。
但是你加班的原因是什麼呢?讓我們一起來看看下面兩個例子。
01 程序員踩點下班,領導:不想乾的請辦理離職,我這里不養閑人與廢物
在職場上加班不是目的,加班是為了完成工作,當員工能在正常上班時間內完成工作,無需加班,這時候作為領導也就沒有必要讓其留下來加班。
然而也有一些公司領導不看產出只看員工加不加班,就有一領導經過幾天的觀察,發現新來的幾名程序員每天晚上不到八點就早早的下班走了。
對此這名領導很生氣,想管管這群新來的程序員,於是在群里通知稱:
都是幹嘛使的?八點不到都 TM 走了!不幹的直接說,現在就表態度,我這里從來不養閑人,也不養廢物!不幹的不想乾的都去人事那裡辦理離職。
其實員工有這種心態實在人之常情。但退一步想,為何老闆卻能做到 5+2、白+黑呢?難道老闆們都是鐵打的?都是超人?非也,只因他們是經營者,他們為企業負責,為自己負責。
員工往往拿的是固定工資,所以這就導致了老闆與員工焦點矛盾的局面:老闆只關心利潤,員工只關心工資。