一個(gè)黑客所需的基本技能
1、黑客的精神態(tài)度是很重要的,但技術(shù)則更是重要。黑客的態(tài)度雖然是無(wú)可取代,隨著新科技的發(fā)明和舊技術(shù)的取代,這些工具隨時(shí)間在慢慢的改變。例如:以往總是會(huì)學(xué)會(huì)用機(jī)器碼寫(xiě)程序,直到最近我們開(kāi)始使用HTML。不過(guò),在1996年末,當(dāng)然,這是基礎(chǔ)的hacking技能。在1997年,理所當(dāng)然的,你必須學(xué)會(huì)C。 但,如果你只是學(xué)一種語(yǔ)言,那么你不能算是一位黑客,了不起只能算是一個(gè)programmer。除此,你還必須學(xué)會(huì)學(xué)會(huì)以獨(dú)立于任何程序語(yǔ)言之上的概括性觀(guān)念來(lái)思考一件程序設(shè)計(jì)上的問(wèn)題。要成為一位真正的黑客,你必須要能在幾天之內(nèi)將manual內(nèi)容和你目前己經(jīng)知道的關(guān)連起學(xué)會(huì)一種新的語(yǔ)言。也就是說(shuō),你必會(huì)學(xué)還了C之外的東西,你至少還要會(huì)LISP或Perl(Java也正在努力的擠上這個(gè)名單; 譯者注: 我很懷疑這份名單)。除了幾個(gè)重要的hacking常用語(yǔ)言之外,這些語(yǔ)言提供你一些不同的程序設(shè)計(jì)途徑,并且讓你在好的方法中學(xué)習(xí)。
程序設(shè)計(jì)是一種復(fù)雜的技術(shù),我沒(méi)辨法在這提供完整的學(xué)習(xí)步驟。但是我能告訴你一些在書(shū)本上和課堂上所沒(méi)有的東西(有很多,幾乎全部最好的黑客們都是自習(xí)而來(lái)的)。(a) 讀別人的程序碼;(b)寫(xiě)程序,這兩項(xiàng)是不錯(cuò)的方法。學(xué)習(xí)寫(xiě)程序就像在學(xué)習(xí)寫(xiě)一種良好的自然語(yǔ)言,最好的方法是去看一些專(zhuān)家們所寫(xiě)的東西,然后寫(xiě)一些你自己的東西,然后讀更多,再寫(xiě)更多。然后一直持續(xù),一直到你發(fā)展出一種屬于自己的風(fēng)格和特色。要找到好的程序碼來(lái)看是很一件很困難的事,因?yàn)?,?duì)菜鳥(niǎo)黑客們而言,適于供他們閱讀和努力的大型程序的source數(shù)量很少。但這事己有了戲劇性的變化了; 現(xiàn)在免費(fèi)的供應(yīng)的軟件、程序設(shè)計(jì)工具和操作系統(tǒng)(大都公開(kāi)提供 source,而且全都是由黑客們寫(xiě)成的)到處可看。進(jìn)入下一個(gè)主題。
?。?、取得一個(gè)免費(fèi)的 UNIX,并學(xué)習(xí)使用和維護(hù)。我先假設(shè)你己經(jīng)有一部個(gè)人電腦或者是可以使用任何一部(現(xiàn)在的小孩子真幸福,可如此輕易的擁有 :-))。 取得黑客技巧的第一個(gè)步驟是取得一份Linux 或者一份免費(fèi)的 BSD-Unix,并將它安裝在自己的機(jī)器,并使之順利的運(yùn)作。沒(méi)錯(cuò),在這個(gè)世界上除了Unix之外,還有其它的操作系統(tǒng)。但是他們只提供bianry,你不能看到他們的程序碼,你也不能修改他們。想要在DOS或Windows或MacOS開(kāi)始hacking,無(wú)疑就是要你綁著枷鎖跳舞一樣。
除此之外,Unix是Internet上的操作系統(tǒng)。當(dāng)你在不懂Unix的情況下學(xué)習(xí)使用Internet時(shí),你沒(méi)辨法在不懂Unix的情況下成為Internet的黑客。因?yàn)檫@個(gè)原故,現(xiàn)在的黑客文化還是很牢固的以Unix為中心。(這并不完全是正確的,而且有些活在舊時(shí)代的黑客甚至也不喜歡這種情形,但是Unix和Internet之間的共生共成己經(jīng)到了牢不可破的地步,即使是Microsoft的大塊肌肉也沒(méi)能在上面留下明顯的傷痕。) 因些,把Unix裝起來(lái)吧! (我自己是喜歡Linux,但是還有其它的東東可用。) 學(xué)習(xí)它,讓它運(yùn)作起來(lái),讓它陪你努力精進(jìn)。 用他向整個(gè)Internet喊話(huà)。看程序碼,改程序。
有一天你成為一位高竿的黑客,你回頭往后看時(shí)會(huì)發(fā)現(xiàn),你得到比Microsoft操作系統(tǒng)所能提供的還要好的程序設(shè)計(jì)工具(包括 C,Lisp和 Perl)。而且得到快樂(lè),并學(xué)到比共生共成己經(jīng)到了牢不可破的地步,即使是Microsoft的大塊肌肉也沒(méi)能在上面留下明顯的傷痕。) 因些,把Unix裝起來(lái)吧! (我自己是喜歡Linux,但是還有其它的東東可用。) 學(xué)習(xí)它,讓它運(yùn)作起來(lái),讓它陪你努力精進(jìn)。用他向整個(gè)Internet喊話(huà)。 看程序碼,改程序。有一天你成為一位高竿的黑客,你回頭往后看時(shí)會(huì)發(fā)現(xiàn),你得到比Microsoft操作系統(tǒng)所能提供的還要好的程序設(shè)計(jì)工具(包括 C,Lisp和 Perl)。而且得到快樂(lè),并
學(xué)到比你想像中的還要多的知識(shí)。關(guān)于學(xué)習(xí)Unix,在Loginataka有更多的資料。(http://www.ccil.org/~esr/faqs/loginataka。)
看一下Linux distribution的目錄或 Linux CD,并把自己交付給它。
3、學(xué)習(xí)使用World Wide Web并學(xué)會(huì)寫(xiě) HTML。
在黑客文化創(chuàng)造出來(lái)的東西,大多在他們的活動(dòng)范圍外被使用著,如,在工廠(chǎng)和辨公室或大學(xué)被漠漠的使用著。但Web是一個(gè)很大的例外,這個(gè)黑客眼中的大玩具甚至還被政客們接受,并巧巧的在改變這個(gè)世界。因此(還有很多好的理由),你必須學(xué)習(xí)Web。并不只是學(xué)習(xí)使用browser(這太容易了)而己,還要學(xué)會(huì)寫(xiě)HTML這個(gè)Web的標(biāo)簽語(yǔ)言。如果你不知道如何設(shè)計(jì)程序,寫(xiě)HTML也可以給一些習(xí)慣上的幫助。嗯!! 建立home page吧! 不過(guò),有一個(gè)home page 并沒(méi)任何特別之處能讓你成為一位黑客。Web上到處都是home page,而且大部份都沒(méi)什么重點(diǎn),沒(méi)什么內(nèi)容的爛泥 -- 很好看的爛泥巴,但是看起來(lái)都一樣,差不多。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
你該學(xué)什么程序語(yǔ)言
程序語(yǔ)言可分為5類(lèi)
1、web page script languages
就是網(wǎng)頁(yè)代碼,比如Html、javascript、Css、Asp、Php、Xml都應(yīng)該屬于此類(lèi)(照蔡的意思,Html不應(yīng)該屬于anguages的,可能他覺(jué)得太簡(jiǎn)單了吧,不過(guò)我覺(jué)得Html也應(yīng)該算的,大家愛(ài)聽(tīng)誰(shuí)的就聽(tīng)誰(shuí)的好了,這個(gè)不重要)
2、Interpreted Languages(解釋型語(yǔ)言)
包括Perl、Python、REBOL、Ruby等(后面三個(gè)聽(tīng)豆沒(méi)聽(tīng)過(guò)),也常被稱(chēng)作Script語(yǔ)言,通常被用于和底下的操作系統(tǒng)溝通。照蔡的意思,每個(gè)人至少應(yīng)該學(xué)會(huì)一套這類(lèi)的語(yǔ)言。這類(lèi)語(yǔ)言的缺點(diǎn)是效率差、源代碼外露——所以不適合用來(lái)開(kāi)發(fā)軟件產(chǎn)品,一般用于網(wǎng)頁(yè)服務(wù)器。
3、Hybrid Laguages(混合型語(yǔ)言)
代表是JAVA和C#。介于解釋型和編譯型之間。蔡認(rèn)為C#是.NET最重要的語(yǔ)言,值得期待其后續(xù)發(fā)展;至于JAVA,蔡叫看他的《Sleepless in Java》——我倒!
4、COMPILING Languages(編譯型語(yǔ)言)
C/C++,JAVA都是編譯型語(yǔ)言。蔡說(shuō)C++很復(fù)雜,要成為高手沒(méi)三五年是不行的(就憑這句話(huà),我決定向JAVA投降),雖然如此,但真正要成為高手的都應(yīng)該懂C/C++。
關(guān)于Delphi,蔡說(shuō)如果想要跨Linux和Windows平臺(tái)的語(yǔ)言,則Delphi似乎是最好的選擇。
5、Assembly Languages(匯編語(yǔ)言)
匯編語(yǔ)言是最接近于硬件的語(yǔ)言,不過(guò)現(xiàn)在幾乎沒(méi)多少人用了。
程序語(yǔ)言學(xué)習(xí)順序建議
如果完全沒(méi)有程序經(jīng)驗(yàn),可照這個(gè)順序:javascript——解釋型語(yǔ)言——混合型語(yǔ)言——編譯型語(yǔ)言——匯編(如果需要的話(huà))
用業(yè)界流行一句話(huà)做結(jié)尾“真正的程序員用C++,聰明的程序員用Delphi”,那么,什么樣的程序員用JAVA呢?
虛懷若谷題外話(huà)
看在我這么晚了還這么辛苦的敲字的面子上,看到這篇帖子的朋友給點(diǎn)掌聲吧,雖然沒(méi)什么自己的思想。
另外,本文完全據(jù)蔡學(xué)鏞先生同名文章精簡(jiǎn),所以如果這篇文章給你的程序員生涯有什么不好的作用,那我不介意你去扁他。當(dāng)然如果這篇文章對(duì)你有什么積極影響,我很高興你能請(qǐng)我吃大餐。
如果您想學(xué)習(xí)編程,卻又不知從何入手,那么您不妨看看下面的幾種學(xué)習(xí)方案,可能會(huì)給您一些啟示吧!
方案一 Basic語(yǔ)言 & Visual Basic
優(yōu)點(diǎn)
?。?)Basic 簡(jiǎn)單易學(xué),很容易上手。
(2)Visual Basic 提供了強(qiáng)大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
?。?)眾多的控件讓編程變得象壘積木一樣簡(jiǎn)單。
?。?)Visual Basic 的全部漢化讓我們這些見(jiàn)了English就頭大的人喜不自禁。
缺點(diǎn)
?。?)Visual Basic 不是真正的面向?qū)ο蟮拈_(kāi)發(fā)文具。
?。?)Visual Basic 的數(shù)據(jù)類(lèi)型太少,而且不支持指針,這使得它的表達(dá)能力很有限。
?。?)Visual Basic 不是真正的編譯型語(yǔ)言,它產(chǎn)生的最終代碼不是可執(zhí)行的,是一種偽代碼。它需要一個(gè)動(dòng)態(tài)鏈接庫(kù)去解釋執(zhí)行,這使得Visual Basic 的編譯速度大大變慢。
綜述:方案一適合初涉編程的朋友,它對(duì)學(xué)習(xí)者的要求不高,幾乎每個(gè)人都可以在一個(gè)比較短的時(shí)間里學(xué)會(huì)vB編程,并用VB 做出自己的作品。對(duì)于那些把編程當(dāng)做游戲的朋友來(lái)說(shuō),VB 是您最佳的選擇。
方案二 Pascal語(yǔ)言 & Delphi
優(yōu)點(diǎn)
(1)Pascal語(yǔ)言結(jié)構(gòu)嚴(yán)謹(jǐn),可以很好地培養(yǎng)一個(gè)人的編程思想。
(2)Delphi是一門(mén)真正的面向?qū)ο蟮拈_(kāi)發(fā)工具,并且是完全的可視化。
?。?)Delphi使用了真編譯,可以讓你的代碼編譯成為可執(zhí)行的文件,而且編譯速度非???。
(4)Delphi具有強(qiáng)大的數(shù)據(jù)庫(kù)開(kāi)發(fā)能力,可以讓你輕松地開(kāi)發(fā)數(shù)據(jù)庫(kù)。
缺點(diǎn)
Delphi幾乎可以說(shuō)是完美的,只是Pascal語(yǔ)言的過(guò)于嚴(yán)謹(jǐn)讓人感覺(jué)有點(diǎn)煩。
綜述: 方案二比較適合那些具有一定編程基礎(chǔ)并且學(xué)過(guò)Pascal語(yǔ)言的朋友。
方案三 C語(yǔ)言 & Visual C++
優(yōu)點(diǎn)
?。?)C語(yǔ)言靈活性好,效率高,可以接觸到軟件開(kāi)發(fā)比較底層的東西。
?。?)微軟的MFC庫(kù)博大精深,學(xué)會(huì)它可以讓隨心所欲地進(jìn)行編程。
(3)VC是微軟制作的產(chǎn)品,與操作系統(tǒng)的結(jié)合更加緊密。
缺點(diǎn)
對(duì)使用者的要求比較高,既要具備豐富的C語(yǔ)言編程經(jīng)驗(yàn),又要具有一定的WINDOWS編程基礎(chǔ),它的過(guò)于專(zhuān)業(yè)使得一般的編程愛(ài)好者學(xué)習(xí)起來(lái)會(huì)有不小的困難。
綜述: VC是程序員用的東西。如果你是一個(gè)永不滿(mǎn)足的人,而且可以在編程上投入很大的精力和時(shí)間,那么學(xué)習(xí)VC你一定不會(huì)后悔的。
方案四 C++語(yǔ)言 & C++ Builder
優(yōu)點(diǎn)
?。?)C++語(yǔ)言的優(yōu)點(diǎn)全部得以繼承。
?。?)完全的可是化。
?。?)極強(qiáng)的兼容性,支持OWL、VCL和MFC三大類(lèi)庫(kù)。
?。?)編譯速度非???。
缺點(diǎn)
由于推出的時(shí)間太短,關(guān)于它的各種資料還不太多。
綜述:我認(rèn)為C++ Builder 是最好的編程工具。它既保持了C++語(yǔ)言編程的優(yōu)點(diǎn),又做到了完全的可視化。
方案五 SQL語(yǔ)言 & Power Builder
對(duì)于一些傳統(tǒng)的數(shù)據(jù)開(kāi)發(fā)人員來(lái)說(shuō),F(xiàn)oxpro系列也許讓他們感到更加熟悉。但是對(duì)于初學(xué)者來(lái)說(shuō),PowerBuilder也許是最好的數(shù)據(jù)庫(kù)開(kāi)發(fā)工具。各種各樣的控件,功能強(qiáng)大的PowerBuilder語(yǔ)言都會(huì)幫助你開(kāi)發(fā)出自己的數(shù)據(jù)庫(kù)應(yīng)用程序。
補(bǔ)充:關(guān)于網(wǎng)頁(yè)后臺(tái)語(yǔ)言和其他語(yǔ)言的關(guān)系,一般認(rèn)為:
C語(yǔ)言學(xué)的好,那么學(xué)習(xí)PHP會(huì)有事半功倍的效果
VC學(xué)的好,那么學(xué)習(xí)ASP會(huì)有事半功倍的效果
JAVA學(xué)的好,那么學(xué)習(xí)JSP、JAVASCRIPT會(huì)有事半功倍的效果
關(guān)于網(wǎng)頁(yè)后臺(tái)語(yǔ)言和數(shù)據(jù)庫(kù),通常來(lái)說(shuō):
PHP與MYSQL是黃金搭檔
ASP小型網(wǎng)站用ACCESS,大型用SQL
JSP我就不知道了
關(guān)于電子商務(wù)流行的語(yǔ)言,目前
當(dāng)當(dāng)、卓越、6688、igo5、雅寶使用的是asp語(yǔ)言
易趣、淘寶使用的是php語(yǔ)言
貝塔斯曼使用的是jsp語(yǔ)言
4、至少學(xué)會(huì)以下的其中兩種:
一、網(wǎng)站服務(wù)器程序ASP、PHP、CGI、JSP
我個(gè)人認(rèn)為CGI是最難學(xué)的其中一種。
二、程序語(yǔ)言:C語(yǔ)言、C++、VB、JAVA、PERL、DELPHI、匯編語(yǔ)言
不過(guò)我認(rèn)為C語(yǔ)言的通用性最好,可以跨平臺(tái)(操作系統(tǒng))使用。
還要試著自己寫(xiě)程序、開(kāi)發(fā)軟件等工作。
三、數(shù)據(jù)庫(kù)管理軟件:MYSQL、SQL、FOXPRO……等。
四、幾種常用的操作系統(tǒng):WIN98、WIN2000、WINNT、WINXP、UNIX、LINUX、要是能學(xué)到UNIX那是最好不過(guò)的了。最最基本的WIN2K、WINNT也要學(xué)會(huì)吧。
如果以上的你都會(huì)了,那么你已經(jīng)是個(gè)高手了。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。