當前位置:首頁 » 編程軟體 » 編程員碼仔

編程員碼仔

發布時間: 2023-01-29 16:16:19

1. 程序員具有什麼普遍愛好

emmmmm 說到程序員(俗稱程序猿),大夥兒最先想到的是什麼?



咱家程序猿比較多,隨便問了幾個,回答有「宅」、「開黑打游戲」、「科幻」、「健身」、「天文」、「女裝」(美其名「二流碼農寫功能 一流碼農寫演算法 頂級碼農穿女裝」,不知道是不是認真的,有可能自己在家真有cosplay。。。。)

據觀察,這幫大神擁有無與倫比的耐力(坐如鍾。。。),工作勤勞(加班最晚。。。)

2. CNC加工要求

濟寧利興CNC 加工標准
1、 加工前必須檢查導軌油是不是在安全線以內,堅決杜絕忘加、加錯 油等情況出現!
2、 開機後主軸必須空運轉 5-10 分鍾,如果長時間沒開機,開機後必 須進行暖機程序方可進行加工。
3、 加工前必須把圖紙看懂讀懂,如若有不懂或難理解的問題,應在加 工前即時找組長處理掉,再按照圖紙要求的模號找到相對應的材料, 分別對所要加工材料的長、寬、高進行檢查,單邊餘量必須在 1mm 之內,如若材料尺寸過大,必須及時向組長反映,如若材料實際尺寸 遠遠小於要加工的尺寸,必須在鉗工組組長知情確認後方可進行加 工!
4、 效表分中公差必須保證在±0.01mm,15 分鍾之內完成所有輔助工 作,加工模仁前,必須檢查直角(包括精料) ,加工時必須兩次分中 確定 OK 方可加工,模仁開完粗後必須檢查水平,方可進行精加工, 斜頂、鑲件、行位進行加工前必須磨床磨有基準面(毛料除外) ,如 若在沒有基準面的情況下盲目加工,出現報廢、不良情況等,責任一 律由濟寧利興 CNC 加工者承擔,在加工完後必須在圖紙上簽上加工者的姓名 和日期,並註明加工坐標對應的工件,把圖紙放回圖紙的保存箱,以 備後用!
5、 在濟寧利興加工中出現異常情況, 首先檢查確認自身無誤後再找編程員查找 原因。 出現斷刀或合金刀粒磨損情況, 必須立刻停機更換刀具或刀粒。 如若刀具質量問題,及時反映組長處理

6、 主軸運轉正常,程序參數設置合理的情況下,CNC 操作員不得擅 自改動程序中的 S(轉速) 、F(進給率) ,開粗、中光時操作員必須控 制實際進給率為程序進給率的 120%,機床正常加工是 G00 速度(快 速移動)必須為 100%,精加工時,操作員必須控制實際進給率為程 序的 50%,以保證其光潔度。
7、 在濟寧利興生產加工中,改模的銅公、改模模仁優先加工,其次為新模,新 模 C 殼、D 殼優先加工,其中前模(A)鋼料需外發淬火先開粗,再 加工後模(B) ,相對應的加工此模銅公,銅公中銅打銅、線割、整公 優先加工。銅公精(F)粗(B)字碼必須分清楚,線割銅公的字碼必 須打在銅公的底部,以免銅公需線割避空,把字碼鑼掉,給火花機加 工帶來不方便。
8、 模仁、銅公加工完後必須自檢,以免發生低級的錯誤等。由於粗心 大意導致撞刀或模仁、銅公加工報廢,必須填寫事故調查報告,交工 模主管處理。
9、 CNC 操作員必須按照《CNC 工藝流程》加工,工模主管所安排的 生產加工順序,不得私自改變或調整,改模模仁,銅公及異常加工、 二次加工必須由模房主管簽字後方可進行加工,未經批准私自加工嚴 懲不貸,異致新模試模期推後者,責任由其個人承擔。
10、 非 CNC 人員不得操作或亂按 CNC 的機台,濟寧利興CNC 專用電腦它人不 能隨便亂用,上班時間任何人得玩手機、玩游戲或做與工作無關的事 情。
11、 CNC 的刀具、卡尺、板手、碼仔未經准許不得私自借於他人使用, 非 濟寧利興CNC 人員,不能隨便亂拿待加工的料及其他東西。
12、 CNC 的工作范圍內,地板保持清潔干凈,機台負責人每周六必須 對機台全面進行保養與維護,所加工的銅渣、鐵渣必須分類放置。
13、 銅公加工必須使用新刀,如若加工的銅公有毛刺或表面太粗糙,應 及時更換刀具。 濟寧利興CNC 急需的刀具必須提前一天時間以書面的形式交給 組長申請購買。
14、 濟寧利興CNC 人員白夜班交接,必須以書面的形式,表達要簡單明白,嚴 禁口頭交接。
15、 上班禁止穿拖鞋,下班前電腦、風扇、電燈,必須關掉,如若模仁 開粗,必須按下單段或暫停。
16、 操作機台的時候不準許帶手套, 主軸在運轉的時候嚴禁用手去觸摸 主軸,機台在加工時必須關閉防護門,以免工作松動飛出傷人和切削 油濺到地板,主軸在加工過程中嚴禁提速。 17、 刀具磨損後要立即磨刀,磨刀要帶防護眼鏡,以免發生工傷等。 1
8、 刀具必須舊換新,報廢的刀具、刀柄必須移交組長退回倉庫,非正 常斷刀,必須向組長報告。 19、 機台出現故障不能加工,必須即使上報組長,以便即時維修。
20、 日報表填寫必須認真,真實,明白。
21、 刀具損耗必須有記錄,妥善保管,取用快捷

3. 程序員被納入「新生代農民工」,碼農為何會被官方定義為「新生代農民工」

01 什麼是新生代農民工

「碼農」就是我們常說的程序員,因為靠寫代碼衛生,而且收入低,要長時間面對電腦,所以就自嘲為「碼農」。

我們先來看看「新生代農民工」的定義:

出生於20世紀80年代以後,年齡在16歲以上,在異地以非農就業為主的農業戶籍人口。

具體點來說,他們是「集中於勞動密集型行業,從事信息傳輸、軟體和信息技術服務業的打工人」。

所以如果單從這個描述來說的話,從事軟體和信息服務的程序員們很顯然就是「新生代農民工」中的一員。

但如果你看仔細點的話,你就會發現要滿足「新生代農民工」,條件有兩個:

1.在外地從事非農業行業;

2.農村戶口。

因此嚴格來說,標準的「碼農」前提要有「農村戶籍」,「城鎮戶口的碼農」是不屬於「新生代農民工」范疇的。

就光看這幾點,哪個跟農民工兄弟不是一樣的?

4. 程序員的壓力有多大

作為一名程序員,壓力來自於生活中各個不同的方面,寫代碼完成工作只是一部分。

第一就是來自家庭的壓力,其實和大多數人一樣,程序員的第一壓力來自於家庭。單身的被催婚,結婚的又為生活中的瑣事各種鬧心。所以一個和諧穩定的家庭可以減少程序員絕大部分壓力。

第二是來自學習的壓力,為什麼是學習呢?因為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歲的程序員,沒有走上管理崗位的,基本都考慮轉行了。

歡迎留言討論

都這樣了,還有啥說的~

這個需要區分在什麼單位或者是部門做開發以及開發軟體的性質。工作中的壓力來自幾個方面,包括如下等一些方面:

首先,工作進度壓力是指要在規定的時間完成開發任務,上級確定的開發完成截止時間前必須完成任務,而開發工作具有很大的不確定性,每個系統的開發都和之前的開發工作有不同,雖然所用的技術是類似的,但總能碰上不一樣的或者需要公關的技術。所以為了完成任務有時只能加班加點,還要預留足夠的時間做測試等,每個人都不想拖項目的後腿,不能因為自己一個人延期而影響整個項目的進展,所以平時最大的工作壓力來自進度壓力。

第二點,軟體開發的技術更新非常快,參與開發時會碰到很多你不熟悉的技術,包括新的技術選型所採用的新技術,也包括開發軟體所涉及的業務領域的新技術,比如軟體涉及到系統安全,就需要學習加密解密,邊學習邊開發導致難度增加,還要保證進度,所以壓力就大。

另外,如果所從事的是核心系統的開發,比如電信的線上計費系統,互聯網的線上實時運行的系統,開發這類系統的壓力也會比較大,因為如果這類系統運行出錯,則影響會比較大,會導致使用者的經濟損失和惡劣的影響,所以從事這類開發的都需要小心翼翼,盡可能的避免出錯,需要嚴格的審核和測試,這種對工作後果的擔憂會對開發人員產生很大的壓力。

總體來說,程序員的壓力還是很大的,但也有一些單位或者項目對開發進度要求不緊或者對成熟的程序員來說沒有什麼難度,又或者說是不太重要的系統,參與這樣的項目會則會相對輕松,但熟悉的工作對開發者的技能提升有限,就看個人如何取捨了。

是很大,這個行業能在這么短時間發展的這么好,應該說是目前發展最好的行業之一吧。發展這么快,技術不斷更新升級,必須保持學習的狀態,否則很難做好這行,將面臨的就是淘汰。

這個行業薪資相對高,從業人員素質比較高,大都不安於現狀,每個人都不甘心落後,再加上大多公司都採用末尾淘汰制,不努力的淘汰掉。每年都有大量優秀的畢業生加入,競爭壓力可想而知。

錢不是那麼好掙錢的,通過薪資就可以看到一個行業的壓力。

5. 如何學習電腦編程

最近很多人都在問如何學習編程。我覺得學習編程最重要的是入門,如果你入門的時候有一個好的方法和思路,打下比較扎實的基礎,對今後的編程工作是很有益處的。即使在學習新的編程語言也無所謂,因為它們有很多相通之處,可以相互借鑒。

我認為可以先學習一下pascal,這個語言比較嚴謹,適合初學者。pascal它被稱為教學語言,結構嚴謹,不像C語言那麼靈活,易於理解和學習。 然後可以繼續學習C語言,這個語言比較靈活。有了pascal的基礎,在進行C語言編程就不會因為C語言的靈活而有問題 。後面的就可以學習VC什麼的了。
C語言的書推薦譚浩強的,比較好。
我當時學習pascal和C語言的時候是將書後的習題都做了一遍,感覺效果很好。
當然了,學習什麼語言也要看你具體准備從事什麼行業。例如你要進行嵌入式開發,C就是很好的選擇,如果是Windows開發,那麼VC就不錯。還有資料庫方面的開發、網路開發等等。不同的語言適合不同的方面。要看自己的選擇的,呵呵 。

還有很多人說自己的基礎很差,甚至中學畢業什麼的。其實這個並不重要,比較說英語,在計算機語言里所用到的單詞量很少,而且都是常用詞,經常使用就記住了。當然,如果你要看原文資料或者幫助的話,專業詞彙比較多,不過在金山詞霸的幫助下,經常看,也是沒什麼大的問題的。至於數學什麼的,其實數學只是培養你一個邏輯思維能力,在初學編程的時候影響不是很大。況且,作為一個基礎編程人員來說,上面還有系統分析師、項目經理,他們會把需求分析、概要設計和詳細設計做好的,你只要按照文檔寫代碼就OK了。不過,要上更上一步的話,其他基礎知識就非常重要了,畢竟你不能寫一輩子代碼。

在你學習好C語言以後,個人建議好好學習一下數據結構和軟體工程。這兩門對你的水平提高都是很有幫助的。特別是軟體工程,它能夠使你按照科學的工程方法進行軟體開發,對今後的發展很有好處。
只是一家之言,有不到之處,還望見諒!

參考資料:

6. 一個初級程序員應該具備哪些素質

作一個真正合格的程序員,應該具有的素質。

1:團隊精神和協作能力

團隊精神和寫作能力是作為一個程序員應具備的最基本的素質。軟體工程已經提了將近三十年了,當今的軟體開發已經不是編程了,而是工程。獨行俠可以寫一些程序也能賺錢發財,但是進入研發團隊,從事商業化和產品化的開發任務,就必須具備這種素質。可以毫不誇張的說這種素質是一個程序員乃至一個團隊的安身立命之本。

2:文檔習慣

文檔是一個軟體系統的生命力。一個公司的產品再好、技術含量再高,如果沒有缺乏文檔,知識就沒有繼承,公司還是一個來料加工的軟體作坊。作為代碼程序員,必須將30%的工作時間寫用於技術文檔。沒有文檔的程序員勢必會被淘汰。

3:規范化的代碼編寫習慣

知名軟體公司的代碼的變數命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。 一些所謂的高手甚至叫囂高手寫的代碼一般人看不懂,我只能說他不是一名合格的程序員。

4:需求理解能力

程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求,要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。

5:模塊化思維能力

作為一個優秀的程序員,他的思想不能在局限當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。這樣做可以使代碼能重復利用,減少重復的勞動,也能是系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。

6:測試習慣

測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。

7:學習和總結的能力

程序員是很容易被淘汰的職業,所以要善於學習總結。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術人員無論學了多少語言,代碼寫起來多熟練,我們只能說他是一名熟練的代碼民工,他永遠都不會有質的提高。一個善於學習的程序員會經常總結自己的技術水平,對自己的技術層面要有良好的定位,這樣才能有目的地提高自己。這樣才能逐步提高,從程序員升級為軟體設計師、系統分析員、項目經理。

作為高級程序員,乃至於設計師而言,除了應該具備上述全部素質之外,還需要具備以下素質:

1、 需求分析能力

2、 整體框架能力

3、 流程處理能力

4、 模塊分解能力

5、 整體項目評估能力

6、 團隊組織管理能力

7. 為什麼中國的程序員總被稱為「碼農」

對於一些貶義的說法,個人認為作為一個程序員應該保持「誠意開張聖聽,不要妄自菲薄」的態度。

程序員一直以來看哪個是別名最多的一個職業,我姑且不分褒貶的稱之為你才吧!就像小學的時候一樣,相互之間往往喜歡區別名叫昵稱之類的,而又往往外號叫的最響小名最多的就是最受關注的哪一個,程序員在當今網路上的處境大抵如此。

碼農這個詞米偶遇仔細研究過來源。參考其他人的回答知中文中的碼農大體相當於英文中的code monkey。程序員碼農說法的由來大概來自於程序員圈內自嘲的說法。這里程序員對碼農的更多理解可能更接近coder這個詞,就是說我是一個寫代碼的。可能會有人以此來明志,表面自己很熱愛寫代碼,或我很精通以此,再或者言外之意我只是一個寫代碼的,別來找我給你裝系統修電腦什麼的,我最煩這個了(ノ`Д)ノ。

程序員這個行業知名度雖然高,但是正在了解程序員是做什麼的人並不多,大多數人直觀臆想出來的感受可能是一個座在電腦前,後背前傾,頸脖前伸,面容憔悴,形容枯槁,兩眼無關緊盯著電腦,兩只雞爪子似的雙手快速的在鍵盤上敲擊,屏幕快速出現一行行一塊塊英文字元的形象。這其實只是程序員的表面,完全米有展現出大多數程序員的內在。程序員真正的工作是解決問題,代碼只是解決問題的途徑,或曰實現方案。

程序員究竟解決什麼問題呢,又是從哪裡來的問題呢?首先要提到產品經理,產品經理給成員一個需求,程序員要思考如何實現這個需求。比如產品說這個登錄過程應該這樣這樣,用戶是否有通過手機或者郵箱驗證。程序員要做的就是想方案來實現這個需求。在比如產品說我們這個網站要同時支持多少人訪問不會出現卡,或者頁面刷不出的情況。程序員接到這個需要就要思考如何設計這樣一個高性能,高並發的服務端,最終通過代碼來實現設計。好,現在代碼寫完啦,產品發布上線了。什麼購物網站啊,大家可以隨意挑選自己喜歡的產品,什麼交友網站啊,大家可以寫好自己的介紹發布出去讓別人看到。但是還米有完,可能這個網站還要加點新功能,或者程序員自己也想,這個代碼有沒有什麼地方實現的不好,換一個方法會不會更優雅。然後又是思考解決<=實現方案<=線下測試。自己測試發現可以,這個方法很好,發布到線上,就是用戶最終使用的形態。不斷提出新需求,完善新的功能我們稱之為迭代。改善現有設計我們稱之為重構。這些都是非常有藝術感的事!

事物發展就會演變出各種變體,有一些公司會把問題和解決問題的方法都做好,然後再交給其他公司或者個人去做實現(寫代碼)。由於在這里解決問題的過程被剝離出來(最有技術和藝術感的部分)剩下的就是實現,就是敲代碼。好比建一棟房子,房子的設計和施工方案都已經做好了,就剩下施工了,這時候只要找個施工隊就可以了。在這些做設計的公司,他們是有能力來實現這些方案(敲代碼)。但由於歐美日等國家人力成本高,將這些技術含量低敲代碼的苦活兒剝離出來交給相對落後地區的人去實現可以幫助他們節省人力成本。以上這個現象就稱之為軟體外包。另一方面,在美國主導的全球生產分工下,美帝也希望將中印這樣的發展中國家固定在低端製造,勞動秘籍型的行業。

既然程序員是解決問題的,那麼是否所有電腦相關的問題程序員都能解決呢?縱向來看,計算機系統可以簡單的分為三層,應用程序<=操作系統<=計算機硬體。計算機硬體的設計研發基本和程序員無關。硬體往上就是程序員的職責范圍了。這是可以簡分為應用軟體程序員和系統軟體程序員。系統程序員的責任是實現高效的硬體管理,應用程序員則是為用戶提供高效的服務。下面說說在這兩方面和國外的差距,手機端應用軟體(有服務端的包括服務端)差別不大,大家從自己手機中軟體就能感覺到。PC端有差距,比如人家有PS這樣的圖片處理軟體,而我們則沒有。在這方面人家發展了幾十年我們年數不夠,有差距還是可以理解的。但我輩當發奮努力,以追他人之先。另外應用程序web化應該是趨勢,這方面我們還是有優勢的,對於普通用戶來說最直觀的體驗就是不用裝很多軟體了,只要有一個瀏覽器就行。在操作系統層面,PC如Windows,伺服器如linux。Windows微軟獨家擁有的閉源系統,不說。Linux內核開發來講國內正在迎頭追趕,內核的郵件中中文拼音的人名越來越常見,越來越多的國人加入到Linux內核的開發中。

8. 程序員需要具備什麼樣的素質

團隊精神和協作能力 把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,也是最重要的安身立命之本。把高水平程序員說成獨行俠的都是在囈語,任何個人的力量都是有限的,即便如linus這樣的天才,也需要通過組成強大的團隊來創造奇跡,那些遍布全球的為linux寫核心的高手們,沒有協作精神是不可想像的。獨行俠可以作一些賺錢的小軟體發點小財,但是一旦進入一些大系統的研發團隊,進入商業化和產品化的開發任務,缺乏這種素質的人就完全不合格了。

9. 程序員未來前景如何大齡程序員出路在哪裡

其實程序員什麼35歲就不行了的說法是個偽命題,是人為的強加的致幻劑。雖然軟體行業有其特殊性,但是也有其普遍性。其他行業35歲那才真正進入事業快車道,軟體行業我認為也差不多。

軟體行業不光是寫代碼,積累到35歲,如果還能寫代碼那一定是經驗豐富,代碼水平高,即便繼續寫代碼那也比一般的人好,當然排除那些不思進取不學習的人。

最差帶幾個人做個項目經理做項目就比年輕仔強很多。不但可以利用自己的經驗還可以寫關鍵代碼。年齡其實不是問題。

那問題是什麼給大家的印象是35歲程序員就沒得混了?其實現在很多程序員其實是碼農,大家說IT行業是一個知識更新非常快的行業,其實也不盡然 ,更新的是表面,其本質一直沒變,一個碼農一般都學的是皮毛,就懂一點什麼框架 的編程,缺乏學習能力,不懂軟體最基本的原理,學校學的那點一旦過時就什麼也不剩了,那面臨的就是淘汰。

如果是一個了解軟體本質,學習能力強的人,語言只是形式,對於一個項目,覺得什麼語言合適就用什麼語言,你懂一門語言,另外一門語言要不了一個星期就可以編程了,關鍵還是基礎,是原理,是思想和經驗。

所以程序員們,不要被別人的致幻劑迷糊了,只要你肯學能進步,喜歡軟體開發,年齡一定不是問題,只能越來越吃香。

本人作為程序員,曾經也為這個問題困擾著。程序員在35歲就會面臨各種問題,身邊也有這樣的例子,上一家公司有一個同事,40歲了還在寫代碼,他的工資不高。後來項目預算超標了,他也就成為了被裁員的對象。那是我第一次感覺到了年齡越大而帶來的危機。

但是話有說回來了,40歲了還在寫代碼。只能說明了他對自己沒有明確的職業規劃或者個人的不思進取造成的。IT行業有他的特殊性,第一個特殊性就是知識更新很快,第二個就是很注重職業規劃。

所以要想不被淘汰,要麼積極學習沒擁有很厲害的技術,成為一個領域的技術專家。要麼走管理路線,在平時上班的時候就要注重這方面的培養,首先要在工作中鍛煉,還有考取一些專業的證書來給自己增加競爭力。

當然也有的選擇自己創業,這是最好的結果。所以,在當下最重要的是怎麼給自己規劃。多考慮這方面的問題,要是想通了也就沒有那麼的糾結了。

個人觀點,不喜勿噴!也希望大家能夠說明自己的觀點,大家一起學習,一起進步,營造良好的學習氣氛!

大家都知道程序員也分為做什麼開發的程序員,比如市面上最流行的Java、C語言、C++、python、PHP等等開發程序員,未來的發展是不一樣的。

其實,我覺得未來發展前景的話,要找天花板較高的語言來作為基礎學習,慢慢的把自己的架構思維給建立起來。

等你擁有自己的架構思維之後,其實語言就是一種工具而已,所以一定要清晰規劃自己該學習什麼語言,該怎麼樣來學,我在這里推薦Java語言,因為Java語言的學習就能夠幫你初期建立這種思維方式,還有Java語言的獨特性,證明了它的優越性!也證明了它的天花板比其它語言要高,當然上手難度也比較高,自己要有一個清晰的認識,

關於大齡程序員出路,我這里得多說一嘴!

一提到大齡程序員,大家第一時間就會想到,35歲中年危機。

不可否定,35歲這個詞確實很扎心,也是許多程序員的恐懼所在,但是,請大家不要驚慌,要給自己打一針強心劑。

30而立相信大家都聽說過吧?但是也不然,也看個人的機遇和努力!程序員也是一樣!

這里就說到了職業規劃的重要性,從22歲畢業實習再到30歲這八年時間,處於一段技術磨合和提升期,也就是技術的沉澱,沉澱到了一定的時間之後,就要考慮管理經驗的提升,隨著年齡的增長,身體上、思想上、精神上都會出現惰性,當然也跟自己的運動有關系,要加強自己對身體的鍛煉,每年做體檢!

30歲之後,有的人考慮單飛,自己找合夥人創業,自己開公司求發展;有的人繼續按部就班,沉浸在996的世界之中;有的人不斷地提升自己的技術能力和架構思維,在大廠中繼續深造,讓自己變得更有價值!

不知道你們是屬於哪種,但是,最重要的還是個人的思維!希望自己能夠好好考慮一下,從自己下手,徹底的改變自己,不然淘汰是遲早的事兒。

三點:改變自己的思維;加強自己鍛煉;做好職業規劃!

以上個人觀點,不喜勿噴!歡迎大家一起討論。

我是個IT新人,程序員的未來前景毫無疑問是不可小看的。世界逐步進入5G時代,對於程序員來說即是挑戰也是機遇,5G時代到來必將會帶了新的技術升級,也必將淘汰舊的技術,所以說對於程序員即是挑戰也是機遇,只有不斷地學習你才能把我好這一機遇,雷軍說:「站在風口上,豬都能飛」。但首先你得是有準備的豬 。

對於大齡程序員,我是這樣子想的,等我年齡大了,不可能一直處在代碼一線,要麼轉管理崗位,如:技術主管,產品經理,項目經理,有能力的做個技術總監。

要麼轉行,我朋友常常給我開玩笑說,等年齡大了,我們去送外賣吧!自由自在,月入過萬

要麼拿出積累多年資金、人脈開始創業

在民企,大齡程序員確實不好混了。華為裁掉35歲以上的普通員工,就說明這些大公司只需要年輕人,加班苦幹。年紀大了,拖家帶口的,加不動班了,就勸退。這種情況說明這種工作都是些按部就班的,沒什麼創造性的工作,不需要很多經驗。

外企的情況會好一些,50多歲的頭發花白的程序員依然在工作,他們看重的是工作的積累,經驗。公司也把這些人當做公司的財富。國內因為抄襲太嚴重,不太注重知識產權,導致程序員的地位並不高。

大齡程序員要在工作之餘,發展一些副業,多學些技能,考一些證書,做一些理財投資等等。保證自己萬一被裁員,不至於沒有收入陷入焦慮。

這問題問的,大齡農民工出路在哪兒?

所以了,人口總量下滑,人力資源不足,大齡程序員總是有人要的,只不過不同水平的去向、待遇不同罷了,這跟年齡、行業沒關系,哪個年齡哪個行業都一樣有分化。

首先,程序員這個職業不再是個香餑餑,這一點各位程序員必須要擺正心態!隨著人工智慧在編程方面的運用以及程序員數量的大規模上漲,未來大多數程序員的待遇會跟 社會 平均工資看齊,短時間依然會有優勢,但隨著時間推移,這種優勢必然轉為劣勢。為何?供需決定價格,以前供不應求當然價格高,未來供大於求甚至每個人都會編程,自然沒啥議價空間。而那些沒人願意乾的臟活累活自然成為高收入崗位。

其次,許多程序員會成為領導或者老闆,畢竟 社會 需求在,有大需求也有小需求,對用戶需求敏感的人自然能夠抓住機會自己創業。

再有,某些高收入程序員會跨界進入別的行業,畢竟有了資本有了 社會 經驗,很多事情都是相通的。

最後,大多數沖不上去也沒錢或沒想跨界的,繼續待在公司里搬磚,雖然加班比不上年輕人,但畢竟經驗豐富,碼代碼的速度和質量是有的,只不過工資持平獎金下降不忍也得忍啊,畢竟為了生活,別的很多職業人家的工資本就是好多年沒變化,程序員也不會例外,之前例外是因為供不應求。

有人說程序員是腦力活,跟農民工不能比,六十歲農民工還能幹活,六十歲程序員腦子怎麼跟得上?作為過來人,筆者可以向各位保證:越大的團隊,里邊需要動腦子的人越少,大多數大廠的程序員混到最後都是乾的力氣活,根本不需要腦子,這就是熟練度。至於這是好是壞,仁者見仁智者見智。

優秀的程序員不論年齡大小,前景都非常好!巨大的市場需求決定了優秀程序員的緊缺性,在數字化時代,已經沒有哪個行業會離開軟體的支撐,這個趨勢在可預見的未來不會改變。

一般來說,人會隨著年齡的增長,工作的時候精力會跟不上,但從另一個角度講,年齡大了,經驗就會更豐富,尤其對於像程序員這種知識型工種,只要他肯學習,跟上技術的進步和變化,他就不會落後,就會繼續有用武之地。

軟體技術的變化也是非常大的,新的框架、新的開發環境、新的編程語言不斷出現,程序員也要注重自身的學習和修養,為斷適應互聯網+時代的技術發展,只有這樣,程序員才會永葆青春。

當然如果已經功成名就,賬務自由,選擇別的職業也挺好,人各有志,看個人發展和興趣愛好!

30+程序員一枚,剛好可以回答這個問題。

先簡要說下我對這兩個問題的答案:

下面,我們就來一一解釋。

程序員是有前(錢)途的職業


首先是 金錢 方面。在所有行業裡面,it行業是比較有前(錢)途的職業,我想這句話可能極少有人反駁。當程序員相對來說能掙錢,即使這些錢是需要加班加點掙來的,但是總歸來說提供了普通人一個掙相對高薪的途徑。即使在北上廣深,當程序員也相對其它行業更容易買車買房,站穩腳跟。另外,每年無數的大專本科生上培訓班,當程序員也很能說明情況。


其次是 行業發展 方面。程序員從事的是it行業的工作,是一門用技術改變生活的行業,it技術已經應用於方方面面,這也無形中給程序員提供了更廣闊的用武之地。


大齡程序員的出路


關於大齡程序員的問題,其實我覺得更應該說是 一個普通人中年危機的問題 。因為年齡大了,薪資相對新人更高,加班能力更差是大部分行業都會遇到的問題,只是這個問題在it行業放的更大了。網路當中很多所謂的35歲問題,一部分是來自於程序員的自嘲,一部分情況其實是因為部分大齡程序員拿慣了高工資,沒有做人生規劃,技術沒有提升,然後又遇到了中年危機後無所適從罷了。可能有人會說老師,醫生等行業會隨著年齡增加而成長什麼的,這個確實有其相關性。但是程序員畢業就拿高薪,其它行業可能要積累很多年(這里說的是平均,個例不探討)。


至於出路,我認為出路有很多:

當然,我這里說的大齡程序員指的是正常的程序員,不是那種天天混混日子,突然一裁員發現自己啥也不會的人,我覺得這種人基本上是很難有出路的。


關注令狐一沖,關注區塊鏈和IT技術!

計算機是未來人類的一個發展方向,是生產力提高的方向,而且是長期發展的,所以程序員不會過剩,也不會淘汰。至少在50年內,還看不到能夠代替計算機發展的新工具,可以看到的是,計算機本身的發展。而程序員在出路方向上有很多選擇:

1,軟體方向:軟體是計算機與人類交換的媒介,很多大型軟體公司已經存在幾十年了,還將繼續發展下去。

2,硬體方向:計算機本身的發展,需要 科技 進步,在新材料研究,製造工藝提升,架構設計運用方面,都需要不斷提升。

3,物聯網方向:這個不用多說,物聯網是在在互聯網基礎上,通過射頻識別(RFID)、 紅外感應器、全球定位系統、激光掃描器等信息感測設備等方面,給我們帶來便利,在我們生活的方方面面已經離不開了。

4,人工智慧:簡單舉個例子,小愛同學能和你進行簡單交流,阿爾法狗,打敗了全世界所有頂尖圍棋高手。

5,數字媒體技術:數字媒體技術是一個結合了數字技術、媒體與藝術設計的多學科交叉專業。它注重創意,利用媒體技術,在 游戲 、移動互聯網、互動 娛樂 、影視動畫等領域展開研究和創作,重在培養能夠熟練地應用現代計算機技術,從事數字媒體製作、圖形圖像處理、動畫設計等。

6,以上是主要方向,還有很多,這里用四

個字概括:等等,等等。

10. 做編程需要什麼素質

序員,或者說就是可以真正合格完成一些
代碼工作的程序員,應該具有的素質。
1:團隊精神和協作能力
把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,
也是最重要的安身立命之本。把高水平程序員說成獨行俠的都是在囈語,任何個人的力
量都是有限的,即便如linus這樣的天才,也需要通過
組成強大的團隊來創造奇跡,那些遍布全球的為linux寫核心的高手們,沒有協作精神是
不可想像的。獨行俠可以作一些賺錢的小軟體發點小財,但是一旦進入一些大系統的研
發團隊,進入商業化和產品化的開發任務,缺乏
這種素質的人就完全不合格了。
2:文檔習慣
說高水平程序員從來不寫文檔的肯定是乳臭未乾的毛孩子,良好的文檔是正規研發
流程中非常重要的環節,作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而
作為高級程序員和系統分析員,這個比例還要高很多。缺
乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇
到極大的麻煩。
3:規范化,標准化的代碼編寫習慣
作為一些外國知名軟體公司的規矩,代碼的變數命名,代碼內注釋格式,甚至嵌套
中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼
的移植和糾錯,也有助於不同技術人員之間的協作。fan
s叫囂高水平程序員寫的代碼旁人從來看不懂,這種叫囂只能證明他們自己壓根不配自稱
程序員。代碼具有良好的可讀性,是程序員基本的素質需求。再看看整個linux的搭建,
沒有規范化和標准化的代碼習慣,全球的研發
協作是絕對不可想像的。
4:需求理解能力
程序員需要理解一個模塊的需求,很多小朋友寫程序往往只關注一個功能需求,他
們把性能指標全部歸結到硬體,操作系統和開發環境上,而忽視了本身代碼的性能考慮
,有人曾經放言說寫一個廣 告交換程序很簡單,這種人從
來不知道在百萬甚至千萬數量級的訪問情況下的性能指標是如何實現的,對於這樣的程
序員,你給他深藍那套系統,他也做不出太極鏈的並訪能力。性能需求指標中,穩定性
,並訪支撐能力以及安全性都很重要,作為程序員需要
評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險和惡意
攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經驗才
有可能有心得。
5:復用性,模塊化思維能力
經常可以聽到一些程序員有這樣的抱怨,寫了幾年程序,變成了熟練工,每天都是
重復寫一些沒有任何新意的代碼,這其實是中國軟體人才最大浪費的地方,一些重復性
工作變成了熟練程序員的主要工作,而這些,其實是完全可
以避免的。
復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要
多想一些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系
統存在,是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣
就能極大避免重復性的開發工作,如果一個軟體研發單位和工作組能夠在每一次研發過
程中都考慮到這些問題,那麼程序員就不會在重復性的工作中耽誤太多時間,就會有更
多時間和精力投入到創新的代碼工作中去。
一些好的程序模塊代碼,即便是70年代寫成的,拿到現在放到一些系統裡面作為功
能模塊都能適合的很好,而現在我看到的是,很多小公司軟體一升級或改進就動輒全部
代碼重寫,大部分重復性工作無謂的浪費了時間和精力。
6:測試習慣
作為一些商業化正規化的開發而言,專職的測試工程師是不可少的,但是並不是說
有了專職的測試工程師程序員就可以不進行自測;軟體研發作為一項工程而言,一個很
重要的特點就是問題發現的越早,解決的代價就越低,程序
員在每段代碼,每個子模塊完成後進行認真的測試,就可以盡量將一些潛在的問題最早
的發現和解決,這樣對整體系統建設的效率和可靠性就有了最大的保證。
測試工作實際上需要考慮兩方面,一方面是正常調用的測試,也就是看程序是否能
在正常調用下完成基本功能,這是最基本的測試職責,可惜在很多公司這成了唯一的測
試任務,實際上還差的遠那;第二方面就是異常調用的測試,比如高壓力負荷下的穩定
性測試,用戶潛在的異常輸入情況下的測試,整體系統局部故障情況下該模塊受影響狀
況的測試,頻發的異常請求阻塞資源時的模塊穩定測試等等。當然並不是程序員要對自
己的每段代碼都需要進行這種完整測試,但是程序員必須清醒認識自己的代碼任務在整
體項目中的地位和各種性能需求,有針對性的進行相關測試並盡早發現和解決問題,當
然這需要上面提到需求理解能力。
7:學習和總結的能力
程序員是人才很容易被淘汰,很容易落伍的職業,因為一種技術可能僅僅在三兩年
內具有領先性,程序員如果想安身立命,就必須不斷跟進新的技術,學習新的技能。
善於學習,對於任何職業而言,都是前進所必需的動力,對於程序員,這種要求就
更加高了。但是學習也要找對目標,一些小coding有些codingTO就是這樣的coding上只
是一些Cfans們,他們也津津樂道於他們的學習能力,一會學會了asp,一會兒學會了ph
p,一會兒學會了jsp,他們把這個作為炫耀的資本,盲目的追逐一些膚淺的,表面的東
西和名詞,做網路程序不懂通訊傳輸協議,做應用程序不懂中斷向量處理,這樣的技術
人員,不管掌握了多少所謂的新語言,永遠不會有質的提高。
善於總結,也是學習能力的一種體現,每次完 成一個研發任務,完成一段代碼,都
應當有目的的跟蹤該程序的應用狀況和用戶反饋,隨時總結,找到自己的不足,這樣逐
步提高,一個程序員才可能成長起來。
一個不具備成長性的程序員,即便眼前看是個高手,建議也不要選用,因為他落伍
的時候馬上就到了。具備以上全部素質的人,應當說是夠格的程序員了,請注意以上的
各種素質都不是由IQ決定的,也不是大學某些課本里可以學習到的,需要的僅僅是程序
員對自己工作的認識, 是一種意識上的問題。
那麼作為高級程序員,以至於系統分析員,也就是對於一個程序項目的設計者而言
,除了應該具備上述全部素質之外,還需要具備以下素質:
第一,需求分析能力
對於程序員而言,理解需求就可以完成合格的代碼,但是對於研發項目的組織和管
理者,他們不但要理解客戶需求,更多時候還要自行制定一些需求,為什麼這么說呢?

一般而言,進行研發任務,也許是客戶提出需求,也許是市場和營銷部門提出的需
求,這時候對於研發部門,他們看到的不是一個完整的需求,通常而言,該需求僅僅是
一些功能上的要求,或者更正規些,可能獲得一個完整的用戶視圖;但是這都不夠,因
為客戶由於非技術因素多一些,他們可能很難提出完整和清晰,或者說專業性的性能需
求,但是對於項目組織者和規劃者,他必須能夠清醒認識到這些需求的存在並在完成 需
求分析報告的時候適當的提出,同時要完整和清晰的體現在設計說明書裡面,以便於程
序員編碼時不會失去這些准則。
程序設計者必須正確理解用戶需求所處的環境,並針對性做出需求的分析,舉例而
言,同樣一個軟體通過ASP租用方式發布和通過License方式發布,性能需求可能就是有
區別的,前者強調的是更好的支撐能力和穩定性,而後者則可能更強調在各種平台下的
普適性和安裝使用的簡捷性。
第二,項目設計方法和流程處理能力
程序設計者必須能夠掌握不少於兩到三種的項目設計方法(比如自頂至下的設計方
法,比如快速原型法等等),並能夠根據項目需求和資源搭配來選擇合適的設計方法進
行項 目的整體設計。設計方法上選擇不當,就會耽誤研發周期,浪費研發資源,甚至影
響研發效果。
一個程序設計者還需要把很多功夫用在流程圖的設計和處理上,他需要做數據流圖
以確立數據詞典;他需要加工邏輯流圖以形成整體的系統處理流程。一個流程有問題的
系統,就算代碼多漂亮,每個模塊多精緻,也不會成為一個好的系統。當然,做好流程
分析並選擇好項目設計方法,都需要在需求分析能力上具有足夠的把握。
第三,復用設計和模塊化分解能力
這個似乎又是老調重談,前面基本素質上不是已經說明了這個問題嗎?作為一個從
事模塊任務的程序員,他需要對他所面對的特定功能模塊的 復用性進行考慮,而作為一
個系統分析人員,他要面對的問題復雜的多,需要對整體系統按照一種模塊化的分析能
力分解為很多可復用的功能模塊和函數,並針對每一模塊形成一個獨立的設計需求。舉
個例子,好比是汽車生產,最早每輛汽車都是獨立安裝的,每個部件都是量身定做的,
但是後來不一樣了,機器化大生產了,一個汽車廠開始通過流水線來生產汽車,獨立部
件開始具有一定的復用性,在後來標准化成為大趨勢,不同型號,品牌甚至不同廠商的
汽車部件也可以進行方便的換裝和升級,這時候,汽車生產的效率達到最大化。
軟體工程也是同樣的道理,一個成熟的軟體行業,在一些相關項目和系統中,不同
的部件是可以隨意換裝的,比如微軟的許多桌面軟體,在很多操作模塊(如打開文件,
保存文件等等)都是復用的同一套功能模塊,而這些介面又
通過一些類庫提供給了桌面應用程序開發者方便掛接,這就是復用化的模塊設計明顯的
一個佐證。
將一個大型的,錯綜復雜的應用系統分解成一些相對獨立的,具有高度復用性的,
並能僅僅依靠幾個參數完成數據聯系的模塊組合,是作為高級程序員和系統分析員一項
最重要的工作,合適的項目設計方法,清晰的流程圖,是實現這一目標的重要保證。
第四,整體項目評估能力
作為系統設計人員,必須能夠從全局出發,對項目又整體的清醒認識,比如公司的
資源配置是否合理和到位,比如工程進度安排是否能最大化體現效率又不至於無法按期
完成。評估項 目整體和各個模塊的工作量,評估項目所需的資源,評估項目可能遇到的
困難,都需要大量的經驗積累,換言之,這是一種不斷總結的累計才能達到的境界。在
西方一些軟體系統設計的帶頭人都是很年長的,比如4,50歲,甚至更老,他們在編碼方
面已經遠遠不如年輕人那樣活絡,但是就項目評估而言,他們幾十年的經驗積累就是最
重要和寶貴的財富。中國缺這么一代程序員,主要還不是缺那種年紀的程序員,而是那
種年紀的程序員基本上都是研究單位作出來的,都不是從專業的產品化軟體研發作出來
的,他們沒有能積累那種產品化研發的經驗,這也是沒有辦法的事情。
第五,團隊組織管理能力
完成一個項目工程,需要團隊的齊心協力,作為項目設計者或研發的主管人,就應
當有能力最大化發揮團隊的整體力量,技術管理由於其專業性質,不大同於一般的人事
管理,因為這裡面設計了一些技術性的指標和因素。
首先是工作的量化,沒有量化就很難做到合適的績效考核,而程序量化又不是簡單
的代碼行數可以計算的,因此要求技術管理人員需要能真正評估一個模塊的復雜性和工
作量。
其次是對團隊協作模式的調整,一般而言,程序開發的協作通常分為小組進行,小
組有主程序員方式的,也有民主方式的,根據程序員之間的能力水平差距,以及根據項
目研發的需求,選擇合適的組隊方式,並能將責權和成員的
工作任務緊密結合,這樣才能最大發揮組隊的效率。
一個代碼水平高的人,未必能成為一個合格的項目研發主管,這方面的能力欠缺往
往是容易被忽視的。
綜上可以看到,作為一個主管研發的負責人,一個項目設計者,所需要具備的素質
和能力並不是程序代碼編寫的能力,當然一般情況下,一個程序員通過不斷的總結提高
達到了這種素質的時候,他所具有的代碼編寫能力也已經相當不簡單了,但是請注意這
裡面的因果關系,一個高水平的項目設計者通常已經是代碼編寫相當優秀的人了,但是
並不是一個代碼相當優秀的程序員就可以勝任項目設計的工作,這裡面存在的也不是智
商和課本的問題,還是在於一個程序員在積累經驗,逐步提升的時候沒有意識到應當思
考哪方面的東西,沒有有意識的就項目的組織和復用設計進行揣摩,沒有經常性的文檔
習慣和總結習慣, 不改變這些,我們的合格的項目設計者還是非常欠缺。
另外,為防止有無聊的人和我較真,補充一點,本文針對目標是作商業化的軟體項
目和工程,那些科研機構的編程高手,比如演算法高手,比如圖象處理高手,他們的工作
是研究課題而非直接完成商業軟體(當然最終間接成為商業
產品,比如微軟研究院在作的研究課題),因此他們強調的素質可能是另外的東西,這
些人(專家),並不能說是程序員,不能用程序員的標准去衡量。
最後補充一點東西,一個軟體項目研發的設計流程是怎樣的呢?以通常標準的設計
方法為例,(不過筆者喜歡快速原型法)。
第一個步驟是市場調研,技術和市場要結合才能體現最大價值。
第二個步驟是需求分析,這個階段需要出三樣東西,用戶視圖,數據詞典和用戶操
作手冊。用戶視圖是該軟體用戶(包括終端用戶和管理用戶)所能看到的頁面樣式,這
裡麵包含了很多操作方面的流程和條件。數據詞典是指明數據邏輯關系並加以整理的東
東,完成了數據詞典,資料庫的設計就完成了一半多。用戶操作手冊是指明了操作流程
的說明書。請注意,用戶操作流程和用戶視圖是由需求決定的,因此應該在軟體設計之
前完成,完成這些,就為程序研發提供了約束和准繩,很遺憾太多公司都不是這樣做的
,因果顛倒,順序不分,開發工作和實際需求往往因此 產生隔閡脫節的現象。
需求分析,除了以上工作,筆者以為作為項目設計者應當完整的做出項目的性能需
求說明書,因為往往性能需求只有懂技術的人才可能理解,這就需要技術專家和需求方
(客戶或公司市場部門)能夠有真正的溝通和了解。
第三個步驟是概要設計,將系統功能模塊初步劃分,並給出合理的研發流程和資源
要求。作為快速原型設計方法,完成概要設計就可以進入編碼階段了,通常採用這種方
法是因為涉及的研發任務屬於新領域,技術主管人員一上來無法給出明確的詳細設計說
明書,但是並不是說詳細設計說明書不重要,事實上快速原型法在完成原型代碼後,根
據評測結果和經驗教訓的總結,還要重新進行詳細設計的步驟。
第四個步驟是詳細設計,這是考驗技術專家設計思維的重 要關卡,詳細設計說明書
應當把具體的模塊以最『干凈』的方式(黑箱結構)提供給編碼者,使得系統整體模塊化
達到最大;一份好的詳細設計說明書,可以使編碼的復雜性減低到最低,實際上,嚴格
的講詳細設計說明書應當把每個函數的每個參數的定義都精精細細的提供出來,從需求
分析到概要設計到完成詳細設計說明書,一個軟體項目就應當說完成了一半了。換言之
,一個大型軟體系統在完成了一半的時候,其實還沒有開始一行代碼工作。那些把作軟
件的程序員簡單理解為寫代碼的,就從根子上犯了錯誤了。
第五個步驟是編碼,在規范化的研發流程中,編碼工作在整個項目流程里最多不會
超過1/2,通常在1/3的時間,所謂磨刀不誤砍柴功,設計過程完成的好,編碼效率就會
極大提高,編碼時不同模塊之間的進度協調和協作是最需要小心的,也許一個小模塊的
問題就可能影響了整體進度,讓很多程序員因此被迫停下工作等待,這種問題在很多研
發過程中都出現過。編碼時的相互溝通和應急的解決手段都是相當重要的,對於程序員
而言,bug永遠存在,你必須永遠面對這個問題,大名鼎鼎的微軟,可曾有連續三個月不
發補丁的時候嗎?從來沒有!
第六個步驟是測試。
測試有很多種:按照測試執行方,可以分為內部測試和外部測試;按照測試范圍,
可以分為模塊測試和整體聯調;按照測試條 件,可以分為正常操作情況測試和異常情況
測試;按照測試的輸入范圍,可以分為全覆蓋測試和抽樣測試。以上都很好理解,不再
解釋。
總之,測試同樣是項目研發中一個相當重要的步驟,對於一個大型軟體,3個月到1
年的外部測試都是正常的,因為永遠都會又不可預料的問題存在。
完成測試後,完成驗收並完成最後的一些幫助文檔,整體項目才算告一段落,當然
日後少不了升級,修補等等工作,只要不是想通過一錘子買賣騙錢,就要不停的跟蹤軟
件的運營狀況並持續修補升級,知道這個軟體被徹底淘汰為
止。
寫這些步驟算不上賣弄什麼,因為實話講我手邊是一本《軟體工程》,在大學里這
是計算機專業的必修課程,但是我知道很多程序員似乎從來都只是熱衷於什麼《30天精
通VC》之類的,他們有些和我一樣游擊隊出身,沒有正規學過這個專業,還有一些則早
就在混夠學分後就把這些真正有用的東西還給了老師。
fans亂嚷嚷,混淆視聽,實際上真正的技術專家很少在網上亂發帖子的,如筆者這
樣不知天高地厚的,其實實在是算不上什麼高手,只不過看不慣這種對技術,對程序員
的誤解和胡說,只好挺身而出,做撥亂反正之言,也希望那些還fans們能認真想想,走
到正途上,畢竟那些聰明的頭腦還遠遠沒有發揮應有的價值。
從程序員到工程師
從程序員升級到工程師大多數象我這樣對軟體有濃厚興趣的人,畢業後義無反顧地
走進了企業,開始了程序員的生涯。那時,我們迷戀「大全」、「秘籍」一類的書籍,
心中只有代碼。當我看到一行行枯燥的代碼變成了能夠打電話的設備,變成了屏幕上漂
亮的表格,變成了動聽的音樂,成就感油然而生。我覺得自己也是一個出色的程序員了
。在用戶的機房中苦熬三晝夜解決軟體的bug,也成了一種可以誇耀的資歷。五年前的某
一天,我把曾經讓我興奮自豪的大量代碼和少得可憐的文檔移交之後,來到了華為。這
里有更多的年輕人,我如魚得水,可以充分發揮自己的想像力。依然是代碼,依然是匆
匆地在紙上記下稍縱即逝的靈感(我們把它稱作文檔),依然是無休止地和bug作斗爭。
當有一天,一個新來的同事拿著署著我的大名的文檔,小心翼翼地來問我時,我發現自
己好象有點不認識它了。我心裡有點沮喪,再看看代碼,發現文檔上記錄的一些靈感已
面目全非。我當時不知道那位新來的同事感受如何,但我從那時起,好象意識到什麼。
現在來看,那時的很多事情都是事倍功半。
我也見到了我的項目經理,一個個子較高,瘦瘦的年輕人,據說剛從美國回來,已
工作了五、六年。我聽了心裡很高興,這回要一招一式地學兩手。需求分析的時間是一
個月,項目經理和我們(實際上代表客戶 )討論了proposal中的內容,確定每一項都是
需要的。然後他把模塊大致劃分了一下,開始進入計劃中的學習階段。每個人在學習階
段要寫出功能描述的膠片,給其他人講解,不知不覺中,項目組的所有人對項目有了整
體的了解。
他還安排了一些培訓,如他們公司的軟體開發模型、項目組中各角色的定義,以後
及時的培訓不斷,只要項目組中有需求,他總是把qa或相關的人請來,培訓很專業。需
求分析完成後提交了一份四十多頁的文檔,當我看到這份英文文檔中我寫的部分整整齊
齊地列在其中時,我的感覺很復雜,有些喜悅,但更多的是苦澀,我以前怎麼就從來沒
有這樣做過需求分析呢。
在我寫文檔的過程中,qa給我們培訓過srs的寫作模板,後來我還是不放心,讓他們
一個有經驗的工程師寫了一段,我們再琢磨著照著寫。這份srs雖然是多個人合寫,但風
格一致,內容詳實。更為可貴的是,一直到最後,這份需求分析的內容都沒有改過,以
至於我們沒有機會走一下他們的需求更改流程。
需求分析是項目的第一階段,第二階段的開發時間要根據需求分析的結果來確定。
當對方的首席技術官(相當於我們業務部的總體組長)來和我們討論計劃時,他們已列
出了對每個 模塊的代碼行數的預測,可能存在的風險。根據他們公司的生產率--300
行/人月,他得出了項目第二階段需要多少周。
我們當時就提出了異議:1)公司對該項目需求很急;2)每月300行是否太少;3)
我們還有下載的源代碼參考。他解釋說,300行/人月是使得項目能達到他們質量標準的
經驗數據,考慮到有源代碼參考,生產率最多不能超過350行/人月。
當他問我們公司的生產率時,我腦袋裡轉了三個圈,沒敢多說,大概六、七百行吧
。他沉默了一會兒,然後堅定地說,我們這個計劃是建立在確保質量的基礎上的,我想
你們到印度來開發軟體,首先看中的應該是我們印度公司的
質量保證。我知道你們不缺乏軟體開發人員,你們為什麼不選擇下載的軟體呢。幾句話
說到了我的痛處,現在國內的弟兄們還在為使用下載軟體移植的產品四處奔波呢!
隨後的開發活動有條不紊,我們老老實實地跟著做。系統測試計劃、用例,概要設
計,集成測試計劃、用例,詳細設計,單元測試計劃、用例,編碼,單元測試,集成測
試,系統測試。一個完整的v模型開發過程,其中每個過程都有review。當我們對一些設
計的方法不太明白時,項目經理給我們發來了相關的資料,我不知道他當時是怎麼想的
,一些基本的分析、設計方法是十年,甚至二十年前的軟體工程書中就講到的,印度每
個計算機專業的人員都是必修這些內容的。而我們除了對一些具體協議的代碼很熟之外
,對這些常用的方法似乎一無所知。我感到一些羞愧,進城直奔書店,把他給我開列的
書找了出來,晚上躺在床上,仔細研讀,我彷彿突然又遇到了能給我指點迷津的良師益
友。現在印度所已形成了強烈的學習風氣。我回來後也推銷了700多本書,這些書教我們
如何用工程化的方法開發軟體,是成為一個軟體工程師必讀的資料。
我們的項目經理的計劃控制能力很強,當有什麼影響到項目計劃的事情發生時,如
人員辭職、實驗室搬家、某一模塊預測不準(該模塊是我們預測的),他總是採取必要
的措施,減少延期,調整計劃。剛開始,我們對他們每天上午11點,下午4點下樓喝咖啡
還有點意見,後來也跟著喝去了,原來,喝咖啡時的交流非常豐富,從項目管理到設計
方法,從技術發展到風土人情,無所不包,對我們互相之間的理解,對團隊的氣氛很有
幫助。我們項目的QA也在適當的時候出現在我們的面前,我們對她的工作只有一些感性
認識。她每次參加會議時,手裡時常拿著一個check list,項目經理准備相應的資料,
回答一些問題,她打著勾,或寫著項目經理的解釋。她給我們做培訓時也很耐心,體現
出很好的職業素養,我至今還在懷念她給我們的幫助。
我從事軟體開發已有九個年頭了,可我現在仍然不能說自己是個合格的軟體工程師
,更不用談什麼合格的管理者。我看到一份報道說,瑞士洛桑一權威機構把中國的科技
綜合競爭力從原來的第十三位調到二十多位,原因是他們調整了一些評估標准,其中有
一條是中國合格工程師的可獲得性非常低。想著弟兄們熬紅的雙眼,四處奔波升級的疲
憊身影,我有一個強烈的願望:快把我們自己升級成合格的工程師吧!

熱點內容
零食劇情腳本 發布:2024-04-16 20:59:56 瀏覽:81
我的世界粘土伺服器戰牆 發布:2024-04-16 20:55:31 瀏覽:682
sql字元串的長度 發布:2024-04-16 20:50:18 瀏覽:185
glc配置一般為什麼那麼貴 發布:2024-04-16 20:49:35 瀏覽:269
如何開啟共享電腦伺服器 發布:2024-04-16 20:21:06 瀏覽:660
銳捷升級伺服器地址 發布:2024-04-16 20:11:46 瀏覽:251
淘寶登錄密碼忘記如何改密碼 發布:2024-04-16 20:11:36 瀏覽:792
塞班和安卓哪個好一點 發布:2024-04-16 20:08:05 瀏覽:207
python安裝環境變數 發布:2024-04-16 20:06:47 瀏覽:780
安卓平板怎麼用小米手柄玩游戲 發布:2024-04-16 20:06:39 瀏覽:299