编程之路
簡(jiǎn)介
技術(shù)永無(wú)止境,編程方向現(xiàn)在越來(lái)越廣了,你還在迷茫地選擇方向么?
本篇將簡(jiǎn)單描述編程各個(gè)方面,以及編程之路會(huì)遇到的生活問(wèn)題。
問(wèn)題與解答
1、編程分為幾個(gè)階段?
高手箴言中把編程分為六個(gè)階段:1、熟練地使用某種語(yǔ)言(java)。
2、精通基于某種平臺(tái)的開(kāi)發(fā)(Android)。
3、深入地了解某個(gè)平臺(tái)系統(tǒng)的底層(Android 底層)。
4、直接在平臺(tái)上進(jìn)行比較深層次的開(kāi)發(fā)(Android NDK 開(kāi)發(fā))。
5、系統(tǒng)體系結(jié)構(gòu)開(kāi)發(fā)。
6、想啥就實(shí)現(xiàn)啥。
2、JAVA 技術(shù)
3、JavaScript 技術(shù)
4、C/C++ 技術(shù)
5、PHP技術(shù)
6、C#技術(shù)
7、Python技術(shù)
8、Ruby
9、Go語(yǔ)言
10、DLL
11、組件 控件 插件
12、框架
java框架
php框架
JavaScript框架
13、Perl技術(shù)
14、XML
可擴(kuò)展標(biāo)記語(yǔ)言,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集,一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言。
它可以用來(lái)標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類(lèi)型,是一種允許用戶(hù)對(duì)自己的標(biāo)記語(yǔ)言進(jìn)行定義的源語(yǔ)言。 它非常適合萬(wàn)維網(wǎng)傳輸,提供統(tǒng)一的方法來(lái)描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。
15、CSS
它是一種用來(lái)表現(xiàn)HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的一個(gè)應(yīng)用)或XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的一個(gè)子集)等文件樣式的計(jì)算機(jī)語(yǔ)言。
CSS目前最新版本為CSS3,是能夠真正做到網(wǎng)頁(yè)表現(xiàn)與內(nèi)容分離的一種樣式設(shè)計(jì)語(yǔ)言。相對(duì)于傳統(tǒng)HTML的表現(xiàn)而言,CSS能夠?qū)W(wǎng)頁(yè)中的對(duì)象的位置排版進(jìn)行像素級(jí)的精確控制,支持幾乎所有的字體字號(hào)樣式,擁有對(duì)網(wǎng)頁(yè)對(duì)象和模型樣式編輯的能力,并能夠進(jìn)行初步交互設(shè)計(jì),是目前基于文本展示最優(yōu)秀的表現(xiàn)設(shè)計(jì)語(yǔ)言。CSS能夠根據(jù)不同使用者的理解能力,簡(jiǎn)化或者優(yōu)化寫(xiě)法,針對(duì)各類(lèi)人群,有較強(qiáng)的易讀性。
16、HTML
標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用,也是一種規(guī)范,一種標(biāo)準(zhǔn), 它通過(guò)標(biāo)記符號(hào)來(lái)標(biāo)記要顯示的網(wǎng)頁(yè)中的各個(gè)部分。網(wǎng)頁(yè)文件本身是一種文本文件,通過(guò)在文本文件中添加標(biāo)記符,可以告訴瀏覽器如何顯示其中的內(nèi)容(如:文字如何處理,畫(huà)面如何安排,圖片如何顯示等)。瀏覽器按順序閱讀網(wǎng)頁(yè)文件,然后根據(jù)標(biāo)記符解釋和顯示其標(biāo)記的內(nèi)容,對(duì)書(shū)寫(xiě)出錯(cuò)的標(biāo)記將不指出其錯(cuò)誤,且不停止其解釋執(zhí)行過(guò)程,編制者只能通過(guò)顯示效果來(lái)分析出錯(cuò)原因和出錯(cuò)部位。但需要注意的是,對(duì)于不同的瀏覽器,對(duì)同一標(biāo)記符可能會(huì)有不完全相同的解釋,因而可能會(huì)有不同的顯示效果。
HTML文件是可以被多種網(wǎng)頁(yè)瀏覽器讀取,產(chǎn)生網(wǎng)頁(yè)傳遞各類(lèi)資訊的文件。從本質(zhì)上來(lái)說(shuō),Internet( 互聯(lián)網(wǎng))是一個(gè)由一系列傳輸協(xié)議和各類(lèi)文檔所組成的集合,html文件只是其中的一種。
HTML5是HTML下一個(gè)主要的修訂版本,現(xiàn)在仍處于發(fā)展階段,其實(shí)是包括HTML、CSS和JavaScript在內(nèi)的一套技術(shù)組合。它希望能夠減少瀏覽器對(duì)于需要插件的豐富性網(wǎng)絡(luò)應(yīng)用服務(wù)(plug-in-based rich internet application,RIA),如Adobe Flash、Microsoft Silverlight,與Oracle JavaFX的需求,并且提供更多能有效增強(qiáng)網(wǎng)絡(luò)應(yīng)用的標(biāo)準(zhǔn)集。
17、ASP
18、Delphi
19、Scala
20、Groovy
一種基于JVM(Java虛擬機(jī))的敏捷開(kāi)發(fā)語(yǔ)言,它結(jié)合了Python、Ruby和Smalltalk的許多強(qiáng)大的特性,Groovy 代碼能夠與 Java 代碼很好地結(jié)合,也能用于擴(kuò)展現(xiàn)有代碼。由于其運(yùn)行在 JVM 上的特性,Groovy 可以使用其他 Java 語(yǔ)言編寫(xiě)的庫(kù)。
用于Java虛擬機(jī)的一種敏捷的動(dòng)態(tài)語(yǔ)言,它是一種成熟的面向?qū)ο缶幊陶Z(yǔ)言,既可以用于面向?qū)ο缶幊?#xff0c;又可以用作純粹的腳本語(yǔ)言。使用該種語(yǔ)言不必編寫(xiě)過(guò)多的代碼,同時(shí)又具有閉包和動(dòng)態(tài)語(yǔ)言中的其他特性。
應(yīng)用:1、groovyShell 腳本語(yǔ)言運(yùn)用 2、在Java中動(dòng)態(tài)加載和運(yùn)行Groovy代碼 3、groovy 腳本引擎
21、Lua
一個(gè)小巧的腳本語(yǔ)言,該語(yǔ)言的設(shè)計(jì)目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。
Lua腳本可以很容易的被C/C++ 代碼調(diào)用,也可以反過(guò)來(lái)調(diào)用C/C++的函數(shù),這使得Lua在應(yīng)用程序中可以被廣泛應(yīng)用。
應(yīng)用:
Minecraft中的電腦插件
所有的為電腦和turtle(機(jī)器人)的代碼都是基于Lua的,你可以用它們與有(無(wú))線(xiàn)路由器、打印機(jī)、磁盤(pán)驅(qū)動(dòng)器、(黃金)顯示器互動(dòng)。
魔獸世界插件開(kāi)發(fā)
游戲腳本
22、SQL
結(jié)構(gòu)化查詢(xún)語(yǔ)言是一種數(shù)據(jù)庫(kù)查詢(xún)和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢(xún)、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng);同時(shí)也是數(shù)據(jù)庫(kù)腳本文件的擴(kuò)展名。
結(jié)構(gòu)化查詢(xún)語(yǔ)言是高級(jí)的非過(guò)程化編程語(yǔ)言,允許用戶(hù)在高層數(shù)據(jù)結(jié)構(gòu)上工作。
它不要求用戶(hù)指定對(duì)數(shù)據(jù)的存放方法,也不需要用戶(hù)了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫(kù)系統(tǒng), 可以使用相同的結(jié)構(gòu)化查詢(xún)語(yǔ)言作為數(shù)據(jù)輸入與管理的接口。
結(jié)構(gòu)化查詢(xún)語(yǔ)言語(yǔ)句可以嵌套,這使它具有極大的靈活性和強(qiáng)大的功能。
開(kāi)源項(xiàng)目:sqlite ?一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。
23、Flash
一種動(dòng)畫(huà)創(chuàng)作與應(yīng)用程序開(kāi)發(fā)于一身的創(chuàng)作軟件。
Flash動(dòng)畫(huà)設(shè)計(jì)的三大基本功能是整個(gè)Flash動(dòng)畫(huà)設(shè)計(jì)知識(shí)體系中最重要、也是最基礎(chǔ)的,包括:繪圖和編輯圖形、補(bǔ)間動(dòng)畫(huà)和遮罩。這是三個(gè)緊密相連的邏輯功能,并且這三個(gè)功能自Flash誕生以來(lái)就存在。
Flash廣泛用于創(chuàng)建吸引人的應(yīng)用程序,它們包含豐富的視頻、聲音、圖形和動(dòng)畫(huà)。
24、WPF
微軟推出的基于Windows Vista的用戶(hù)界面框架,屬于.NET Framework 3.0的一部分。它提供了統(tǒng)一的編程模型、語(yǔ)言和框架,真正做到了分離界面設(shè)計(jì)人員與開(kāi)發(fā)人員的工作;同時(shí)它提供了全新的多媒體交互用戶(hù)圖形界面。
Flash廣泛用于創(chuàng)建吸引人的應(yīng)用程序,它們包含豐富的視頻、聲音、圖形和動(dòng)畫(huà)。
由兩個(gè)主要部分組成:引擎和編程框架:
1、Windows Presentation Foundation引擎。Windows Presentation Foundation 引擎統(tǒng)一了開(kāi)發(fā)人員和設(shè)計(jì)人員體驗(yàn)文檔、媒體和 UI 的方式,為基于瀏覽器的體驗(yàn)、基于窗體的應(yīng)用程序、圖形、視頻、音頻和文檔提供了一個(gè)單一的運(yùn)行時(shí)庫(kù)。
2、Windows Presentation Foundation 框架。Windows Presentation Foundation 框架為媒體、用戶(hù)界面設(shè)計(jì)和文檔提供的解決方案遠(yuǎn)遠(yuǎn)超過(guò)開(kāi)發(fā)人員現(xiàn)在所擁有的。
25、Shell
在計(jì)算機(jī)科學(xué)中,Shell俗稱(chēng)殼(用來(lái)區(qū)別于核),是指“提供使用者使用界面”的軟件(命令解析器)。它類(lèi)似于DOS下的command和后來(lái)的cmd.exe。它接收用戶(hù)命令,然后調(diào)用相應(yīng)的應(yīng)用程序。
26、Objective-C
擴(kuò)充C的面向?qū)ο缶幊陶Z(yǔ)言。
作用:編寫(xiě)iOS操作系統(tǒng)(如:iPhone、iPod touch、iPad 等蘋(píng)果移動(dòng)終端設(shè)備 )應(yīng)用程序。
27、QT
一個(gè)跨平臺(tái)的C++圖形用戶(hù)界面應(yīng)用程序框架。它提供給應(yīng)用程序開(kāi)發(fā)者建立藝術(shù)級(jí)的圖形用戶(hù)界面所需的所有功能。Qt很容易擴(kuò)展,并且允許真正地組件編程?;旧?#xff0c;Qt 同 X Window 上的 Motif,Openwin,GTK 等圖形界 面庫(kù)和 Windows 平臺(tái)上的 MFC,OWL,VCL,ATL 是同類(lèi)型的東西。
Qt支持下述平臺(tái):
MS/Windows - 95、98、NT4.0、ME、2000、XP 、 Vista、Win7、win8、win2008
Unix/X11 -Linux、SunSolaris、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平臺(tái)
Macintosh -Mac OS X
Embedded - 有幀緩沖(framebuffer)支持的嵌入式Linux平臺(tái),Windows CE
Symbian Symbian^3 Symbian Anna Symbian Belle
28、嵌入式
嵌入式系統(tǒng)是一個(gè)控制程序存儲(chǔ)在ROM中的嵌入式處理器控制板。
嵌入式設(shè)計(jì)是企業(yè)電子產(chǎn)品設(shè)計(jì)的重要組成,目前國(guó)內(nèi)外中小型企業(yè)內(nèi)部都建立了自己的嵌入式開(kāi)發(fā)團(tuán)隊(duì)。團(tuán)隊(duì)所需的人員職位構(gòu)成包括:(1)系統(tǒng)設(shè)計(jì)工程師 (2)硬件工程師 (3)底層驅(qū)動(dòng)工程師 (4)Linux系統(tǒng)工程師 (5)應(yīng)用設(shè)計(jì)工程師等。
29、逆向開(kāi)發(fā)
逆向是編譯的反過(guò)程,一般用戶(hù)破解用戶(hù)加密等數(shù)據(jù)。
主要語(yǔ)言:匯編。
主要工具:IDA
主要應(yīng)用:破解加密、游戲輔助等。
30、初級(jí)程序員和高級(jí)程序員的區(qū)別
同樣一個(gè)項(xiàng)目,初級(jí)程序員想的是實(shí)現(xiàn)功能,達(dá)到效果,高級(jí)程序員想的是架構(gòu),如何更理想、更高效率完成。
31、程序員是青春的代表么?
決定程序員之路的元素有很多--------時(shí)間、身體、家庭。
如果可以很好衡量這三者,相信你會(huì)超越喬布斯。
總結(jié)
人生之路漫漫,選擇一個(gè)自己喜歡的專(zhuān)業(yè)很重要,全面了解專(zhuān)業(yè)決定了專(zhuān)業(yè)水平的寬度,深入某一方面決定了水平的高度。
總結(jié)
- 上一篇: Go语言开发工具和插件
- 下一篇: go语言开发有哪些工具