用 Linux 真的能學到很多平台無關的東西嗎?

剛裝了下烏班圖,傳說中效率很高的系統,怎麼感覺沒有win7那麼流暢,是不是這個系統很考硬體的?還有就是剛上手,聯網都成了難題,有沒有什麼入門書籍什麼的推薦一下?還有一點疑惑,就是,這樣一個全新的環境,那麼多東西都要從零開始,代價那麼高,真的值得嗎?求指點。。


本來覺得這個問題比較無聊(這種問題必然會引起聖戰),看到後面某幾個答案才想回答一下。

我覺得這裡存在一個問題:很多高手都是用XXX的 != 用XXX的都是高手
而往往很多人(特別是新手)聽到很多高手都用XXX,為了顯示自己是高手或者想要想高手靠攏,
所以自己也要用XXX。

先針對問題來回答,能不能學到很多東西本身取決於你願不願意花時間花精力去學習,而跟你用什麼系統關係不是太大。學到很多東西的人最後選擇使用Linux(或Windows)是因為他們真正覺得適合他們。所以說,如果你真的對Linux感興趣的花,可以繼續花時間去折騰(事實上哪個Linux用戶沒換過幾個版本,重裝過幾十次系統?),最後再決定到底是否適合自己。

然後再針對某幾個答案來發表一下看法。我認為效率高的人之所以效率高,是因為他們很清楚自己需要做什麼,並且去尋找去學習適合自己的,能夠提高自己效率的工具。反過來,很多人覺得自己效率低,於是每天都想著去尋找別人覺得效率更高的工具,而不去思考自己效率低的根本原因(往往不是因為工具)。
程序員容易對自己使用的技術有宗教信仰,這樣容易導致坐井觀天的問題。很多優秀的軟體使用VS開發的,也有很多優秀的軟體是用vim/emacs開發的,還有更多優秀的軟體使用其他工具開發的。高手不管用哪個編輯器,編譯器,鏈接器,調試器...都能開發出優秀的軟體,反過來能成立?
一個再好的IDE不能讓你拙劣的設計變得更好。

update: 2014.1.6
有些地方可能有點繞,簡單來說就是要先了解自己的目的,
比方說「我想要個能打字的編輯器」,那麼記事本足以;
或者說「我想要個全鍵盤的,能收發郵件,能寫筆記,能看新聞,能發博客,能寫文檔,能瀏覽網頁,能看圖片,能聽音樂,能玩遊戲,能聊天,能用命令,可定製性強,支持C/C++/Java/Python/Perl/LISP/HTML/Javascript/CSS/Ruby...."的
編輯器,那可能得選Emacs了。
反過來,如果你喜歡界面友好的IDE,也習慣用滑鼠,但是感覺自己效率不高,突然聽說「哇靠,XXX好牛B啊,21天精通XXX了,用vim的,好高端啊」,然後自己也去用,發現效率更低,順便到各大論壇上發一篇「用vim真的能提高效率嗎?」,一場聖戰又開始了。其實最後可能只是自己的編程思路不清晰而已。

至於說「工欲善其事,必先利其器」,我覺得還在整天糾結哪個工具效率高的同學,應該還處於「學」的階段,還談不上要「善」吧,劍法沒學好,拿著把倚天估計也打不贏拿木劍的。

回想當年答主剛學編程的時候,用的是一個比記事本還難用東西,當時還覺得好高端,以為只有那裡可以寫代碼來著,呵呵。

PS:我感覺答案離題目越來越遠了...


非常佩服知乎上能有時間、精力、學識、膽量的那些人,總是能寫很長的回答。

恰好,以上這些我都沒有。

Linux於我,是讓我學會了遇見問題,發現問題,解決問題,總結問題的能力。

我在不停的安裝,卸載,升級,編譯,甚至是配置,娛樂的過程中,經歷過誤格式化硬碟,搞壞引導,弄丟畢業論文(幸虧雲端備份)等的許多錯誤。但之後我再看我的筆記本(後來是印象筆記)的時候我發現我掌握了很多的知識。掌握了命令,自學了Python/Go語言,喜歡寫腳本,用Markdown記筆記……

重要的是,這個過程,我很開心。


我保證,用Linux能學到很多東西。
我同樣保證,用Windows也能學到很多東西。


我想樓主問的是:作為一個計算機學生,真的有必要去學習(這個傳說中很牛的)linux嗎?

答案是:
按需學習。

為什麼超市裡推出新品食物的時候,不光打廣告,還會有小包裝試吃呢?
題主面對完全陌生的,充滿各種「linux好」的誘人廣告的linux,不就正需要一個小包裝試吃嗎。裝個虛擬機,跟你身邊懂的人一起倒騰一陣,或者在網上搜些文章鑽研一下吧。想玩兒就站「linux能學到很多東西」隊,不想玩兒了就站到「我才不浪費精力」隊。


關於ubuntu.其他人的答案已經解釋了ubuntu桌面的慢,這更多是要靠你自己去本地配置,ubuntu里的都是默認配置.關於聯網的話,可能是你初上手,對網路協議不是很清楚,所以網路沒配好,教育網的情況特殊,最好有個linux過來人幫你搞搞.關於系統入門,最好的說明書是系統自帶的和官方的文檔,多搜索,很多問題都是大家都經歷過的.關於學習的代價,難道在學windows的時候沒有代價嗎?也是有的,不見得可視化的windows代價就一定小,我指的代價有很多方面.學習windows,因為它有吸引你的地方.同樣,如果linux也吸引了你,也可以學學啊.學不學,看你的需要了.在你已經接受windows且我默認你沒有非linux不可完成的工作的情況下我不建議你學習linux.
這裡是反對學習linux的原因.1.不一定有用.日常生活中,windows用的很廣,掌握windows性價比更高.2.其實計算機也只是機器而已,如果不是為了追求編程之藝術或者工作需要,我真心覺得沒必要學這麼多的機器知識,會基本的office,會裝系統,會p圖剪視頻,足矣.還不如去專研自己真正感興趣的,而不是權衡到底值不值.


不想學就認了嘛,不要用」非Linux「系統來做不學習的借口,太TM不爺們了。。。


如果對你來說不看書就不能主動通過Google學習,要有老師手把手教才能學好的話……那還是不要學linux了。你會碰到大量的問題,很多都不是看書就能解決的,但是解決了之後當然能學到很多。但是如果你沒有興趣,也很有可能就把潛在的問題給忽略了,白白喪失學習的機會,然後除了裝系統什麼都不會,加上浪費很多時間。

比如說吧,光是安裝系統就能學到很多東西,比如分區表,各種文件系統,掛載點,LVM,包管理器,桌面環境,GRUB…………這些都是我第一次裝linux的時候就詳細了解過的東西。當然,簡單的讓它自動安裝是學不到那麼多的。我當時裝系統就裝了N次,弄壞N次分區,全盤格式化至少3次,因為受不了跨版本升級換了arch,又有過因為pkgbuild里一個命令寫錯誤刪了整個系統。後來上了大學買了筆記本,想著回到windows發現非常不適應,又折騰了很久的mingw和msys,最後裝gentoo的時候又折騰了很久x32 abi,還努力的配置過內核。如果你怕麻煩,不想折騰,喜歡有一條筆直向前的學習道路,那麼你不會因為使用linux就學到什麼的。


gentoo(linux某一小眾發行版)用戶,包括日常與工作,
先回答答主的問題,然後分析一下Linux的優點,最後談一下我個人的觀點

回答問題:
1. ubuntu並不是傳說中效率很高的系統,linux也不是,效率高是相對工作而言的,能讓你做一件事的時間大大減少,才是效率高

2. 沒有win流暢,可能有以下方面:

  • 你的硬體不能被Linux很好的支持,卡頓這點主要是看顯卡
  • 顯卡的驅動沒有安裝好,linux對雙顯卡的支持不是那麼好
  • windows,人如其名,是以窗口為主要界面的,那麼它在UI上下的功夫比linux深很多,而linux以穩定為主,圖形界面百花齊放,不像windows那麼集中投入很多人力,都是社區或者開源組織在維護,當然這塊現在也在慢慢跟進

3. 排除鹵煮硬體很新沒有驅動的情況,linux默認是裝好了驅動的,只是沒有那麼便利的窗口界面讓人一步到位,對新手不友好,熟悉了之後還是很快的

4. 入門書籍,推薦<鳥哥的私房菜>講的很詳細,也很易懂,不過要想用好,就需要多實踐,習慣才是提升效率的好幫手

5. 你能問出這個問題,說明你真正的思考過,值得不值得可以從以下角度考慮:

  • 個人角度:所獲得的回報值不值得付出

我的答案是值得:linux就像是一個開放的大寶庫,只要你想,你隨時就可以出發去探險,比win更加開放的格局意味著你可以接觸到更多,當然前提是你有這方面的興趣,在非生存為第一優先順序下,興趣才是推動力

  • 工作角度:對工作能力有沒有提高

這個需要看你具體的工作,工作能力與效率的提高與linux沒有必然的聯繫,需要你自身去思考影響當前工作的短板在哪裡,然後對症下藥

6. 生活中有很多使用Linux的人,你可以仔細觀察,那些因為自己的愛好而使用Linux與因為工作不得不使用linux的人的用法是不一樣的,對於後者查找一個文件更多是憑著印象去翻文件夾,而對於前者,只需要使用find + grep ,搭配參數(時間,文件類型等)與正則,分分鐘找到,你可以看出兩種使用方式思維方式的差距,這何嘗不是效率的提升呢?

Linux的優點(哲學?):
1. 一切皆文件,這意味你可以通過一個文本編輯器就能操控整個操作系統
2. 開源,意味這大部分軟體你不滿意且有能力就可以修改
3. 自由,你可以做任何你想做的事,操作系統不會攔著你
4. 開放,只要你想,你可以看到系統如何啟動,內核如何載入,啟動級別是什麼,文件系統是什麼,如何掛載,文件許可權是什麼,這些都實實在在在你眼前,而不是像win將這些都隱藏起來,你會發現你的每一次操作都會獲取足夠的信息,這是win所不能做到的

4. 終端,你沒看錯,這才是linux的優勢所在,圖形界面只是一個外殼,你可以很輕易的把它卸掉,然後換個新的,對於windows,你問問身邊的人有幾個用過win自帶的終端

當然還有更多的優點,我切身體會的以上幾點比較深刻就拉出來溜溜,能學到什麼,你可以參考以上優點思考一下~

切換Linux
1. 不怎麼玩遊戲
win上很多遊戲都沒有對應的linux版,來到linux就不要想著玩遊戲了,多學點東西才是正道

2. 有著強烈的好奇心且嚮往自由
這兩點能一直讓你堅持使用Linux,遇到困難不退縮

3. 接受winlinux雙系統或者win虛擬機
許多工作Linux是無法勝任的,不要和自己過不去,win虛擬機會提供給你很好的支持

4. 大部分的工作都可以用linux完成
如果你大部分工作只能用win完成,你可以試試虛擬機或者雙系統,linux不是萬能的,它只是在某一方面有優勢而已

5. 最好是程序員或者系統管理員或者linux愛好者
如果你是,就不需要我多說了,這兩個身份會讓你更好的接受linux,如果你不是,歡迎加入linux大家庭

希望對你有所幫助,thks


你用任何一個你從來沒有用過的東西,一定能學到點什麼東西,學到的東西對你有沒有用就不好說了。


既然樓主剛入門, 我的經驗樓主大概有些用, 我用 Ubuntu 不到兩年,
"傳說效率很高":
既然是傳說那時間比較早, Ubuntu 從 11.04 開始變化較大, 問題比較多,
Unity 和 Gnome3 對比 Gnome2 明顯的費資源, 慢是很顯著的,
我粗略知道是桌面環境的問題, 實在考慮性能樓主去找 lxde 或 xface 去,
"聯網成問題"
這個大概是國內校園網環境的問題, 閃訊****, 我也疼在上邊一年多了,
具體看樓主用的什麼網, 如果同學有人用的話盡量學過來吧,
印象里最好的辦法是蹭網...
"代價這麼高"
我個人不後悔浪費時間學用 Linux 了(但是聯網 XcX), 也不是說深入學, 就是日常用.
Linux 環境有很多亂七八糟的歷史遺留的工具和文化, 想玩代碼的話值得去了解,
Linux 廣泛用在伺服器市場, 當然 Android 也是, 桌面市場只能算小眾,
具體還是看樓主想學的什麼, 學了以後是不是真用得著的.. 先進或過時的技術總是成堆的


簡單的講,如果你要跑服務,那麼請用linux;如果你要辦公娛樂,繼續折騰windows吧


能,但是你要是用圖形界面的話,就點點滑鼠,創建個文件啥的玩玩,啥也學不到,要是這樣的話,你老老實實用windows吧……


學任何東西都有用,關鍵是我們很多時候停留在想,一方面是擔心機會成本,另一方面是懶惰的表現。
以下是學linux的一些基礎內容。可以研究一下。

數據結構與演算法剖析 視頻
linux高級程序設計(第3版)視頻
數據結構與演算法面試題視頻
開源項目修改


真的能。
剛開始接觸Linux的時候,什麼都不懂,對於什麼,都要Google一下。久而久之,也就慢慢的懂了點。
至於懂了多少,這並不重要,重要的是,在這個過程里,你找到了解決問題的方法,知道也再次出現問題之後,該怎麼思考,怎麼做。
這很重要!


Linus Torvalds大概說過:普通用戶根本不需要考慮一個操作系統,只有程序員才需要。linux的用戶也很大程度上是限制在程序員人群的,所以如果你不以此為業而去用這個系統實際上不怎麼合算。

我在大學開始用linux,一直都用Ubuntu,當時就是為了編程,而如果雙系統的話會很不爽而且不能培養使用習慣,所以就堅持下來了,大學期間我基本不玩遊戲因為沒法運行,我的電腦就做幾件事:coding,看電影,上網,足夠。

至於用Linux是不是能學到很多東西完全靠個人,我見過很多同學也是用linux但是沒有用到最精髓的東西,用一種windows的思維來對待,整天搞桌面特效,wine各種應用和遊戲,這不是linux。linux不一定讓你學到更多東西,但是毫無疑問它能給你展示一個更大的世界。

隨著linux本身的越來越龐大,源代碼學習的曲線越來越高,但是從計算機教學的角度來說沒有哪個系統能像linux這樣讓你了解任何你要了解的部分,因為源碼面前,了無秘密。

Linux是一種後台開發的交流環境,現在的開發越來越重服務端導致linux具有很高的開發普及率,大家都懂於是大家就在這個生態系統上交流,我們用fork,Pipe等詞語來表述想法,不是說其他系統做不到,但是Unix-like的系統更容易讓你和別人搭上話。

如今的開發成本越來越高,軟體代碼的復用已經成了一種趨勢,對於優秀的開源代碼的利用已經是一項重要的節約時間和成本的方法,如今的開源世界不用多說,基於linux的開發佔了很大的一部分,這是最珍貴的地方,你永遠不知道一份優秀的代碼將會在你未來的職業生涯帶來多大的幫助。


偽碼農一枚。
覺得在Linux下面,不用IDE寫代碼更爽。
理由前面答題的人已經說得清楚了。只說感想:Linux讓我覺得很透明,必要的時候我能了解它。它強調自己動手。一旦你用上了,即使你不是好學的人也會學到東西。


只要我想學,有自主探究能力,給我個木頭我也能學到很多東西。反之亦然。


如果你想讓一個系統直接教你很多東西,不用選擇linux;如果你想體驗系統崩潰軟體無法運行的抓狂,請選linux。為了使用方便,你不得不去折騰DIY,遇到問題,啟發思考,思索背後的操作系統原理,請選linux~


鑒於題主問出這樣的問題,那麼我覺得題主目前仍沒有學習linux的必要。
不是黑題主,而是說linux系統更適用於生產環境。目前來看題主沒有這方面的需求。等你有需求了,就只會提更具體的問題了。


沒有編程,運維和科研需求還是老老實實的玩 windows或mac os x吧. Linux桌面不好用, 開源是好在不要錢, 即使版本沒有人維護, 有需要的人會繼續fork 出新分支! 例如, 某個大佬不爽甲骨文弄個mariaDB.

linux最好用的是shell, 寫C程序方便.


推薦閱讀:

國內人寫代碼的水平跟美國的差距在哪?
為什麼說讀代碼比寫代碼難?
是什麼阻礙了代碼的重用?問題是否應該只解決一次即可?

TAG:編程 | Linux | Linux 系統管理 | Ubuntu | Linux 軟體 |