1. 從經濟學角度解釋程序員為什麼經常加班還沒有加班費
最近在看經濟學的書,深深的被經濟學的理論所折服。看完經濟學的人絕大多數都會有試著用學到的理論解釋一下自己周遭的事物,我也不例外。自己是一個程序員,我想試著分析一下「程序員為什麼經常加班並且沒有加班費」這種現象。此乃一家之言,權當茶餘飯後的消遣。
很多同行們估計都經常加班,而且也能經常聽到別的公司的程序員也經常加班,並且加班通常沒有加班費。接下來我試著分析一下這些現象。從經濟學角度來看,程序員出賣勞動力(包括體力,腦力),企業購買勞動力,這裡面就蘊含著供求關系,只要是有供求的地,經濟學就會發揮它的亂入威力。接下來探討我們關心的幾個話題,而加班只是其中一個話題。
問題一:是什麼決定了你薪酬多少?
其實,是供求關系決定了你的薪酬。我們發現,周圍的(處於同一級別)程序員薪酬並沒有相差很多。整個行業的供求關系決定了你薪酬就是這么多,各個行業都是如此。如果想要企業付給你高工資,你就必須有出色的能力,並且拿高工資的人一直都是少數。能力特別出眾的人佔少數,而這些人會給企業帶來巨大的收益,所以企業願意為這些少數人支付高工資。相反,對於能力一般的人,企業只會支付你一般的工資。能力再差一些的人企業會把他拒絕。不同企業對於程序員的需求也不一。牛逼一些的企業需要優秀的人才,所以願意支付高工資來吸引優秀的人。而一些比較普通的企業對優秀的人才的需求不高,所以願意支付的工資也就偏低。而程序員的質量千差萬別,優秀的人去牛逼的企業,一般的人去一般的企業也就符合這個市場規律。
問題二:程序員的薪水為什麼要比國內其它行業的薪水高很多?
其實,大家可以想想商場里的物品。牙膏和牙刷的價格不會一樣,牙膏和肥皂的價格可能也不一樣。每種物品有每種物品的價格,勞動力也不例外。律師和醫生的薪水不會一樣,清潔工和商場收納員薪水也不一樣,程序員的薪水和其它行業薪水也不一樣就是很自然的了。一個行業的薪水水平與這個行業本身的供求關系有關,行業之間的薪水差別體現了全社會對某一行業的認可和需求。
問題三:為什麼國內的程序員工資要比國外程序員低很多?
其實,只要引入地域性,很多東西之間的比較都是很困難的,不可能三言兩語道明的,商品的價格就是如此。美國人抽的香煙不太可能和中國人抽的香煙是同一個價格,牛肉在美國的價格和在中國的價格也不會一樣。同樣程序員在國內和國外的工資可能也不一樣。每個地域都有每個地域的供求關系,從而加劇了地域之間的比較的困難。但是我不能逃避這個話題,因為確實國內的程序員工資要比美國低,接下來我就試著分析這個問題。舉個非常簡單的例子來說明地域性的影響。美國把製造業搬到了中國,比如生產晶元的流水線搬到了富士康。為什麼會這么做?官方說法是美國的勞動力成本要比中國高,但是為什麼美國的勞動力成本就高了,中國的就低了?一個人選擇當流水線的工人還是當清潔工時,本能的會比較兩份工作的成本,包括體力、智力這些顯而易見的成本和看不見的機會成本。選擇當流水線的工人時,我就放棄了當清潔工所帶來的收入,那麼當清潔工的收入就是在我選擇當流水線工人時的機會成本。我們都知道,在美國各個行業的工資水平都很高,所以選擇當流水線工人時的機會成本都高,在這種情況下,企業不得不提高工資水平來招聘需要的流水線工人,想當然企業僱傭成本會提高。而在中國,選擇當流水線工人的機會成本很低,因為中國的清潔工人的工資本就不高,所以美國企業把製造業搬到了中國,其實就是看中了中國的各種勞動力成本都低這個事實。並且,當美國把製造業搬到中國時,美國的流水線工人也就失業了,對美國的就業在短期內有一定的影響。但是不可否認,長期看來,這么做使得兩國的生活水平都提高。美國企業降低了生產成本,電子產品價格降低,這樣美國居民把省下的錢購買其它產品,促進了其它產業的就業。而中國人找到了流水線的工作,有了收入。不論怎麼看,都是一個雙贏的局面。返回來說程序員的工資,除了需要體力、智力這些成本以外,機會成本相比美國來說是比較低的,所以國內的程序員工資相比美國會低一些。但是假如,國內的程序員可以毫無障礙的與美國企業進行溝通交流,並且提供與美國程序員一樣的勞動力的時候,美國企業會不會清一色的僱傭中國程序員來降低企業的研發成本呢?美國的程序員是否失業了呢?通過比較富士康的例子我們不難看出會有相同的結果。至於為何中國的勞動力成本普遍比美國低已經超出了這個話題的討論范圍(宏觀上講,一國經濟水平決定工人的工資),暫不展開。
問題四:為什麼程序員經常加班還沒有加班費?
首先我還是需要澄清一個事實:並不是所有企業的程序員都加班。比如,銀行工作的程序員,國企的程序員,一些傳統行業的程序員。需要程序員加班的企業,無不是站在時代風口浪尖上的企業,而這些站在時代風口浪尖上的企業無不例外的願意支付更高的工資,並且這些企業員工的技術水平也相對很高,其實都是供求導致的,而這些站在風口上的企業的程序員加班表明:供大於求,最起碼在這一小撮企業中,勞動力的供給一定程度上大於了需求,程序員不得不加班來保住自己的飯碗,防止被替代。那些對加班不滿的程序員完全可以退而求其次,找一個不加班的企業也可以照常度日不是么?加班的程序員真的不要抱怨,你加班說明你的企業正處於風口,未來有各種可能,並且你是被公司所選中認可的人(畢竟有好多人沒有通過公司的考察)。
以上純屬一家之言,各種見解仁者見仁智者見智。如果有程序員看了這篇文章之後選擇出國就業,那絕對是理解了本文章的內容,但是前提:學好英語。如果有的程序員看了這篇文章之後,坦然的接受事實:國家的經濟水平影響了你和國外程序員的薪酬水平,並且不再抱怨,踏踏實實的工作,我想這才是一個人真正的成熟和理智。
2. rm -rf/*是什麼梗
rm -rf/*是刪除當前下的所有文件。
如果你在電腦一旦你執行了上述「rm -rf /」 或者「rm -rf /*」命令,會刪除linux根目錄下的所有文件,直接導致伺服器癱瘓。英文全拼remove,命令用於刪除一個文件或者目錄。參數-i刪除前逐一詢問確認。-f即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。-r將目錄及以下之檔案亦逐一刪除。
linux下rm命令的說明,linux系統下強行循環刪除所有東西的指令。程序員最害怕手抖的命令之一。一旦使用不當會產生超級黑洞,威力極大,有可能將包括程序員的工作在內的一切吸入其中。所以一定要保持頭腦清醒,不能輕易在root賬戶中輕易使用,可以請同事幫你確認,在執行行備份一份再執行。
3. Java程序員一般工資多少
這個要看具體崗位,還有城市的。一般的JAVA工程師如果是做web開發的,不同城市差異非常大,一線城市可以到15k以上,但是在三線城市這個崗位,一般只有5到6k。如果是其他的,JAVA崗位,比如做系統架構,做大數據開發,那麼薪資也是15k以上,不過這類崗位大多數在一線城市。
Java程序員就業情況
就業前景
據有關數據顯示,我國對軟體人才的需求已達20萬,並且以每年20%左右的速度增長。在未來5年內,合格軟體人才的需求將遠大於供給。2005年,我國軟體人才的缺口已達42.5萬,其中尤以Java程序員、Java工程師人才最為缺乏。
根據IDC的統計數字,在所有軟體開發類人才的需求中,對Java程序員的需求達到全部需求量的60%~70%。同時,Java程序員的薪水相對較高。通常來說,具有3~5年開發經驗的工程師,擁有年薪10萬元是很正常的一個薪酬水平。80%學員畢業後年薪都超過了5萬元。
雖然JAVA人才的薪水很高,但是對該類人才需求旺盛的IT企業卻很難招聘到合格的JAVA人員。其中,最根本的原因就是許多計算機專業的畢業生在讀期間沒有掌握實用的技能與經驗,距離企業的實際用人需求有較大的差距。因此,計算機專業的大學生欲成為Java程序員,最便捷的一條路就是參加以實戰項目為主要教學方法的JAVA職業技能培訓,從而有效地縮短同企業具體用人需求之間的差距。
全球有25億Java器件運行著Java,450多萬Java開發者活躍在地球的每個角落,數以千萬計的Web用戶每次上網都親歷Java的威力。今天,Java運行在7.08億手機、10億智能卡和7億PC機上,並為28款可兼容的應用伺服器提供了功能強大的平台。這么多應用,徹底改變了用戶的生活。越來越多的企業,因為使用了Java而提高了生產效率。在中國,越來越多的用戶,因為Java而降低了成本,享受了生活。
4. Windows程序員如何轉linux開發
原文如下:我從csdn學習大本營得到您的信息。不好意思打攪您。我現在用c++在linux下開發大型應用程序。我想請教是否值得深入學習linux kernel。我沒有特別多的時間。另外我有多年Windows下開發應用程序的經驗。我的回答:呵呵,我感覺這還是一個學習方向的問題。Linux這幾年,發展越來越好了,至少在很多應用伺服器市場,Linux已經取代Windows成為第一選擇,另外,在嵌入式環境,Linux也是逐漸成為主流。這導致很多原本是Windows的程序員,由於工作需要,逐漸走向Linux開發,這中間當然涉及到一個學習的問題。我本人也算其中一份子吧。我本來一直做Windows開發,在這之前,在DOS下用過gcc開發,還翻譯了djgpp的庫函數手冊,也算有點基礎。不過,在07年公司安排我在Linux下正式開發商用伺服器的時候,我心裡還是很打鼓的。因為也面臨著一個學習的問題。看看市場上的書籍,很亂,我當時花了一整天在漢唐書城,仔細分析Linux開發相關的書籍,我發現分幾種,首先是shell編程,這個我看了有半個小時,就覺得沒用,這貌似給網管員用的,我做傳輸伺服器用不到,連帶著,正則表達式,我覺得對我用處也不大。真的要做復雜條件篩選,我的習慣是寫個詞法分析程序,自己來分析,也花不了多少時間,所以,我一直就沒學正則表達式,呵呵。然後是C和C++編程相關,我仔細看了,發現一說到開發,就講到Linux kernel,這部分顯然是操作系統的知識,我仔細想了想,發現自己的問題並沒有得到解決。就算我知道了kernel怎麼工作,裡面有什麼開發技巧,對我的工作並沒有什麼幫助。我當時做的是分布式資料庫的傳輸伺服器部分,這部分講究多線程,高效能,但還是局限在應用層,並沒有多少涉及到kernel的東東。我覺得用處不大。反而我覺得我有必要對socket編程重新補一補了。經過挑選,我給自己選了一本《UNIX網路編程》的第1卷網路通信篇,第2卷是進程間通訊,我覺得我的程序用多線程跑已經很好了,線程本身就是共享內存的,無需考慮太多非同步通訊,而且,我的習慣,進程間通訊,一般直接使用socket,這個放之四海皆真理,而且,好處是我的進程可以跨機器隨意部署,只要我提供IP地址,進程間就可以互相通信,協同工作。所以,我只買了第1卷,就是專門講socket的,這是好書,我現在沒事還要拿出來看一看。另外,我又給自己挑了一本《Unix編程藝術》,這本也是好書,我以前就發現,Dos程序員有Dos程序員的習慣,Windows的有Windows的習慣,這些方言,習慣,教科書是沒有的,必須找有經驗的程序員問,而這本書恰好就是專門講這些問題的。比如DOS時代,硬碟通常很小,用戶分盤又很亂,我們要是想向磁碟存個臨時文件,最好找C盤,連D盤都是很多計算機沒有的。而Windows下系統提供了服務,可以通過api查詢系統臨時文件目錄,就好多了,而Linux下呢,是約定俗成,大家都用/var來做臨時目錄,這就是風俗。嗯,這本書我看了以後,遵守了一半,呵呵,也沒全遵守,它強調程序都是過濾器,從信息流中過濾自己有用的信息,加以處理,但是,不準破壞信息流,並且強調信息流無縫流轉到下家,這個我很同意,這也是我這幾年逐漸領悟到的一個程序設計原則。不過,它強調搭積木我就不太同意了,Unix的程序員,有個壞習慣,對管道很濫用,這就造成了很多程序都是小程序,通過管道勾搭到一起,完成一個強大的功能,這個呢,見仁見智,在某些場合合用,但我的開發領域,我強調強大的系統分析能力,一體化的系統設計思考,強調從系統設計階段就杜絕很多潛在的邏輯bug,簡單說,我對系統各個模塊之間的和諧性看得很重,因此,這條我就沒有遵守。嗯,還有就是它強調簡潔開發,我呢,也只同意一半,把程序寫簡潔,每個函數,每個類,都很簡單,減少bug,這個我是同意的,不過,簡介到變數名函數名都凈是縮寫,人都看不懂,就太離譜了。呵呵,我的習慣就這樣,別人的東西好,對我有用,我就用,我覺得有異議,並且認為自己的理由更站得住腳,我就堅持自己的。並且,一切從實踐中看,計算機是最公平的,亂寫程序,就算是大師也照掛,小心翼翼地寫程序,即使是剛入行的小弟,也能寫出很漂亮的程序。就這樣,我借著這兩本書慢慢看,然後,大多數習慣還是Windows的,到現在我開發,都是VC下編輯程序,然後寫個makefile,ftp到虛擬機去編譯執行,也走到今天了。後來發現,我沒有學習shell,我沒有學習kernel,我沒有學習很多教科書上規定必須學習的東東,我的程序居然也完成了,我們的工程在去年,9輪測試,只發現51個bug,屬於C和C++這邊的bug,只有7個,這就是我堅持我自己無錯化程序設計方法的威力。
5. 計算機本科里最重要的是哪幾門課程(想當C++程序員的話)
真理:數據結構:程序員必需懂操作系統:編程方面基本,從事計算機行業的都得懂。編譯原理:進階課程,開發中少有用到,建議不必學。軟體工程和管理:從事大型項目或高階職位者必須懂,進階課程資料庫原理:大型商業項目基本有資料庫,要懂計算機網路:和網路相關的項目都很賺錢,要懂網路編程:c++很大一個應用,懂! 最後讓我告訴你現狀,你這樣初學又不是應屆對口畢業的人很難找c++的工作。你不急著轉工作的話,我給你一個建議:學好上面的課程,不要搞windows的,做linux的網路編程,伺服器端的。這個需求比較大,人數也少。就算學不太好,搞懂linux的配置和架設也能找到好工作。這樣的話你就主攻linux系統的配置和linux下的c/c++,數據結構和網路編程,多線程編程。順帶一提,linux伺服器要的就是效率,多看有關演算法。