一個黑客所需的基本技能總結

1、黑客的精神態度是很重要的,但技術則更是重要。黑客的態度雖然是無可取代,隨著新科技的發明和舊技術的取代,這些工具隨時間在慢慢的改變。例如:以往總是會學會用機器碼寫程序,直到最近我們開始使用HTML。不過,在1996年末,當然,這是基礎的hacking技能。在1997年,理所當然的,你必須學會C。 但,如果你只是學一種語言,那麼你不能算是一位黑客,了不起只能算是一個programmer。除此,你還必須學會學會以獨立於任何程序語言之上的概括性觀念來思考一件程序設計上的問題。要成爲一位真正的黑客,你必須要能在幾天之內將manual內容和你目前己經知道的關連起學會一種新的語言。也就是說,你必會學還了C之外的東西,你至少還要會LISP或Perl(Java也正在努力的擠上這個名單; 譯者注: 我很懷疑這份名單)。除了幾個重要的hacking常用語言之外,這些語言提供你一些不同的程序設計途徑,並且讓你在好的方法中學習。 

程序設計是一種複雜的技術,我沒辨法在這提供完整的學習步驟。但是我能告訴你一些在書本上和課堂上所沒有的東西(有很多,幾乎全部最好的黑客們都是自習而來的)。(a) 讀別人的程序碼;(b)寫程序,這兩項是不錯的方法。學習寫程序就像在學習寫一種良好的自然語言,最好的方法是去看一些專家們所寫的東西,然後寫一些你自己的東西,然後讀更多,再寫更多。然後一直持續,一直到你發展出一種屬於自己的風格和特色。要找到好的程序碼來看是很一件很困難的事,因爲,對菜鳥黑客們而言,適於供他們閱讀和努力的大型程序的source數量很少。但這事己有了戲劇性的變化了; 現在免費的供應的軟件、程序設計工具和操作系統(大都公開提供 source,而且全都是由黑客們寫成的)到處可看。進入下一個主題。 

2、取得一個免費的 UNIX,並學習使用和維護。我先假設你己經有一部個人電腦或者是可以使用任何一部(現在的小孩子真幸福,可如此輕易的擁有 :-))。 取得黑客技巧的第一個步驟是取得一份Linux 或者一份免費的 BSD-Unix,並將它安裝在自己的機器,並使之順利的運作。沒錯,在這個世界上除了Unix之外,還有其它的操作系統。但是他們只提供bianry,你不能看到他們的程序碼,你也不能修改他們。想要在DOS或Windows或MacOS開始hacking,無疑就是要你綁著枷鎖跳舞一樣。 

除此之外,Unix是Internet上的操作系統。當你在不懂Unix的情況下學習使用Internet時,你沒辨法在不懂Unix的情況下成爲Internet的黑客。因爲這個原故,現在的黑客文化還是很牢固的以Unix爲中心。(這並不完全是正確的,而且有些活在舊時代的黑客甚至也不喜歡這種情形,但是Unix和Internet之間的共生共成己經到了牢不可破的地步,即使是Microsoft的大塊肌肉也沒能在上面留下明顯的傷痕。) 因些,把Unix裝起來吧! (我自己是喜歡Linux,但是還有其它的東東可用。) 學習它,讓它運作起來,讓它陪你努力精進。 用他向整個Internet喊話。看程序碼,改程序。 

有一天你成爲一位高竿的黑客,你回頭往後看時會發現,你得到比Microsoft操作系統所能提供的還要好的程序設計工具(包括 C,Lisp和 Perl)。而且得到快樂,並學到比共生共成己經到了牢不可破的地步,即使是Microsoft的大塊肌肉也沒能在上面留下明顯的傷痕。) 因些,把Unix裝起來吧! (我自己是喜歡Linux,但是還有其它的東東可用。) 學習它,讓它運作起來,讓它陪你努力精進。用他向整個Internet喊話。 看程序碼,改程序。有一天你成爲一位高竿的黑客,你回頭往後看時會發現,你得到比Microsoft操作系統所能提供的還要好的程序設計工具(包括 C,Lisp和 Perl)。而且得到快樂,並 
學到比你想像中的還要多的知識。關於學習Unix,在Loginataka有更多的資料。(http://www.ccil.org/~esr/faqs/loginataka。) 
看一下Linux distribution的目錄或 Linux CD,並把自己交付給它。 

3、學習使用World Wide Web並學會寫 HTML。 
在黑客文化創造出來的東西,大多在他們的活動範圍外被使用著,如,在工廠和辨公室或大學被漠漠的使用著。但Web是一個很大的例外,這個黑客眼中的大玩具甚至還被政客們接受,並巧巧的在改變這個世界。因此(還有很多好的理由),你必須學習Web。並不只是學習使用browser(這太容易了)而己,還要學會寫HTML這個Web的標籤語言。如果你不知道如何設計程序,寫HTML也可以給一些習慣上的幫助。嗯!! 建立home page吧! 不過,有一個home page 並沒任何特別之處能讓你成爲一位黑客。Web上到處都是home page,而且大部份都沒什麼重點,沒什麼內容的爛泥 -- 很好看的爛泥巴,但是看起來都一樣,差不多。 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
你該學什麼程序語言


程序語言可分爲5類 

  1、web page script languages 

    就是網頁代碼,比如Html、javascript、Css、Asp、Php、Xml都應該屬於此類(照蔡的意思,Html不應該屬於anguages的,可能他覺得太簡單了吧,不過我覺得Html也應該算的,大家愛聽誰的就聽誰的好了,這個不重要) 

  2、Interpreted Languages(解釋型語言) 

    包括Perl、Python、REBOL、Ruby等(後面三個聽豆沒聽過),也常被稱作Script語言,通常被用於和底下的操作系統溝通。照蔡的意思,每個人至少應該學會一套這類的語言。這類語言的缺點是效率差、源代碼外露——所以不適合用來開發軟件產品,一般用於網頁服務器。 

  3、Hybrid Laguages(混合型語言) 

    代表是JAVA和C#。介於解釋型和編譯型之間。蔡認爲C#是.NET最重要的語言,值得期待其後續發展;至於JAVA,蔡叫看他的《Sleepless in Java》——我倒! 

  4、COMPILING Languages(編譯型語言) 

    C/C++,JAVA都是編譯型語言。蔡說C++很複雜,要成爲高手沒三五年是不行的(就憑這句話,我決定向JAVA投降),雖然如此,但真正要成爲高手的都應該懂C/C++。 

    關於Delphi,蔡說如果想要跨Linux和Windows平臺的語言,則Delphi似乎是最好的選擇。 

  5、Assembly Languages(彙編語言) 

    彙編語言是最接近於硬件的語言,不過現在幾乎沒多少人用了。 

  程序語言學習順序建議 

    如果完全沒有程序經驗,可照這個順序:javascript——解釋型語言——混合型語言——編譯型語言——彙編(如果需要的話) 

    用業界流行一句話做結尾“真正的程序員用C++,聰明的程序員用Delphi”,那麼,什麼樣的程序員用JAVA呢? 

  虛懷若谷題外話 

    看在我這麼晚了還這麼辛苦的敲字的面子上,看到這篇帖子的朋友給點掌聲吧,雖然沒什麼自己的思想。 

    另外,本文完全據蔡學鏞先生同名文章精簡,所以如果這篇文章給你的程序員生涯有什麼不好的作用,那我不介意你去扁他。當然如果這篇文章對你有什麼積極影響,我很高興你能請我吃大餐。

如果您想學習編程,卻又不知從何入手,那麼您不妨看看下面的幾種學習方案,可能會給您一些啓示吧! 

    方案一 Basic語言 & Visual Basic 

    優點 

    (1)Basic 簡單易學,很容易上手。 

    (2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕鬆地做出漂亮的程序。 

    (3)衆多的控件讓編程變得象壘積木一樣簡單。 

    (4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。 

    缺點 

    (1)Visual Basic 不是真正的面向對象的開發文具。 

    (2)Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。 

    (3)Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種僞代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。 

    綜述:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間裏學會vB編程,並用VB 做出自己的作品。對於那些把編程當做遊戲的朋友來說,VB 是您最佳的選擇。 

    方案二 Pascal語言 & Delphi 

    優點 

    (1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。 

    (2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。 

    (3)Delphi使用了真編譯,可以讓你的代碼編譯成爲可執行的文件,而且編譯速度非常快。 

    (4)Delphi具有強大的數據庫開發能力,可以讓你輕鬆地開發數據庫。 

    缺點 

    Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。 

    綜述: 方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。 

    方案三 C語言 & Visual C++ 

    優點 

    (1)C語言靈活性好,效率高,可以接觸到軟件開發比較底層的東西。 

    (2)微軟的MFC庫博大精深,學會它可以讓隨心所欲地進行編程。 

    (3)VC是微軟製作的產品,與操作系統的結合更加緊密。 

    缺點 

    對使用者的要求比較高,既要具備豐富的C語言編程經驗,又要具有一定的WINDOWS編程基礎,它的過於專業使得一般的編程愛好者學習起來會有不小的困難。 

    綜述: VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那麼學習VC你一定不會後悔的。 

    方案四 C++語言 & C++ Builder 

    優點 

    (1)C++語言的優點全部得以繼承。 

    (2)完全的可是化。 

    (3)極強的兼容性,支持OWL、VCL和MFC三大類庫。 

    (4)編譯速度非常快。 

    缺點 

    由於推出的時間太短,關於它的各種資料還不太多。 

     綜述:我認爲C++ Builder 是最好的編程工具。它既保持了C++語言編程的優點,又做到了完全的可視化。 

    方案五 SQL語言 & Power Builder 

    對於一些傳統的數據開發人員來說,Foxpro系列也許讓他們感到更加熟悉。但是對於初學者來說,PowerBuilder也許是最好的數據庫開發工具。各種各樣的控件,功能強大的PowerBuilder語言都會幫助你開發出自己的數據庫應用程序。

補充:關於網頁後臺語言和其他語言的關係,一般認爲:

C語言學的好,那麼學習PHP會有事半功倍的效果
VC學的好,那麼學習ASP會有事半功倍的效果
JAVA學的好,那麼學習JSP、JAVASCRIPT會有事半功倍的效果

關於網頁後臺語言和數據庫,通常來說:
PHP與MYSQL是黃金搭檔
ASP小型網站用ACCESS,大型用SQL
JSP我就不知道了

關於電子商務流行的語言,目前
噹噹、卓越、6688、igo5、雅寶使用的是asp語言
易趣、淘寶使用的是php語言
貝塔斯曼使用的是jsp語言

4、至少學會以下的其中兩種: 
一、網站服務器程序ASP、PHP、CGI、JSP 
我個人認爲CGI是最難學的其中一種。 
二、程序語言:C語言、C++、VB、JAVA、PERL、DELPHI、彙編語言 
不過我認爲C語言的通用性最好,可以跨平臺(操作系統)使用。 
還要試着自己寫程序、開發軟件等工作。 
三、數據庫管理軟件:MYSQL、SQL、FOXPRO……等。 
四、幾種常用的操作系統:WIN98、WIN2000、WINNT、WINXP、UNIX、LINUX、要是能學到UNIX那是最好不過的了。最最基本的WIN2K、WINNT也要學會吧。 
如果以上的你都會了,那麼你已經是個高手了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章