(1) 如果你目前從事網管,學 shell script 是對的方向。熟悉 shell script (最好 perl 也懂一點),很多事情可以自動化(跑一個 scirpt 可以執行任何的命令)。
(2)如果想進修程式語言,C++,Java 或 C# 都不錯,C++ 稍微難一點
(3) 根據你選擇的程式語言,再來選擇開發工具,C++ 跟 C# 當然用 Visual Studio 比較方便,Java 推薦 Eclipse
(4) 最後提醒一下,Visual Studio 有很多微軟的特異功能,比方說,你用 Visual Studio 產生一個 Hello World 範例程式,他的進入點,就不叫 main。C# 也是微軟的語言,只是蠻多人用。
(5) 如果真的想把程式語言學好,不妨試看看在 Linux 下,用 gcc,vim,跟 gdb 來學程式,如果你搞得定,以後沒有東西難得倒你。
嗯...C++不錯!!JAVA也不錯!!
C++速度比較快,但是JAVA可以跨平台。
如果你學了C++,大部分如果要在學JAVA也不用幾天。語法不會說差很大...
如果先學JAVA也一樣,在學C++也是很快的。
另外C語言比較偏向硬體,C++是物件導向,比較好維護。
如果是新手要學程式設計的話,我個人比較建議學Python很簡單很強大很好上手,也是可以跨平台,之後要學其他程式語言也比較容易。
不過...C++也能跨平台的,linux核心不就是C++嗎= =|||只是方式跟java不太一樣
C#的話...不太建議學...
Linux 核心是 C++?
某人2004年初在linux kernel的mail list上這樣回覆:
http://lkml.org/lkml/2004/1/20/20 (請看連結,內文超過限制,我不貼了)
當然,已經過了六年,不知道情況有沒有不一樣?
Linux kernel 是 C 寫的, 多數subsystem有物件概念, 例如: ACPI.
C++恕小弟說一句: 可以不用學了
要學更好的物件就學 Java or C#, 自己用UML畫一個簡單的圖之後分別用C++, Jave, C# 來implement你就會了解了.
Shell Script是一定要學的, Perl/Python也不錯.
Linux上一般發行版通常預設的SHELL SCRIPT是BASH,不是C SHELL,如果是要朝向網管的方向走,學C語言用處不大,你應該花時間在一些script language上,比如說Perl、Python、Ruby、、、等,可以跨平台使用,在M$-W平台上一般都有提供安裝程式。
visual C++、C#、.NET是M$不需要浪費時間學,他們沒辦法跨平台使用,JAVA可以跨平台,卻用處不大,以網管日常寫的自動維護程式來說,還是以Perl、Python、Ruby、、、等script language比較實際,好寫又可以跨平台,只要熟練正則表示法(Regular expression),解析字串的速度可以翻背,一堆需要人工檢查LOG的工作就可以丟給程式處理,而且他們通常會給與資料庫銜接的模組,C/C++要解析字串沒這些Script Language方便,還需要編譯的動作,搞起來很麻煩,網管與其花時間搞編譯的動作,不如早早寫完下班回家休息,程式容量、效率對網管來說不一定是最重要的項目,穩定的解決問題對網管來說,往往是第一優先。
正則表示法,Perl、Python、Ruby、PHP、C#、JAVA、Javascript、、、等語言有支援,是一項投資報酬率蠻高的技術。
熟練BASH的缺點是在M$-W上沒有用,雖然可以使用cygwin之類的軟體呼叫BASH,但就還是不方便。
樓上對UML的觀念有點偏差,不寫程式UML還是可以拿來用,你高興寫組合語言的時候還是可以拿UML來說明,UML是拿來當做人與人溝通的圖形語言工具,你對外包商開發的時候也可以拿出UML來解釋你要的是什麼東西,跟程式語言沒絕對的關係。
物件導向也是,不寫程式物件導向還是可以拿來使用,你高興可以拿來解釋你的人際關係,把人當物件看,也可以拿來詮釋包商間子系統的責任,也可以拿來解釋公司行政體系的部門責任關係,用處一堆,理解物件導向的人寫起程式,如C語言、組合語言也會出現物件的影子,架構系統,結構自然且穩定,不理解的人寫C++、JAVA跟寫C差不多,一個函式統包莫名其妙的功能,濫竽充數,權責不分。