1、 程序員意味著要編程序。(如果你僅僅想得到一份高薪水的工作,喝喝咖啡就等老板發(fā)薪水,我奉勸你還是另找一份更合適的工作,譬如練攤,真的,兄弟,這份工作不適合你) 2、你是學(xué)文的還是學(xué)理的,編程序也許需要浪漫,但更需要邏輯和嚴(yán)謹(jǐn)。
本文我們將從以下幾個(gè)部分來(lái)詳細(xì)介紹如何成為一名程序員:網(wǎng)絡(luò)編程、桌面軟件編程、分布式程序設(shè)計(jì)、庫(kù)/平臺(tái)/框架/核心編程、系統(tǒng)編程、編程科學(xué)、參考
成為程序員是一個(gè)日積月累的過(guò)程,需要日復(fù)一日年復(fù)一年的技能增長(zhǎng)。編程本身是有趣的,并且有回報(bào)(腦力層面、精神層面、經(jīng)濟(jì)層面)。這份指南不能保證你輕松當(dāng)上程序員。不要神化下面這些步驟,從中你大概能了解在現(xiàn)今編程界如何成為一名程序員。
一、需求理解能力 在開(kāi)發(fā)過(guò)程中,要在需求細(xì)節(jié)不明的情況下,有責(zé)任設(shè)法搞清楚,積極學(xué)習(xí)編程思想和方法,并在設(shè)計(jì)、編碼工作中自覺(jué)應(yīng)用,對(duì)有一些復(fù)雜程度的設(shè)計(jì),主動(dòng)申請(qǐng)?jiān)O(shè)計(jì)審查。并能在開(kāi)發(fā)用戶界面之前,盡可能使用界面原型方法獲取用戶的
第1步:學(xué)習(xí)下列這些學(xué)科中一兩門(mén)引導(dǎo)性課程:
1 學(xué)習(xí)如何編程 這當(dāng)然是最基本的黑客技術(shù)。如果你還不會(huì)任何計(jì)算機(jī)語(yǔ)言,我建議你從Python開(kāi)始。它設(shè)計(jì)清晰,文檔齊全,對(duì)初學(xué)者很合適。盡管是一門(mén)很好的初級(jí)語(yǔ)言,它不僅僅只是個(gè)玩具。它非常強(qiáng)大,靈活,也適合做大型項(xiàng)目。 但是記住,如果
邏輯學(xué)
離散數(shù)學(xué)
第2步:學(xué)習(xí)數(shù)據(jù)庫(kù)概念,比如表,視圖/查詢和進(jìn)程。
首先先選擇一門(mén)語(yǔ)言 現(xiàn)在比較火的是sun公司的java 和微軟的C# 友情提示:java移植性很好,這是網(wǎng)絡(luò)平臺(tái)所需要的。C#只能運(yùn)行在微軟的平臺(tái),有局限性。 我不排斥其他的計(jì)算機(jī)語(yǔ)言 不過(guò)一般只要學(xué)懂一門(mén)語(yǔ)言后就相當(dāng)進(jìn)入程序的天堂,在學(xué)其他的語(yǔ)
你可以使用任何簡(jiǎn)單的數(shù)據(jù)庫(kù)包來(lái)完成這些,比如:
做為一名程序員至少熟練掌握兩到三種開(kāi)發(fā)工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點(diǎn)推薦的開(kāi)發(fā)工具,C/C++以其高效率和高度的靈活性成為開(kāi)發(fā)工具中的利器,很多系統(tǒng)級(jí)的軟件還是用C/C++編寫(xiě)。而JAVA的跨平臺(tái)和與WEB很好的結(jié)合是J
MS Access
【職位名稱】程序員 【是什么】 程序員是指從事程序開(kāi)發(fā)、維護(hù)的專業(yè)人員,一般分為程序設(shè)計(jì)人員和程序編碼員。 【做什么】 ① 項(xiàng)目策劃、市場(chǎng)調(diào)查; ② 用戶的需求分析,策劃程序框架、流程; ③ 編寫(xiě)代碼,開(kāi)發(fā)程序,同時(shí)編寫(xiě)開(kāi)發(fā)文檔; ④ 測(cè)試,
DB V
Fox Pro
當(dāng)你自己真正的完成一個(gè)程序時(shí)你就能夠成為一個(gè)真正的程序員了。之前是需要你向前輩們認(rèn)真學(xué)習(xí)的階段。 如何成為一個(gè)優(yōu)秀的程序員: 同一時(shí)間處理多個(gè)工作任務(wù),我們對(duì)這種情況并不陌生。有時(shí)候是迫不得已,但有時(shí)候也是個(gè)人的習(xí)慣造成的。“同一
Paradox
程序員都有什么特質(zhì)? 1.有獨(dú)立思考解決問(wèn)題的能力 2.好奇心強(qiáng),有探索精神 3.邏輯思維能力很強(qiáng) 既然決定了要做一名程序員,而且做好了充分的心理準(zhǔn)備了,就要了解程序員都有什么特質(zhì),而現(xiàn)在自己自己距離這個(gè)還有多少差距?沒(méi)有人能隨隨便便就
MySQL是一個(gè)很值得學(xué)習(xí)的數(shù)據(jù)庫(kù),因?yàn)樗赓M(fèi)且通用,數(shù)據(jù)庫(kù)常常用于SQL查詢。
[經(jīng)驗(yàn)之談]30歲,我的程序,我的夢(mèng)! 程序人生 : 30歲,我的程序員夢(mèng)想 作 者: redbridge (雪燃) 30歲,開(kāi)始實(shí)現(xiàn)我的程序員夢(mèng),從一個(gè)編程愛(ài)好者,從一個(gè)業(yè)余的程序員,一個(gè)水平不高的程序員,一個(gè)半道出家的程序員 我的經(jīng)歷到這里就告一
第3步:想好你要成為哪種程序員。
[經(jīng)驗(yàn)之談]30歲,我的程序,我的夢(mèng)! 程序人生 : 30歲,我的程序員夢(mèng)想 作 者: redbridge (雪燃) 30歲,開(kāi)始實(shí)現(xiàn)我的程序員夢(mèng),從一個(gè)編程愛(ài)好者,從一個(gè)業(yè)余的程序員,一個(gè)水平不高的程序員,一個(gè)半道出家的程序員 我的經(jīng)歷到這里就告一
通常程序員會(huì)是下面某一種:
首先要熟練一種編程語(yǔ)言,編程是一通百通的,以后學(xué)別的語(yǔ)言就可以基于這種語(yǔ)言的理解,學(xué)起來(lái)會(huì)快好多; 其次,算法與數(shù)據(jù)結(jié)構(gòu)是很重要的,不但以后找工作會(huì)考到,在實(shí)際的運(yùn)用中也會(huì)起到潛移默化的作用; 第三,好的程序員是要靠代碼的積累的
網(wǎng)絡(luò)程序員
桌面軟件程序員
牛的人總是讓人羨慕,但如何才能讓自己成為牛的人對(duì)我們來(lái)說(shuō)更重要,本文分享的是如何才能成為java高級(jí)程序員,你和java高級(jí)程序員只差這一篇雞湯!干了這碗雞湯,未來(lái)不可限量! 1、離開(kāi)舒適區(qū),提高個(gè)人代碼能力 不安于現(xiàn)狀,高級(jí)程序員一
操作系統(tǒng)程序員(有單系統(tǒng),也有多系統(tǒng))
1:團(tuán)隊(duì)精神和協(xié)作能力 ,和基本的操作常識(shí),缺乏這種素質(zhì)的人就完全不合格了。 2.要有做文檔的習(xí)慣,缺乏文檔,一個(gè)軟件系統(tǒng)就缺乏生命力,在未來(lái)的查錯(cuò),升級(jí)以及模塊的復(fù)用時(shí)就都會(huì)遇 到極大的麻煩。 3:規(guī)范化,標(biāo)準(zhǔn)化的代碼編寫(xiě)習(xí)慣 。 4.
獨(dú)立平臺(tái)程序員
優(yōu)秀的程序員要具備很強(qiáng)的分析,和思維能力,我是一個(gè)Java JSP 的程序員,以我自己的感覺(jué),程序員的理解能力要很強(qiáng),因?yàn)槲覀冏鲆粋€(gè)業(yè)務(wù)系統(tǒng)需要了解這個(gè)業(yè)務(wù)的邏輯,才可以去開(kāi)發(fā),至于學(xué)什么語(yǔ)言,我覺(jué)得只要你可以精通一種語(yǔ)言,其他的你就都
分布式程序設(shè)計(jì)員
牛的人總是讓人羨慕,但如何才能讓自己成為牛的人對(duì)我們來(lái)說(shuō)更重要,本文分享的是如何才能成為java高級(jí)程序員,你和java高級(jí)程序員只差這一篇雞湯!干了這碗雞湯,未來(lái)不可限量! 1、離開(kāi)舒適區(qū),提高個(gè)人代碼能力 不安于現(xiàn)狀,高級(jí)程序員一
庫(kù)/平臺(tái)/框架/核心程序員
成為一名優(yōu)秀的碼農(nóng),至少要避免出現(xiàn)下列問(wèn)題 1、沒(méi)有明確的目標(biāo) 心中沒(méi)有終點(diǎn)目標(biāo),那就只會(huì)隨波逐流。如果你想在軟件開(kāi)發(fā)的職業(yè)生涯上獲得成功,那么你需要有一個(gè)明確的目標(biāo)。你應(yīng)該有堅(jiān)實(shí)的目標(biāo)——在某個(gè)時(shí)間段內(nèi)的首要目的——明確定義的目標(biāo)。
系統(tǒng)程序員
內(nèi)核程序員
驅(qū)動(dòng)程序員
編譯程序員
編程科學(xué)家
第4步:了解你的編程領(lǐng)域內(nèi)相關(guān)技術(shù)和編程語(yǔ)言。
從初入職場(chǎng)菜鳥(niǎo)到職場(chǎng)大咖,很多程序員在努力充實(shí)自己,有時(shí)候我們需要對(duì)自己進(jìn)行一次能力定位,了解自己的優(yōu)勢(shì)和沒(méi)有掌握的技術(shù)。芯學(xué)苑列出幾點(diǎn)作為初入職場(chǎng)的新手評(píng)估自己,明了前進(jìn)學(xué)習(xí)的方向。 1、技術(shù)能力(解決問(wèn)題的能力) 這是非常重要的
下面的部分詳細(xì)給出了成為不同類型程序員所需的步驟。
做程序員最需要的就是熬得住,有時(shí)候你努力了很長(zhǎng)一段時(shí)間可能一點(diǎn)好的結(jié)果都沒(méi)有這是很正常的。所以就看你的耐心怎么樣。如果你僅僅是有,想進(jìn)入這個(gè)行業(yè)嘗試,那做為前輩來(lái)說(shuō)我還是奉勸你打消這個(gè)念頭,到IT里面做程序設(shè)計(jì)是很辛苦的,很
第一部分:網(wǎng)絡(luò)編程
成為一名出色的程序員的基本規(guī)則: 1.扎實(shí)的基矗數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學(xué)、編譯原理,這些是所有計(jì)算機(jī)科學(xué)的基礎(chǔ),如果不掌握他們,很難寫(xiě)出高水平的程序。據(jù)我的觀察,學(xué)計(jì)算機(jī)專業(yè)的人比學(xué)其他專業(yè)的人更能寫(xiě)出高質(zhì)量的軟件。程序人人都會(huì)寫(xiě),但當(dāng)
第1步:了解網(wǎng)絡(luò)編程的含義。
我建議你看一下網(wǎng)上很火的一篇文章叫:程序員的十層樓。 我再寫(xiě)寫(xiě)我自己的經(jīng)驗(yàn)吧: [經(jīng)驗(yàn)之談]30歲,我的程序,我的夢(mèng)! 程序人生 : 30歲,我的程序員夢(mèng)想 作 者: redbridge (雪燃) 30歲,開(kāi)始實(shí)現(xiàn)我的程序員夢(mèng),從一個(gè)編程愛(ài)好者,從一個(gè)業(yè)余
網(wǎng)絡(luò)應(yīng)用是指設(shè)計(jì)在網(wǎng)絡(luò)結(jié)構(gòu)頂層的軟件部分。這就意味著這些應(yīng)用是通過(guò)諸如火狐或IE之類的瀏覽器來(lái)處理的。架構(gòu)于網(wǎng)絡(luò)結(jié)構(gòu)的頂層并不一定要連接到網(wǎng)絡(luò)。這就是說(shuō)網(wǎng)絡(luò)應(yīng)用建立在如下標(biāo)準(zhǔn)網(wǎng)絡(luò)技術(shù)的頂層:
【職位名稱】程序員 【是什么】 程序員是指從事程序開(kāi)發(fā)、維護(hù)的專業(yè)人員,一般分為程序設(shè)計(jì)人員和程序編碼員。 【做什么】 ① 項(xiàng)目策劃、市場(chǎng)調(diào)查; ② 用戶的需求分析,策劃程序框架、流程; ③ 編寫(xiě)代碼,開(kāi)發(fā)程序,同時(shí)編寫(xiě)開(kāi)發(fā)文檔; ④ 測(cè)試,
HTTP
FTP
POP3
SMTP
TCP
IP協(xié)議
HTML
XML
Coldfusion
1,先學(xué)習(xí)語(yǔ)言本身,那就邊看邊把程序抄到電腦上運(yùn)行,不要希望每次都抄的很正確,要注意在錯(cuò)誤中慢慢體會(huì)語(yǔ)言本身為什么要這樣規(guī)定,慢慢理解語(yǔ)言。(這里所說(shuō)的語(yǔ)言當(dāng)然指的是java語(yǔ)言啊) 2,等學(xué)好了java語(yǔ)言本身,就要學(xué)習(xí)學(xué)習(xí)java的文件輸
ASP
JSP
PHP
ASP.NET
對(duì)于軟件開(kāi)發(fā)人員來(lái)說(shuō),通常,他們職業(yè)發(fā)展有幾個(gè)選擇:專注于技術(shù),成為技術(shù)專家;轉(zhuǎn)型到技術(shù)型銷售、技術(shù)支持等;所以要想走得遠(yuǎn)一點(diǎn),必須有一項(xiàng)本領(lǐng)是過(guò)人的。 隨著技術(shù)成長(zhǎng),從技術(shù)性管理到高級(jí)管理。這是大家都看得清楚的方向,也都在向這
第2步:瀏覽不同的網(wǎng)站,了解它們的外觀。
1,文檔習(xí)慣 :文檔是一個(gè)軟件系統(tǒng)的生命力。一個(gè)公司的產(chǎn)品再好、技術(shù)含量再高,如果缺乏文檔,知識(shí)就沒(méi)有繼承,公司還是一個(gè)來(lái)料加工的軟件作坊。作為代碼程序員,必須將30%的工作時(shí)間寫(xiě)用于技術(shù)文檔。沒(méi)有文檔的程序員勢(shì)必會(huì)被淘汰。 2,模塊
(右擊,選擇“查看源”或按F12。)尋找網(wǎng)站類型/內(nèi)容的多樣性,而非數(shù)量。通常你需要訪問(wèn)以下網(wǎng)站類型中至少一種:
1、 程序員意味著要編程序。(如果你僅僅想得到一份高薪水的工作,喝喝咖啡就等老板發(fā)薪水,我奉勸你還是另找一份更合適的工作,譬如練攤,真的,兄弟,這份工作不適合你) 2、你是學(xué)文的還是學(xué)理的,編程序也許需要浪漫,但更需要邏輯和嚴(yán)謹(jǐn)。
團(tuán)體網(wǎng)站(商業(yè)公司,非營(yíng)利機(jī)構(gòu)/組織,政府組織)
信息技術(shù)的更新速度是驚人的,程序員的職業(yè)生涯則是一個(gè)要求不斷學(xué)習(xí)的過(guò)程,永遠(yuǎn)不能固步自封。本人在工作期間曾看見(jiàn)過(guò)很多程序員只要有閑暇時(shí)間就瀏覽一些沒(méi)有太大作用的網(wǎng)頁(yè),在網(wǎng)上聊天,打游戲,浪費(fèi)了大量的時(shí)間,十分不可齲而另外一種情
網(wǎng)絡(luò)索引引擎(搜索引擎,meta搜索網(wǎng)站,專業(yè)化搜索引擎,目錄)
做為一名程序員至少熟練掌握兩到三種開(kāi)發(fā)工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點(diǎn)推薦的開(kāi)發(fā)工具,C/C++以其高效率和高度的靈活性成為開(kāi)發(fā)工具中的利器,很多系統(tǒng)級(jí)的軟件還是用C/C編寫(xiě)。而JAVA的跨平臺(tái)和與WEB很好的結(jié)合是JAV
數(shù)據(jù)挖掘網(wǎng)站
[經(jīng)驗(yàn)之談]30歲,我的程序,我的夢(mèng)! 程序人生 : 30歲,我的程序員夢(mèng)想 作 者: redbridge (雪燃) 30歲,開(kāi)始實(shí)現(xiàn)我的程序員夢(mèng),從一個(gè)編程愛(ài)好者,從一個(gè)業(yè)余的程序員,一個(gè)水平不高的程序員,一個(gè)半道出家的程序員 我的經(jīng)歷到這里就告一
個(gè)人網(wǎng)站
信息/百科全書(shū)式網(wǎng)頁(yè)(維基,數(shù)據(jù)單,技術(shù)規(guī)格,人工列表目錄,博客和日志,新聞和新聞機(jī)構(gòu)網(wǎng)站,黃頁(yè),等等。)
社交網(wǎng)站(社交門(mén)戶,書(shū)簽網(wǎng)站,記錄筆記網(wǎng)站)
合作網(wǎng)站(這包含了上面提及的目錄,比如維基和博客)
第3步:學(xué)習(xí)至少一種頭腦風(fēng)暴技術(shù)/方法,并學(xué)習(xí)一個(gè)用來(lái)實(shí)現(xiàn)頭腦風(fēng)暴的軟件。
例如:頭腦風(fēng)暴圖和微軟Visio。
第4步:熟悉網(wǎng)站結(jié)構(gòu)。
指的是創(chuàng)建概念化網(wǎng)絡(luò)范式、網(wǎng)絡(luò)地圖和導(dǎo)航結(jié)構(gòu)。
第5步:趕緊學(xué)一門(mén)圖形設(shè)計(jì)的課程。
盡量學(xué)習(xí)至少一個(gè)圖形編輯/操作軟件包(不是必須的,但強(qiáng)烈推薦)
第6步:了解網(wǎng)絡(luò)下部構(gòu)造的基本情況。
包括了解以下:
基本網(wǎng)絡(luò)服務(wù)協(xié)議(HTTP,F(xiàn)TP, SMTP和POP3或IMAP4)
網(wǎng)絡(luò)服務(wù)器軟件(最好其中一個(gè)就是你以后主要工作的平臺(tái))
網(wǎng)絡(luò)瀏覽軟件
郵件服務(wù)器和客戶端軟件
第7步:學(xué)習(xí)HTML和CSS語(yǔ)言。
或許你還想要“所見(jiàn)即所得”軟件包來(lái)編輯HTML。
第8步:學(xué)習(xí)XML及其相關(guān)技術(shù),比如XSL和XPath(不是必需,僅作推薦)。
第9步:先建立簡(jiǎn)單的靜態(tài)網(wǎng)站,直至你熟悉并習(xí)慣HTML語(yǔ)言。
第10步:學(xué)習(xí)客戶端腳本語(yǔ)言。
多數(shù)人要么學(xué)Java,要么學(xué)VB,但也有一些人學(xué)習(xí)Perl和DHTML。
第11步:熟悉你所學(xué)的客戶端腳本語(yǔ)言。
潛意識(shí)里提醒自己只用你學(xué)的那個(gè)語(yǔ)言。只有在你熟悉你的客戶端腳本語(yǔ)言之后才能進(jìn)入下個(gè)步驟。
第12步:學(xué)習(xí)至少一種服務(wù)器端腳本語(yǔ)言。
如果你只用一種服務(wù)器軟件,那就學(xué)其中一種編程語(yǔ)言。否則,你得每個(gè)服務(wù)器軟件都學(xué)至少一種編程語(yǔ)言。
第13步:學(xué)完服務(wù)器端編程語(yǔ)言之后就開(kāi)始創(chuàng)建一個(gè)試驗(yàn)項(xiàng)目。
第14步:獲得你的網(wǎng)站,開(kāi)始用你自己的網(wǎng)頁(yè)實(shí)驗(yàn)。
第二部分:桌面軟件編程
第1步:弄清楚桌面軟件編程是怎么回事。
多數(shù)桌面軟件程序員都是編寫(xiě)商務(wù)需要的代碼,所以好好了解一下商業(yè)及其組織和經(jīng)濟(jì)結(jié)構(gòu)將對(duì)節(jié)省時(shí)間、提高效率大有裨益。
第2步:了解不同的電腦硬件結(jié)構(gòu)。
看看數(shù)字電路設(shè)計(jì)和電腦結(jié)構(gòu)的入門(mén)級(jí)課程,但是也有人認(rèn)為這對(duì)于剛起步來(lái)說(shuō)太超前了,所以看兩三篇說(shuō)明的文章(比如 這一篇 和 這一篇)就夠了。學(xué)完第一種編程語(yǔ)言后你可以再返回這個(gè)步驟。
第3步:學(xué)習(xí)一種入門(mén)級(jí)(小孩子學(xué)的那種)編程語(yǔ)言。
不要因?yàn)槟悴皇莻€(gè)小孩子就不好意思去學(xué)。這些入門(mén)級(jí)語(yǔ)言能大大減輕你正式學(xué)習(xí)第一門(mén)編程語(yǔ)言時(shí)的痛苦和壓力。然而這一步也不是必須的。你也可以在上一步之前完成。
第4步:學(xué)習(xí)程序化、面向?qū)ο蟆⒑瘮?shù)設(shè)序設(shè)計(jì)規(guī)范的入門(mén)。
第5步:學(xué)習(xí)一種程序化程式設(shè)計(jì)語(yǔ)言的入門(mén)課程。
無(wú)論你以后選擇何種編程語(yǔ)言,在某種程度上它都要求程序化程式設(shè)計(jì)。此外,據(jù)多數(shù)程序員反映,程序化程式設(shè)計(jì)總的來(lái)說(shuō)是了解編程的一個(gè)很好的切入點(diǎn)。
第6步:學(xué)習(xí)至少一種高級(jí)建模技術(shù),比如UML 或ORM。
第7步:開(kāi)始編寫(xiě)一些小的主控臺(tái)應(yīng)用程式或類似的應(yīng)用程式。
你可以利用編程書(shū)中的常見(jiàn)小練習(xí)。選擇一個(gè)工具,用你所學(xué)的編程語(yǔ)言編寫(xiě)程序。
第8步:學(xué)習(xí)一門(mén)你選擇的編程語(yǔ)言的更高級(jí)課程。
確保進(jìn)展之前先理解下列概念,并能熟練運(yùn)用。
對(duì)程序用戶輸入輸出信息。
程式化設(shè)計(jì)語(yǔ)言寫(xiě)成的程序中的邏輯流程和執(zhí)行流程。
聲明、分配和比較變量
編程結(jié)構(gòu)分支,比如if..then..else 和 select/switch..case.
循環(huán)結(jié)構(gòu),比如while..do, do..while/until, for..next.
創(chuàng)建、調(diào)用程序與函數(shù)的編程句法
數(shù)據(jù)類型及如何操控
用戶定義數(shù)據(jù)類型(records/structs/units)及其使用
如果你的語(yǔ)言支持超載函數(shù),理解它。
你選擇的語(yǔ)言的內(nèi)存處理方式(指針,變量窺視,等等。)
如果你的語(yǔ)言支持運(yùn)營(yíng)商超載,理解它。
如果你的語(yǔ)言支持delegates/函數(shù)指針,理解它。
第9步:應(yīng)用你所學(xué)的高級(jí)技能
面向?qū)ο蟮囊?guī)范
第10步:至少再學(xué)習(xí)一門(mén)編程語(yǔ)言規(guī)范的入門(mén)課程。
推薦學(xué)習(xí)每種范式的編程語(yǔ)言,多數(shù)高級(jí)程序員確實(shí)是這么做的,然而,通常你開(kāi)始時(shí)只學(xué)一種,應(yīng)用所學(xué)知識(shí)訓(xùn)練了一段時(shí)間,獲得了編程的鮮活經(jīng)驗(yàn),然后接著學(xué)習(xí)另一種。試試下面的語(yǔ)言:
邏輯編程范式
函數(shù)編程范式
第11步:試著比較你所學(xué)的兩門(mén)編程語(yǔ)言。
評(píng)估各自利弊。通常可按以下方法完成
拿出你在學(xué)習(xí)第一門(mén)編程語(yǔ)言時(shí)編寫(xiě)的簡(jiǎn)單范例,現(xiàn)在用第二門(mén)語(yǔ)言重新編寫(xiě)。
創(chuàng)建一個(gè)工程,盡量用上兩種語(yǔ)言完成它。有時(shí)取決于你選擇的工程和語(yǔ)言,你可能僅用一門(mén)語(yǔ)言還無(wú)法完成這個(gè)工程呢!
寫(xiě)一份兩種語(yǔ)言之間相似結(jié)構(gòu)和獨(dú)特之處對(duì)比的速查表或一覽表。
盡量使用另一門(mén)語(yǔ)言找到模仿這兩門(mén)語(yǔ)言中獨(dú)特之處的辦法。
第12步:利用你學(xué)過(guò)的一種語(yǔ)言來(lái)學(xué)習(xí)可視化編程概念。
幾乎所有的編程語(yǔ)言都具有支持可視化編程和其他支持控制臺(tái)或類似控制臺(tái)編程的版本/庫(kù)。同時(shí)進(jìn)行的包括:
初步了解事件驅(qū)動(dòng)編程。在某種程度上,多數(shù)可視化編程依賴事件及事件處理(用上你選擇的語(yǔ)言)。
盡可能多的嘗試桌面軟件,理解軟件是做什么的。多數(shù)軟件開(kāi)發(fā)公司會(huì)提供產(chǎn)品的測(cè)試版,你可以拿來(lái)測(cè)試軟件。在完善用戶界面方面保持更新。
閱讀關(guān)于圖形用戶界面的文章或教程。
第13步:開(kāi)始把你所學(xué)的知識(shí)運(yùn)用到你設(shè)計(jì)的軟件小工程中。
盡量把你的編程專業(yè)知識(shí)運(yùn)用到你日常生活中的問(wèn)題上。比如,編寫(xiě)程序,批量重命名文件,視覺(jué)上比較文本文件,復(fù)制目錄里的文件名到內(nèi)存/文本文件之類的東西。剛開(kāi)始簡(jiǎn)單一點(diǎn)。
第14步:創(chuàng)建一個(gè)虛擬的“畢業(yè)工程”。
把這個(gè)放到最后完成,用上你到目前為止學(xué)到的可視化編程技術(shù)。
第15步:通過(guò)學(xué)習(xí)更高級(jí)的課程、更加注意細(xì)節(jié)以及在網(wǎng)上學(xué)習(xí)搭建架構(gòu)的技巧,來(lái)加深對(duì)你學(xué)過(guò)的可視化架構(gòu)/庫(kù)/包的理解。
第16步:搜索其他含可視化元素的包/庫(kù)并學(xué)習(xí)它們。
第17步:學(xué)習(xí)圖形學(xué)課程(而非圖形設(shè)計(jì))。
對(duì)于想要寫(xiě)出吸引人的用戶界面元素的程序員來(lái)說(shuō),這將大有裨益。
第18步:成為游戲程序員(不是必須的)。
很大程度上游戲編程是被當(dāng)作桌面編程的。如果你想成為游戲程序員,完成這些步驟后你需要進(jìn)一步學(xué)習(xí)游戲編程。對(duì)于游戲程序員而言,圖形學(xué)課程是必須的,后續(xù)步驟中第二門(mén)語(yǔ)言應(yīng)該選擇邏輯/函數(shù)編程語(yǔ)言(最好是Prolog或Lisp)。
第三部分:分布式程序設(shè)計(jì)
第1步:處理分布式應(yīng)用編程。
分布式應(yīng)用編程被許多人認(rèn)為是最難學(xué)的一種,它要求計(jì)算機(jī)和通信技術(shù)中的不同知識(shí)。
第2步:快速了解通信系統(tǒng)及其硬件。
這個(gè)步驟不是必須的,但是對(duì)于理解網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)很有用。
第3步:熟悉網(wǎng)絡(luò)硬件結(jié)構(gòu)和設(shè)備,比如集線器、接線臺(tái)和路由器。
第4步:學(xué)習(xí)網(wǎng)絡(luò)協(xié)議的課程。
在你開(kāi)始分布式應(yīng)用編程之前,你需要好好理解“開(kāi)放系統(tǒng)互聯(lián) (OSI) ”模型、以太、IP、TCP、UDP和HTTP 。
第5步:學(xué)習(xí)XML 語(yǔ)言,并熟悉它。
第6步:開(kāi)始學(xué)習(xí)一門(mén)shell腳本語(yǔ)言。
對(duì)基于Windows的編程,可以是任何能與Windows腳本宿主兼容的腳本。對(duì)基于Linux的編程,Bash腳本和 Perl就夠了。對(duì)這兩個(gè)平臺(tái)都強(qiáng)烈推薦Java,原因如下:
幾乎所有操作系統(tǒng)的都支持腳本宿主(Windows 腳本宿主默認(rèn)支持java ,大多數(shù)Linux發(fā)行版都有支持java腳本控制的包)。
許多開(kāi)發(fā)者認(rèn)為它很容易學(xué)。
當(dāng)你需要學(xué)第二門(mén)編程語(yǔ)言(C,C++,C#,Java和J#都有ALGOL開(kāi)源句法)時(shí),它擁有的ALGLO開(kāi)源句法就能使你熟悉更多編程語(yǔ)言
通過(guò)學(xué)習(xí)java,你會(huì)熟悉網(wǎng)頁(yè)的客戶端腳本,這可謂一大福利!
第7步:開(kāi)始時(shí)用上你學(xué)的腳本知識(shí),只運(yùn)用程序化程式設(shè)計(jì)。
之后,根據(jù)你的腳本語(yǔ)言和它所支持的,你可以用上更高級(jí)的編程技巧和范式。所有的腳本語(yǔ)言在某種程度上都有程序化程式設(shè)計(jì)的一些方面。
第8步:使用你所學(xué)的腳本語(yǔ)言,寫(xiě)出實(shí)現(xiàn)機(jī)器之間通信的腳本。
學(xué)習(xí)完成這個(gè)所必需的東西。簡(jiǎn)單的通信就足夠了。
第9步:轉(zhuǎn)移到桌面腳本/編程語(yǔ)言。
一個(gè)比較好的是多范式語(yǔ)言,比如Python。簡(jiǎn)單了解第二門(mén)語(yǔ)言。有許多理由讓多數(shù)程序員選擇java。然而,在這個(gè)領(lǐng)域內(nèi)C#正在獲得多數(shù)優(yōu)勢(shì)。Java和C#被青睞的原因如下:
它們是面向?qū)ο蟮木幊陶Z(yǔ)言,使大量程序員免遭實(shí)現(xiàn)細(xì)節(jié)之苦,因?yàn)樗鼈兌贾С纸M成部分(代碼單元、預(yù)編譯,它們可以執(zhí)行特定任務(wù),并被用到其他程序中)。
它們支持事件驅(qū)動(dòng)編程,在某種程度上還支持OO和程式化程序設(shè)計(jì)。
建立語(yǔ)言的架構(gòu)按屬性分布(比如Java)。
有許多現(xiàn)成的包來(lái)處理。社交網(wǎng)絡(luò)同時(shí)作為開(kāi)源代碼和架構(gòu)內(nèi)置包,這使得程序員繼續(xù)其他人工作更加容易。
第10步:專注于語(yǔ)言的核心部分,尤其hi那些支持網(wǎng)絡(luò)。
少注意用戶界面元素,比如輸出,窗口設(shè)計(jì)和技術(shù)等。
第11步:學(xué)習(xí)分布式應(yīng)用設(shè)計(jì)與結(jié)構(gòu)的課程。
可以通過(guò)書(shū)本、網(wǎng)上教程或?qū)W術(shù)課程來(lái)完成。然而,十分有必要理解分布式應(yīng)用的結(jié)構(gòu)及其概念。
第12步:使用你所學(xué)的編程語(yǔ)言來(lái)了解服務(wù)部分建構(gòu)和服務(wù)。
第13步:學(xué)習(xí)如下技術(shù)中一種或更多。
推薦你每一種都了解以下。多數(shù)分布式應(yīng)用程序員不會(huì)止于一兩門(mén)編程語(yǔ)言,他們會(huì)每個(gè)操作系統(tǒng)各學(xué)至少一種語(yǔ)言。這是因?yàn)槿绻阆M愕膽?yīng)用“分布式”,你應(yīng)該至少為每個(gè)主要的操作系統(tǒng)各提供一個(gè)版本。
公共對(duì)象訪問(wèn)代理體系結(jié)構(gòu)(CORBA)
簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)
異步JavaScript和XML(AJAX)
分布式組建對(duì)象模型(DCOM)
.NET遠(yuǎn)程處理
XML 網(wǎng)絡(luò)服務(wù)
第四部分:庫(kù)/平臺(tái)/框架/核心編程
第1步:了解什么是核心編程。
核心程序員幾乎都是高級(jí)程序員,已經(jīng)從編寫(xiě)應(yīng)用轉(zhuǎn)變?yōu)榻o其他程序員編寫(xiě)代碼匯編。
第2步:學(xué)習(xí)一門(mén)支持創(chuàng)建可重復(fù)使用內(nèi)容/包的編程語(yǔ)言,如果你還沒(méi)學(xué)過(guò)的話。
第3步:學(xué)習(xí)一門(mén)UML 和ORM的高級(jí)課程。
多數(shù)庫(kù)開(kāi)發(fā)者使用其中一種,或兩種都用。
第4步:學(xué)習(xí)軟件工程的課程。
第5步:學(xué)習(xí)至少一個(gè)模塊,基于內(nèi)容的、面對(duì)對(duì)象的和 事件驅(qū)動(dòng)編程技術(shù)和概念。
你所學(xué)覆蓋越多編程范式和語(yǔ)言,你就能成為越成功的庫(kù)/包程序員。
第6步:進(jìn)一步了解不同的操作系統(tǒng)及其支持的編程架構(gòu)。
第7步:集中學(xué)習(xí)獨(dú)立平臺(tái)架構(gòu)、編程語(yǔ)言和技術(shù)。
第8步:如果到目前為止你學(xué)習(xí)的編程語(yǔ)言具有ANSI/ISO/EEE/W3C標(biāo)準(zhǔn)版本,那么掌握這些標(biāo)準(zhǔn)。
無(wú)論何時(shí)盡可能使用標(biāo)準(zhǔn)代碼。
第9步:嘗試模擬簡(jiǎn)單的、已經(jīng)建立的庫(kù),尤其是開(kāi)源的庫(kù)。
這在成為庫(kù)/包程序員的早期階段十分有用。從簡(jiǎn)單的包開(kāi)始,比如單位轉(zhuǎn)換和中間科學(xué)計(jì)算包。如果你是大學(xué)生,利用你的非編程課程,嘗試把這些課程的方程式與核心科學(xué)用作庫(kù)。
第10步:在你的編程領(lǐng)域內(nèi)尋找開(kāi)源的包。
首先下載包的二進(jìn)制/可執(zhí)行文件。盡量去用,并發(fā)現(xiàn)它的利弊。之后,下載源,盡量弄明白它是怎么完成的。嘗試再創(chuàng)造這些庫(kù)或其部分。剛開(kāi)始,看完代碼再做;之后,先做再看代碼。后期階段,嘗試完善那些庫(kù)。
第11步:學(xué)習(xí)不同方法。
給程序員分發(fā)、配送內(nèi)容。
通常,庫(kù)/包程序員傾向于以遞歸和/或迭代的思想來(lái)思考他們面臨的所有問(wèn)題 。盡量把每個(gè)問(wèn)題當(dāng)作一個(gè)小問(wèn)題的匯編(一系列更小的任務(wù))或一個(gè)重復(fù)的不斷縮小問(wèn)題范圍直至把這些更小的范圍彼此堆到一起的處理過(guò)程去思考。
庫(kù)/包程序員傾向于概括化。也就是說(shuō),當(dāng)面臨一個(gè)特定的簡(jiǎn)單的問(wèn)題時(shí),他們通常會(huì)想到一個(gè)更為概括的問(wèn)題,并努力解決這個(gè)更概括的問(wèn)題,如此,小問(wèn)題便不攻自破。
第五部分:系統(tǒng)編程
第1步:了解系統(tǒng)編程的定義。
系統(tǒng)編程處理的是編程的“科學(xué)”,而不是具體的編程實(shí)現(xiàn)。不要把你自己栓到特定平臺(tái)上。
第2步:跟著“桌面應(yīng)用程序員”的前三個(gè)步驟。
第3步:學(xué)習(xí)線性代數(shù)的入門(mén)課程。
第4步:學(xué)習(xí)微積分課程。
第5步:學(xué)習(xí)邏輯學(xué)和/或離散數(shù)學(xué)課程。
第6步:了解不同的“準(zhǔn)操作系統(tǒng)”。
這可以通過(guò)以下途徑完成:
了解操作系統(tǒng)是如何安裝的。
了解在一臺(tái)PC上如何安裝不同的操作系統(tǒng)(不是必須的,但作為推薦)
安裝不止一種操作系統(tǒng)。不要在系統(tǒng)中安裝任何輔助包,相反,僅利用操作系統(tǒng)本身提供的函數(shù)。
第7步:學(xué)習(xí)計(jì)算機(jī)硬件結(jié)構(gòu)的課程(或者作為替代,看看書(shū))。
第8步:深入理解不同的計(jì)算機(jī)硬件平臺(tái)。
第9步:初步熟悉你所選擇的硬件平臺(tái)/操作系統(tǒng)的匯編語(yǔ)言。
稍后你會(huì)學(xué)習(xí)其他平臺(tái)/系統(tǒng)的匯編。
第10步:學(xué)習(xí)ANSI C 和 C++ 語(yǔ)言,還有程序化程式設(shè)計(jì)的一些概念。
第11步:在你選擇的平臺(tái)上理解并實(shí)踐C/C++標(biāo)準(zhǔn)庫(kù)。
尤其注意標(biāo)準(zhǔn)模板庫(kù)(STL)和活動(dòng)模板庫(kù)(ATL)。
第12步:搜索網(wǎng)絡(luò)資源、書(shū)籍和課程來(lái)理解你的平特的C風(fēng)格。
第13步:用C/C++練習(xí)編寫(xiě)高級(jí)代碼。
第14步:學(xué)習(xí)更高級(jí)的Assembly。
第15步:學(xué)習(xí)操作系統(tǒng)設(shè)計(jì)的課程。
第16步:尋找并閱讀你所選擇的平臺(tái)的相關(guān)文章。
如果你選的是基于Unix的操作系統(tǒng)就會(huì)容易得多。充分理解你今后將要用來(lái)工作的系統(tǒng)。
第17步:練習(xí)你已經(jīng)掌握的知識(shí)。
首先創(chuàng)建小的系統(tǒng)軟件。如下通常很有用:
試著重創(chuàng)你系統(tǒng)中已有的小工具。
試著把其他系統(tǒng)中的應(yīng)用移植到你的系統(tǒng)里。
第18步:以最有益的順序?qū)W習(xí)語(yǔ)言。
此處是唯一強(qiáng)調(diào)第一門(mén)編程語(yǔ)言的地方。首先學(xué)習(xí)ANSI C 而不是 C++、C#、Java 、D。然后學(xué)習(xí) C++。
你第一門(mén)語(yǔ)言僅為C是因?yàn)橄到y(tǒng)編程要求程序員熟悉如下概念:
源代碼真實(shí)、完全的編譯
低級(jí)對(duì)象輸出文件
鏈接二進(jìn)制
低級(jí)機(jī)器語(yǔ)言/匯編編程。C語(yǔ)言被某些人認(rèn)為是偽飾過(guò)的/更容易學(xué)習(xí)的匯編語(yǔ)言。只要你愿意,它還支持插入?yún)R編語(yǔ)言代碼,并且它只是程序化的(像匯編)。
第六部分:編程科學(xué)
第1步:了解編程科學(xué)家是做什么的。
編程科學(xué)家是十分高級(jí)的程序員,他們不開(kāi)發(fā)程序,但他們研究計(jì)算科學(xué),比如密碼學(xué)、編程語(yǔ)言和數(shù)據(jù)挖掘算法。沒(méi)有深入的學(xué)術(shù)研究是很難達(dá)到這個(gè)水準(zhǔn)的。
第2步:累積和四年制計(jì)算機(jī)科學(xué)學(xué)歷同等多的科學(xué)知識(shí)。
可通過(guò)如下其中一種完成:
獲得真實(shí)的學(xué)術(shù)學(xué)歷(這也是通常情況)。
從現(xiàn)代大學(xué)中獲得該學(xué)歷要求的課程大綱,自學(xué)課程或 分開(kāi)一門(mén)門(mén)學(xué)。理論上這樣做也可以,但還是推薦第一種做法。
第3步:選擇特定的領(lǐng)域。
越具體越好。這取決于你的偏好。但是這里給出計(jì)算機(jī)編程領(lǐng)域中一些主要的課題:
算法設(shè)計(jì)(例如搜索、分類、密碼、解碼、錯(cuò)誤檢測(cè) 等)
編程語(yǔ)言/編譯器設(shè)計(jì)/最優(yōu)化
人工智能領(lǐng)域(模式識(shí)別,語(yǔ)音識(shí)別,自然語(yǔ)言處理,神經(jīng)網(wǎng)絡(luò))
機(jī)器人技術(shù)
科學(xué)編程
超級(jí)計(jì)算
計(jì)算機(jī)輔助設(shè)計(jì)/模式(CAD/CAM)
虛擬現(xiàn)實(shí)
計(jì)算機(jī)圖形學(xué)(計(jì)算機(jī)圖形學(xué)通常和圖形設(shè)計(jì)或圖形用戶界面設(shè)計(jì)混淆,計(jì)算機(jī)圖形學(xué)是研究如何表示和操控計(jì)算機(jī)系統(tǒng)中的圖形的領(lǐng)域)
第4步:考慮獲取更高級(jí)的學(xué)歷。
或許你想追求碩士學(xué)歷或博士學(xué)歷。
第5步:了解你選擇的編程領(lǐng)域的相關(guān)技術(shù)和編程語(yǔ)言。
小提示
不管你想嘗試哪種編程,不管你想達(dá)到何種水平,考慮去學(xué)校或本地社區(qū)大學(xué)上課。不要被諸如“計(jì)算機(jī)科學(xué)”一類的術(shù)語(yǔ)嚇到。你參加的任何不需要預(yù)備課程的課程都應(yīng)該集中教一些編程的基礎(chǔ)知識(shí)。在上課之前先咨詢一下老師或客服,確保這門(mén)課是你想要的,像“計(jì)算機(jī)文化”這樣的課很有可能更多地集中在教你更熟悉辦公應(yīng)用之類。
擴(kuò)展閱讀,以下內(nèi)容您可能還感興趣。
如何成為一個(gè)JAVA程序員
[經(jīng)驗(yàn)之談]30歲,我的程序,我的夢(mèng)!
程序人生 : 30歲,我的程序員夢(mèng)想
作 者: redbridge (雪燃)
30歲,開(kāi)始實(shí)現(xiàn)我的程序員夢(mèng),從一個(gè)編程愛(ài)好者,從一個(gè)業(yè)余的程序員,一個(gè)水平不高的程序員,一個(gè)半道出家的程序員......
我的經(jīng)歷到這里就告一段落了,五年里跳了五次槽,不知道和大家比算不算多J,沒(méi)有什么太多起伏,但我想很多朋友可能會(huì)和我有類似的經(jīng)歷,不知道能不能引起你們的共鳴。我想對(duì)我上面所說(shuō)的話給一個(gè)總結(jié):
1. 如果你覺(jué)得自己應(yīng)該追求什么,不管遇到什么困難千萬(wàn)不要放棄,一定要堅(jiān)持下去。
2. 不要因?yàn)樽约耗贻p就找理由揮霍時(shí)間,少玩一點(diǎn)SC、CS、魔獸3、傳奇、魔力或者…….,多看點(diǎn)書(shū),多練練題。
3. 如果你還是在校的學(xué)生,英語(yǔ)很差,專業(yè)課也很差。沒(méi)關(guān)系,想怎么學(xué)計(jì)算機(jī)就怎么學(xué)計(jì)算機(jī)吧。其它地只要能混到畢業(yè)證就行了。除非你對(duì)自己的未來(lái)沒(méi)有信心。(當(dāng)然,如果你的理想不僅僅是要做一個(gè)程序員,那你別丟掉英語(yǔ)。)
4. 如果你不是科班出身,想要轉(zhuǎn)行而不知該怎么開(kāi)始的話,建議你先看兩類書(shū):(1)計(jì)算機(jī)原理;(2)數(shù)據(jù)結(jié)構(gòu)和算法。(看數(shù)據(jù)結(jié)構(gòu)之前先看C語(yǔ)言)。
5. 什么時(shí)候努力都不晚,關(guān)鍵是你明白要努力了,大器晚成總比一事無(wú)成要好的多。
6. Java、.net、C++、PB、VB、Delphi、匯編到底應(yīng)該學(xué)哪個(gè)?我的經(jīng)驗(yàn),哪個(gè)最簡(jiǎn)單就先學(xué)哪個(gè)、公司用哪個(gè)你就學(xué)哪個(gè)、哪個(gè)和你有緣(比如剛好你認(rèn)識(shí)一個(gè)愿意幫助你的Delphi高手)你就學(xué)哪個(gè),如果你都學(xué),或者三天兩頭的換,我可以告訴你結(jié)果肯定是什么都不會(huì),不要心浮氣燥,他們都只是工具,學(xué)精一門(mén)其它的就相通了,重要的是掌握編程的思想。如果你問(wèn)我面向?qū)ο螅ê孟瘳F(xiàn)在已經(jīng)是面向需求了)、UML、WebLogic、WebService、軟件工程、XML…….應(yīng)該怎么學(xué)呀,對(duì)不起,這些我也確實(shí)不是都會(huì),但請(qǐng)相信,你先實(shí)實(shí)在在的寫(xiě)上十萬(wàn)行以上的代碼以后,那些東西你自然就慢慢會(huì)了。
7. 不要以為程序員的工資都很高,程序員之間的水平差異也大。公司衡量一個(gè)人的待遇標(biāo)準(zhǔn)是他能給公司帶來(lái)多大的效益。如果你體現(xiàn)了自己的價(jià)值,公司會(huì)主動(dòng)給你加薪的,當(dāng)然你也可以自己主動(dòng)提,但一定要在你表現(xiàn)出了自己的價(jià)值之后。
8. 輕易不要跳槽,如果非要跳,也要保持工作經(jīng)驗(yàn)上的延續(xù),而不是從新開(kāi)始,不然就會(huì)象我一樣走很多彎路。
9. 如果你以為程序員都是熬夜熬出來(lái)的,那么你錯(cuò)了,因?yàn)樗拇鷥r(jià)就是縮短你的青春!大家不要象我一樣,真的,熬夜一點(diǎn)也不好!記住*的話:如有恒,何須三更起,半夜眠;最怕莫,三天打魚(yú)兩天曬網(wǎng),竹籃打水一場(chǎng)空!
10. 這一點(diǎn)是我覺(jué)得最精華的一點(diǎn):“君子性非異也,善假于物也。”這句話的本意是一個(gè)水平很高的人本身并不一定很高明,關(guān)鍵是他善于利用別人的高明!我在這里做個(gè)借鑒,就是要充分利用自己身邊的資源,不放過(guò)任何一個(gè)可以提高自己的機(jī)會(huì)。大家不要誤會(huì),這里的假于物可不是指抄襲別人的源代碼,而是指通過(guò)學(xué)習(xí)別人的源代碼把他的思想擴(kuò)展到自己的思想里去。
注:上面的十大“精華”純屬我個(gè)人的“謬論”,您自己看著消化,有用的收下,沒(méi)用的請(qǐng)拖入“回收站”。如果你覺(jué)得這些總結(jié)不過(guò)是一些浮華之詞,那請(qǐng)你先問(wèn)問(wèn)自己:“是不是在行動(dòng)上都真正做到了。”
這就是我,一個(gè)不算優(yōu)秀,不算勤奮;玩能玩通宵,學(xué)也學(xué)能學(xué)通宵;對(duì)夢(mèng)想的追求很執(zhí)著;到了30才開(kāi)始真正寫(xiě)程序;一個(gè)很平凡但又不甘于平凡的人……我的經(jīng)歷相信很多朋友都有過(guò)的,我現(xiàn)在也不能算是一個(gè)成功人士,但我相信我的經(jīng)歷卻是值得大家借鑒的,因?yàn)槲医K究代表了一類人。
最后我還想說(shuō)一點(diǎn):現(xiàn)在很多朋友都抱怨中國(guó)的軟件業(yè)環(huán)境太差,前途渺茫。確實(shí)是這樣,我有同感。不過(guò)我想軟件業(yè)不過(guò)是千萬(wàn)個(gè)行業(yè)中的一種,每一個(gè)行業(yè)總是會(huì)有起落的,中國(guó)的軟件業(yè)環(huán)境差有她的歷史原因,我們不要總是簡(jiǎn)單地和印度相比。抱怨沒(méi)有意義,已經(jīng)這樣了,抱怨不能使她變好,希望我們每一個(gè)人多貢獻(xiàn)一份自己的力量,總有一天她會(huì)變的比印度還好,甚至比美國(guó)還好。
最后:希望所有的程序員和擁有成為程序員夢(mèng)想的朋友們?cè)谛碌囊荒昀镄南胧鲁桑f(wàn)事如意。請(qǐng)相信我:明天不一定更美好,但美好的一天一定會(huì)來(lái)!
想成為一名出色的程序員,需要掌握哪些知識(shí)
首先要熟練一種編程語(yǔ)言,編程是一通百通的,以后學(xué)別的語(yǔ)言就可以基于這種語(yǔ)言的理解,學(xué)起來(lái)會(huì)快好多;
其次,算法與數(shù)據(jù)結(jié)構(gòu)是很重要的,不但以后找工作會(huì)考到,在實(shí)際的運(yùn)用中也會(huì)起到潛移默化的作用;
第三,好的程序員是要靠代碼的積累的,程序員光看書(shū)不實(shí)際是不會(huì)深刻理解語(yǔ)言的;
第四,好的程序員要多看代碼,尤其大師寫(xiě)的代碼,現(xiàn)在網(wǎng)上開(kāi)源的代碼不在少數(shù),一搜一大把,要比較研究,才會(huì)有所收獲;
第五,優(yōu)秀的程序員不僅要擅長(zhǎng)一門(mén)語(yǔ)言,還要熟悉多門(mén)語(yǔ)言,不同語(yǔ)言的思想方法是不同了,接觸了別的語(yǔ)言,會(huì)對(duì)自己使用的語(yǔ)言有更好的理解和運(yùn)用;
第六,程序員還要熟練語(yǔ)言的用法,還要了解語(yǔ)言的原理,比如怎么樣讓寫(xiě)代碼可以讓程序崩潰等等。
第七,程序員不僅要會(huì)寫(xiě)代碼,還要寫(xiě)好看的代碼,格式規(guī)范必須嚴(yán)格要求,這樣不僅自己看的輕松,也是對(duì)別的程序員的負(fù)責(zé);
第八,還要了解數(shù)據(jù)的保存和讀取等等。
這些是我所有能想到的了。。。
如何成為一名高級(jí)程序員??
牛*的人總是讓人羨慕,但如何才能讓自己成為牛*的人對(duì)我們來(lái)說(shuō)更重要,本文分享的是如何才能成為java高級(jí)程序員,你和java高級(jí)程序員只差這一篇雞湯!干了這碗雞湯,未來(lái)不可限量!
1、離開(kāi)舒適區(qū),提高個(gè)人代碼能力
不安于現(xiàn)狀,高級(jí)程序員一般都具有豐富的項(xiàng)目經(jīng)驗(yàn),經(jīng)驗(yàn)是能力最好的試金石,即使在碰到未知的問(wèn)題,豐富的項(xiàng)目經(jīng)驗(yàn)也不會(huì)讓你覺(jué)得就束手無(wú)策。程序員是一個(gè)技術(shù)跨度很大的工種,對(duì)某種既定環(huán)境語(yǔ)言的依賴性太強(qiáng),知識(shí)和技能都無(wú)法很好的遷移。
2、將復(fù)雜的問(wèn)題簡(jiǎn)單化處理
喬布斯曾經(jīng)說(shuō)過(guò),簡(jiǎn)單便能移動(dòng)一座大山。一個(gè)高級(jí)程序員之所以讓人覺(jué)得牛*,不僅僅能用寫(xiě)出優(yōu)雅簡(jiǎn)潔的代碼,更重要的是他們還能將這種化復(fù)雜為簡(jiǎn)單、化繁為簡(jiǎn)的功力內(nèi)化至各項(xiàng)工作,不管是面對(duì)多復(fù)雜的項(xiàng)目、多棘手的 bug 都能面不改色、心不跳,步步拆解問(wèn)題,逐一各個(gè)擊破。
3、自我總結(jié),提升學(xué)習(xí)和解決問(wèn)題能力
代碼能力、工作狀態(tài)只是一個(gè)高級(jí)程序員區(qū)別于普通程序員的外在表現(xiàn),王者和青銅的核心區(qū)別在于思考方式和解決問(wèn)題能力的區(qū)別。高級(jí)程序員可能每天會(huì)花半個(gè)小時(shí)總結(jié)當(dāng)天的項(xiàng)目經(jīng)歷,反思自己的不足,思考問(wèn)題解決或優(yōu)化的方案。區(qū)別于初級(jí)程序員,高級(jí)程序員總結(jié)問(wèn)題的往往能從本質(zhì)出發(fā),不會(huì)只停留在表面,弄清問(wèn)題內(nèi)在聯(lián)系,抓住問(wèn)題關(guān)鍵。這也就解釋了為什么拿到一個(gè)項(xiàng)目需求,很多高級(jí)程序員不會(huì)首先去想代碼實(shí)現(xiàn),而是去想需求與架構(gòu)的行為。
4、責(zé)任心和需求理解能力
高級(jí)程序員對(duì)自己的要求不僅*于完成項(xiàng)目、解決問(wèn)題本身,往往還會(huì)去思考并權(quán)衡需求涉及的一切,比如如何去支持設(shè)計(jì)模式、庫(kù)、框架、重構(gòu)和流程等,從內(nèi)核到外層界面,既重視功能需求,還會(huì)注意到拓展性能、穩(wěn)定性等需求,甚至還需要評(píng)估設(shè)計(jì)模塊對(duì)整個(gè)項(xiàng)目中的影響及潛在的威脅。
總結(jié):如何才能成為高級(jí)程序員,關(guān)鍵還是思想,學(xué)習(xí)的思想、總結(jié)的思想、創(chuàng)新的思想!
做一個(gè)程序員要具備什么
1:團(tuán)隊(duì)精神和協(xié)作能力 ,和基本的操作常識(shí),缺乏這種素質(zhì)的人就完全不合格了。
2.要有做文檔的習(xí)慣,缺乏文檔,一個(gè)軟件系統(tǒng)就缺乏生命力,在未來(lái)的查錯(cuò),升級(jí)以及模塊的復(fù)用時(shí)就都會(huì)遇 到極大的麻煩。
3:規(guī)范化,標(biāo)準(zhǔn)化的代碼編寫(xiě)習(xí)慣 。
4.代碼具有良好的可讀性,是程序員基本的素質(zhì)需求。
5.程序員需要理解一個(gè)模塊的需求,把性能指標(biāo)全部歸結(jié)到硬件,操作系統(tǒng)和開(kāi)發(fā)環(huán)境上。
6.復(fù)用性,模塊化思維能力 ,避免大部分重復(fù)性工作無(wú)謂的浪費(fèi)了時(shí)間和精力。
7. 測(cè)試習(xí)慣 ,作為一些商業(yè)化正規(guī)化的開(kāi)發(fā)而言,專職的測(cè)試工程師是不可少的
8..程序員是人才很容易被淘汰,很容易落伍的職業(yè),必須不斷跟進(jìn)新的技術(shù),學(xué)習(xí)新的技能。
計(jì)算機(jī)語(yǔ)言的種類非常的多,總的來(lái)說(shuō)可以分成機(jī)器語(yǔ)言,匯編語(yǔ)言,高級(jí)語(yǔ)言三大類。
電腦每做的一次動(dòng)作,一個(gè)步驟,都是按照以經(jīng)用計(jì)算機(jī)語(yǔ)言編好的程序來(lái)執(zhí)行的,程序是計(jì)算機(jī)要執(zhí)行的指令的集合,而程序全部都是用我們所掌握的語(yǔ)言來(lái)編寫(xiě)的。所以人們要控制計(jì)算機(jī)一定要通過(guò)計(jì)算機(jī)語(yǔ)言向計(jì)算機(jī)發(fā)出命令。
計(jì)算機(jī)所能識(shí)別的語(yǔ)言只有機(jī)器語(yǔ)言,即由0和1構(gòu)成的代碼。但通常人們編程時(shí),不采用機(jī)器語(yǔ)言,因?yàn)樗浅ky于記憶和識(shí)別。
目前通用的編程語(yǔ)言有兩種形式:匯編語(yǔ)言和高級(jí)語(yǔ)言。
匯編語(yǔ)言的實(shí)質(zhì)和機(jī)器語(yǔ)言是相同的,都是直接對(duì)硬件操作,只不過(guò)指令采用了英文縮寫(xiě)的標(biāo)識(shí)符,更容易識(shí)別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫(xiě)出來(lái)。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對(duì)應(yīng)實(shí)際操作過(guò)程中的一個(gè)很細(xì)微的動(dòng)作,例如移動(dòng)、自增,因此匯編源程序一般比較冗長(zhǎng)、復(fù)雜、容易出錯(cuò),而且使用匯編語(yǔ)言編程需要有更多的計(jì)算機(jī)專業(yè)知識(shí),但匯編語(yǔ)言的優(yōu)點(diǎn)也是顯而易見(jiàn)的,用匯編語(yǔ)言所能完成的操作不是一般高級(jí)語(yǔ)言所能實(shí)現(xiàn)的,而且源程序經(jīng)匯編生成的可執(zhí)行文件不僅比較小,而且執(zhí)行速度很快。
高級(jí)語(yǔ)言是目前絕大多數(shù)編程者的選擇。和匯編語(yǔ)言相比,它不但將許多相關(guān)的機(jī)器指令合成為單條指令,并且去掉了與具體操作有關(guān)但與完成工作無(wú)關(guān)的細(xì)節(jié),例如使用堆棧、寄存器等,這樣就大大簡(jiǎn)化了程序中的指令。同時(shí),由于省略了很多細(xì)節(jié),編程者也就不需要有太多的專業(yè)知識(shí)。
高級(jí)語(yǔ)言主要是相對(duì)于匯編語(yǔ)言而言,它并不是特指某一種具體的語(yǔ)言,而是包括了很多編程語(yǔ)言,如目前流行的VB、VC、FoxPro、Delphi等,這些語(yǔ)言的語(yǔ)法、命令格式都各不相同。
高級(jí)語(yǔ)言所編制的程序不能直接被計(jì)算機(jī)識(shí)別,必須經(jīng)過(guò)轉(zhuǎn)換才能被執(zhí)行,按轉(zhuǎn)換方式可將它們分為兩類:
解釋類:執(zhí)行方式類似于我們?nèi)粘I钪械摹巴暦g”,應(yīng)用程序源代碼一邊由相應(yīng)語(yǔ)言的解釋器“翻譯”成目標(biāo)代碼(機(jī)器語(yǔ)言),一邊執(zhí)行,因此效率比較低,而且不能生成可獨(dú)立執(zhí)行的可執(zhí)行文件,應(yīng)用程序不能脫離其解釋器,但這種方式比較靈活,可以動(dòng)態(tài)地調(diào)整、修改應(yīng)用程序。
編譯類:編譯是指在應(yīng)用源程序執(zhí)行之前,就將程序源代碼“翻譯”成目標(biāo)代碼(機(jī)器語(yǔ)言),因此其目標(biāo)程序可以脫離其語(yǔ)言環(huán)境獨(dú)立執(zhí)行,使用比較方便、效率較高。但應(yīng)用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標(biāo)文件(* .OBJ)才能執(zhí)行,只有目標(biāo)文件而沒(méi)有源代碼,修改很不方便。現(xiàn)在大多數(shù)的編程語(yǔ)言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。
[NextPage]
學(xué)習(xí)編程,從何入手
如果您想學(xué)習(xí)編程,卻又不知從何入手,那么您不妨看看下面的幾種學(xué)習(xí)方案,可能會(huì)給您一些啟示吧!
==============================================
方案一 Basic語(yǔ)言 & Visual Basic
優(yōu)點(diǎn)
(1)Basic 簡(jiǎn)單易學(xué),很容易上手。
(2)Visual Basic 提供了強(qiáng)大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
(3)眾多的控件讓編程變得象壘積木一樣簡(jiǎn)單。
(4)Visual Basic 的全部漢化讓我們這些見(jiàn)了English就頭大的人喜不自禁。
缺點(diǎn)
(1)Visual Basic 不是真正的面向?qū)ο蟮拈_(kāi)發(fā)文具。
(2)Visual Basic 的數(shù)據(jù)類型太少,而且不支持指針,這使得它的表達(dá)能力很有限。
(3)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 是您最佳的選擇。
Basic/Visual Basic簡(jiǎn)介
==============================================
方案二 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ā)工具,并且是完全的可視化。
(3)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ǔ)言的朋友。
Pascal語(yǔ)言簡(jiǎn)介
Delphi簡(jiǎn)介
==============================================
方案三 C語(yǔ)言 & Visual C++
優(yōu)點(diǎn)
(1)C語(yǔ)言靈活性好,效率高,可以接觸到軟件開(kāi)發(fā)比較底層的東西。
(2)微軟的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ò)于專業(yè)使得一般的編程愛(ài)好者學(xué)習(xí)起來(lái)會(huì)有不小的困難。
綜述: VC是程序員用的東西。如果你是一個(gè)永不滿足的人,而且可以在編程上投入很大的精力和時(shí)間,那么學(xué)習(xí)VC你一定不會(huì)后悔的。
C語(yǔ)言簡(jiǎn)介
==============================================
方案四 C++語(yǔ)言 & C++ Builder
優(yōu)點(diǎn)
(1)C++語(yǔ)言的優(yōu)點(diǎn)全部得以繼承。
(2)完全的可是化。
(3)極強(qiáng)的兼容性,支持OWL、VCL和MFC三大類庫(kù)。
(4)編譯速度非常快。
缺點(diǎn)
由于推出的時(shí)間太短,關(guān)于它的各種資料還不太多。
綜述:我認(rèn)為C++ Builder 是最好的編程工具。它既保持了C++語(yǔ)言編程的優(yōu)點(diǎn),又做到了完全的可視化。
C語(yǔ)言簡(jiǎ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)用程序。
[NextPage]
JSP簡(jiǎn)介
在Sun正式發(fā)布JSP(Java Server Pages)之后,這種新的Web應(yīng)用開(kāi)發(fā)技術(shù)很快引起了人們的關(guān)注。JSP為創(chuàng)建高度動(dòng)態(tài)的Web應(yīng)用提供了一個(gè)獨(dú)特的開(kāi)發(fā)環(huán)境。按照 Sun 的說(shuō)法,JSP能夠適應(yīng)市場(chǎng)上包括Apache WebServer 、IIS4.0在內(nèi)的85%的服務(wù)器產(chǎn)品。
JSP與ASP的簡(jiǎn)單比較
JSP與Microsoft的ASP技術(shù)非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語(yǔ)言引擎解釋執(zhí)行程序代碼的能力。在ASP或JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來(lái)描述處理邏輯。普通的HTML頁(yè)面只依賴于Web服務(wù)器,而ASP和JSP頁(yè)面需要附加的語(yǔ)言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。ASP和JSP都是面向Web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。
ASP的編程語(yǔ)言是VBScript之類的腳本語(yǔ)言,JSP使用的是Java,這是兩者最明顯的區(qū)別。
此外,ASP與JSP還有一個(gè)更為本質(zhì)的區(qū)別:兩種語(yǔ)言引擎用完全不同的方式處理頁(yè)面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執(zhí)行;在JSP下,代碼被編譯成Servlet并由Java虛擬機(jī)執(zhí)行,這種編譯操作僅在對(duì)JSP頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生。
運(yùn)行環(huán)境
執(zhí)行 JSP 代碼需要在服務(wù)器上安裝 JSP 引擎。此處我們使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。為便于學(xué)習(xí),這個(gè)軟件包提供了大量可供修改的示例。安裝 JSWDK 之后,只需執(zhí)行 startserver 命令即可啟動(dòng)服務(wù)器。在默認(rèn)配置下服務(wù)器在端口 8080 監(jiān)聽(tīng),使用 http://localhost:8080 即可打開(kāi)缺省頁(yè)面。
在運(yùn)行 JSP 示例頁(yè)面之前,請(qǐng)注意一下安裝 JSWDK 的目錄,特別是" work "子目錄下的內(nèi)容。執(zhí)行示例頁(yè)面時(shí),可以在這里看到 JSP 頁(yè)面如何被轉(zhuǎn)換成 Java 源文件,然后又被編譯成 class 文件(即 Servlet )。 JSWDK 軟件包中的示例頁(yè)面分為兩類,它們或者是 JSP 文件,或者是包含一個(gè)表單的 HTML 文件,這些表單均由 JSP 代碼處理。與 ASP 一樣, JSP 中的 Java 代碼均在服務(wù)器端執(zhí)行。因此,在瀏覽器中使用"查看源文件"菜單是無(wú)法看到 JSP 源代碼的,只能看到結(jié)果 HTML 代碼。所有示例的源代碼均通過(guò)一個(gè)單獨(dú)的" examples "頁(yè)面提供。
Java Servlet是一種開(kāi)發(fā)Web應(yīng)用的理想構(gòu)架。 JSP以Servlet技術(shù)為基礎(chǔ),又在許多方面作了改進(jìn)。JSP頁(yè)面看起來(lái)象普通HTML頁(yè)面,但它允許嵌入執(zhí)行代碼,在這一點(diǎn)上,它和ASP技術(shù)非常相似。利用跨平臺(tái)運(yùn)行的JavaBean 組件,JSP為分離處理邏輯與顯示樣式提供了卓越的解決方案。JSP必將成為ASP技術(shù)的有力競(jìng)爭(zhēng)者。
[NextPage]
SQL語(yǔ)言簡(jiǎn)介
SQL全稱是“結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)”,最早的是IBM的圣約瑟研究實(shí)驗(yàn)室為其關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)SYSTEM R開(kāi)發(fā)的一種查詢語(yǔ)言,它的前身是SQUARE語(yǔ)言。SQL語(yǔ)言結(jié)構(gòu)簡(jiǎn)潔,功能強(qiáng)大,簡(jiǎn)單易學(xué),所以自從IBM公司1981年推出以來(lái),SQL語(yǔ)言,得到了廣泛的應(yīng)用。如今無(wú)論是像Oracle ,Sybase,Informix,SQL server這些大型的數(shù)據(jù)庫(kù)管理系統(tǒng),還是像Visual Foxporo,PowerBuilder這些微機(jī)上常用的數(shù)據(jù)庫(kù)開(kāi)發(fā)系統(tǒng),都支持SQL語(yǔ)言作為查詢語(yǔ)言。
Structured Query Language包含4個(gè)部分:
數(shù)據(jù)查詢語(yǔ)言DQL-Data Query Language SELECT
數(shù)據(jù)操縱語(yǔ)言DQL-Data Manipulation Language INSERT, UPDATE, DELETE
數(shù)據(jù)定義語(yǔ)言DQL-Data Definition Language CREATE, ALTER, DROP
數(shù)據(jù)控制語(yǔ)言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK
SQL的歷史
在70年代初,E.E.Codd首先提出了關(guān)系模型。70年代中期,IBM公司在研制 SYSTEM R關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中研制了SQL語(yǔ)言,最早的SQL語(yǔ)言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。
1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS數(shù)據(jù)庫(kù)系統(tǒng)中也實(shí)現(xiàn)了SQL。
1986年10月,美國(guó)ANSI采用SQL作為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言(ANSI X3. 135-1986),后為國(guó)際標(biāo)準(zhǔn)化組織(ISO)采納為國(guó)際標(biāo)準(zhǔn)。
1989年,美國(guó)ANSI采納在ANSI X3.135-1989報(bào)告中定義的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的SQL標(biāo)準(zhǔn)語(yǔ)言,稱為ANSI SQL 89, 該標(biāo)準(zhǔn)替代ANSI X3.135-1986版本。該標(biāo)準(zhǔn)為下列組織所采納:
● 國(guó)際標(biāo)準(zhǔn)化組織(ISO),為ISO 9075-1989報(bào)告“Database Language SQL With Integrity Enhancement”
● 美國(guó)聯(lián)邦政府,發(fā)布在The Federal Information Processing Standard Publication(FIPS PUB)127
目前,所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)支持某些形式的SQL語(yǔ)言, 大部分?jǐn)?shù)據(jù)庫(kù)打算遵守ANSI SQL89標(biāo)準(zhǔn)。
SQL的優(yōu)點(diǎn)
SQL廣泛地被采用正說(shuō)明了它的優(yōu)點(diǎn)。它使全部用戶,包括應(yīng)用程序員、DBA管理員和終端用戶受益非淺。
(1) 非過(guò)程化語(yǔ)言
SQL是一個(gè)非過(guò)程化的語(yǔ)言,因?yàn)樗淮翁幚硪粋€(gè)記錄,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對(duì)單個(gè)記錄進(jìn)行操作,可操作記錄集。所有SQL 語(yǔ)句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語(yǔ)句的結(jié)果作為另一條SQL語(yǔ)句的輸入。 SQL不要求用戶指定對(duì)數(shù)據(jù)的存放方法。 這種特性使用戶更易集中精力于要得到的結(jié)果。所有SQL語(yǔ)句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對(duì)指定數(shù)據(jù)存取的最快速度的手段。查詢優(yōu)化器知道存在什么索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什么類型的索引。
(2) 統(tǒng)一的語(yǔ)言
SQL可用于所有用戶的DB活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫(kù)管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。基本的SQL 命令只需很少時(shí)間就能學(xué)會(huì),最高級(jí)的命令在幾天內(nèi)便可掌握。 SQL為許多任務(wù)提供了命令,包括:
● 查詢數(shù)據(jù)
● 在表中插入、修改和刪除記錄
● 建立、修改和刪除數(shù)據(jù)對(duì)象
● 控制對(duì)數(shù)據(jù)和數(shù)據(jù)對(duì)象的存取
● 保證數(shù)據(jù)庫(kù)一致性和完整性
以前的數(shù)據(jù)庫(kù)管理系統(tǒng)為上述各類操作提供單獨(dú)的語(yǔ)言,而SQL 將全部任務(wù)統(tǒng)一在一種語(yǔ)言中。
(3) 是所有關(guān)系數(shù)據(jù)庫(kù)的公共語(yǔ)言
由于所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持SQL語(yǔ)言,用戶可將使用SQL的技能從一個(gè)RDBMS轉(zhuǎn)到另一個(gè)。所有用SQL編寫(xiě)的程序都是可以移植的。
[NextPage]
Java語(yǔ)言簡(jiǎn)介
一. Java的由來(lái)
當(dāng)1995年SUN推出Java語(yǔ)言之后,全世界的目光都被這個(gè)神奇的語(yǔ)言所吸引。那么Java到底有何神奇之處呢?
Java語(yǔ)言其實(shí)最是誕生于1991年,起初被稱為OAK語(yǔ)言,是SUN公司為一些消費(fèi)性電子產(chǎn)品而設(shè)計(jì)的一個(gè)通用環(huán)境。他們最初的目的只是為了開(kāi)發(fā)一種獨(dú)立于平臺(tái)的軟件技術(shù),而且在網(wǎng)絡(luò)出現(xiàn)之前,OAK可以說(shuō)是默默無(wú)聞,甚至差點(diǎn)夭折。但是,網(wǎng)絡(luò)的出現(xiàn)改變了OAK的命運(yùn)。
在Java出現(xiàn)以前。Internet上的信息內(nèi)容都是一些乏味死板的HTML文檔。這對(duì)于那些迷戀于WEB瀏覽的人們來(lái)說(shuō)簡(jiǎn)直不可容忍。他們迫切希望能在WEN中看到一些交互式的內(nèi)容,開(kāi)發(fā)人員也極希望能夠在WEB上創(chuàng)建一類無(wú)需考慮軟硬件平臺(tái)就可以執(zhí)行的應(yīng)用程序,當(dāng)然這些程序還要有極大的安全保障。對(duì)于用戶的這種要求,傳統(tǒng)的編程語(yǔ)言顯得無(wú)能為力,面SUN的工程師敏銳地察覺(jué)到了這一點(diǎn),從1994年起,他們開(kāi)始將OAK技術(shù)應(yīng)用于WEB上,并且開(kāi)發(fā)出了HotJava的第一個(gè)版本。當(dāng)SUN公司1995年正式以Java這個(gè)名字推出的時(shí)候,幾乎所有的WEB開(kāi)發(fā)人員都想到:噢,這正是我想要的。于是Java成了一顆耀眼的明星,丑小鴨一下了變成了白天鵝。
二. Java的定義
Java是一種簡(jiǎn)單的,面象對(duì)象的,分布式的,解釋的,鍵壯的安全的,結(jié)構(gòu)的中立的,可移植的,性能很優(yōu)異的多線程的,動(dòng)態(tài)的語(yǔ)言。
Java的開(kāi)發(fā)環(huán)境有不同的版本,如sun公司的Java Developers Kit, 簡(jiǎn)稱 JDK。后來(lái)微軟公司推出了支持Java規(guī)范的Microsoft Visual J++ Java開(kāi)發(fā)環(huán)境,簡(jiǎn)稱 VJ++。
三. Java的特點(diǎn)
1. 平臺(tái)無(wú)關(guān)性
平臺(tái)無(wú)關(guān)性是指Java能運(yùn)行于不同的平臺(tái)。Java引進(jìn)虛擬機(jī) 原理,并運(yùn)行于虛擬機(jī),實(shí)現(xiàn)不同平臺(tái)的Java接口之間。使 用Java編寫(xiě)的程序能在世界范圍內(nèi)共享。Java的數(shù)據(jù)類型與 機(jī)器無(wú)關(guān),Java虛擬機(jī)(Java Virtual Machine)是建立在 硬件和操作系統(tǒng)之上,實(shí)現(xiàn)Java二進(jìn)制代碼的解釋執(zhí)行功能, 提供于不同平臺(tái)的接口的。
2. 安全性
Java的編程類似C++,學(xué)習(xí)過(guò)C++的讀者將很快掌握J(rèn)ava的精 髓。Java舍棄了C++的指針對(duì)存儲(chǔ)器地址的直接操作,程序 運(yùn)行時(shí),內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過(guò)指 針侵入系統(tǒng)。Java對(duì)程序提供了安全管理器,防止程序的 非法訪問(wèn)。
3. 面向?qū)ο?
Java 吸取了C++面向?qū)ο蟮母拍?將數(shù)據(jù)封裝于類中,利用類 的優(yōu)點(diǎn),實(shí)現(xiàn)了程序的簡(jiǎn)潔性和便于維護(hù)性。類的封裝性、 繼承性等有關(guān)對(duì)象的特性,使程序代碼只需一次編譯,然后 通過(guò)上述特性反復(fù)利用。程序員只需把主要精力用在類和接 口的設(shè)計(jì)和應(yīng)用上。Java 提供了眾多的一般對(duì)象的類,通 過(guò)繼承即可使用父類的方法。在 Java 中,類的繼承關(guān)系是單一的非多重的,一個(gè)子類 只有一個(gè)父類,子類的父類又有一個(gè)父類。Java 提供的 Object 類及其子類的繼承關(guān)系如同一棵倒立的樹(shù)形,根類 為 Object 類, Object 類功能強(qiáng)大,經(jīng)常會(huì)使用到它及其 它派生的子類。
4. 分布式
Java建立在擴(kuò)展TCP/IP網(wǎng)絡(luò)平臺(tái)上。庫(kù)函數(shù)提供了用HTTP和FTP協(xié)議傳送和接受信息的方法。這使得程序員使用網(wǎng)絡(luò)上的文件和使用本機(jī)文件一樣容易。
5. 鍵壯性
Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤。類型檢查幫助檢查出許多開(kāi)發(fā)早期出現(xiàn)的錯(cuò)誤。Java自已操縱內(nèi)存減少了內(nèi)存出錯(cuò)的可能性。Java還實(shí)現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能。這些功能特征大大提高了開(kāi)發(fā)Java應(yīng)用程序的周期。Java提供: Null指針檢測(cè)、 數(shù)組邊界檢測(cè)、 異常出口、 Byte code校驗(yàn)。
四. Java與C/C++語(yǔ)言
Java提供了一個(gè)功能強(qiáng)大語(yǔ)言的所有功能,但幾乎沒(méi)有一點(diǎn)含混特征。C++安全性不好,但C和C++被大家接受,所以Java設(shè)計(jì)成C++形式,讓大家很容易學(xué)習(xí)。
Java去掉了C++語(yǔ)言的許多功能,讓Java的語(yǔ)言功能很精煉,并增加了一些很有用的功能,如自動(dòng)收集碎片。
Java去掉了以下幾個(gè)C和C++功能:
指針運(yùn)算
結(jié)構(gòu)
typedefs
#define
需要釋放內(nèi)存
這將減少了平常出錯(cuò)的50%。而且,Java很小,整個(gè)解釋器只需215K的RAM。
面象對(duì)象:Java實(shí)現(xiàn)了C++的基本面象對(duì)象技術(shù)并有一些增強(qiáng),(為了語(yǔ)言簡(jiǎn)單,刪除了一些功能)。Java處理數(shù)據(jù)方式和用對(duì)象接口處理對(duì)象數(shù)據(jù)方式一樣。
五. Java與Internet
我們知道,早先的 www 僅可以傳送文本和圖片,Java的出現(xiàn)實(shí)現(xiàn)了互動(dòng)的頁(yè)面,是一次偉大的*。
Java并不是為 Internet,WWW而設(shè)計(jì)的,它也可以用來(lái)編寫(xiě)?yīng)毩⒌膽?yīng)用程序。Java 是一種面向?qū)ο笳Z(yǔ)言。Java 語(yǔ)言類似于 C++ 語(yǔ)言,所以已熟練掌握 C++語(yǔ)言的編程人員,再學(xué)習(xí) Java 語(yǔ)言就容易得多!Java 程序需要編譯。實(shí)際上有兩種 Java 程序:一種 Java 應(yīng)用程序是一個(gè)完整的程序,如 Web 瀏覽器。一種 Java 小應(yīng)用程序是運(yùn)行于 Web 瀏覽器中的一個(gè)程序.
Java程序和它的瀏覽器HotJava,提供了可讓你的瀏覽器運(yùn)行程序的方法。你能從你的瀏覽器里直接播放聲音。你還能播放頁(yè)面里的動(dòng)畫(huà)。Java還能告訴你的瀏覽器怎樣處理新的類型文件。當(dāng)我們能在2400 baud線上傳輸視頻圖象時(shí),HotJava將能顯示這些視頻。
當(dāng)今Internet的一大發(fā)展趨勢(shì)是電子商務(wù),而Internet的安全問(wèn)題是必須解決的問(wèn)題,通常大的部門(mén)應(yīng)設(shè)置防火墻,阻止非法侵入。
電子商務(wù)是當(dāng)今的熱門(mén)話題,然而傳統(tǒng)的編程語(yǔ)言難以勝任電子商務(wù)系統(tǒng),電子商務(wù)要求程序代碼具有基本的要求:安全、可靠、同時(shí)要求能 與運(yùn)行于不同平臺(tái)的機(jī)器的全世界客戶開(kāi)展業(yè)務(wù)。Java以其強(qiáng)安全性、平臺(tái)無(wú)關(guān)性、硬件結(jié)構(gòu)無(wú)關(guān)性、語(yǔ)言簡(jiǎn)潔同時(shí)面向?qū)ο螅诰W(wǎng)絡(luò)編程語(yǔ)言中占據(jù)無(wú)可比擬的優(yōu)勢(shì),成為實(shí)現(xiàn)電子商務(wù)系統(tǒng)的首選語(yǔ)言。
Java程序被放置在Internet服務(wù)器上,當(dāng)用戶訪問(wèn)服務(wù)器時(shí),Java程序被下載到本地的用戶機(jī)上,由瀏覽器解釋運(yùn)行。
[NextPage]
PowerBuilder簡(jiǎn)介
PowerBuilder的產(chǎn)生
PowerBuilder是美國(guó)著名的數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)工具生產(chǎn)廠商PowerSoft推出的成功產(chǎn)品,其第一版于1991年6月正式投入市場(chǎng)。它是完全按照客戶/服務(wù)器體系結(jié)構(gòu)研制設(shè)計(jì)的,采用面向?qū)ο蠹夹g(shù),圖形化的應(yīng)用開(kāi)發(fā)環(huán)境,是數(shù)據(jù)庫(kù)的前端開(kāi)發(fā)工具。
PowerBuilder的特點(diǎn)
它支持應(yīng)用系統(tǒng)同時(shí)訪問(wèn)多種數(shù)據(jù)庫(kù),其中既包括Oracel,Sybase之類的大型數(shù)據(jù)庫(kù),又包括FOXPRO之類支持ODBC接口的小型數(shù)據(jù)庫(kù),PowerBuilder是完全可視化的數(shù)據(jù)庫(kù)開(kāi)發(fā)工具,它提供了大量的控件,大大加快了項(xiàng)目的開(kāi)發(fā)速度,也使開(kāi)發(fā)者更容易掌握數(shù)據(jù)庫(kù)的開(kāi)發(fā)。
它使用的編程語(yǔ)言叫做工PowerScripr,它也是一種高級(jí)的,結(jié)構(gòu)化的編程語(yǔ)言。PowerScript提供了一套完整的嵌入式SQL語(yǔ)句,開(kāi)發(fā)人員可以像使用其它語(yǔ)句一樣自由地使用SQL語(yǔ)言,這樣就大大增強(qiáng)了程序操縱和訪問(wèn)數(shù)據(jù)庫(kù)的能力。可以說(shuō)PowerBuilder既適合初學(xué)者快速學(xué)習(xí)數(shù)據(jù)庫(kù)的開(kāi)發(fā),又可以讓有經(jīng)驗(yàn)的開(kāi)發(fā)人員開(kāi)發(fā)出功能強(qiáng)大的數(shù)據(jù)庫(kù),是一種適用面非常廣的開(kāi)發(fā)工具。
PowerBuilder是一個(gè)用來(lái)進(jìn)行客戶/服務(wù)器開(kāi)發(fā)的完全的可視化開(kāi)發(fā)環(huán)境。使用PowerBuilder,你可以用一種可視的直觀的方式來(lái)創(chuàng)建應(yīng)用程序的用戶界面和數(shù)據(jù)庫(kù)接口。這是一個(gè)總的概念,實(shí)際上是開(kāi)發(fā)人員使用PowerBuilder去開(kāi)發(fā)應(yīng)用程序,由于所開(kāi)發(fā)的各種應(yīng)用程序充分利用了圖形用戶接口(GUI)的優(yōu)點(diǎn),所以PowerBuilder被認(rèn)為是一個(gè)圖形工具。
在客戶/服務(wù)器結(jié)構(gòu)的應(yīng)用中,PowerBuilder具有描述多個(gè)數(shù)據(jù)庫(kù)連接與檢索的能力。特別是PowerBuilder能從大多數(shù)流行的RDBMS中存取數(shù)據(jù),且不管數(shù)據(jù)存放在什麼地方;另外,各種應(yīng)用程序又可以獨(dú)立于RDBMS,因?yàn)镻owerBuilder可以使用數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)操作語(yǔ)言SQL(結(jié)構(gòu)化查詢語(yǔ)言)進(jìn)行。
使用PowerBuilder,可以很容易地開(kāi)發(fā)出功能強(qiáng)大的圖形界面的訪問(wèn)服務(wù)器數(shù)據(jù)庫(kù)的應(yīng)用程序,PowerBuilder提供了建立符合工業(yè)標(biāo)準(zhǔn)的應(yīng)用程序(例如訂單登記、會(huì)計(jì)及制造系統(tǒng))所需的所有工具。
PowerBuilder應(yīng)用程序由窗口組成,這些窗口包含用戶與之交互的控件。開(kāi)發(fā)人員可以使用所有標(biāo)準(zhǔn)
如WINDOWS XP \WINDOWS 2000 \WINDOW VIST.等
怎么才能成為一個(gè)優(yōu)秀的程序員
優(yōu)秀的程序員要具備很強(qiáng)的分析,和思維能力,我是一個(gè)Java JSP 的程序員,以我自己的感覺(jué),程序員的理解能力要很強(qiáng),因?yàn)槲覀冏鲆粋€(gè)業(yè)務(wù)系統(tǒng)需要了解這個(gè)業(yè)務(wù)的邏輯,才可以去開(kāi)發(fā),至于學(xué)什么語(yǔ)言,我覺(jué)得只要你可以精通一種語(yǔ)言,其他的你就都可以自學(xué)的。但是C除外。
至今我都不是很懂那個(gè),我剛開(kāi)始學(xué)的時(shí)候就是學(xué)的VB,但是我覺(jué)得可以直接學(xué)JAVA。你可以選擇JAVA .NET C# 這都是現(xiàn)在很流行的。
如果你可以的話C是最好的。我們單位C的 開(kāi)的工資是我們的幾倍。你要學(xué)一種語(yǔ)言,就必須先了解他的思想,所以你還是先看看理論上的東西吧。呵呵,其實(shí)程序員挺枯燥的,你要有思想準(zhǔn)備哦。最大的困難就是你需要讓自己有恒心。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com