亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: Linux/UNIX系統(tǒng)編程,系統(tǒng)程序員成長(zhǎng)的基石?(獲獎(jiǎng)名單已公布-2014-2-17) [打印本頁(yè)]

作者: send_linux    時(shí)間: 2014-01-09 10:04
提示: 該帖被管理員或版主屏蔽
作者: hellioncu    時(shí)間: 2014-01-09 12:00
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
我早先做Windows下的開(kāi)發(fā),后來(lái)逐漸轉(zhuǎn)為以L(fǎng)inux/UNIX系統(tǒng)為主。雖然操作系統(tǒng)不同,但很多思想、技術(shù)還是一樣的。架構(gòu)是關(guān)鍵,實(shí)現(xiàn)很重要。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
相對(duì)于Web、手機(jī)等,Linux/UNIX系統(tǒng)編程技術(shù)變化較少,不用不停的追逐新技術(shù),可以做得比較深入,是可以做得長(zhǎng)久的。當(dāng)然“云”的流行,也會(huì)帶來(lái)一些挑戰(zhàn)。

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
技術(shù)基礎(chǔ)要扎實(shí),忌好高騖遠(yuǎn)
作者: timespace    時(shí)間: 2014-01-09 15:31
還沒(méi)參與過(guò)這類(lèi)活動(dòng)啊,今天抽空回復(fù)下

1. 您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
最開(kāi)始在Sun Solaris下開(kāi)發(fā)電信相關(guān)的業(yè)務(wù),后來(lái)轉(zhuǎn)入互聯(lián)網(wǎng)行業(yè),后臺(tái)服務(wù)端開(kāi)發(fā)是基于SUSE Linux,接著又在CentOS開(kāi)發(fā),而自己的電腦是Mac OS X(從10.6起就是根正苗紅的認(rèn)證UNIX了)。雖然這些系統(tǒng)都不盡相同,但作為系統(tǒng)編程必讀參考書(shū),20多年前的APUE和K&R C依然能發(fā)光發(fā)熱十分堅(jiān)挺,其實(shí)Linux/UNIX系統(tǒng)編程的基石就從來(lái)沒(méi)有動(dòng)搖過(guò)。

2.Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
從職業(yè)生涯來(lái)看,系統(tǒng)編程處于進(jìn)可攻退可守的最佳位置,是內(nèi)核與應(yīng)用的橋梁。
向上可以做各種應(yīng)用軟件,但又不至于只會(huì)用框架或第三方庫(kù),別人說(shuō)epoll/kqueue網(wǎng)絡(luò)接入能力很NB,你雖然沒(méi)看過(guò)內(nèi)核代碼,但用過(guò)select/poll吧,從API用法來(lái)看,select/poll是無(wú)狀態(tài)的所以開(kāi)銷(xiāo)大,再一想其實(shí)當(dāng)大量連接都比較活躍時(shí),它們的效率都半斤八兩。
向下可以做內(nèi)核開(kāi)發(fā),畢竟曾經(jīng)很接近它了,你熟悉內(nèi)核向用戶(hù)提供服務(wù)的接口,從接口出發(fā)更容易理清邏輯,就像看其他程序代碼先找main函數(shù)一樣。
系統(tǒng)編程經(jīng)歷是職業(yè)發(fā)展的重要資本。

3.對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
很多技術(shù)萬(wàn)變不離其宗,尤其是Linux/UNIX系統(tǒng)編程,關(guān)鍵是先要搞好這個(gè)“宗”,對(duì)新手來(lái)說(shuō)看書(shū)始終是提高的好辦法,而太多推薦資料會(huì)嚇?biāo)廊,所以只要真正看懂APUE和K&R C(運(yùn)行調(diào)試書(shū)中“過(guò)時(shí)”的代碼也是學(xué)習(xí)的關(guān)鍵),你就不再是新手了。至于其它,不存在什么捷徑,專(zhuān)注和重復(fù)就OK了。

作者: xike2002    時(shí)間: 2014-01-09 16:26
本帖最后由 xike2002 于 2014-01-09 17:47 編輯

好活動(dòng),必須支持茂哥!

1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
答:做linux下的開(kāi)發(fā)好多年了,稱(chēng)得上是linux行業(yè)的一個(gè)老手了,但算不上個(gè)高手。
在這里和大家分享一下我的經(jīng)歷和經(jīng)驗(yàn),歡迎大家批評(píng)和討論。
(1)編程思想很重要。不管你在windows下編程還是在linux下編程,其實(shí)編程思想是一致的,這就是軟件設(shè)計(jì)的思想。
對(duì)于新手來(lái)說(shuō),他們很少會(huì)考慮到編程思想方面的事情,他們的目標(biāo)就是實(shí)現(xiàn)功能,而對(duì)于實(shí)現(xiàn)功能之外的東西,包括
易用性、健壯性等東西基本上不會(huì)考慮的。因?yàn)槲耶?dāng)年也是從這一步走過(guò)來(lái),這只是在說(shuō)一說(shuō)當(dāng)年的親身體會(huì)。當(dāng)然軟件
設(shè)計(jì)的思想不是一天兩天就能夠形成的,但是你必須從一開(kāi)始就培養(yǎng)自己的這種軟件編程的設(shè)計(jì)思想。
(2)選擇哪種編程語(yǔ)言其實(shí)不重要。很多程序員新手在選擇編程語(yǔ)言的時(shí)候往往會(huì)陷入猶豫之中,不知道該選擇C、還是
JAVA,或者是其它編程語(yǔ)言呢。其實(shí)選擇任何一個(gè)都沒(méi)關(guān)系的,只是方向不一樣罷了。我一直是在使用C做開(kāi)發(fā),但是隨著
工作的不斷進(jìn)行,慢慢的使用腳本語(yǔ)言的頻率越來(lái)越高。其實(shí)腳本語(yǔ)言的強(qiáng)大是出乎我意料之外的,記得當(dāng)年剛參加工作
時(shí)一位前輩告訴我,在linux下,能用程序?qū)崿F(xiàn)的東西,幾乎都可以用腳本語(yǔ)言來(lái)代替。
(3)好的師傅很重要。如果能夠在子行業(yè)生涯初期遇到一個(gè)好的師傅,這簡(jiǎn)直是一件多么美好的事情啊,當(dāng)然你也不能完全
把自己的成敗完全寄托在一個(gè)好的師傅身上,因?yàn)樽陨淼呐σ彩欠浅V匾摹?br />
2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
答:職業(yè)生涯規(guī)劃對(duì)于很多新手來(lái)說(shuō)是意見(jiàn)很難的事情。因?yàn)楹苌儆腥四軌蛟诼殬I(yè)生涯初期就把自己的整個(gè)職業(yè)生涯規(guī)劃好。
職業(yè)生涯規(guī)劃其實(shí)是一個(gè)不斷完善的過(guò)程。下面我來(lái)談一談我的親身經(jīng)歷。
(1)團(tuán)隊(duì)氛圍很重要。加入一個(gè)好的團(tuán)隊(duì)和加入一個(gè)差的團(tuán)隊(duì)的區(qū)別是相當(dāng)大的。好的團(tuán)隊(duì)會(huì)幫助你迅速的成長(zhǎng),能把一個(gè)
新手變成一個(gè)高手。而一個(gè)差的團(tuán)隊(duì)能夠毀了一個(gè)高手。
(2)轉(zhuǎn)型也很重要。在合適的時(shí)間,你應(yīng)該考慮崗位的轉(zhuǎn)型。因?yàn)槟憧赡墚?dāng)一輩子的程序員的,在技術(shù)達(dá)到一定的級(jí)別的
時(shí)候,你可以考慮做方案。


3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
答:前面已經(jīng)說(shuō)了很多了,該說(shuō)的差不多已經(jīng)都說(shuō)了。
我想說(shuō)的是努力學(xué)習(xí)的同時(shí)需要不斷的思考。
努力不一定會(huì)成功,但是不努力一定不會(huì)成功。
最后引用一句前幾天總結(jié)會(huì)上領(lǐng)導(dǎo)說(shuō)的一句話(huà):所有的偉大都是時(shí)間的函數(shù)。
作者: 2009532140    時(shí)間: 2014-01-09 16:28
就是感覺(jué)不方便...
作者: crazyhadoop    時(shí)間: 2014-01-09 16:30
本帖最后由 crazyhadoop 于 2014-01-21 00:00 編輯

1.  斷斷續(xù)續(xù)的也有4年的Linux系統(tǒng)開(kāi)發(fā)了,從開(kāi)始的玩具小程序,到今天每天數(shù)億訪(fǎng)問(wèn)請(qǐng)求的應(yīng)用開(kāi)發(fā),也算是成長(zhǎng)了很多,這里面有血有淚啊,不過(guò)也是一行一行的代碼敲過(guò)來(lái),一個(gè)一個(gè)方案的做測(cè)試,除了業(yè)務(wù)的發(fā)展推動(dòng),另外一個(gè)非常重要的基石就是實(shí)實(shí)在在的看了那么幾本書(shū),基本快翻爛了,只有實(shí)踐才能真的知道在各種服務(wù)壓力之下,性能的瓶頸在哪里?改進(jìn)的空間在哪里,改進(jìn)的方向在哪里。學(xué)而不思則罔,思而不學(xué)則殆。如果只看書(shū)不在各種環(huán)境下實(shí)踐,無(wú)法知道自己所學(xué)有多大的威力。如果沒(méi)有書(shū)的指導(dǎo),可能無(wú)法游刃有余的理清思路,探索方向。真是那幾本寶典指導(dǎo)了我如何去做。

2.現(xiàn)在看起來(lái)做移動(dòng)端的可能比較火熱,但我想說(shuō)的是,其實(shí)無(wú)論現(xiàn)在什么發(fā)展最火,服務(wù)端永遠(yuǎn)是充滿(mǎn)挑戰(zhàn)的地方,現(xiàn)在的服務(wù)挑戰(zhàn)性相比較以前更大了,各種大數(shù)據(jù),高并發(fā),可以做的事情也更多了。這對(duì)個(gè)人的要求也越來(lái)越高,但是實(shí)際上用到的知識(shí)還是Linux系統(tǒng)開(kāi)發(fā)的那些基礎(chǔ)知識(shí)外加一些高效的數(shù)據(jù)結(jié)構(gòu)。原來(lái)的進(jìn)程可能只在一臺(tái)機(jī)器上,現(xiàn)在分散到多個(gè)機(jī)器上而已。小處著手,做的工作更細(xì)致了。打好基礎(chǔ),就可以坐等萬(wàn)丈高樓平地起了

3.

這本書(shū)可以說(shuō)是相當(dāng)實(shí)用,極力推薦,我看過(guò)一部分英文章節(jié)的內(nèi)容。感覺(jué)很贊。既可以當(dāng)參考書(shū)又可以當(dāng)教材。這本書(shū)比高級(jí)UNIX環(huán)境編程(apue)更適合學(xué)習(xí)*nix的系統(tǒng)編程。
首先這本書(shū)非常詳盡,比apue更適合入門(mén),作者的例子也多。更容易實(shí)際操作,用以練習(xí),難度循序漸進(jìn),不像apue有點(diǎn)高大上。每個(gè)章節(jié)分的比較清楚?梢园葱蜷喿x,也可以按需閱讀。語(yǔ)言簡(jiǎn)練,條理清晰,代碼示例簡(jiǎn)單明了,新手可以輕松敲打代碼,試驗(yàn)效果。這本書(shū)讀敲下來(lái)功力應(yīng)該是相當(dāng)了得了。
作者: wuchow    時(shí)間: 2014-01-09 17:11
不懂,來(lái)看看
就當(dāng)學(xué)習(xí)吧
作者: liu1061    時(shí)間: 2014-01-09 17:37
看過(guò)一些這本書(shū)的英文版本,記得它是amazon上五星級(jí)的圖書(shū),被liunx/unix工作者大力推薦的好書(shū),也是一本非常好的書(shū),和APUE是一對(duì)好伙伴。在linux工作多年,算不上什么高手,但是有一點(diǎn),就是很多時(shí)候在liunx學(xué)到的東西可以一勞永逸,不像window上的技術(shù),變化多,跟著學(xué)習(xí)都學(xué)不過(guò)來(lái)。總之一句話(huà),liunx直得程序員去花時(shí)間學(xué)習(xí),它就想vim一樣會(huì)讓你體驗(yàn)都無(wú)窮樂(lè)趣。
作者: tempname2    時(shí)間: 2014-01-09 23:45
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
       大一暑假買(mǎi)了APUE,斷斷續(xù)續(xù)到大三下學(xué)期才看完。畢業(yè)后從事更底層的開(kāi)發(fā)工作,還算是按步就班走過(guò)來(lái)的吧。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
       系統(tǒng)編程還沒(méi)有一個(gè)很好的定義吧。我的理解理解是,有最大的靈活度控制資源、只依賴(lài)于操作系統(tǒng)與基本庫(kù)的抽象
       的編程。從市場(chǎng)職位情況上考慮,用大白話(huà)說(shuō),可能就是服務(wù)器后端開(kāi)發(fā)。與之相對(duì)的是各種Java/Python/Ruby項(xiàng)
       目,特征是抽象層次高,基本跨平臺(tái)。這也是系統(tǒng)編程給人靠近底層感覺(jué)的原由。

       如果堅(jiān)持一路走下來(lái),職業(yè)生涯與其它方向并無(wú)二致。如果僅將此作為過(guò)渡的話(huà),后期職業(yè)生涯的選擇倒挺多。系統(tǒng)編程
       正好卡在中間,可上可下。現(xiàn)在互聯(lián)網(wǎng)如火如荼,越上層反倒越吃香。

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?

      o 有全局觀,認(rèn)清層次。語(yǔ)言層(標(biāo)準(zhǔn)),庫(kù)層,系統(tǒng)層(API),平臺(tái)層(ABI)。
      o 學(xué)一門(mén)動(dòng)態(tài)語(yǔ)言;不要瞧不起Java之流。
      o 掌握一點(diǎn)內(nèi)核知識(shí),但求流程,無(wú)需細(xì)節(jié)。
      o 不要錯(cuò)過(guò)開(kāi)源寶庫(kù)。
      o 保證自己的代碼量。
作者: forgaoqiang    時(shí)間: 2014-01-10 02:50
本帖最后由 forgaoqiang 于 2014-01-24 13:24 編輯

非常佩服精通Linux/Unix系統(tǒng)編程,不但對(duì)操作系統(tǒng)要有了解也有很深的C/C++水平,當(dāng)前也只略微看過(guò)《Linux程序設(shè)計(jì) 第四版》,大部分工作還停留在使用shell來(lái)完成的水平上,雖然經(jīng)驗(yàn)不錯(cuò),也分享下自己的拙見(jiàn),順便圍觀CU大牛。

1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)

從大學(xué)開(kāi)始,使用Linux系統(tǒng)有6年左右了,大多數(shù)時(shí)間都在使用而不是開(kāi)發(fā)。最近也開(kāi)始寫(xiě)一些簡(jiǎn)單的小程序,以滿(mǎn)足定制的產(chǎn)品的需求。一開(kāi)始使用shell進(jìn)行簡(jiǎn)單的操作,后來(lái)遇到性能和保密的問(wèn)題(有點(diǎn)猥瑣,C語(yǔ)言編譯后的確是比明文的Shell安全很多),開(kāi)始使用C語(yǔ)言進(jìn)行重構(gòu)。
大多數(shù)操作都是文件系統(tǒng)中文件的讀寫(xiě),字符串的操作,然后進(jìn)行Socket通訊,只會(huì)這一些也不敢說(shuō)懂Linux編程。
大多數(shù)時(shí)間都在OpenWRT上做開(kāi)發(fā)(可以理解成Redhat精簡(jiǎn)版本,是個(gè)路由操作系統(tǒng)),上面的C標(biāo)準(zhǔn)庫(kù)雖然不完整,但是基本的函數(shù)還是能夠正常使用的,配合專(zhuān)有的UCI(Unified Configuration Interface)可以快速高效的讀寫(xiě)配置文件。
網(wǎng)絡(luò)數(shù)據(jù)傳輸采用了JSON的編碼方式,配合openwrt上的 jshn 工具(json編解碼C程序),數(shù)據(jù)編碼傳輸問(wèn)題也解決了。
現(xiàn)在對(duì)Linux系統(tǒng)上基本的文件讀寫(xiě)、字符串的操作比較了解,以后可能會(huì)考慮使用C++來(lái)做。


2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討

Linux/UNIX系統(tǒng)因?yàn)槠溟_(kāi)源的特性,很多需求完全可以通過(guò)修改源碼或者自己進(jìn)行編寫(xiě),這一方面無(wú)疑非常的便利。而且對(duì)于國(guó)內(nèi)的程序員或者開(kāi)發(fā)公司來(lái)說(shuō),大量的開(kāi)源項(xiàng)目也是吸引他們的重要原因,很多需求只要找到一個(gè)合適的開(kāi)源項(xiàng)目,然后去研究一下,少量修改定制就能夠成為自己的產(chǎn)品,因此個(gè)人認(rèn)為L(zhǎng)inux上的編程還是非常有前途的。
至于Linux/UNIX系統(tǒng)編程來(lái)說(shuō),主要面向系統(tǒng)本身的功能進(jìn)行編程開(kāi)發(fā)的話(huà),可能需求沒(méi)有那么強(qiáng)烈,這些工作完全可以等待Linux開(kāi)源社區(qū)來(lái)完成,然后加以利用。
因?yàn)長(zhǎng)inux系統(tǒng)編程本身并不需要完全理解Linux內(nèi)核,也不需要完全弄明白系統(tǒng)是如何工作的,在其提供的大量的開(kāi)放API上進(jìn)行“二次開(kāi)發(fā)”即可,難度也不是太大。、開(kāi)源的路由操作系統(tǒng)都在快速發(fā)展。極路由等廠家也是采用了Openwrt這樣的linux系統(tǒng)然后在其上進(jìn)行開(kāi)發(fā)。Linux/UNIX系統(tǒng)編程職業(yè)生涯的話(huà)要往某個(gè)方面進(jìn)行精細(xì)發(fā)展,精通于特定領(lǐng)域而不是范范整個(gè)系統(tǒng)各方面的內(nèi)容。



3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?

①找本好些的書(shū)吧,以前我看得是《Linux程序設(shè)計(jì) 第四版》,感覺(jué)還算是不錯(cuò),各個(gè)方面都有涉及,前幾章也對(duì)shell進(jìn)行了概述性講解,后面對(duì)系統(tǒng)各個(gè)模塊進(jìn)行了講解,也涉及到mysql這樣開(kāi)源數(shù)據(jù)庫(kù)的開(kāi)發(fā),現(xiàn)在來(lái)看這本新書(shū)《Linux/UNIX系統(tǒng)編程手冊(cè)(上、下冊(cè)) 》也是非常不錯(cuò)的選擇。
②多看些Linux本身以及其實(shí)用工具的源碼,這些都是精挑細(xì)選,幾乎無(wú)法再優(yōu)化的經(jīng)典之作。比如當(dāng)時(shí)我看grep的源碼的時(shí)候就感到驚嘆,本以為這么強(qiáng)大的工具肯定有龐大的代碼量,后來(lái)發(fā)現(xiàn)里面很多精妙的設(shè)計(jì),查看優(yōu)秀的程序設(shè)計(jì)源碼真的能快速提高自己的編程思想。
③多做些筆記吧,除了傳統(tǒng)的學(xué)習(xí)筆記要按照功能/類(lèi)型劃分,也要整理自己的代碼庫(kù),形成專(zhuān)屬代碼庫(kù),不是每一次每一個(gè)功能都需要從頭寫(xiě)的,需要的話(huà)快速找到自己需要的函數(shù)封裝,后期能夠快速完成開(kāi)發(fā)。
④能找個(gè)“高手”做指導(dǎo)最好了,我當(dāng)時(shí)完全自己生硬的緩慢學(xué)習(xí),很多時(shí)候一個(gè)簡(jiǎn)單的問(wèn)題網(wǎng)上查找半天,甚至多日后才突然明白,這樣學(xué)習(xí)起來(lái)太痛苦也太沒(méi)效率,要是有個(gè)師傅帶,一定要珍惜。


作者: shuihan0739    時(shí)間: 2014-01-10 09:15
tlpi 這書(shū)看了一個(gè)多月了,還只到1/3的樣子.看得好慢啊,上班沒(méi)事的時(shí)候看看
作者: send_linux    時(shí)間: 2014-01-10 09:20
shuihan0739 發(fā)表于 2014-01-10 09:15
tlpi 這書(shū)看了一個(gè)多月了,還只到1/3的樣子.看得好慢啊,上班沒(méi)事的時(shí)候看看


都已經(jīng)開(kāi)始看了,歡迎有新的體會(huì)發(fā)表出來(lái)和大家分享分享
作者: to407    時(shí)間: 2014-01-10 09:51
終于翻譯好了, 這么久了...
作者: send_linux    時(shí)間: 2014-01-10 10:50
to407 發(fā)表于 2014-01-10 09:51
終于翻譯好了, 這么久了...

哈,上次那個(gè)沙龍兄弟去了么?
作者: tojk    時(shí)間: 2014-01-10 11:24

1. 您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
一直從事系統(tǒng)管理,運(yùn)維的工作,對(duì)于系統(tǒng)編程應(yīng)用的并不多,但多年的工作經(jīng)驗(yàn)使我知道,Linux/UNIX的系統(tǒng)編程非常重要,即便對(duì)于運(yùn)維來(lái)說(shuō)也是一樣。現(xiàn)在正在學(xué)習(xí)這方面的內(nèi)容。

2.Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
Linux/UNIX系統(tǒng)編程是從事Linux/UNIX相關(guān)工作的基礎(chǔ),而不論是從事運(yùn)維還是系統(tǒng)集成開(kāi)發(fā)都是一樣,這方面的基礎(chǔ)扎實(shí),今后的工作才能更順暢。
Linux/UNIX系統(tǒng)編程是職業(yè)發(fā)展的重要砝碼和資本。

3.對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
Linux/UNIX的編程學(xué)習(xí)雖然很累,但卻很值得,一定要下大力氣來(lái)攻克它,對(duì)今后的發(fā)展益處多多!

作者: qingduo04    時(shí)間: 2014-01-10 11:36
路過(guò),支持,樓蓋的很快!
作者: JackNorton    時(shí)間: 2014-01-10 11:55
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
在Linux/Unix開(kāi)發(fā)項(xiàng)目:
1.基礎(chǔ)層面,首先要掌握一門(mén)編程語(yǔ)言,最好比較熟悉,語(yǔ)言是相通的,只是表現(xiàn)形式不一樣而已, 這樣就能舉一反三。曾經(jīng)用C開(kāi)發(fā)過(guò)一個(gè)項(xiàng)目,在這個(gè)過(guò)程,對(duì)于Makefile文件的靈活運(yùn)用,gdb靈活調(diào)試都至關(guān)重要。
2.高效執(zhí)行層面,如果編寫(xiě)的程序能基本上能夠運(yùn)行了,那就要考慮效率問(wèn)題,在linux/Unix 下開(kāi)發(fā),一般都用于服務(wù)器程序,在服務(wù)器上運(yùn)行的程序面對(duì)巨大的訪(fǎng)問(wèn)量,能否能保證高效的運(yùn)行,這是必須的,就要考慮程序優(yōu)化,采用相關(guān)算法,多線(xiàn)程、緩存等等。
3.軟件工程思想層面,編程意味著實(shí)現(xiàn)一個(gè)軟件,軟件就必須要有幾個(gè)特性:穩(wěn)定性、跨平臺(tái)、易擴(kuò)展、方便調(diào)試等等。這些概念在一開(kāi)始編程就應(yīng)該要有,比如高內(nèi)聚、低偶合之類(lèi)的,也就是軟件好的建筑房子一樣要成體系。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
Linux/Unix由于免費(fèi),吸引一大批人去使用,又是開(kāi)源軟件,技術(shù)大牛都樂(lè)于研究,可以說(shuō)未來(lái)的發(fā)展是光明的。
Linux/Unix所做的這一切都可謂是臥薪嘗膽,希望有朝一日在PC上使用量超過(guò)Windows,作為職業(yè)生涯來(lái)說(shuō),人個(gè)覺(jué)得開(kāi)發(fā)一些Linux/Unix 下的良好應(yīng)用可能會(huì)是以后的趨勢(shì)所在。

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
誰(shuí)都是從新手開(kāi)始的,我也是新手。
首先,安裝一個(gè)Linux/Unix系統(tǒng),有一個(gè)感性的認(rèn)識(shí),了解里面的目錄、文件管理、用戶(hù)管理、權(quán)限使用等等,有基本的了解;
然后就是看一看《linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》這本書(shū),講的是內(nèi)存管理、進(jìn)程與中斷、用戶(hù)管理等等的具體實(shí)現(xiàn),講的是原理,這樣就能了知道運(yùn)行原理。
一般到這個(gè)步驟就可以了。
如果是做嵌入式、驅(qū)動(dòng)開(kāi)發(fā)就必須要看一看更深入的書(shū)了,深入linux內(nèi)核、linux內(nèi)核編程之類(lèi)的書(shū),這些書(shū)我沒(méi)有看過(guò),如果要與底層打交道的話(huà),那這些是必須的。
學(xué)習(xí)linux/Unix的好處就是你能充分分揮你的想象,針對(duì)一個(gè)問(wèn)題你得有明確的解題思路,比如靈活使用bash或者正則表達(dá)式,這些就是很深入,很能發(fā)揮想象空間的東西,堅(jiān)持下去吧,你會(huì)喜歡上它的。

最后,十分喜歡《Linux/UNIX系統(tǒng)編程手冊(cè)》,因?yàn)閺氖碌穆殬I(yè)就是在linux/unix下編程,我想這本書(shū)會(huì)給我很多的啟發(fā) ,也真心想得到這本書(shū),繼續(xù)學(xué)習(xí)。。以上評(píng)論只是個(gè)人觀點(diǎn),如有雷同,純屬巧合,如有不同,望不吝賜教!
作者: to407    時(shí)間: 2014-01-10 12:37
回復(fù) 14# send_linux


    去了啊~~  
作者: 肥頭大呆腦    時(shí)間: 2014-01-10 13:16
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
    一開(kāi)始在培訓(xùn)機(jī)構(gòu)學(xué)的windows環(huán)境下C++編程,MFC以及l(fā)inux shell腳本編程等。后來(lái)進(jìn)入華為外包,就開(kāi)始搞unix/linux環(huán)境下編程,寫(xiě)的代碼主要功能就是讀文件、做統(tǒng)計(jì)、生成報(bào)表等。一開(kāi)始Makefile什么的都不會(huì)寫(xiě),把自己寫(xiě)的代碼文件加到編譯腳本里面就OK了。后來(lái)開(kāi)始慢慢的用到多進(jìn)程、文件鎖、信號(hào)、信號(hào)量、共享內(nèi)存等linux的東西。當(dāng)時(shí)做的東西需要支持多個(gè)平臺(tái),包括HP-UNIX、AIX、HP-Itanium、Linux等平臺(tái)。現(xiàn)在就一直在做Linux環(huán)境下的服務(wù)器開(kāi)發(fā),無(wú)外乎網(wǎng)絡(luò)通信、多線(xiàn)程等。
2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
    越來(lái)越多的服務(wù)器使用linux操作系統(tǒng),做Linux系統(tǒng)編程不會(huì)沒(méi)飯吃吧。但要吃的還算體面、吃的好,還需要在其它方面多下功夫吧。
3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
   我也只是入門(mén)。不過(guò)我看到不少的人,他們?cè)谧鰈inux下的開(kāi)發(fā),寫(xiě)的代碼卻完全不知道用linux環(huán)境的一些特性。使用linux下的一個(gè)很簡(jiǎn)單的系統(tǒng)調(diào)用就搞定的事情,卻費(fèi)老大勁寫(xiě)了一大堆代碼,性能又差。做linux程序員,APUE還是要認(rèn)真看看吧。
作者: seufy88    時(shí)間: 2014-01-10 16:32
這本書(shū)不錯(cuò)。終于有中文版了
作者: justin12zhu    時(shí)間: 2014-01-11 00:52
1. 您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
大學(xué)的時(shí)候有門(mén)選修課,叫《網(wǎng)絡(luò)編程》,老師指定的參考書(shū)是APUE和兩卷UNP,可惜當(dāng)時(shí)對(duì)unix的使用都并不熟悉,更別說(shuō)是編程了,結(jié)果只能靠PPT撐過(guò)了考試。但是陰差陽(yáng)錯(cuò),在畢業(yè)后,我被公司安排去做unix后臺(tái)程序開(kāi)發(fā),于是乎linux/unix成了我每天必須接觸的東西。為了工作,重讀APUE,UNP,從最簡(jiǎn)單的IO操作開(kāi)始學(xué)習(xí),到進(jìn)程管理,到多線(xiàn)程,IPC到socket,再到服務(wù)器編程范式,APUE和UNP成了我入行的啟明燈和枕邊書(shū)。
當(dāng)然,系統(tǒng)編程除了要學(xué)會(huì)API的使用外,還需要學(xué)會(huì)其他工具的使用,例如編輯器vim,工程管理的autotool,cmake等,編譯器gcc,llvm,調(diào)試器gdb,檢測(cè)內(nèi)存泄漏的valgrind等等,還有一大堆其他跟蹤和分析工具。
所以,要進(jìn)入unix系統(tǒng)編程行業(yè),一般好的參考書(shū)會(huì)令你事半功倍?上.Richard Stevens英年早逝,很多新知識(shí)在APUE、UNP中都無(wú)法得到更新,而這本書(shū)正好填補(bǔ)了這個(gè)空白。

2.Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
隨著硬件的發(fā)展,腳本語(yǔ)言在性能上有了很大的突破,在服務(wù)器開(kāi)發(fā)的地位也逐漸變得重要,這使得有些人開(kāi)始叫囂linux/unix系統(tǒng)編程不再重要,沒(méi)前途了。但是在我看來(lái),linux/unix系統(tǒng)編程不僅沒(méi)有地位不保,反而變得更加重要,像mysql,像nginx,像libevent等,很多的取得很高評(píng)價(jià)的項(xiàng)目正是把linux/unix系統(tǒng)編程做到了極致。

3.對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
linux/unix系統(tǒng)編程是一個(gè)很有挑戰(zhàn)性的事情,需要入門(mén)難,但卻很值得學(xué)習(xí)。在學(xué)習(xí)過(guò)程中,你會(huì)體會(huì)到Unix系統(tǒng)中一切皆文件這個(gè)設(shè)計(jì)思想的魅力,會(huì)體會(huì)到什么叫做less is more和kiss,這是在做windows開(kāi)發(fā)中無(wú)法體會(huì)到的。雖說(shuō)入門(mén)難,但是并不是高不可攀的,只要能夠下得了決心安裝一個(gè)linux,哪怕是在虛擬機(jī)上,你就已經(jīng)踏出了第一步,在學(xué)會(huì)簡(jiǎn)單的開(kāi)發(fā)工具和環(huán)境的使用之后,剩下的就是看一本好的參考書(shū),跟住書(shū)走,邊看邊做練習(xí),掌握l(shuí)inux/unix系統(tǒng)編程不會(huì)太難。只要有興趣,你還可以找出linux的源代碼,深入了解其具體的實(shí)現(xiàn),代碼面前了無(wú)秘密,這才是linux/unix編程最大的魅力所在。
作者: beyondfly    時(shí)間: 2014-01-11 02:00
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
    剛畢業(yè)做Linux方面的技術(shù)支持工作,當(dāng)時(shí)公司的產(chǎn)品分為服務(wù)器端和終端,都是采用Linux操作系統(tǒng),其中服務(wù)器主要為SUSE,客戶(hù)端主要為uclinux。后面做Linux系統(tǒng)工程師工作,對(duì)Linux系統(tǒng)有了更多的認(rèn)識(shí),如包管理機(jī)制,Linux中最主要的包管理機(jī)制rpm是由于的制作,維護(hù)。rpm信息的意義等。Linux操作系統(tǒng)具體的啟動(dòng)過(guò)程。慢慢也在Linux下面做一些開(kāi)發(fā)工作,使用的語(yǔ)言為gtk+python。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討

     學(xué)習(xí)Linux系統(tǒng)編程,對(duì)于操作系統(tǒng)會(huì)有更多的認(rèn)識(shí),可以更清楚的知道操作系統(tǒng)是怎么運(yùn)行的,這些思想對(duì)于實(shí)際應(yīng)用程序的開(kāi)發(fā)會(huì)有很大的幫助作用。如果想從事嵌入式的開(kāi)發(fā),或是Linux內(nèi)核的開(kāi)發(fā),都會(huì)有很大的幫助

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
      首先熟悉一個(gè)Linux發(fā)行版,不論是redhat或是ubuntu,熟悉vim的使用,makefile的編寫(xiě)等。其實(shí),把APUE給吃透,接下來(lái)就可以進(jìn)行Linux系統(tǒng)編程了。
  
作者: niao5929    時(shí)間: 2014-01-11 10:56
昨天<蝴蝶效應(yīng)>這本書(shū),發(fā)現(xiàn)里邊在說(shuō)到自組織系統(tǒng)的其中的第一個(gè)條件就是系統(tǒng)本身必須是開(kāi)放的.而自組織系統(tǒng)其實(shí)就是有生命的.LINUX系統(tǒng)本身的開(kāi)放性可以更好的來(lái)讓每個(gè)人的需求和想法逐步的成為現(xiàn)實(shí),同時(shí)linux因?yàn)樽杂珊烷_(kāi)源,所以可以自由進(jìn)化。局部的進(jìn)化如果取得突破,那么全局會(huì)向該局部靠攏,產(chǎn)生蝴蝶效應(yīng),局部進(jìn)化的失敗也不會(huì)對(duì)系統(tǒng)產(chǎn)生災(zāi)難性的后果.因?yàn)槿挚偸窍蚋玫姆较蜻M(jìn)化。∧欠N壞死的局部會(huì)逐步的從全局中剔除。。INUX可以是玩具,也可以是嚴(yán)肅的管理層人員認(rèn)為的計(jì)算機(jī)系統(tǒng).但不論從那一方面看,它的自由和開(kāi)放導(dǎo)致的自適應(yīng)性已經(jīng)非常完美的讓他成為我們這個(gè)世界上軟件技術(shù)中最重要的一股力量.我們的智慧正在以算法的模式通過(guò)自由開(kāi)源軟件以人工智能的形式被更高的設(shè)備實(shí)現(xiàn)!!借用REDHAT張先民老先生的話(huà):未來(lái)重未如此開(kāi)放。
作者: susemm    時(shí)間: 2014-01-11 16:55
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
最早做VxWorks開(kāi)發(fā),后來(lái)轉(zhuǎn)做嵌入式Linux開(kāi)發(fā),可能由于posix的關(guān)系,感覺(jué)差別不是特別的大,再后來(lái)慢慢做了一些GTK程序的開(kāi)發(fā)。
man是個(gè)很不錯(cuò)的工具,可以從里面找到大部分你想要的信息。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
不管是往上層走還是往底層走,系統(tǒng)編程的經(jīng)驗(yàn)都是一個(gè)很好的基礎(chǔ)。

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
注意積累;
學(xué)會(huì)記筆記,現(xiàn)在的很多筆記軟件都挺不錯(cuò)的;
學(xué)會(huì)不斷的總結(jié),過(guò)一段時(shí)間后對(duì)前面的積累的東西做一個(gè)歸納總結(jié)。


作者: CUTianrui007    時(shí)間: 2014-01-11 17:24
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
開(kāi)始接觸Linux系統(tǒng)編程是從嵌入式Linux入手的,那時(shí)移植Linux到ARM芯片上,并為其寫(xiě)驅(qū)動(dòng)程序。后來(lái),工作以后,自己動(dòng)手修改Linux內(nèi)核,純粹是為了樂(lè)趣,從中學(xué)習(xí)OS的知識(shí),另外,也突發(fā)奇想,在內(nèi)核中實(shí)現(xiàn)一些Windows的東西,這個(gè)比較有意思。不管是否成功,最重要的是加深了對(duì)Linux和Windows的理解。同時(shí),也接觸到了一些Linux下的逆向工程問(wèn)題。

對(duì)比Windows下編程,其實(shí)它們都是OS,都是一個(gè)標(biāo)準(zhǔn),只是實(shí)現(xiàn)思路不同,所以我一向是Windows和Linux一起學(xué)習(xí),正向逆向一起學(xué)習(xí),前后貫通,綜合對(duì)比,發(fā)現(xiàn)OS中最本質(zhì)的東西。編程本身最重要的是其后面的思想,理解了它,什么Windows,Linux都是浮云。
舉個(gè)例子,我們都知道fork函數(shù),創(chuàng)建一個(gè)新的進(jìn)程,這個(gè)函數(shù)的實(shí)現(xiàn)方式和Windows的創(chuàng)建進(jìn)程CreateProcess其實(shí)現(xiàn)思路完全不一樣,fork的基本思路是先復(fù)制再修改,而Windows下的CreateProcess則可以說(shuō)是,從天而降,一個(gè)完全的新的進(jìn)程,所以Windows要提供一個(gè)跨進(jìn)程操作以實(shí)現(xiàn)對(duì)新建進(jìn)程的設(shè)置,而Linux下則不允許這樣做。當(dāng)然,你如何從這一點(diǎn)而認(rèn)為,Windows的安全性天生就不如Linux,也還可以吧。

我是從一個(gè)函數(shù)調(diào)用時(shí)連出入棧操作都不知道的人,發(fā)展到現(xiàn)在閱讀Linux內(nèi)核源碼,就是按照上面的一路走過(guò)來(lái)的。(不要拍,我只是對(duì)OS有興趣,我不是牛人)

2:Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
不得不說(shuō),Linux系統(tǒng)編程難度大,廣度和深度都是Windows所不及的,F(xiàn)在市場(chǎng)上Linux系統(tǒng)編程主要集中在嵌入式系統(tǒng),內(nèi)核移植及服務(wù)器維護(hù)方面。深入學(xué)習(xí)Linux系統(tǒng)編程是對(duì)操作系統(tǒng)的一個(gè)極好的理解方式。單從錢(qián)的方面來(lái)說(shuō),Linux下的編程絕對(duì)比Widnows下編程要profitable的多,畢竟難度和收入是成正比的。另外,系統(tǒng)編程的前提是對(duì)Linux系統(tǒng)必須深入理解,從這個(gè)角度來(lái)說(shuō),Linux的系統(tǒng)編程要比應(yīng)用編程職業(yè)生涯順利得多。
另外,就是不以L(fǎng)inux系統(tǒng)編程為業(yè),學(xué)點(diǎn)這方面的知識(shí)也是很有必要的,它有助于你對(duì)運(yùn)維,對(duì)OS的深入理解。
另外,現(xiàn)在Linux在桌面領(lǐng)域占有量也在上升,對(duì)系統(tǒng)編程來(lái)說(shuō),也是個(gè)好事。Android還是基于Linux的呢。

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
A:一定要有興趣,興趣是最好的老師
B:一定要參加社區(qū)或論壇,經(jīng)常與同行交流,否則,你會(huì)覺(jué)得很沒(méi)有成就感。畢竟:獨(dú)學(xué)而無(wú)友,則孤陋而寡聞。
C:一定找到好的參考書(shū),現(xiàn)在Linux的書(shū)多如牛毛,但是一定要選擇經(jīng)典,比如毛德操的書(shū),沒(méi)幾本,每一本都是極好的。另外,Linux內(nèi)核四大金剛,那是必須的?蠢鴷(shū),不是在浪費(fèi)時(shí)間,是在浪費(fèi)生命。
D:一定要?jiǎng)邮謱?xiě)代碼,比較有意思的形式是自己修改內(nèi)核,在內(nèi)核做實(shí)驗(yàn)。
E:一定不能忽略硬件,我一直有個(gè)體會(huì):CPU是硬化的OS,OS是軟化的CPU,一定要對(duì)CPU硬件本身進(jìn)行深入研究,知道其寄存器設(shè)置的原理,知道硬件背后的OS機(jī)制,只能這樣才能更加深入理解OS和CPU及其間聯(lián)系。
舉個(gè)例子:我們都知道,中斷后,CPU會(huì)向堆棧中存儲(chǔ)CS,SS,IP等寄存器,形成的一個(gè)Frame,參考Windows的實(shí)現(xiàn)機(jī)制,你就會(huì)發(fā)現(xiàn),它剛好提供了一個(gè)結(jié)構(gòu)體_KTRAP_Frame,結(jié)構(gòu)體最后幾位就是CPU自動(dòng)存儲(chǔ)的這幾個(gè)寄存器。
kd> dt nt!_KTRAP_FRAME
   +0x000 DbgEbp           : Uint4B
   +0x004 DbgEip           : Uint4B
   +0x008 DbgArgMark       : Uint4B
   +0x00c DbgArgPointer    : Uint4B
   +0x010 TempSegCs        : Uint4B
   +0x014 TempEsp          : Uint4B
   +0x018 Dr0              : Uint4B
   +0x01c Dr1              : Uint4B
   +0x020 Dr2              : Uint4B
   +0x024 Dr3              : Uint4B
   +0x028 Dr6              : Uint4B
   +0x02c Dr7              : Uint4B
   +0x030 SegGs            : Uint4B
   +0x034 SegEs            : Uint4B
   +0x038 SegDs            : Uint4B
   +0x03c Edx              : Uint4B
   +0x040 Ecx              : Uint4B
   +0x044 Eax              : Uint4B
   +0x048 PreviousPreviousMode : Uint4B
   +0x04c ExceptionList    : Ptr32 _EXCEPTION_REGISTRATION_RECORD
   以下幾個(gè)由push操作,通過(guò)代碼填充
   +0x050 SegFs            : Uint4B
   +0x054 Edi              : Uint4B
   +0x058 Esi              : Uint4B
   +0x05c Ebx              : Uint4B
   +0x060 Ebp              : Uint4B
   以下幾個(gè)都是由硬件自動(dòng)填充的
   +0x064 ErrCode          : Uint4B
   +0x068 Eip              : Uint4B
   +0x06c SegCs            : Uint4B
   +0x070 EFlags           : Uint4B
   +0x074 HardwareEsp      : Uint4B
   +0x078 HardwareSegSs    : Uint4B
   +0x07c V86Es            : Uint4B
   +0x080 V86Ds            : Uint4B
   +0x084 V86Fs            : Uint4B
   +0x088 V86Gs            : Uint4B

作者: 奮斗的小牛    時(shí)間: 2014-01-11 20:01
書(shū)名是什么?回復(fù) 6# crazyhadoop


   
作者: fire_cpp    時(shí)間: 2014-01-11 21:13
沒(méi)做過(guò)系統(tǒng)編程方面的事。但從前學(xué)過(guò)一本linux/unix系統(tǒng)編程的書(shū),真的感覺(jué)受益很大,可以從更深層的角度來(lái)理解這個(gè)系統(tǒng),對(duì)運(yùn)維、應(yīng)用軟件開(kāi)發(fā)、甚至是網(wǎng)站開(kāi)發(fā)都有好處。建議每個(gè)系統(tǒng)管理人員、這個(gè)平臺(tái)的開(kāi)發(fā)人員都學(xué)一點(diǎn)。
作者: superwiles    時(shí)間: 2014-01-12 03:17
這書(shū)翻譯這么久,總算出了,  豆瓣上都吵了很久了阿,  呵呵
翻譯質(zhì)量如何啊
作者: flike    時(shí)間: 2014-01-12 09:22
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: Nan_Xiao    時(shí)間: 2014-01-12 15:07
(1) 您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
我是2006年研究生一年級(jí)時(shí)開(kāi)始接觸Linux系統(tǒng)編程的,當(dāng)時(shí)是因?yàn)槲覍?shí)習(xí)的公司用到Linux。后來(lái)自己在業(yè)余時(shí)間看了一些系統(tǒng)編程方面的書(shū),還實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)協(xié)議。通過(guò)研究生這兩年的經(jīng)歷,算是對(duì)Linux/UNIX系統(tǒng)編程有了一個(gè)入門(mén)。2008年研究生畢業(yè)后,并沒(méi)有從事Linux/UNIX系統(tǒng)編程的相關(guān)工作,而是做手機(jī)MMI程序的開(kāi)發(fā)。2010年來(lái)到現(xiàn)在這家公司,才又重新開(kāi)始Linux/UNIX系統(tǒng)編程的工作,目前我主要在Solaris/Linux系統(tǒng)上從事通信網(wǎng)關(guān)和服務(wù)器程序的開(kāi)發(fā)。通過(guò)這些年的經(jīng)歷,我覺(jué)得從事Linux/UNIX系統(tǒng)編程最大的益處就是可以獲得很多計(jì)算機(jī)底層系統(tǒng)的知識(shí)。舉幾個(gè)例子來(lái)說(shuō):通常我們都使用gcc編譯器編譯程序,我們需要了解一些常用編譯選項(xiàng)的含義,因?yàn)橛锌赡芤粋(gè)編譯選項(xiàng)就會(huì)導(dǎo)致程序不按你的想法運(yùn)行;程序不可能沒(méi)有bug,也許我們需要gdb幫助我們?cè)敿?xì)了解程序的內(nèi)存布局,去找到原因;有時(shí)程序在一個(gè)處理器上運(yùn)行的好好的,而在另一個(gè)上面就不行,此時(shí)我們可能又要去了解處理器結(jié)構(gòu)和匯編語(yǔ)言。總之,作為一個(gè)底層軟件工程師,需要不斷地學(xué)習(xí)計(jì)算機(jī)最底層最核心的技術(shù),這是件很快樂(lè)的事情。

(2) Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
最近幾年,隨著移動(dòng)互聯(lián)網(wǎng)的興起,前端技術(shù)越來(lái)越受到大家的重視,而底層技術(shù)似乎現(xiàn)在的關(guān)注度并不高。我個(gè)人覺(jué)得Linux/UNIX系統(tǒng)編程知識(shí)是程序員的重要基礎(chǔ),無(wú)論你從事什么方面的開(kāi)發(fā),了解系統(tǒng)編程知識(shí)和原理,對(duì)你是有百益而無(wú)一害的,Linux/UNIX系統(tǒng)編程也永遠(yuǎn)不會(huì)被淘汰。所以,我們這些Linux/UNIX系統(tǒng)編程工程師需要做的就是不斷學(xué)習(xí),提高自己的技術(shù)能力。

(3)對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
我并不是一個(gè)資深的工程師,以下是我個(gè)人的一點(diǎn)經(jīng)驗(yàn)和體會(huì),希望給大家一點(diǎn)啟示吧:
首先要調(diào)整好心態(tài),現(xiàn)在是個(gè)浮躁的社會(huì),所以要盡量著讓自己靜下心來(lái),踏踏實(shí)實(shí)地去學(xué)習(xí)技術(shù)。
第二就是多實(shí)踐,經(jīng)典的技術(shù)書(shū)籍很多,可是光是閱讀,效果并不好。要試著自己寫(xiě)一些代碼,這樣會(huì)加深印象。
第三就是多讀好的開(kāi)源代碼,F(xiàn)在github上有很多的優(yōu)秀代碼值得我們學(xué)習(xí)。拿著名的NoSQL數(shù)據(jù)庫(kù)Redis來(lái)說(shuō),看完Redis的main函數(shù),我們就可以了解到如何創(chuàng)建一個(gè)deamon進(jìn)程了,此外我們也會(huì)從中學(xué)到如何寫(xiě)個(gè)好的高并發(fā)服務(wù)器程序,如何訪(fǎng)問(wèn)文件系統(tǒng)等等。

以上是我的一孔之見(jiàn),希望能給大家一點(diǎn)幫助吧。

作者: cjdao    時(shí)間: 2014-01-12 17:43
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
   參加工作不覺(jué)已有4年,個(gè)人從事的工作勉強(qiáng)算嵌入式開(kāi)發(fā)吧,處于剛?cè)腴T(mén)的水平。剛好年底,總結(jié)一下。
懵懂無(wú)知之期:
   剛剛畢業(yè)的時(shí)候,僅僅用過(guò)在單片機(jī)上用C語(yǔ)言寫(xiě)一些極其簡(jiǎn)單的跑馬燈程序。那時(shí)候以為所謂的計(jì)算機(jī)技術(shù),大抵不外如是吧--用C語(yǔ)言控制控制硬件管腳。軟件的唯一用處就是按照硬件設(shè)計(jì)的邏輯,做一些簡(jiǎn)單的拼湊。畢業(yè)后加入了現(xiàn)在的公司參加工作,那時(shí)候linux是什么都全然不知,更別提在其上進(jìn)行軟件開(kāi)發(fā)。機(jī)緣巧合的是,公司的項(xiàng)目需要,不得不去接觸linux。還記得將一個(gè)項(xiàng)目代碼移植到另一個(gè)項(xiàng)目,面對(duì)著makefile滿(mǎn)臉的茫然,于是只能硬著頭皮照貓畫(huà)虎的改,結(jié)果可想而知--杯具。
開(kāi)始了解linux:
   在項(xiàng)目開(kāi)發(fā)中屢屢遭遇挫折后,開(kāi)始有了一種迫切去了解linux的需求。于是便從讀書(shū)開(kāi)始,第一本書(shū)是<鳥(niǎo)哥的 Linux 私房菜>,通過(guò)這本書(shū),也算是對(duì)linux有了一非常感性的認(rèn)識(shí),然后通過(guò)<跟我一起寫(xiě) Makefile>了解了軟件編譯系統(tǒng)的構(gòu)造,接著就是啃APUE這個(gè)大部頭,還有就是啃另一個(gè)個(gè)大部頭<深入理解計(jì)算機(jī)系統(tǒng)>。通過(guò)上面幾本書(shū)的洗禮,才算逐漸可以應(yīng)付起平時(shí)項(xiàng)目開(kāi)發(fā)中種種需求。
開(kāi)始了解設(shè)計(jì)思想:
   雖然是可以應(yīng)付平常的項(xiàng)目了,但另外的困惑卻又隨之而來(lái),自己開(kāi)發(fā)的程序,在項(xiàng)目需求有變更時(shí),總是會(huì)處于牽一發(fā)而動(dòng)全身的無(wú)奈境地。后來(lái)有幸參與了公司的一個(gè)公版代碼的重構(gòu)工作。于是開(kāi)始發(fā)現(xiàn),程序開(kāi)發(fā)除了實(shí)現(xiàn)功能還有另外一些更重要的東西需要去關(guān)注。軟件的可復(fù)用性,易維護(hù)性,模塊性等等,而對(duì)于這些東西的考慮,可以稱(chēng)之為"軟件設(shè)計(jì)的藝術(shù)"。<UNIX編程藝術(shù)>這本書(shū),對(duì)于我來(lái)說(shuō),可以說(shuō)另一次的技術(shù)啟蒙。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
    在網(wǎng)絡(luò)上,經(jīng)?吹疥P(guān)于linux與windows,或者java,C++, C等這些東西的爭(zhēng)論,而論點(diǎn)基本就是誰(shuí)更優(yōu)越。個(gè)人覺(jué)得,這些都是無(wú)謂之爭(zhēng)。我們需要記住的是,技術(shù)說(shuō)到底其實(shí)就是工具,僅僅是一種達(dá)到目標(biāo)的手動(dòng)。不同的工具適用于不同的場(chǎng)景。因此我們要盡量避免的一個(gè)誤區(qū)是將自己限定于某種技術(shù),固步自封!因?yàn)檫@對(duì)于個(gè)人職業(yè)發(fā)展有百害而無(wú)一利。   
    其實(shí)不管是Linux/UNIX系統(tǒng)編程還是其他什么編程,對(duì)于職業(yè)發(fā)展的考慮都大抵可以從兩個(gè)方面出發(fā):興趣與錢(qián)途。至于孰輕孰重則取決于個(gè)人的價(jià)值觀。
    linux系統(tǒng)編程的職業(yè)發(fā)展,單單從技術(shù)的角度來(lái)考慮的話(huà),可以從以下幾個(gè)方面去考慮吧:
a)Linux的系統(tǒng)、網(wǎng)絡(luò)、服務(wù)、集群、網(wǎng)站、網(wǎng)絡(luò)應(yīng)用方向。
b)嵌入式開(kāi)發(fā)、UNIX/Linux應(yīng)用系統(tǒng)開(kāi)發(fā),Linux內(nèi)核驅(qū)動(dòng)開(kāi)發(fā)方向。
c)Linux下的數(shù)據(jù)庫(kù),如Mysql、oracle和windows下的SQL Server及DB2等。

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
    本人自己也屬于剛?cè)腴T(mén)階段,教誨肯定是不敢有的,只能說(shuō)些個(gè)人感悟,予以共勉:
a)軟件技術(shù)日新月異,因此這就要求我們不可心浮氣躁,切記漫無(wú)目的的跟風(fēng);可以看看陳皓<程序員技術(shù)練級(jí)攻略>。
b)不要將自己限定于技術(shù)區(qū)域,多了解了解整個(gè)行業(yè)的發(fā)展,對(duì)于自己肯定是會(huì)有更多的好處的。
作者: apang1992    時(shí)間: 2014-01-12 18:59
討論話(huà)題:
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
  本人就是一個(gè)大四的學(xué)生,往嵌入式linux的方向努力。目前沒(méi)有什么項(xiàng)目經(jīng)驗(yàn),但實(shí)驗(yàn)做了不少。應(yīng)用層的書(shū)讀過(guò)了《beginning  the linux programming edition 4》作為入門(mén)。本人也有《apue》,而且是先入手的,看了幾頁(yè),發(fā)現(xiàn)一開(kāi)始就跟你講標(biāo)準(zhǔn)什么的,完全不知所云,瞬間急流勇退,買(mǎi)了本《beginning the linux programming edition 4》,當(dāng)我讀完這本書(shū)  再來(lái)看《apue》的時(shí)候,發(fā)現(xiàn)我當(dāng)初避開(kāi)apue是正確的。但是還沒(méi)有足夠的時(shí)間把這本書(shū)通讀完。一直以來(lái),想著linux黑客們能馬上出一本專(zhuān)門(mén)針對(duì)linux系統(tǒng)編程的書(shū)籍,哈哈  終于等到了。。準(zhǔn)備年后入手,聽(tīng)評(píng)論,貌似我之前的linux應(yīng)用層的書(shū)籍可以暫時(shí)壓箱了。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
  本人大四,正準(zhǔn)備入行,現(xiàn)在菜鳥(niǎo)還算不上,可能是我的目標(biāo)定的太高了,一般嵌入式linux系統(tǒng)工程師都需要碩士學(xué)位以上,本科生一般入行做應(yīng)用層編程。正如上面幾位前輩說(shuō)的,不要好高騖遠(yuǎn),這句話(huà)是我聽(tīng)過(guò)的最多的勸誡之一。還是得把買(mǎi)的開(kāi)發(fā)板摸透,認(rèn)真讀程序 然后碼程序。聽(tīng)我的畢業(yè)設(shè)計(jì)的導(dǎo)師還有其他相關(guān)人士說(shuō):未來(lái)是google的天下,ios已死。雖然聽(tīng)著有點(diǎn)沖,但毫無(wú)疑問(wèn),在嵌入式行業(yè),android是未來(lái)的發(fā)展方向,從linux轉(zhuǎn)android想必是大勢(shì)所趨。

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
  我自己就是一個(gè)新手,大四放棄了保研。別人找工作的時(shí)候,我還在讀書(shū)碼程序,因?yàn)榻o自己定的門(mén)檻有點(diǎn)高,專(zhuān)業(yè)知識(shí)還沒(méi)有完全成型(成熟)。最想對(duì)自己說(shuō),還有最后的半年時(shí)間,努力加油,hard work will pay off! 想對(duì)學(xué)弟學(xué)妹說(shuō):其他行業(yè)我不知道,但至少在電子計(jì)算機(jī)行業(yè),學(xué)好理論知識(shí)對(duì)你以后的學(xué)習(xí)是大有裨益的,千萬(wàn)不要被報(bào)紙上的那些天才黑客迷惑,想要入行,還的腳踏實(shí)地。

作者: lbseraph    時(shí)間: 2014-01-12 20:13
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
我一直不是做編程開(kāi)發(fā)這一塊的,不過(guò)以前上學(xué)的時(shí)候就想做編程,可惜剛畢業(yè)后并沒(méi)機(jī)會(huì)進(jìn)IT行業(yè),等進(jìn)入IT行業(yè)了之后一直也僅是做硬件技術(shù)的多。不過(guò),自己在空余時(shí)間自學(xué)點(diǎn)Shell、Perl編程,不過(guò)還都是皮毛,主要是工作上面不相干,做起來(lái)也沒(méi)啥動(dòng)力。所以這一塊的經(jīng)驗(yàn)也沒(méi)上面做開(kāi)發(fā)的兄弟多,至少知道的是這活得靠動(dòng)手多練,經(jīng)驗(yàn)是靠失敗慢慢積累出來(lái)的。前面的人也說(shuō)得對(duì),無(wú)論哪種編程語(yǔ)言都無(wú)所謂,其實(shí)不少東西都是不變的,得培養(yǎng)自己獨(dú)有的設(shè)計(jì)思路;個(gè)人認(rèn)為算法很重要,實(shí)現(xiàn)同樣的功能,你用了100行代碼,別人用了60行代碼就ok了,執(zhí)行效率是不一樣的。
另外,4#說(shuō)的我也有同感,進(jìn)行后有一個(gè)帶入門(mén)的師傅很重要,他能指點(diǎn)你該怎么走,提供些有效率的參考信息,這樣能讓你少走很多彎路。但實(shí)際生活上,很少能在對(duì)的時(shí)間里面碰到對(duì)的師傅;這一點(diǎn)在其他行業(yè)其他崗位上應(yīng)該也是這樣。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
我在這方面接觸不多,也說(shuō)不了多少,不過(guò)也有碰過(guò)些以前是做編程的同事,也了解過(guò)一些背后的辛酸。以前一個(gè)女同事做編程的,說(shuō)經(jīng)常熬夜加班,有次通宵后第2天早上沒(méi)回去休息之前老板竟然問(wèn)她還能不能繼續(xù)干活,F(xiàn)在公司開(kāi)發(fā)部門(mén)去年有一哥們?cè)诩也恢涝趺磿灥,送醫(yī)院后發(fā)現(xiàn)是腦溢血(不能說(shuō)肯定就是他工作原因直接導(dǎo)致,但起碼應(yīng)該能算個(gè)間接因素--用腦太多),后來(lái)公司還發(fā)動(dòng)所有人捐了近20w給他做手術(shù)?催^(guò)資料,不少寫(xiě)代碼的最晚到30多歲就得考慮轉(zhuǎn)型了,畢竟拼體力的干不過(guò)剛畢業(yè)的年輕人,而且很多都是重復(fù)性的工作。
我做硬件那么久,發(fā)現(xiàn)到后面涉及的code層面的時(shí)候覺(jué)得如果有些軟件編程的經(jīng)驗(yàn)的話(huà)會(huì)更容易貫通,而公司里面level比較高的工程師也大多是軟件背景出身的。所以有時(shí)候我會(huì)想是否畢業(yè)時(shí)應(yīng)該做些編程方面的工作,之后再轉(zhuǎn)硬件會(huì)比較好。當(dāng)然,如果能知道職業(yè)發(fā)展的目標(biāo),自己定好學(xué)習(xí)線(xiàn)路也行,但沒(méi)人或大部分人能一開(kāi)始就知道自己以后就一定做什么,很多時(shí)候出現(xiàn)各種變數(shù)而進(jìn)行修訂。

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
基礎(chǔ)很重要!一開(kāi)始不用學(xué)太多編程語(yǔ)言,先找個(gè)最基本的好好學(xué)好好練習(xí),比如C;之后再學(xué)其他的比如C++、Java之類(lèi)就快多了。培養(yǎng)好良好的書(shū)寫(xiě)習(xí)慣,這可以增加你代碼的可讀性和避免不必要的問(wèn)題(比如少了個(gè)分號(hào)之類(lèi)導(dǎo)致編譯時(shí)出錯(cuò)),可以看看林銳的《高質(zhì)量程序設(shè)計(jì)C/C++》。除了單純編程知識(shí)外,最好也同時(shí)涉獵些其他的相關(guān)知識(shí),比如數(shù)據(jù)結(jié)構(gòu)、硬件技術(shù)(硬件離不開(kāi)軟件,軟件同時(shí)也需要硬件的支持)。自己學(xué)會(huì)定好目標(biāo),按部就班一步一步實(shí)現(xiàn),不要老想著一蹴而就,要知道羅馬城也不是一天就能建成的。
作者: hummingunix    時(shí)間: 2014-01-12 23:03
其實(shí)自己挺喜歡linux的,在下面編程,外人一看都覺(jué)得你是高手,可惜公司偏要選window程序,搞得我現(xiàn)在linux好多東西都忘了。希望明年能專(zhuān)心做一個(gè)linux項(xiàng)目
作者: 流氓無(wú)產(chǎn)者    時(shí)間: 2014-01-13 09:33
最難的是搞懂底層真正的運(yùn)行機(jī)制,而不是怎么調(diào)
否則很難提高性能
作者: sdau    時(shí)間: 2014-01-13 09:42
正在編輯....
作者: crazyhadoop    時(shí)間: 2014-01-13 10:30
回復(fù) 26# 奮斗的小牛


    Linux/UNIX系統(tǒng)編程手冊(cè)
作者: to407    時(shí)間: 2014-01-13 12:19
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?


這些問(wèn)題之前,我們可以先討論一下這是一本什么書(shū)。
10年的時(shí)候書(shū)出來(lái),不久就讀到了電子版本,基本上算是比較早的讀者了。我的意見(jiàn)是,這本書(shū)更應(yīng)該是一本參考用書(shū),而不是一本教程。
為什么這么講,這類(lèi)書(shū)的好的教程,我更推薦《Linux Programming by Example》 http://book.douban.com/subject/1610230/ 有實(shí)例,再舊都是practice。
作者mtk本身就是manpage的維護(hù)者,這本書(shū)顯然是受到了manpage的例證影響,很多章節(jié)的內(nèi)容,基本是和man的結(jié)果一致的,換句話(huà)說(shuō),這本書(shū)不會(huì)有太新的內(nèi)容,超越man。
另一方面,這本書(shū)同樣受到apue的影響,可以找到和apue的相同的例子,也有不少和manpage相同的例子。相似地以api為線(xiàn)索來(lái)分章節(jié)。而且由于不可逆的原因,這本tlpi肯定是要比apue新很>多,而且是以linux為平臺(tái),談了susV3/V4的內(nèi)容。所以部頭要比apue大很多。
在mtk的頁(yè)面上有這本書(shū)的course material,當(dāng)然我不是很推薦以這本書(shū)入門(mén),太過(guò)碎片化,還是推薦上面那本書(shū)入手,早有中文版本。
但這本書(shū)是適合用來(lái)作參考書(shū)的,標(biāo)準(zhǔn)本身和linux都是變化中的平臺(tái),里面的東西也隨時(shí)會(huì)過(guò)時(shí),我比較建議入手的朋友們,在讀到困惑的地方或者覺(jué)得有誤之處,盡量同mtk直接郵件交流,>或提交errta。他不是很懂所有的細(xì)節(jié),但他會(huì)對(duì)資料來(lái)源和具體數(shù)值做對(duì)校。
我之前給mtk寫(xiě)過(guò)一些郵件討論這書(shū)的細(xì)節(jié),基本上他的意見(jiàn)是每次print,或者電子版更新會(huì)盡量考慮errta的補(bǔ)入,和標(biāo)準(zhǔn)的變化。所以這書(shū)的內(nèi)容是會(huì)變的,大家可以看電子版本更新,自己
攺進(jìn)來(lái)。

還有,如果不是做linux開(kāi)發(fā)的,而是其他類(lèi)unix平臺(tái),如BSD/Solaris/AIX的話(huà),還是看各自平臺(tái)的api,看susV4,看apue,不要以這本書(shū)作參考。


然后談?wù)勚黝}。
我認(rèn)為這個(gè)行業(yè)還是很有意思的,誰(shuí)有興趣入門(mén),我都愿意交流。
從入門(mén)的角度看,我認(rèn)為基本的知識(shí)就是c語(yǔ)言,操作系統(tǒng),cpu寄存器這些基礎(chǔ)知識(shí)。加上對(duì)linux/unix的興趣。如果是大學(xué)本科的話(huà),可以在二年級(jí)的時(shí)候讀這本書(shū),在這本書(shū)之前可以把csapp給讀了。然后以上面的linuxprogrammingbyexample當(dāng)成教材來(lái)練。
從發(fā)展的角度,目前來(lái)講,虛擬化,嵌入式平臺(tái)有很大的發(fā)展空間,就算是android編程,也可以對(duì)底層的linuxkernel有比較好的理解。而且在nosql/openstack的項(xiàng)目里,linux編程都很重要>的。這些api平時(shí)多練練sample,用的時(shí)候就熟悉了。 當(dāng)然就算遇到類(lèi)似crashdump,不熟悉的api,直接翻源代碼,翻這本書(shū)來(lái)參考,也是來(lái)得及的。
我認(rèn)為這個(gè)方向的編程,是沒(méi)有太好的捷徑的,也只有多練習(xí),多看代碼,新入門(mén)可以追一些較小的開(kāi)源項(xiàng)目,然后可以看看linuxkernel的某個(gè)子模塊來(lái)理解。
~      
作者: to407    時(shí)間: 2014-01-13 12:27
btw, 我是 不覺(jué)得這本書(shū)名應(yīng)該包括UNIX這個(gè)詞 , 就像它的英文名也只講到linux.

\ 雖然說(shuō)有提到susV3/V4, 但問(wèn)題是 就算不同的平臺(tái)都符合標(biāo)準(zhǔn),但他們的implementation和practise behavior都有很大的不同, 和mtk聊的過(guò)程中,也發(fā)現(xiàn)他specific on linux,而且是常見(jiàn)的linux發(fā)行版本作為參考標(biāo)準(zhǔn),即使是不同linux平臺(tái)沒(méi)有全實(shí)現(xiàn)的,也不盡收錄。

像-Wall -std=c99 狀態(tài), 沒(méi)有提關(guān)于C99的具體內(nèi)容,只是說(shuō)linux平臺(tái)自身, 所以像printf的 %zd也沒(méi)有談及。

那就更不應(yīng)該 include UNIX了。

imdo
作者: luobo5100    時(shí)間: 2014-01-13 15:58

在Linux系統(tǒng)下做開(kāi)發(fā)時(shí)間比較短,半年時(shí)間的樣子,目前又在研究Linux/unix網(wǎng)絡(luò)編程,所以對(duì)此書(shū)還是比較想擁有的,希望可以贈(zèng)我一套
作者: wait_rabbit    時(shí)間: 2014-01-13 17:11

其實(shí)我最推薦《UNIX Systems Programming: Communication, Concurrency and Threads》

中文名《unix系統(tǒng)編程》,翻譯得也很不錯(cuò)。
作者: lkkkun    時(shí)間: 2014-01-14 09:10
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)。
   大學(xué)二年級(jí)開(kāi)始接觸LInux,后面也玩過(guò)freebsd,畢業(yè)之后一直從事Linux的開(kāi)發(fā),個(gè)人覺(jué)得linux編程最核心的還是系統(tǒng)編程,學(xué)習(xí)好系統(tǒng)編程,在日常編程中你會(huì)覺(jué)得有事倍功半的感覺(jué)。
2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討。
  現(xiàn)在貌似都是往云的方向發(fā)展,也行大數(shù)據(jù)的處理linux有更大的優(yōu)勢(shì)。
3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
拋棄window吧,個(gè)人編程電腦直接linux ,不要虛擬機(jī)。
作者: 刺客阿地    時(shí)間: 2014-01-14 10:14
不懂編程,俺只是個(gè)打雜的系統(tǒng)運(yùn)維人員。
目前在linux操作系統(tǒng)上,只寫(xiě)寫(xiě)shell腳本,編程涉及不到,到此圍觀大牛,學(xué)習(xí)編程和職業(yè)生涯經(jīng)驗(yàn)!
同時(shí),積極支持cu活動(dòng)!
作者: redpig315    時(shí)間: 2014-01-14 15:10
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
  首先從認(rèn)識(shí)Linux系統(tǒng)開(kāi)始吧,這主要是在大學(xué)的時(shí)候同學(xué)給了一份ubuntu的安裝盤(pán)開(kāi)始,這個(gè)東西很好,圖形界面的,可是還是不會(huì)用,就是裝裝,顯擺一下而已,真正用到還是工作后,因?yàn)榻佑|了aix redhat,剛開(kāi)始只會(huì)ls 等,后來(lái)買(mǎi)了一本《鳥(niǎo)哥linux的私房菜》認(rèn)真的看過(guò)實(shí)踐過(guò),收獲頗多,知道文件系統(tǒng)等,然后就是后來(lái)看別人在系統(tǒng)下寫(xiě)的交易系統(tǒng),才算開(kāi)始我的linux編程入門(mén),用到的最多的就是sprintf ,等字符串操作的函數(shù),然后就是別人封裝好的東西,后來(lái)在網(wǎng)上找到《unix一站式編程》我覺(jué)得這本教程很不錯(cuò),基本上把c的很多東西講清楚了,后面還帶了不少思考題 ,不錯(cuò),建議大學(xué)生可以找去看看,幫助很大,在然后就是<unix高級(jí)系統(tǒng)環(huán)境編程>這本書(shū)基本上從通訊,設(shè)備,信號(hào),文件操作等方面將,很全面,對(duì)個(gè)人能力提升的幫助很大。因?yàn)閺氖碌氖墙鹑谛袠I(yè)所以C的框架較少,但是高陽(yáng)好像有個(gè)cs的 框架,學(xué)了學(xué),沒(méi)怎么弄懂,但是建議有機(jī)會(huì)的同學(xué),有機(jī)會(huì)要研究下。
2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
    我也迷茫其實(shí),因?yàn)楝F(xiàn)在我在做運(yùn)維,所以我覺(jué)得作為unix編程,不僅要精通C/C++ 還要掌握必要的腳本語(yǔ)言,如perl,shell,對(duì)存儲(chǔ),系統(tǒng)架構(gòu)需要了解一些,總之往系統(tǒng)架構(gòu)師,系統(tǒng)分析師方面轉(zhuǎn),其實(shí)最后我覺(jué)得大家都希望做管理吧,因?yàn)槟憧偟慕o后起之秀,新人一條路吧。
3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
不要浮躁,慢慢來(lái),多學(xué),多問(wèn),多練。多上chinaunix論壇看看,更上技術(shù)潮流
作者: ComeWithMeXX    時(shí)間: 2014-01-14 15:18
萬(wàn)變不離其宗,感覺(jué)
作者: sunny7476    時(shí)間: 2014-01-14 17:19
本帖最后由 sunny7476 于 2014-01-14 17:21 編輯

這本書(shū)是Handbook,是手冊(cè),是百科一樣的書(shū)。Linux的APUE。
  我看的是英文版的,還沒(méi)有讀完。中文版的既沒(méi)樣張,也還沒(méi)購(gòu)買(mǎi)。從內(nèi)容上來(lái)說(shuō),這本書(shū)感覺(jué)是一本關(guān)于Linux編程的百科全書(shū)式的參考手冊(cè),寫(xiě)的非常細(xì),幾乎所有的知識(shí)點(diǎn)都會(huì)講到。閱讀并不困難。因此,單從內(nèi)容上來(lái)看,本書(shū)是一本非常優(yōu)秀的參考鞏固用書(shū)。

  閱讀本書(shū)之前,如果是初學(xué)者,最好先讀《現(xiàn)代操作系統(tǒng)》等類(lèi)似的書(shū)、《Linux程序設(shè)計(jì)》,《CSAPP》。最好再看下Linux命令行與腳本編程的書(shū),《私房菜》也不錯(cuò)。

  讀完前三章后,后續(xù)的部分就可以當(dāng)作參考書(shū)用了。在對(duì)系統(tǒng)編程有基本了解的情況下,本書(shū)后續(xù)章節(jié)不難掌握。如前面的一位朋友所說(shuō),這本書(shū)是針對(duì)Linux所寫(xiě)的。

  至于本書(shū)的翻譯,先不談內(nèi)容。本書(shū)有兩批譯者。第一批譯者翻譯到34章后,感覺(jué)又累又沒(méi)錢(qián),就不翻譯了。然后出版社重新找了第二批人翻譯了后續(xù)的內(nèi)容。

  其中,第一批譯者給本書(shū)的評(píng)價(jià)是一星!滿(mǎn)分五星,只給一星!他批評(píng)本書(shū)原作者的母語(yǔ)不是英語(yǔ),本書(shū)英文書(shū)寫(xiě)的很爛。轉(zhuǎn)下話(huà)題,如果國(guó)人說(shuō)著不流利的英文,大部分情況下老外也能聽(tīng)的懂他在說(shuō)什么。老外中文不精通,但是國(guó)人通常也能明白其中的意思。這就是區(qū)別。跑過(guò)去說(shuō)英文沒(méi)表達(dá)好,晦澀,大部分情況下只能證明英文沒(méi)學(xué)好。而不知道如何將其翻譯成合適的中文,那只能證明中文表達(dá)能力有欠缺。最明顯的例子,就是許多豆瓣上的朋友在讀譯者噴原作者的那篇文章時(shí),都沒(méi)看懂譯者想表達(dá)的意思?戳嗽u(píng)價(jià)才看懂的(作者英文也沒(méi)學(xué)精,從他貼出來(lái)的給譯者的郵件可以略知一二)。另外,再舉個(gè)例子。單從表達(dá)上來(lái)看,中國(guó)人寫(xiě)的書(shū),只要不是太差,都能看得懂。中國(guó)人寫(xiě)的英文書(shū),也是如此。但是中國(guó)人翻譯的書(shū),差勁的和優(yōu)秀的卻差別很大。拿自己的翻譯能力去抨擊英文的寫(xiě)作能力未免不太好吧。

  最讓人震驚的是從豆瓣上得到的消息來(lái)看,其中一個(gè)譯者說(shuō):“本書(shū)譯文我們是沒(méi)有精力按照原版的修訂版和最新的勘誤表進(jìn)行調(diào)整了。本書(shū)譯文也沒(méi)有經(jīng)過(guò)統(tǒng)稿(我們可以保證上卷是統(tǒng)過(guò)稿的),出版社也不會(huì)額外出錢(qián)請(qǐng)人來(lái)統(tǒng)稿。”也就是說(shuō),翻譯本出版的時(shí)候,對(duì)應(yīng)的是最老的英文版。后期的修訂,勘誤什么的都沒(méi)有。原班譯者譯到34章,然后嫌錢(qián)少,而且每天還要耗費(fèi)4個(gè)小時(shí)以上。然后就不干了。讓出版社重新找人翻譯。。。

  至于翻譯內(nèi)容嘛,還沒(méi)看過(guò),不好評(píng)價(jià)。

個(gè)人觀點(diǎn)
作者: send_linux    時(shí)間: 2014-01-14 19:03
ComeWithMeXX 發(fā)表于 2014-01-14 15:18
萬(wàn)變不離其宗,感覺(jué)

好高深的說(shuō),實(shí)用啊
作者: banggou    時(shí)間: 2014-01-15 00:12
本帖最后由 banggou 于 2014-01-15 15:08 編輯
sunny7476 發(fā)表于 2014-01-14 17:19
這本書(shū)是Handbook,是手冊(cè),是百科一樣的書(shū)。Linux的APUE。
  我看的是英文版的,還沒(méi)有讀完。中文版的既 ...



當(dāng)時(shí)看過(guò)一段時(shí)間英文,不過(guò)還是紙板看著舒服點(diǎn)。 只希望不要又浪費(fèi)了一本好書(shū),
其實(shí)有時(shí)候 ,我個(gè)人覺(jué)得 翻譯以及出版社都可能會(huì)影響翻譯書(shū)籍的出版質(zhì)量。有時(shí)間有能力看原版最好


1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
從讀書(shū)開(kāi)始關(guān)注linux,從分析研究?jī)?nèi)核最初始版本開(kāi)始,到后來(lái)轉(zhuǎn)到linux環(huán)境下的編寫(xiě)網(wǎng)絡(luò)通信程序,到工作后,做智能電網(wǎng)數(shù)據(jù)采集,無(wú)線(xiàn)通信相關(guān)協(xié)議棧開(kāi)發(fā),基本開(kāi)發(fā)環(huán)境也都是在linux下,無(wú)論shell腳本編程,還是gdb等調(diào)試工具也是每天必用,Makefile也有手工寫(xiě)過(guò);仡欉@幾年的linux系統(tǒng)開(kāi)發(fā),也有一些感觸:
1.好的編程習(xí)慣很重要,無(wú)關(guān)編程環(huán)境以及所采用的環(huán)境
就我個(gè)人而言,好的編程習(xí)慣就是寫(xiě)出的代碼一定是簡(jiǎn)潔高效的,邏輯要清晰,結(jié)構(gòu)要簡(jiǎn)單,同時(shí)易于擴(kuò)展,做到流程的抽象以及對(duì)象的抽象,特別是linux下C這種非面向?qū)ο蟮恼Z(yǔ)言更要如此,這一塊,不是看些書(shū)就可以學(xué)到的,必須有一段編程實(shí)踐的積累,同時(shí)也要有好的參考例子,比如linux源代碼,或者其他一些開(kāi)源庫(kù)的源代碼都是不錯(cuò)的編程參考。這一塊非理論,一定是要在實(shí)踐,做事中學(xué)些領(lǐng)悟。

2.好的書(shū)籍不可少,linux入門(mén)同樣如此,需要循序漸進(jìn)
就我個(gè)人的經(jīng)歷而言,一本好書(shū),可以節(jié)省很多學(xué)習(xí)時(shí)間,如果是剛?cè)腴T(mén),還是入門(mén)許久的,還是應(yīng)該多讀點(diǎn)書(shū)(這里特指的linux開(kāi)發(fā)相關(guān),其他的增加知識(shí)的書(shū)籍同樣也可以多讀),保證知識(shí)儲(chǔ)備及時(shí)更新。網(wǎng)絡(luò)固然好,但是很多時(shí)候,網(wǎng)絡(luò)上的知識(shí)都是零碎的不系統(tǒng),而書(shū)籍這種系統(tǒng)化的知識(shí)整理的優(yōu)勢(shì)就體現(xiàn)出來(lái)了。但是現(xiàn)在書(shū)籍也是產(chǎn)業(yè)化,魚(yú)龍混雜,拼湊的以及亂翻譯的書(shū)籍也不少,這也需要篩選。
《鳥(niǎo)哥》  了解什么是linux,
《linux程序設(shè)計(jì)》,《Unix/Linux編程實(shí)踐教程》
這里強(qiáng)烈推薦下《Unix/Linux編程實(shí)踐教程》,主旨就是要在實(shí)踐中學(xué)習(xí),一步步告訴shell里面這些 cp copy 命令時(shí)怎么實(shí)現(xiàn)的,循序漸進(jìn),當(dāng)看完這本,linux下的應(yīng)用開(kāi)發(fā)基本也就能掌握了,之后可以深入如《環(huán)境高級(jí)編程》(話(huà)說(shuō)第三版怎么還沒(méi)有引進(jìn)?這版也強(qiáng)烈期待)做更細(xì)致學(xué)習(xí),只有這樣循序漸進(jìn)方才是捷徑,如果一上來(lái)就來(lái)本大部頭,估計(jì)是誰(shuí)也受不了。(捷徑是捷徑,但是還是需要投入一定的時(shí)間和努力)

3.即使做系統(tǒng)開(kāi)發(fā),對(duì)于linux內(nèi)部的實(shí)現(xiàn)原理最好也還是需要了解,這樣就需要積極研究下內(nèi)核代碼,這個(gè)工作其實(shí)《深度探索Linux操作系統(tǒng)》都開(kāi)始做了嘗試。。

4.做linux開(kāi)發(fā),腳本語(yǔ)言一定要掌握,即使一門(mén)也好,我們不需要再發(fā)明輪子,直接用即可,這也就是腳本語(yǔ)言的魅力,用寥寥幾行腳本代碼,可能就調(diào)用系統(tǒng)幾萬(wàn)行源代碼替你做事,何樂(lè)不為?

5.積極討論,這也不必多說(shuō)了吧,呵呵。


2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討   
上面也有說(shuō)了,系統(tǒng)編程可以算是一個(gè)“攻守兼?zhèn)洹钡闹虚g層,一般可能屬于平臺(tái),下面與fpga以及dsp soc等硬件,以及l(fā)inux內(nèi)核 打交道,上面提供系統(tǒng)封裝接口供應(yīng)用開(kāi)發(fā)。就業(yè)來(lái)說(shuō)其實(shí)面還是很廣的,基本上每個(gè)做linux軟件開(kāi)發(fā)的公司都會(huì)需要,而且隨著hadoop mapreduce等處理大數(shù)據(jù)的架構(gòu)逐步發(fā)展成熟,對(duì)于中間層這塊的技能要求會(huì)有很深的要求,這也是一個(gè)機(jī)遇和挑戰(zhàn)。
   總之,就像上一點(diǎn)說(shuō)的,不斷做知識(shí)的儲(chǔ)備(特別是底層linux內(nèi)核這塊工作原理,而不是只懂得調(diào)用系統(tǒng)接口),保持關(guān)注領(lǐng)域的知識(shí)更新?lián)Q代,即可不變應(yīng)萬(wàn)變。


3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
1.心態(tài)放好,學(xué)精通不可能一蹴而就。
2.養(yǎng)成好的編程習(xí)慣
3.積累沉淀
4.多讀書(shū)
5.多交流(網(wǎng)絡(luò),公司同事,同學(xué),開(kāi)源項(xiàng)目)
6.多思考,多做筆記,多share
7.眼光放開(kāi),不要只關(guān)注一點(diǎn)
8.有條件,還是去大點(diǎn)的公司
作者: storypku    時(shí)間: 2014-01-15 10:50
哈哈,這書(shū)中文版終于出來(lái)了。讀完了它的英文全本,并且成為了這本書(shū)勘誤第二多的人?墒,自己是個(gè)新手,沒(méi)有實(shí)際項(xiàng)目,找工作都是個(gè)麻煩事。哎哎。
作者: qshllxfx    時(shí)間: 2014-01-15 11:14
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
在校期間主要是Windows,工作后逐漸接觸到Linux/UNIX
從數(shù)據(jù)處理、算法設(shè)計(jì)、算法仿真,到軟硬件綜合實(shí)驗(yàn)仿真系統(tǒng),到掌上設(shè)備,通信設(shè)備
從C到C++,從Bash到Perl和Shell,從C++到Java,從Windows到Linux
我畢業(yè)后花了好多時(shí)間來(lái)摸索,最終還是找到了自己感興趣的技術(shù)領(lǐng)域。
我想,大部分人都不是天才,做技術(shù)不能完全靠天賦,要靠熱情,要能沉下心。
我所謂的經(jīng)驗(yàn)就是認(rèn)真、努力,所謂笨鳥(niǎo)先飛。
現(xiàn)在雖然業(yè)余時(shí)間不多,但我還是看完了APUE,CSAPP,以及其他一些別的領(lǐng)域的書(shū)。現(xiàn)在正在看SICP。
只要意識(shí)到晚了,就還不算晚。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
隨著大數(shù)據(jù)、網(wǎng)絡(luò)性能等的極速發(fā)展,相信Linux/UNIX系統(tǒng)編程將迎來(lái)他的蓬勃發(fā)展。
C語(yǔ)言過(guò)時(shí)了么?只要Linux/UNIX還在,C就不會(huì)過(guò)時(shí)。
UNIX過(guò)時(shí)了么?只要還有Hacker,UNIX就不會(huì)過(guò)時(shí)。
Java即便有再多的框架,也都是基于JVM的,
JVM即便能運(yùn)行再多的高級(jí)語(yǔ)言,Java,Scala,Clojure,Groovy,
它本身也是用匯編和C/C++寫(xiě)的。

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
我覺(jué)得我的職業(yè)生涯,包括學(xué)業(yè)生涯,最最遺憾的事情就是,在我有大量時(shí)間可以學(xué)習(xí)的時(shí)候,沒(méi)有一個(gè)牛人給指點(diǎn)一條路。
學(xué)校里學(xué)的東西,現(xiàn)在基本都不用了,F(xiàn)在用的,都是后來(lái)自學(xué)的。
學(xué)生時(shí)代基本上沒(méi)怎么開(kāi)竅,后來(lái)知道自己積極主動(dòng)到網(wǎng)上找牛人的建議的時(shí)候,已經(jīng)有點(diǎn)晚了。
如果當(dāng)時(shí)有個(gè)牛人指點(diǎn)一下,告訴我該看哪些方面的知識(shí),該看哪本書(shū),現(xiàn)在我的水平肯定是另一種狀態(tài)。
畢竟學(xué)校里的時(shí)間是充裕的,畢竟剛畢業(yè)時(shí)的業(yè)余時(shí)間是充裕的。
現(xiàn)在有了孩子,很多很多想做的事情,想研究的東西,卻只有晚上孩子睡后的一點(diǎn)點(diǎn)時(shí)間來(lái)學(xué)習(xí)。
我不是牛人,因此我給不出什么建議。
但是我看了很多大牛的建議,如果想在Linux/UNIX系統(tǒng)編程有所深入的話(huà),就好好研究研究APUE和這本書(shū)吧。
最后,借用CSAPP里的一段話(huà):
The great technical writer W. Richard Stevens developed a series of classic
texts on such topics as advanced Unix programming [APUE], the Internet protocols
[TCP/IP], and Unix network programming [UNP]. Serious students
of Unix systems programming will want to study all of them.

作者: qxhgd    時(shí)間: 2014-01-15 14:27
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
     工作內(nèi)容分布在用戶(hù)態(tài)和內(nèi)核態(tài),讀過(guò)apue,對(duì)其中的socket、進(jìn)程間通訊、IO等比較關(guān)注。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
       系統(tǒng)編程比較尷尬,底層不底層,上層不上層。但是學(xué)好了,就能上能下了。

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
(1)內(nèi)核態(tài)與用戶(hù)態(tài)并重,多讀源碼(內(nèi)核和開(kāi)源庫(kù))。
(2)可以從用戶(hù)態(tài)入門(mén)。
(3)多敲代碼,自己改造。
作者: Godbach    時(shí)間: 2014-01-16 13:26
回復(fù) 1# send_linux

好活動(dòng)。

書(shū)還是剛上市的。


   
作者: jerrymy    時(shí)間: 2014-01-16 14:36
好書(shū),不過(guò)目前沒(méi)有搞編程,只是之前看過(guò)系統(tǒng)編程的書(shū),此兩邊書(shū)可列入讀書(shū)計(jì)劃。
作者: jimmy-_-lixw    時(shí)間: 2014-01-16 17:33
好話(huà)題,支持Linux系統(tǒng)編程。
作者: to407    時(shí)間: 2014-01-17 10:20
qxhgd 發(fā)表于 2014-01-15 14:27

系統(tǒng)編程比較尷尬,底層不底層,上層不上層。但是學(xué)好了,就能上能下了。


這個(gè)我覺(jué)得, 做這個(gè)還是得懂底層,不懂os和cpu, 基本上做不了。  當(dāng)然再往上的 user scope app確實(shí)真沒(méi)必要懂太多。
作者: seesea2517    時(shí)間: 2014-01-17 11:36
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
  沒(méi)啥經(jīng)驗(yàn),就鼓搗鼓搗單片機(jī),折騰折騰app。
2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
  下寫(xiě)驅(qū)動(dòng)上寫(xiě)應(yīng)用。
3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?
  由淺入深,不受打擊;一步一印,夯實(shí)基礎(chǔ);把握思想,萬(wàn)變歸宗;興趣引領(lǐng),實(shí)踐中學(xué)。
作者: 古丁高手    時(shí)間: 2014-01-21 15:16
不錯(cuò)的選擇
作者: beyondfly    時(shí)間: 2014-01-22 13:41
在Linux下開(kāi)發(fā),一般是后臺(tái)服務(wù)程序和驅(qū)動(dòng)的開(kāi)發(fā),尤其是驅(qū)動(dòng)程序的開(kāi)發(fā),需要對(duì)操作系統(tǒng)原理,計(jì)算機(jī)組成,Linux內(nèi)核有一個(gè)比較深入的了解。相信大部分的Linux程序員都看過(guò)APUE,這是一種描述Linux下編程十分詳細(xì)的一本書(shū),但據(jù)說(shuō)這本《Linux/UNIX系統(tǒng)編程手冊(cè)(上、下冊(cè))》有超越APUE的可能,十分期待
作者: jackyyen    時(shí)間: 2014-01-23 09:32
學(xué)習(xí)下咯,沒(méi)怎么做過(guò)系統(tǒng)編程,一直是作應(yīng)用開(kāi)發(fā),最接近底層的開(kāi)發(fā),是作IPv6協(xié)議分析,但是沒(méi)有編碼,僅僅是作測(cè)試分析。 很羨慕懂得系統(tǒng)編程能力的工程師。
作者: crazyhadoop    時(shí)間: 2014-01-23 21:44
一書(shū)在手,天下我有,說(shuō)的就是這本書(shū)吧。
作者: send_linux    時(shí)間: 2014-01-23 21:49
crazyhadoop 發(fā)表于 2014-01-23 21:44
一書(shū)在手,天下我有,說(shuō)的就是這本書(shū)吧。


太霸氣了,呵呵

作者: 古船木渡    時(shí)間: 2014-01-24 13:31
求這本書(shū),斑竹
作者: OwnWaterloo    時(shí)間: 2014-01-24 14:09
來(lái)晚了。。。 很早就注意到這個(gè)活動(dòng)。。。 但年關(guān)時(shí)各種忙。。。 一直在慢慢修改草稿。。。  今天貌似已經(jīng)從C/C++版塊的置頂里去掉了。。。   再不改完就沒(méi)機(jī)會(huì)發(fā)的樣子。。。
于是趕緊地。。。


這確實(shí)是一本不可多得的好書(shū)。
這本書(shū)給我的感覺(jué)與《Windows核心編程》的很類(lèi)似:整體的、系統(tǒng)的認(rèn)識(shí)就靠它了。
并且本書(shū)的焦點(diǎn)就是Linux,而不像其他一些書(shū)籍的討論的是一個(gè)很寬泛的*nix。 對(duì)不知道APUE在說(shuō)啥的同學(xué)(比如我自己)不妨先看看這本。

1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)

接觸電腦的契機(jī)首先是游戲。。。 然后才是編程。
不過(guò)十多年前網(wǎng)絡(luò)上的各種資料比現(xiàn)在少得多,尤其是中文資料更少,自己英語(yǔ)水平也很差。。。 在沒(méi)人領(lǐng)進(jìn)門(mén)的情況學(xué)習(xí)Linux/UNIX下的編程很難誒。。。
實(shí)際情況是老師教什么就是什么,于是最開(kāi)始的編程環(huán)境自然是Windows。。。 根本就沒(méi)想過(guò)除了它之外還有沒(méi)有其他選擇。。。

本科的時(shí)候終于有人教了。但實(shí)際上沒(méi)學(xué)到什么東西。

上得臺(tái)面的原因可能是:確實(shí)有太多“周邊的”新事物要學(xué)。
比如編輯器,F(xiàn)在都還有印象的事情是進(jìn)了vi就不知道怎么退出。。。最終是在Windows上打開(kāi)VS讀取與編輯虛擬機(jī)里的文件然后在虛擬機(jī)里編譯并運(yùn)行。。。
再比如編譯器。在這個(gè)課程很久之后才弄明白從編寫(xiě)C/C++的源代碼到執(zhí)行直接到底發(fā)生了什么。更久之后才知道調(diào)試的情況。
沒(méi)有IDE只有一個(gè)“裸”gcc在那時(shí)候根本玩不轉(zhuǎn)。。。 調(diào)試什么的只能printf。。。
還要順帶學(xué)make。。。 只好復(fù)制粘貼然后不明所以地改到貌似能正確工作為止。。。
上不得臺(tái)面的原因可能是:課程老師吸引力不夠。。。

而在同一時(shí)間Windows那邊的課程已經(jīng)開(kāi)始玩GUI了。
雖然編程的方式從“進(jìn)入main后一步兩步三步四步望著天執(zhí)行什么由程序員說(shuō)了算”變到“進(jìn)入main后準(zhǔn)備好各種事情然后由用戶(hù)來(lái)決定該先執(zhí)行什么”會(huì)讓人一開(kāi)始難以適應(yīng)。
但這是在學(xué)編程而不需要再去熟悉編程的“周邊”環(huán)境。并且相比之前那種黑框白字的程序來(lái)說(shuō)要“絢”得多了。
于是精力就耗在這邊了。 總之就是沒(méi)入門(mén)。。。

有點(diǎn)跑題了,不過(guò)我覺(jué)得教育資源的缺少 —— 入門(mén)門(mén)檻高又沒(méi)老師(或師傅)帶領(lǐng),能留下的是少數(shù),又會(huì)導(dǎo)致下一代人的師傅更少 —— 是推廣難的一個(gè)很大原因。

之后為了避免依賴(lài)MSVC的特定行為所以在Windows下也會(huì)使用MinGW/MSYS,慢慢地對(duì)gcc,gnumake等工具比較熟悉了。
因?yàn)楫厴I(yè)論文需要實(shí)現(xiàn)一個(gè)可以分配可執(zhí)行內(nèi)存的庫(kù)于是終于逮到機(jī)會(huì)進(jìn)行Linux下的系統(tǒng)編程了。。。
看過(guò)APUE等書(shū)后可以編程,但依然感覺(jué)不得要領(lǐng),The Art of Unix Programming更是飄渺虛無(wú)。。。

最后在論壇的這個(gè)帖子里經(jīng)由雨過(guò)白鷺洲介紹知道了這本書(shū)。
因?yàn)闆](méi)有太多機(jī)會(huì)進(jìn)行Linux系統(tǒng)編程于是至今都沒(méi)能仔細(xì)通讀這本書(shū)。
但在使用許多*nix下工具時(shí)出于好奇或是想確認(rèn)這些工具能像預(yù)期般工作時(shí)都會(huì)拿出來(lái)翻翻。
比如一些web服務(wù)器是否用了epoll,sendfile等系統(tǒng)調(diào)用,一些程序是否在完成必要工作后確實(shí)丟棄了root權(quán)限,setuid/setgid程序是如何工作的,以及capabilities等等。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討

因?yàn)樽约褐饕歉慵夹g(shù)方面的,所以對(duì)業(yè)務(wù)方面只是閑聊時(shí)聽(tīng)聽(tīng)。
這里說(shuō)幾個(gè)自己聽(tīng)到的也比較有趣的: 定制廣告機(jī)、基于雷達(dá)監(jiān)控的停車(chē)場(chǎng)管理系統(tǒng)、無(wú)盤(pán)啟動(dòng)。
它們都需要對(duì)Linux有很深的了解于是我們就無(wú)能為力了。。。
其實(shí)廣告機(jī)做過(guò)一段時(shí)間,感覺(jué)很吃力。。。 并且業(yè)務(wù)方面也停了于是就沒(méi)繼續(xù)做下去了。。。

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?

嗯。。。 一句正確的廢話(huà):“盡信書(shū)不如無(wú)書(shū)”。而且也不僅僅針對(duì)書(shū)。所有的文章、言論 —— 無(wú)論出自何人何處 —— 都應(yīng)該用作參考而不是代替自己思考。
對(duì)這個(gè)帖子也是這樣。這只是我自己的一些經(jīng)驗(yàn),肯定無(wú)法適應(yīng)于所有情況,甚至可能根本就是錯(cuò)的。
有了這樣的免責(zé)聲明后就可以胡亂瞎說(shuō)一些與這本書(shū)有關(guān)的經(jīng)驗(yàn)。

首先,不加思考地將書(shū)里所教授的技術(shù)直接應(yīng)用到編程里是一個(gè)很不好的習(xí)慣。
特定于這本書(shū)的內(nèi)容可以用Daemon有關(guān)的章節(jié)作例子。
實(shí)現(xiàn)守護(hù)進(jìn)程時(shí)肯定需要這些技術(shù)。但要抵制住“因?yàn)樽约毫私饬诉@些技術(shù)于是就要將它應(yīng)用到自己所寫(xiě)的程序里”的誘惑。
自己寫(xiě)一些程序用于練手肯定沒(méi)問(wèn)題。但要將它應(yīng)用到生產(chǎn)環(huán)境時(shí)可以考慮“該程序是否有必要自守護(hù)化”? 是否有方法可以將“守護(hù)化”作為一個(gè)可復(fù)用的功能?

其次,進(jìn)程本身以及進(jìn)程之間的繼承關(guān)系本身就是一種很有效的復(fù)用手段。
繼續(xù)以Daemon作為例子。
為每個(gè)程序?qū)崿F(xiàn)守護(hù)化的功能肯定是難以編寫(xiě)與調(diào)試的。
將這些功能實(shí)現(xiàn)為一個(gè)程序庫(kù)并在每個(gè)程序里復(fù)用這個(gè)庫(kù)雖然可以減輕這兩個(gè)問(wèn)題,但是就我自己的經(jīng)驗(yàn)來(lái)看這兩種方式實(shí)現(xiàn)出的程序?qū)τ脩?hù)來(lái)說(shuō)區(qū)別不大,依然是自守護(hù)化,依然難以使用與管理。

考慮另一種方式。
將原本打算實(shí)現(xiàn)守護(hù)化功能的程序當(dāng)作一個(gè)“普通程序”來(lái)實(shí)現(xiàn):保持在前臺(tái)、使用stdout,stderr、Ctrl-C退出等等。這樣不但利于實(shí)現(xiàn)也利于調(diào)試。它們專(zhuān)心實(shí)現(xiàn)自己打算提供的獨(dú)特的功能。
而守護(hù)化獲得的好處、日志記錄、崩潰重啟、端口管理等等都可以作為另一個(gè)(或一組)獨(dú)立的程序來(lái)實(shí)現(xiàn)。而它們專(zhuān)心實(shí)現(xiàn)這部分功能。
兩者一結(jié)合就可以用統(tǒng)一的方式管理許多服務(wù)程序的各個(gè)方面:?jiǎn)?dòng)腳本(不需要sysvinit,upstart,systemd混雜)、重啟策略、日志(目的地,rotate)、界面(CLI,GUI,Web)等等。

每個(gè)程序自己實(shí)現(xiàn)后一類(lèi)功能不僅僅難以做到極致,而且還會(huì)引發(fā)其他問(wèn)題。
upstart需要知道自守護(hù)化的程序到底fork了幾次。
daemontoolssupervisord還需要一些hack來(lái)對(duì)付自守護(hù)化的程序。
這是何苦。。。

類(lèi)似地,書(shū)中還提到了inetd。
提供網(wǎng)絡(luò)服務(wù)并不一定需要使用socket有關(guān)的編程技術(shù)?梢跃帉(xiě)只使用標(biāo)準(zhǔn)輸入輸出、環(huán)境變量、命令行參數(shù)的程序 —— 容易編寫(xiě)調(diào)試 —— 并配合其他程的序來(lái)提供網(wǎng)絡(luò)服務(wù)。
inetd就是這樣一種“其他程序”。Ubuntu倉(cāng)庫(kù)里提供的5個(gè)ident服務(wù)有4個(gè)都依賴(lài)inetd,只有1個(gè)是獨(dú)立實(shí)現(xiàn)ident服務(wù)。
CGI服務(wù)器也是這樣一種“其他程序”。

總之,除了“實(shí)打?qū)嵱才鲇病钡木幋a方式之外可以考慮充實(shí)自己的“工具箱”,并針對(duì)具體問(wèn)題選擇合適的方式去實(shí)現(xiàn),而不是學(xué)會(huì)了錘子就將所有問(wèn)題當(dāng)作釘子。
在程序里使用直接使用daemon,socket等等是一種直接的、硬的編程方式。
而daemontools,ident,CGI背后隱含的編程思想是另一種間接的、軟的編程方式。它有助于產(chǎn)生更簡(jiǎn)單、容易編寫(xiě)與維護(hù)也更穩(wěn)定可靠的程序。
抵制住“因?yàn)榱私饽撤N工具就想在程序里使用”的誘惑 —— 包括后一種軟的思想也是一種誘惑 —— 并針對(duì)具體問(wèn)題進(jìn)行分析選擇。
以CGI為例。如果目的是為了提供動(dòng)態(tài)網(wǎng)頁(yè),當(dāng)訪(fǎng)問(wèn)數(shù)量上升后就會(huì)吃不消。這種情況下是不能選它的。而如果只是想避免使用ssh,讓一些管理用的腳本可以在瀏覽器里點(diǎn)擊就可以執(zhí)行,我覺(jué)得它就挺適合的。
作者: jimmy-_-lixw    時(shí)間: 2014-01-24 15:59
本帖最后由 jimmy-_-lixw 于 2014-02-25 13:44 編輯

            。
作者: jimmy-_-lixw    時(shí)間: 2014-01-24 16:00
本帖最后由 jimmy-_-lixw 于 2014-02-25 13:43 編輯

撤銷(xiāo)。。。
作者: mcyeah    時(shí)間: 2014-01-24 20:11
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)
     大學(xué)時(shí)候上Linux操作系統(tǒng)課程的時(shí)候正式入門(mén),但是畢竟課程有限,學(xué)到的東西只是一些皮毛而已,后來(lái)又開(kāi)始學(xué)嵌入式,涉及到了Linux底層的驅(qū)動(dòng)編程,可以說(shuō)從上到下都了解了一遍,但是由于沒(méi)有真正地干過(guò)用于實(shí)踐的項(xiàng)目,而且畢竟沒(méi)有那么刻苦的寫(xiě)代碼,多實(shí)踐,所以水平一般般。畢業(yè)后找到了現(xiàn)在的工作,干Linux服務(wù)器端開(kāi)發(fā)的工作,不會(huì)的就問(wèn)師傅,而且這個(gè)時(shí)候才知道了apue和unp著幾本書(shū)的重要性,邊用邊學(xué),現(xiàn)在也還是在不斷求索中。
    閱歷決定經(jīng)驗(yàn),沒(méi)什么特別牛的閱歷和經(jīng)驗(yàn),就簡(jiǎn)單講講自己的一些感受吧
      <1>要沉下心來(lái)去學(xué)習(xí),學(xué)習(xí)的時(shí)候實(shí)踐最重要
      <2>要多交流,不要閉門(mén)造車(chē)  有時(shí)候自己思維定勢(shì)了,寫(xiě)出的代碼不僅不優(yōu)還不利于自己提高
      <3>不為自己的小聰明而沾沾自喜,永遠(yuǎn)不要覺(jué)得自己有多么了不起,做人要謙虛   每個(gè)人所走的路都是不一樣的,所以每個(gè)人所懂得的也是不一樣的。不然有時(shí)候發(fā)現(xiàn)一個(gè)看起來(lái)不起眼的新手居然會(huì)自己都不會(huì)的的東西時(shí)候會(huì)奔潰掉的。
2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討
    職業(yè)生涯這種東西其實(shí)不好講,每個(gè)人所走過(guò)的路都是不一樣的! 可能不經(jīng)意間做出的一個(gè)小決定就會(huì)影響一生!  所以我覺(jué)得其實(shí)一輩子很短,要干就要干自己想干的事!有興趣,再苦也是甜!自己要快樂(lè)這才不枉此生嘛,   所以我倒覺(jué)得,只要自己覺(jué)得高興,干一輩子程序員就挺好啊,呵呵。不過(guò)程序員也是有級(jí)別的嘛,所以還需要努力,不斷的自我提升,不能干了一輩子還是底層,當(dāng)然要往更高層次發(fā)展的時(shí)候基礎(chǔ)也不能落下!    對(duì)于Linux/UNIX系統(tǒng)編程,我覺(jué)得前途是一片光明的!最重要的原因是這個(gè)系統(tǒng)體系是開(kāi)放的、自由的!這本身就有無(wú)限的魅力,看看現(xiàn)在的服務(wù)器、嵌入式、中間件、桌面,哪個(gè)沒(méi)有Linux的身影!開(kāi)源的系統(tǒng)可以節(jié)省更多成本,而且你也為其加入自己喜歡的特性,貢獻(xiàn)自己的力量,系統(tǒng)也就越好用,用的人也就會(huì)越來(lái)越多!
3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?    要做系統(tǒng)編程,首先要對(duì)操作系統(tǒng)原理有個(gè)了解!這一點(diǎn)很重要,別看各種windows、linux、unix、Solaris,其實(shí)萬(wàn)變不離其宗,它們所有的東西都在操作系統(tǒng)范疇,了解了操作系統(tǒng)是什么,他提供什么服務(wù),以后編程就好辦了!
   <1>多實(shí)踐,多編碼,多去面對(duì)問(wèn)題
   <2>做的多了之后要思考! 隔一段時(shí)間就總結(jié)  最好能夠記下來(lái)!
   <3>多看別人寫(xiě)的牛X的代碼,學(xué)習(xí)其中的思想  不是說(shuō)思想有多遠(yuǎn)路就有多遠(yuǎn)嘛!
   <4>亂七八糟的東西 沒(méi)事兒都學(xué)學(xué),啥時(shí)候說(shuō)不定就用上了!   不用學(xué)到精通,只要了解即可,到了適合的時(shí)機(jī)能想到就可以。
   
        以上全是鄙人的一點(diǎn)兒愚見(jiàn),希望多多批評(píng)指正!


作者: cherryDC    時(shí)間: 2014-01-24 22:06
1、您在Linux/UNIX系統(tǒng)編程行業(yè)的經(jīng)歷及經(jīng)驗(yàn)。

現(xiàn)在還在上學(xué),在跟導(dǎo)師作嵌入式方面的課題時(shí)用的是Linux。課題主要是智能交通、GPS定位等。

2、Linux/UNIX系統(tǒng)編程職業(yè)生涯的發(fā)展探討。

主要想從事嵌入式開(kāi)發(fā)方向,應(yīng)該對(duì)嵌入式系統(tǒng)、硬件、內(nèi)核、驅(qū)動(dòng)精通,并具有有扎實(shí)的C 、Java、數(shù)據(jù)結(jié)構(gòu)功底。

3、對(duì)于新入門(mén)的Linux/UNIX系統(tǒng)編程人員來(lái)說(shuō),您有什么話(huà)對(duì)他們說(shuō)?

首先選擇經(jīng)典的Linux/UNIX書(shū)籍閱讀學(xué)習(xí),并進(jìn)行實(shí)際操作。經(jīng)常逛逛論壇,和網(wǎng)友交流經(jīng)驗(yàn)的技術(shù)。另外,可以去企業(yè)實(shí)習(xí),了解實(shí)際應(yīng)用和構(gòu)架。
作者: crazyhadoop    時(shí)間: 2014-01-25 17:37
回復(fù) 63# send_linux


    妥妥的,簡(jiǎn)單易懂多了
作者: amarant    時(shí)間: 2014-02-14 15:48
各位兄弟回帖好認(rèn)真呀。佩服佩服!學(xué)習(xí)學(xué)習(xí)!
作者: send_linux    時(shí)間: 2014-02-14 18:14
amarant 發(fā)表于 2014-02-14 15:48
各位兄弟回帖好認(rèn)真呀。佩服佩服!學(xué)習(xí)學(xué)習(xí)!


版主有興趣的話(huà),也可以發(fā)起話(huà)題討論活動(dòng),社區(qū)可以提供一些獎(jiǎng)品哦
作者: amarant    時(shí)間: 2014-02-14 18:49
回復(fù) 72# send_linux


    嗨 現(xiàn)在又忙的跟狗一樣了




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2