編程從何開始
『壹』 新手如何入門編程
首先,入門編程需要一個循序漸進的過程,需要先了解基本的編程語法,從解決基本的數學問題開始,進而展開編程語言的學習。
其次,入門編程要構建一個初步的編程思維。所謂的編程思維就是通過編程語言來解決問題的思路和方式,簡單的說就是一個抽象的過程。鍛煉編程思罩滾胡維一個最為有效的辦法就是完成大量的實驗,通過對於實驗的不斷總結從而形成自己的編程思路。所以,學習編程如果有捷徑的話,那麼就是不停地做實驗。
最後,入門編程需要有一個完整的知識結構,這個知識結構涉及到操作系統、計算機網路、資料庫、演算法設計和數據結構,在當前的大數據、雲計算時代背景下,還需要掌握大數據和雲計算的相關知識,尤其是IaaS和PaaS。這些知識完全可以在學習編程語言的過程中同時學習,這些內容的掌握程度對於編程能力會有較大的影響。
最後,目前編程語言比較多,對於基礎比較薄弱的初學者來說,可以從python語言開始學起。
推薦教程:北京尚學堂Python400集,內容多並且系統。從入門開始,適合小白上手,有項目,不枯燥。老牌機構講師,專業並且干貨多。在他們的官網上或者B站上都有,可以去看看,評價不錯,是我目前看到的最值得推薦的教程。
跟對人,選對書!我是碼農阿勇,一個致力於分享編程知識的平台!
編程的話,是一種技能,理論上,和其它技能學習的方式都差不多,以練習為主,但注意的是,編程有個編程思維的東西,你得用這個思維去理解,否則,是入不了門的。
練習編程思維
這種感覺,就像是武俠小說裡面的任督二脈,編程思維會了之後,你就開始真正入門了,它就像你的地基,至於其它語言,都是在上面建房子而以。我記得大一剛入門編程時,全班半期考就一個人及格,就是因為編程思維,大家大腦轉不過彎。對了,如果你數學基礎好,這里是有加分的,如果基礎不好也沒關系,慢慢的,一邊編程,一邊也會提高你的數學能力。
現在網路比較發達,資料很多,你可以找幾篇編程思維的文章看下,語言不限。
選擇一門語言
我是二十年前上的大學,所以當初的入門語言物攔是c語言,如果你不是科班出身,我覺得就不要選C了,科班會教很多語言,我數了下,當年學了有不下七、八種語言,其實用的不多,有些也淘汰了。你可以選擇當下最熱的語言進行,個人建議Python,學習Python的話,即使你不是做編程工作,它也可以成為你的助手。
當然,如果你對Web開發比較感興趣,你也可以學習javaScript。
學習的話,可以看書和上網查資料,但對於新手來說,直接看視頻是比較好的,基礎視頻基本是不用錢的,可以上慕課網,搜索些基礎視頻,一邊看視頻一邊寫代碼,記住,編程是個工程活,一定要寫代碼,不寫的話,看完就忘。
開始一個項目
語言學會後,不代表你會編程,你可能會寫幾行代碼,或者一些小工具,但要做項目,是需要掌握一個語言生態體系的,而生態體系,又需要找一個方向。
我這邊舉個Web方向的例子,你想做Web前端開發,你得知道
什麼是HTML、CSS、JavaScript
什麼是ES6、7等
什麼是NPM、Node.js
什麼是模塊化、什麼是組件化、什麼是函數式編程
什麼是React、什麼是Vue等等
當然,這些可以是你做完項目後知道的,也可以是你買本成體系的專業書籍知道的,是的,開始項目後,才開始你的成長之路,這時候,你得開始讀書了。如果你不喜歡讀書,那真的不適合編程了,編程真正上體現了什麼叫做終身學習。
如果你沒有比較好的項目,我建議,你如果學習JavsScript的Web方向編程,建議你做個Web版本的ToDO試下,一個比較簡單,但是可以涉及很多方面的項目,網上也有很多例子,你可以一邊做一邊學習。
如果是Python,我建議你先做爬蟲類的項目,自己做個電影站之類的工具,爬取一些數據,試驗下。
不斷的堅持
最後就是不斷的堅持了,你會碰到很多問題,這些問題,你一定得去Google和StackOverflow,然後經常翻一翻備襲Github上別人的一些代碼,基本上就開始成長之路。
先要了解編程是要干什麼。編程,就是讓計算機代為解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,並最終得到相應結果的過程。
為了使計算機能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。
對於計算機來說,一切不過都是數字。那我們編寫代碼的目的其實就是告訴計算機兩件事,一是有哪些數,二是該怎麼算!因此程序的組成也就是兩個部分:數和數的組織方式,即數據結構,和運算的邏輯,即演算法。而所有的編程語言就是要把這兩個部分的內容表達好。
一個完整的編程語言,一般會包含如下內容:數據的聲明與類型、運算符與關鍵詞、3大語句(賦值、選擇、循環)、數據結構、方法、類等。其中數據的聲明與類型、數據結構是用於表達數和數的組織方式;剩餘的除了類以外則是表達運算的邏輯;而類是最特殊的,它既包含數據結構又包含運算邏輯。
有了以上對編程語言的整體了解了以後,就是逐個理解掌握相關的知識點。而這些知識點往往是一個拉一個,理解了一個後面那個也就好理解:
一切根源是數。數要分類型->類型,數要存儲->變數、常量,數之間有關系->數據結構,數要計算->運算符,數要按照規則計算->3大語句,計算規則要整理出來重復使用->方法,數與方法關系緊密要在一起->類、封裝,類與類之間有相似性->繼承,繼承的各子類有差異->多態,封裝、繼承、多態搞到一起->面向對象編程
我們要把握這些語言知識點之間的這種脈絡,知道他們因何而來,又會往哪裡去發展,最重要的是知道它們的出現是為了解決什麼問題。
在掌握語言的基礎上,還要學習如何運用計算機的資源。計算機資源是由各種平台進行封裝,以SDK的形式提供的。編程語言是一種表達的能力,而JDK、AndroidSDK等SDK則是資源的使用,也就是表達的內容。我們要分清語言與資源的區別,才能最終運用自如。學習其實就是一個學會分類的過程,知道哪是哪,知道分門別類,找起來才不會找錯。
在學習編程時往往會遇到一個難題:計算機專業相關的知識點非常多,看起來又高深莫測的樣子。要能夠掌握而且快速掌握大量的編程知識,我們要有一個干凈利落的切入角度。
我們首先要弄清楚一個問題:什麼是知識?知識就是解決問題辦法的總結。我們接觸到的所有知識都是為了解決某個問題才出現的,你知道了那個問題,明白了別人解決問題的思路,這個解決辦法也就掌握了。很多同學陷入知識的海洋弄得雲里霧里辨不清方向,就是因為不知道這些個知識是幹嘛用的,不知道它們是為解決什麼問題而出現的。而計算機技術里的很多知識更是這樣,為了解決問題而出現,出現就是一大串。你不知道它要解決什麼問題,就等著被繞暈吧。所以我們先要把編程中遇到的問題找出來,再理解這個問題是怎麼解決的,而這個解決的辦法就是所謂的「知識點」。因此要經常發出「靈魂三問」
這種學習的方法叫做「面向問題的學習方法」。用這種學習方法,在學習中接觸到新知識的時候,馬上意識到這是某種問題的解決辦法,並且從問題切入,相信很快就能把新知識理解並加以運用。
最後,也最根本的一條,編程的學習是拿來用的,也只有會用才能真正掌握語言,理解編程相關知識。想學編程的話,可以來看看我發布的零基礎學編程課程,學起來既簡單又很好玩喔。
傳統的教室培訓有許多好處,但它不適合持續學習的模式或當今IT人員繁忙的日程安排教室學習有時需要提前幾個月安排,具體取決於課程可用性和員工的工作重點而且,固定時間的小組培訓課程也不太可能是最適合你學習速度的理想之選課程的許多部分甚至可能與你在企業中的特定職業角色無關隨著業務和IT需求的快速變化,你是否能夠確保在教室培訓結束後馬上就能用到課堂上學到的知識?你是否需要在不久的將來刷新一些知識,例如在實施和升級之前或是在解決新出現的業務問題時?一次性教室學習的局限性使其非常不適合今天的許多IT專業人士數字化培訓正在迅速普及,因為它非常適合時間緊迫的IT人員,能夠滿足其持續學習的需求它可以讓您只在您需要的時候學習您需要的東西,無需參加整個課程或花時間前往異地按照您自己的節奏,根據需要隨時暫停和重復分段按照您自己的時間表,根據您的工作日歷將培訓分成幾天或幾周數字化學習的越來越顯著的優勢在於其地點上的靈活性你可以在自己的書桌前、員工培訓室或家庭辦公室中舒適地學習也許你經常外出,往返於業務地點或客戶項目現場?或者在日常通勤中學習?無論在哪裡學習,自考總是不建議的,誰試誰哭
我建議你可以選擇一門簡單的容易入門的語言python。頭條上一搜一大把入門視頻。可以幫你快速找到編程的樂趣和感覺。最重要的是建立你的自信心。
有了興趣和自信以後,如果還想深入和提高。就可以嘗試學習數據結構和演算法。頭條里也有很多視頻教程。這樣可以幫你步入專業。
之後你可以嘗試學習Java或者go。多學一門語言可以讓你有不同的體驗和認識。
之後你可以嘗試學習架構知識,閱讀DDIA。我正在分享閱讀這本書,挑戰的是英文版。你可以到我的主頁里看看。
想學編程,首先得選一門編程語言,常見的編程語言有:
c/c++,擅長性能,但是開發效率低
java,性能略差,但是開發效率較高,基礎庫非常完善,可用框架非常多。
python,性能差,但是開發效率高。常言道,人生苦短,我用Python就是因為這個。
js,主要用在前段,後端可以用但是很少。
php,主要用在後端。
go,主要用在後端,兼顧性能和開發效率。
dart,非常有競爭力的編程語言,flutter框架使用的語言,未來跨平台領域大有可為
Kotlin,goole力挺的替代java開發androidapp的編程語言。
還有很多。
根據自己的需求,選擇一門,然後學習基礎語法,基本用熟練,然後就可以嘗試一些簡單的項目了,這個時候一定要多閱讀別人的代碼,學習別人的數據結構的設計,語法的運用之類的,同時也要自己多動手練習。做出來幾個簡單項目後,你的自信心會大增,興趣也會更加盎然。接著就可以嘗試稍微復雜點的項目,實現自己設想的一些idea了。
如果你選擇在工作中提升,切記:工作可能會讓你失去編程的樂趣。但是,記住,這不是編程發生了變化,而是壓力、質疑、辛苦等讓它失去了樂趣。希望你能堅持下去,終能撥開雲霧,進入新的更高的境界。
PS、AI是UI設計師必不可少的兩項技能,對於想要學習UI設計的人來說,首先就是要學會使用PS和AI。如何才能快速學會這兩樣呢?下面,千鋒UI設計培訓就給大家分享20天學會UI設計(PS+AI)入門教程。
課程介紹
本套課程主要講解了PS的工具使用,介紹了蒙版,通道,濾鏡,圖層樣式和圖層混合模式等的基礎和應用案例。重點講解了AI的基礎使用方法,並結合AI軟體講解了如何進行品牌形象設計。
學完課程可以讓你熟練使用PS,掌握人像修圖,高級摳圖,圖像合成,海報製作,輕質感圖標製作等。熟練使用AI軟體,並能掌握logo設計、名片設計、單頁、折頁、易拉寶等設計,掌握VIS手冊的組成及設計製作。
課程目錄
第1章PS
1.初識Adobe
2.PS的版本迭代
3.PS入門介紹和用途
04PS界面及工作區介紹
05PS首選項設置
06文件的新建與打開
07文件的存儲和格式
08圖層的認識
09圖層的分類及功能
10PS軟體的基本操作
11移動工具的基本使用
12圖層的對齊
13圖層的分布對齊
14選框工具及選區的加減運算
15選框與填色的綜合使用
16選區的羽化
17套索和多邊形套索工具
18磁性套索工具
19魔棒工具的使用
20快速選擇工具
21選擇並遮住-細化毛發
22摳頭發
23PS的色彩范圍
24裁剪工具
25透視裁剪工具
26切片及切片選擇工具
27圖框工具
28畫筆工具
29畫筆面板
30定義畫筆預設和載入畫筆
31顏色替換工具
32橡皮擦工具
33背景橡皮擦
34魔術橡皮擦工具
35污點修復畫筆工具
36修復畫筆工具
37修補工具
38內容感知移動工具
39紅眼工具
40仿製圖章工具
41圖案圖章工具
42歷史記錄畫筆工具
43漸變工具
44油漆桶工具
45鋼筆工具的基礎使用
46形狀工具的基礎使用
47形狀工具的應用
48布爾運算應用
49布爾運算應用2
50文字工具
51字元和段落面板
52路徑文字
53模糊與銳化工具
54塗抹工具
55加深減淡工具
56海綿工具
57圖層蒙版
58剪貼蒙版的應用
59蒙版的應用
60圖層蒙版的應用-加倒影
61色相飽和度
62色彩平衡
63可選顏色
64色階
65曲線
66通道
67通道應用-摳頭發
68表面模糊濾鏡
69高斯模糊濾鏡
70動感模糊濾鏡
71徑向模糊濾鏡
72扭曲-波紋
73扭曲-極坐標
74扭曲-球面化
75風格化-風
76風格化-凸出
77液化
78液化-瘦臉
79高反差保留磨皮
80圖層樣式(一)
81圖層樣式(二)
82圖層樣式(三)
83圖層樣式(四)
84圖層樣式(五)
85溶解模式
86去亮、去暗型原理解析
87去亮型應用案例
88去暗型應用
89疊加和柔光模式
90圖層混合模式應用(一)
91圖層混合模式應用(二)
92什麼是AI
93界面分布和功能介紹
94新建文檔
95打開文件
96存儲文件
97AI的基礎操作
98填色與描邊
99矩形工具組
100選擇工具與直接選擇工具
101卡通形象繪制
102魔棒與套索工具
103鋼筆工具組
104剪刀與刻刀工具
105文字工具
106直線工具組
107畫筆工具組
108旋轉與鏡像工具
109摩天輪插畫製作
110形狀生成器
111形狀生成器的應用
112形狀生成器應用(二)
113實時上色工具
114實時上色工具的應用
115漸變工具
116混合工具
117混合工具的應用
118漸變與混合工具的應用
119路徑查找器(一)
120路徑查找器(二)
121路徑查找器的應用
122AI綜合應用-MBE風格圖標
123綜合應用-logo圖標的製作
124綜合應用-炫彩字製作
125綜合應用-2.5D字體
126綜合應用-偏移路徑
127綜合應用-圓形切圖形
128綜合應用-剪切蒙版製作紋理背景
129綜合應用-網格工具製作漸變背景
130綜合應用-符號
131綜合應用-飛出的粒子
132綜合應用-流光星球
133綜合應用-炫彩漸變線條
134AI夜景插畫-背景打造
135AI夜景插畫-樹木製作
136AI夜景插畫-樹木製作(二)
137AI夜景插畫-月亮和螢火蟲製作
138AI夜景插畫-麋鹿製作
139AI夜景插畫-葉子製作
140什麼是字體
141字體設計的重要性與方法
142字體的性格
143基礎造字法
144矩形造字法
145鋼筆造字法
146幾何元素法
147筆畫減細法
148形象替代法
149筆畫的簡化
150了解LOGO設計
151LOGO設計創意手法
152首字母創意手法
153首字母創意手法(二)
154具象手法
155徽章設計手法
156徽章設計手法(二)
157名片設計規范
158名片設計排版設計
159名片設計(一)
160名片設計(二)
161名片設計(三)
162名片設計(四)
163什麼是DM單頁
164DM單頁製作規范
165DM單頁頁頭設計
166DM單頁排版設計
167DM單頁頁頭設計
168宣傳單頁設計(二)
169三折頁設計規范
170三折頁設計(一)
171折頁設計(二)
172折頁設計(三)
173折頁設計(四)
174易拉寶設計規范
175易拉寶設計(一)
176易拉寶設計(二)
177企業VIS
178基礎識別系統
179應用設計系統
編程是個很廣泛的詞吧,編程其實是有很多語言的,如果不看語言的話,大致也可以分為前端與後端(註:其實編程不只是前端和後端,但是新手入門的話,建議還是從前後端會比較容易點,之後就會牽扯到框架等復雜的技術)。前端是指Web頁面(網站頁面)或app等前端界面,後端就是負責實現前端的功能業務,將前端需要的數據返回給前端顯示或做出反應。
新手編程入門可以從這幾點出發:
1.知道自己想要做什麼編程(前端或後端);
2.知道是前端還是後端之後,還要知道想要先從什麼語言入手。前端的話,建議可以先從HTML+CSS入手,後端的話,建議可以從C#入手,這只是本人的建議,並不是絕對的;
3.知道了自己想從哪個語言入手的話,就可以上官網查看文檔,看demo,如果還是不明白的話,就可以上網去搜索該語言的入門視頻,現在網路教程都是很詳細的;
4.編程入門之後就可以嘗試去實現下自己想的頁面或功能,這會增強自己的信心。
編程語言其實是有共通性的,如果你做到後面的話,就會發現學習其它語言就會快很多了,新手入門,不要急,慢慢來,堅持就會有收獲的。
剛開始學習編程語言,要怎麼去做,動手編寫一個編譯器,學習一下較為底層的編程方式,是一種學習計算機到底是如何工作的非常有效方法。編譯器通常被看作是十分復雜的工程。事實上,編寫一個產品級的編譯器也確實是一個龐大的任務。但是寫一個小巧可用的編譯器卻不是這么困難。踏出了編程入門教程第一步,接下去怎麼做就全看自己了。可以按照文章所指導的全部做一遍,然後製作一個更加復雜的編譯器。需要去寫一個更加精巧的語法樹來生成匯編代碼。接下去的幾步分別是:(1)允許返回任意的值(比如,return3;一些可執行代碼);(2)添加對「非」的支持(比如,return~1;一些可執行代碼)。每一個額外的特性都可以教你關於C語言的更多知識,編譯器到底是怎麼執行的,以及世界上其他編寫編譯器的人是如何想的。這是構建babyc的方法。Babyc現在已經擁有了if語句,循環,變數以及最基礎的數據結構。下面給大家展示一下國內最權威的.net訓練營學習路線圖:
『貳』 學習編程,從何入手
計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。
電腦每做的一次動作,一個步驟,都是按照以經用計算機語言編好的程序來執行的,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。
計算機所能識別的語言只有機器語言,即由0和1構成的代碼。但通常人們編程時,不採用機器語言,因為它非常難於記憶和識別。
目前通用的編程語言有兩種形式:匯編語言和高級語言。
匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
高級語言是目前絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。
高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:
解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。
編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要握斗游修改,必須先修改源代碼,再重新編譯生成新的目標文件(*.OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如VisualC++、VisualFoxpro、Delphi等。
學習編程,從何入手
如果您想學習編程,卻又不知從何入手,那麼您不妨看看下面的幾種學習方案,可能會給您一些啟示吧!
方案一Basic語言&VisualBasic
優點
(1)Basic簡單易學,很容易上手。
(2)VisualBasic提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
(3)眾多的控制項讓編程變得象壘積木一樣簡單。
(4)VisualBasic的全部漢化讓我們這些見了English就頭大的人喜不自禁。
缺點
(1)VisualBasic不是真正的面向對象的開發文具。
(2)VisualBasic的數據類型太少,而且不支持指針,這使得它的表達能力很有限。
(3)VisualBasic不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一段銷種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得VisualBasic的編譯速度大大變慢。
綜述:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間里學會vB編程,並用VB做出自己的作品。對於那些把編程當做游戲的朋友來說,VB是您最佳的選擇。
方案二Pascal語言&Delphi
優點
(1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。
(2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。
(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速銷虛度非常快。
(4)Delphi具有強大的資料庫開發能力,可以讓你輕松地開發資料庫。
缺點
Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。
綜述:方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。
方案三C語言&VisualC
優點
(1)C語言靈活性好,效率高,可以接觸到軟體開發比較底層的東西。
(2)微軟的MFC庫博大精深,學會它可以讓隨心所欲地進行編程。
(3)VC是微軟製作的產品,與操作系統的結合更加緊密。
缺點
對使用者的要求比較高,既要具備豐富的C語言編程經驗,又要具有一定的WINDOWS編程基礎,它的過於專業使得一般的編程愛好者學習起來會有不小的困難。
綜述:VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那麼學習VC你一定不會後悔的。
C語言簡介
方案四C語言&CBuilder
優點
(1)C語言的優點全部得以繼承。
(2)完全的可是化。
(3)極強的兼容性,支持OWL、VCL和MFC三大類庫。
(4)編譯速度非常快。
缺點
由於推出的時間太短,關於它的各種資料還不太多。
綜述:我認為CBuilder是最好的編程工具。它既保持了C語言編程的優點,又做到了完全的可視化。
方案五SQL語言&PowerBuilder
對於一些傳統的數據開發人員來說,Foxpro系列也許讓他們感到更加熟悉。但是對於初學者來說,也許是最好的資料庫開發工具。各種各樣的控制項,功能強大的語言都會幫助你開發出自己的資料庫應用程序。
JSP簡介
在Sun正式發布JSP(JavaServerPages)之後,這種新的Web應用開發技術很快引起了人們的關注。JSP為創建高度動態的Web應用提供了一個獨特的開發環境。按照Sun的說法,JSP能夠適應市場上包括ApacheWebServer、IIS4.0在內的85%的伺服器產品。
JSP與ASP的簡單比較
JSP與Microsoft的ASP技術非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。在ASP或JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴於Web伺服器,而ASP和JSP頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到HTML代碼中,然後一起發送給瀏覽器。ASP和JSP都是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。
ASP的編程語言是VBScript之類的腳本語言,JSP使用的是Java,這是兩者最明顯的區別。
此外,ASP與JSP還有一個更為本質的區別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執行;在JSP下,代碼被編譯成Servlet並由Java虛擬機執行,這種編譯操作僅在對JSP頁面的第一次請求時發生。
運行環境
執行JSP代碼需要在伺服器上安裝JSP引擎。此處我們使用的是Sun的JavaServerWebDevelopmentKit(JSWDK)。為便於學習,這個軟體包提供了大量可供修改的示例。安裝JSWDK之後,只需執行startserver命令即可啟動伺服器。在默認配置下伺服器在埠8080監聽,使用localhost:8080即可打開預設頁面。
在運行JSP示例頁面之前,請注意一下安裝JSWDK的目錄,特別是"work"子目錄下的內容。執行示例頁面時,可以在這里看到JSP頁面如何被轉換成Java源文件,然後又被編譯成class文件(即Servlet)。JSWDK軟體包中的示例頁面分為兩類,它們或者是JSP文件,或者是包含一個表單的HTML文件,這些表單均由JSP代碼處理。與ASP一樣,JSP中的Java代碼均在伺服器端執行。因此,在瀏覽器中使用"查看源文件"菜單是無法看到JSP源代碼的,只能看到結果HTML代碼。所有示例的源代碼均通過一個單獨的"examples"頁面提供。
JavaServlet是一種開發Web應用的理想構架。JSP以Servlet技術為基礎,又在許多方面作了改進。JSP頁面看起來象普通HTML頁面,但它允許嵌入執行代碼,在這一點上,它和ASP技術非常相似。利用跨平台運行的JavaBean組件,JSP為分離處理邏輯與顯示樣式提供了卓越的解決方案。JSP必將成為ASP技術的有力競爭者。
SQL語言簡介
SQL全稱是「結構化查詢語言(StructuredQueryLanguage)」,最早的是IBM的聖約瑟研究實驗室為其關系資料庫管理系統SYSTEMR開發的一種查詢語言,它的前身是SQUARE語言。SQL語言結構簡潔,功能強大,簡單易學,所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應用。如今無論是像Oracle,Sybase,Informix,SQLserver這些大型的資料庫管理系統,還是像VisualFoxporo,這些微機上常用的資料庫開發系統,都支持SQL語言作為查詢語言。
StructuredQueryLanguage包含4個部分:
數據查詢語言DQL-DataQueryLanguageSELECT
數據操縱語言DQL-DataLanguageINSERT,UPDATE,DELETE
數據定義語言DQL-DataDefinitionLanguageCREATE,ALTER,DROP
數據控制語言DQL-DataControlLanguageCOMMITWORK,ROLLBACKWORK
SQL的歷史
在70年代初,E.E.Codd首先提出了關系模型。70年代中期,IBM公司在研製SYSTEMR關系資料庫管理系統中研製了SQL語言,最早的SQL語言(叫SEQUEL2)是在1976年11月的IBMJournalofR&D上公布的。
SQL的優點
SQL廣泛地被採用正說明了它的優點。它使全部用戶,包括應用程序員、DBA管理員和終端用戶受益非淺。
(1)非過程化語言
SQL是一個非過程化的語言,因為它一次處理一個記錄,對數據提供自動導航。SQL允許用戶在高層的數據結構上工作,而不對單個記錄進行操作,可操作記錄集。所有SQL語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結果作為另一條SQL語句的輸入。SQL不要求用戶指定對數據的存放方法。這種特性使用戶更易集中精力於要得到的結果。所有SQL語句使用查詢優化器,它是RDBMS的一部分,由它決定對指定數據存取的最快速度的手段。查詢優化器知道存在什麼索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什麼類型的索引。
(2)統一的語言
SQL可用於所有用戶的DB活動模型,包括系統管理員、資料庫管理員、應用程序員、決策支持系統人員及許多其它類型的終端用戶。基本的SQL命令只需很少時間就能學會,最高級的命令在幾天內便可掌握。SQL為許多任務提供了命令,包括:
查詢數據
在表中插入、修改和刪除記錄
建立、修改和刪除數據對象
控制對數據和數據對象的存取
保證資料庫一致性和完整性
以前的資料庫管理系統為上述各類操作提供單獨的語言,而SQL將全部任務統一在一種語言中。
(3)是所有關系資料庫的公共語言
由於所有主要的關系資料庫管理系統都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS轉到另一個。所有用SQL編寫的程序都是可以移植的。
Java語言簡介
一.Java的由來
當1995年SUN推出Java語言之後,全世界的目光都被這個神奇的語言所吸引。那麼Java到底有何神奇之處呢?
Java語言其實最是誕生於1991年,起初被稱為OAK語言,是SUN公司為一些消費性電子產品而設計的一個通用環境。他們最初的目的只是為了開發一種獨立於平台的軟體技術,而且在網路出現之前,OAK可以說是默默無聞,甚至差點夭折。但是,網路的出現改變了OAK的命運。
在Java出現以前。Internet上的信息內容都是一些乏味死板的HTML文檔。這對於那些迷戀於WEB瀏覽的人們來說簡直不可容忍。他們迫切希望能在WEN中看到一些互動式的內容,開發人員也極希望能夠在WEB上創建一類無需考慮軟硬體平台就可以執行的應用程序,當然這些程序還要有極大的安全保障。對於用戶的這種要求,傳統的編程語言顯得無能為力,面SUN的工程師敏銳地察覺到了這一點,從1994年起,他們開始將OAK技術應用於WEB上,並且開發出了HotJava的第一個版本。當SUN公司1995年正式以Java這個名字推出的時候,幾乎所有的WEB開發人員都想到:噢,這正是我想要的。於是Java成了一顆耀眼的明星,丑小鴨一下了變成了白天鵝。
二.Java的定義
Java是一種簡單的,面象對象的,分布式的,解釋的,鍵壯的安全的,結構的中立的,可移植的,性能很優異的多線程的,動態的語言。
Java的開發環境有不同的版本,如sun公司的JavaDevelopersKit,簡稱JDK。後來微軟公司推出了支持Java規范的MicrosoftVisualJJava開發環境,簡稱VJ。
三.Java的特點
1.平台無關性
平台無關性是指Java能運行於不同的平台。Java引進虛擬機原理,並運行於虛擬機,實現不同平台的Java介面之間。使用Java編寫的程序能在世界范圍內共享。Java的數據類型與機器無關,Java虛擬機(JavaVirtualMachine)是建立在硬體和操作系統之上,實現Java二進制代碼的解釋執行功能,提供於不同平台的介面的。
2.安全性
Java的編程類似C,學習過C的讀者將很快掌握Java的精髓。Java舍棄了C的指針對存儲器地址的直接操作,程序運行時,內存由操作系統分配,這樣可以避免病毒通過指針侵入系統。Java對程序提供了安全管理器,防止程序的非法訪問。
3.面向對象
Java吸取了C面向對象的概念,將數據封裝於類中,利用類的優點,實現了程序的簡潔性和便於維護性。類的封裝性、繼承性等有關對象的特性,使程序代碼只需一次編譯,然後通過上述特性反復利用。程序員只需把主要精力用在類和介面的設計和應用上。Java提供了眾多的一般對象的類,通過繼承即可使用父類的方法。在Java中,類的繼承關系是單一的非多重的,一個子類只有一個父類,子類的父類又有一個父類。Java提供的Object類及其子類的繼承關系如同一棵倒立的樹形,根類為Object類,Object類功能強大,經常會使用到它及其它派生的子類。
4.分布式
Java建立在擴展TCP/IP網路平台上。庫函數提供了用HTTP和FTP協議傳送和接受信息的方法。這使得程序員使用網路上的文件和使用本機文件一樣容易。
5.鍵壯性
Java致力於檢查程序在編譯和運行時的錯誤。類型檢查幫助檢查出許多開發早期出現的錯誤。Java自已操縱內存減少了內存出錯的可能性。Java還實現了真數組,避免了覆蓋數據的可能。這些功能特徵大大提高了開發Java應用程序的周期。Java提供:Null指針檢測、數組邊界檢測、異常出口、Bytecode校驗。
四.Java與C/C語言
Java提供了一個功能強大語言的所有功能,但幾乎沒有一點含混特徵。C安全性不好,但C和C被大家接受,所以Java設計成C形式,讓大家很容易學習。
Java去掉了C語言的許多功能,讓Java的語言功能很精煉,並增加了一些很有用的功能,如自動收集碎片。
Java去掉了以下幾個C和C功能:
指針運算
結構
typedefs
#define
需要釋放內存
這將減少了平常出錯的50%。而且,Java很小,整個解釋器只需215K的RAM。
面象對象:Java實現了C的基本面象對象技術並有一些增強,(為了語言簡單,刪除了一些功能)。Java處理數據方式和用對象介面處理對象數據方式一樣。
五.Java與Internet
我們知道,早先的www僅可以傳送文本和圖片,Java的出現實現了互動的頁面,是一次偉大的革命。
Java並不是為Internet,WWW而設計的,它也可以用來編寫獨立的應用程序。Java是一種面向對象語言。Java語言類似於C語言,所以已熟練掌握C語言的編程人員,再學習Java語言就容易得多!Java程序需要編譯。實際上有兩種Java程序:一種Java應用程序是一個完整的程序,如Web瀏覽器。一種Java小應用程序是運行於Web瀏覽器中的一個程序.
Java程序和它的瀏覽器HotJava,提供了可讓你的瀏覽器運行程序的方法。你能從你的瀏覽器里直接播放聲音。你還能播放頁面里的動畫。Java還能告訴你的瀏覽器怎樣處理新的類型文件。當我們能在2400baud線上傳輸視頻圖象時,HotJava將能顯示這些視頻。
當今Internet的一大發展趨勢是電子商務,而Internet的安全問題是必須解決的問題,通常大的部門應設置防火牆,阻止非法侵入。
電子商務是當今的熱門話題,然而傳統的編程語言難以勝任電子商務系統,電子商務要求程序代碼具有基本的要求:安全、可靠、同時要求能與運行於不同平台的機器的全世界客戶開展業務。Java以其強安全性、平台無關性、硬體結構無關性、語言簡潔同時面向對象,在網路編程語言中占據無可比擬的優勢,成為實現電子商務系統的首選語言。
Java程序被放置在Internet伺服器上,當用戶訪問伺服器時,Java程序被下載到本地的用戶機上,由瀏覽器解釋運行。
Delphi簡介
Delphi這個名字源於古希臘的城市名。它集中了第三代語言的優點。以ObjectPascal為基礎,擴充了面向對象的能力,並且完美地結合了可視化的開發手段。Delphi自1995年3月一推出就受到了人們的關注,並在當年一舉奪得了多項大獎。
Delphi的出現打破了V承可視化編程領域一統天下的局面。並且Delphi使用了本地編譯器直接生成技術,使程序的執行性能遠遠高於其它產品生成的程序。它還是真正的面向對象的編程語言。PASCAL語言的嚴謹加上可視化的優勢和強大的資料庫功能使得它有充分的資本和微軟的VB叫板。許多人當時都認為Pascal是最有前途的程序設計語言,並預測Delphi將會成為可視化編程的主流環境。
Delphi在你編好程序後自動轉換成.EXE文件它運行時速度比VB快,而且編譯後不需要其他的支持庫就能運行。它的資料庫功能也挺強的,是開發中型資料庫軟體理想的編程工具。Delphi適用於應用軟體、資料庫系統、系統軟體等類型的開發。而且它擁有和VB差不多一樣的功能,而且一樣能應用API函數,這在控制Windows很有用。
Delphi是全新的可視化編程環境,為我們提供了一種方便、快捷的Windows應用程序開發工具。它使用了MicrosoftWindows圖形用戶界面的許多先進特性和設計思想,採用了彈性可重復利用的完整的面向對象程序語言(Object-OrientedLanguage)、當今世界上最快的編輯器、最為領先的資料庫技術。對於廣大的程序開發人員來講,使用Delphi開發應用軟體,無疑會大大地提高編程效率,而且隨著應用的深入,您將會發現編程不再是枯燥無味的工作——Delphi的每一個設計細節,都將帶給您一份欣喜。
Delphi的基本形式
Delphi實際上是Pascal語言的一種版本,但它與傳統的Pascal語言有天壤之別。一個Delphi程序首先是應用程序框架,而這一框架正是應用程序的「骨架」。在骨架上即使沒有附著任何東西,仍可以嚴格地按照設計運行。您的工作只是在「骨架」中加入您的程序。預設的應用程序是一個空白的窗體(form),您可以運行它,結果得到一個空白的窗口。這個窗口具有Windows窗口的全部性質:可以被放大縮小、移動、最大最小化等,但您卻沒有編寫一行程序。因此,可以說應用程序框架通過提供所有應用程序共有的東西,為用戶應用程序的開發打下了良好的基礎。
Delphi已經為您做好了一切基礎工作——程序框架就是一個已經完成的可運行應用程序,只是不處理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代碼而已。在空白窗口的背後,應用程序的框架正在等待用戶的輸入。由於您並未告訴它接收到用戶輸入後作何反應,窗口除了響應Windows的基本操作(移動、縮放等)外,它只是接受用戶的輸入,然後再忽略。