1. 編程是什麼
編程 是個動詞,編程==寫代碼,寫代碼為了什麼? 為了讓計算機干你想要乾的事情,比如,馬化騰想跟別人聊天,於是寫了個聊天軟體,這個軟體就是一堆代碼的集合,這些代碼是什麼?這些代碼是計算機能理解的語言。
那計算能理解的語言是什麼呢? 之前,我們已經了解到,它只能理解2進制,0101010…,你總不能人肉輸一堆二進制給計算機(雖然最原始的計算機就是這么乾的)讓它工作吧,這樣開發速度太慢了。所以最好的辦法就是人輸入簡單的指令,計算機能把指令轉成二進制進行執行,舉例如下:
假如 程序員想讓計算機 播放一首 歌曲 , 只需要輸入指令 ,
open "老男孩.mp3"
play
計算機的CPU接收到這樣的指令後,會把它轉成一堆 只有cpu可以理解的指令,然後再將指令變成各種對應的如下類似二進制
[ op | rs | rt | address/immediate]
353868decimal
binary
最終cpu 去調用你的硬碟上這首歌,通過音箱播放。
上面cpu那段指令太難理解了,如果讓你天天寫這樣的代碼,大家非得自殺不可。還好,偉大的計算機先驅們,開發了各種編程語言,讓我們只需要通過寫一些簡單的規則,就能操作計算機工作啦。
有哪些編程語言?
編程語言總體分以為機器語言、匯編語言、高級語言,如下
機器語言
由於計算機內部只能接受二進制代碼,因此,用二進制代碼0和1描述的指令稱為機器指令,全部機器指令的集合構成計算機的機器語言,用機器語言編程的程序稱為目標程序。只有目標程序才能被計算機直接識別和執行。但是機器語言編寫的程序無明顯特徵,難以記憶,不便閱讀和書寫,且依賴於具體機種,局限性很大,機器語言屬於低級語言。
用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令代碼和代碼的涵義。手編程序時,程序員得自己處理每條指令和每一數據的存儲分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何種狀態。這是一件十分繁瑣的工作。編寫程序花費的時間往往是實際運行時間的幾十倍或幾百倍。而且,編出的程序全是些0和1的指令代碼,直觀性差,還容易出錯。除了計算機生產廠家的專業人員外,絕大多數的程序員已經不再去學習機器語言了。
機器語言是微處理器理解和使用的,用於控制它的操作二進制代碼。
盡管機器語言好像是很復雜的,然而它是有規律的。
存在著多至100000種機器語言的指令。這意味著不能把這些種類全部列出來。
以下是一些示例:
指令部份的示例
0000 代表 載入(LOAD)
0001 代表 存儲(STORE)
…
暫存器部份的示例
0000 代表暫存器 A
0001 代表暫存器 B
…
存儲器部份的示例
000000000000 代表地址為 0 的存儲器
000000000001 代表地址為 1 的存儲器
000000010000 代表地址為 16 的存儲器
100000000000 代表地址為 2^11 的存儲器
集成示例
0000,0000,000000010000 代表 LOAD A, 16
0000,0001,000000000001 代表 LOAD B, 1
0001,0001,000000010000 代表 STORE B, 16
0001,0001,000000000001 代表 STORE B, 1[1]
匯編語言
匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作。例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能夠實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
匯編的hello world,列印一句hello world, 需要寫十多行,也是醉了。
; hello.asm
section .data ;數據段聲明
msg db "Hello, world!",0xA;要輸出的字元串
len equ $ - msg ;字串長度
section .text ;代碼段聲明
global _start ;指定入口函數
_start:;在屏幕上顯示一個字元串
mov edx, len ;參數三:字元串長度
mov ecx, msg ;參數二:要顯示的字元串
mov ebx,1;參數一:文件描述符(stdout)
mov eax,4;系統調用號(sys_write)
int0x80;調用內核功能
;退出程序
mov ebx,0;參數一:退出代碼
mov eax,1;系統調用號(sys_exit)
int0x80;調用內核功能
高級語言
高級語言是大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。
高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,像最簡單的編程語言PASCAL語言也屬於高級語言。
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:
編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行(編譯後生成的可執行文件,是cpu可以理解的2進制的機器碼組成的),使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .obj,也就是OBJ文件)才能執行,只有目標文件而沒有源代碼,修改很不方便。
編譯後程序運行時不需要重新翻譯,直接使用編譯的結果就行了。程序執行效率高,依賴編譯器,跨平台性差些。如C、C++、Delphi等
解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器(想運行,必須先裝上解釋器,就像跟老外說話,必須有翻譯在場),但這種方式比較靈活,可以動態地調整、修改應用程序。如Python、java、PHP、Ruby等語言。
總結
機器語言
優點是最底層,速度最快,缺點是最復雜,開發效率最低
匯編語言
優點是比較底層,速度最快,缺點是復雜,開發效率最低
高級語言
編譯型語言執行速度快,不依賴語言環境運行,跨平台差
解釋型跨平台好,一份代碼,到處使用,缺點是執行速度慢,依賴解釋器運行
主流編程語言介紹(10分鍾)
世界上的編程語言有600多種,但真正大家主流在使用的最多二三十種,不同的語言有自己的特點和擅長領域,隨著計算機的不斷發展,新語言在不斷誕生,也同時有很多老舊的語言慢慢無人用了。有個權威的語言排名網站,可以看到主流的編程語言是哪些
TIOBE發布編程語言排行榜已經快6年的時光了,在這六年中我們見證了不少語言的起起落落。雖然國內有很多大牛說,關注這語言的排名沒有多少意義。但仍可以看出那些語言日漸興盛,哪些日漸沒落,我們從Objective-C的上升過程中,還是能看到移動設備端,特別是iOS應用開發方面的黃金潛力。
下面介紹下幾個主流的編程語言:
C語言:
C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。
C++:
C++是C語言的繼承的擴展,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。
C++不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
JAVA:
Java是一種可以撰寫跨平台應用軟體的面向對象的程序設計語言,是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平台(即JavaSE, JavaEE, JavaME)的總稱。Java 技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於個人PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。在全球雲計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。
PHP:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域
Ruby:
Ruby 是開源的,在Web 上免費提供,但需要一個許可證。[4]
Ruby 是一種通用的、解釋的編程語言。
Ruby 是一種真正的面向對象編程語言。
Ruby 是一種類似於 Python 和 Perl 的伺服器端腳本語言。
Ruby 可以用來編寫通用網關介面(CGI)腳本。
Ruby 可以被嵌入到超文本標記語言(HTML)。
Ruby 語法簡單,這使得新的開發人員能夠快速輕松地學習 Ruby
GO:
Go 是一個開源的編程語言,它能讓構造簡單、可靠且高效的軟體變得容易。
Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發,後來還加入了Ian Lance Taylor, Russ Cox等人,並最終於2009年11月開源,在2012年早些時候發布了Go 1穩定版本。現在Go的開發已經是完全開放的,並且擁有一個活躍的社區。
由其擅長並發編程
Python:
Python是一門優秀的綜合語言, Python的宗旨是簡明、優雅、強大,在人工智慧、雲計算、金融分析、大數據開發、WEB開發、自動化運維、測試等方向應用廣泛,已是全球第4大最流行的語言。
2. 學習編程需要什麼基礎
學習編程其實不需要什麼基礎,只要可以正常操作電腦就可以學習編程,但是如果想往高深的技術研究就需要學習很多東西,時代咋子進步很多東西都有千絲萬縷,所以很多編程需要都是相通的。
3、知識經濟時代給我們帶來了無限的機遇。要真正掌握計算機技術並在信息技術行業有所作為,具備一定的編程能力是一個基本條件和要求。
4、為基礎編程打下堅實的基礎,應總結如下幾個方面,數學基礎從計算機發展和應用的歷史來看,計算機的數學模型和體系結構是由數學家提出的,最早的計算機也是為數值計算而設計的。 因此要學好計算機必須有一定的數學基礎初學者應該有高中水平。
3. 在沒有操作系統的時候。編程是靠什麼來實現的
沒有操作系統的時候,大多都是操作計算機硬體,與計算機硬體打交道的一般用匯編控制邏輯,匯編語言代碼用二進制的形式存儲在CPU上面,所以用匯編代碼編程就可以控制計算機硬體,在沒有操作系統的情況下也可以操作電腦,只不過非常麻煩,也很抽象,在沒有操作系統的情況下,編程的時候的使用一種特殊的平台來'寫' 匯編指令,然後的把你寫好的指令存儲在計算機的記憶體中,EPROM(可編程的ROM)等.存儲指令的時候的用特殊的寫數據的方法等, 總之在沒有操作系統的情況下也可以對計算機編程,你的用硬體廠商給定的指令進行編程,CPU在出廠的時候有固定的指令集,比如,MOV , ADD...等,現在的P4CPU指令就更加多了,呵呵 ,只要你夠牛,在沒有操作系統的情況下一樣的寫程序.
4. 計算機編程最基本的東西是什麼
1.我認為計算機編程中最基本的是精神態度。編程的技術也是比較重要的。學習編程,現在必須要學會C語言和JAVA。但是只學會C語言、JAVA很難成為一個編程高手,頂多算是一個程序員。
2.學習計算機編程,必須要學會以獨立於任何程序語言之上的概括性觀念來思考一件程序設計上的問題。要成為一位真正的技術高手,必須要在幾天之內將目錄內容和目前已經知道的知識關聯起來學會一種新的語言。也就是說必須要學會幾種不同的語言。
3.計算機編程一般是靠自學的,還有就是讀別人寫的代碼和寫程序。多看大俠寫的程序,然後讀更多,寫更多,一直持續,直到發展出自己的風格和特色。現在要找一些寫的好的程序代碼也不是一件特別困難的事。
4.多讀代碼,多寫代碼,多體會,編程語言並不是編程的全部。看一個程序員的編程水平有多高,看他寫的代碼就可以,看邏輯是否清晰,代碼是否簡潔干凈,看是否具有可讀性。要是打算學計算機編程就要以飽滿的熱情持續下去,一定會成為一個編程的高手。
如果覺得滿意,請及時採納,如果覺得錯誤,請及時採納其他答案。
盧韜旭 630995935
5. 編程是學些什麼東西
簡單的說,編程就是為了藉助於計算機來達到某一目的或解決某個問題,而使用某種程序設計語言編寫程序代碼,並最終得到結果的過程。
學習:JAVA;PHP;UI;Web前端;大數據C語言;C++;Python ;
學C語言,從數據類型,基本表達式,再到條件語句,循環語句,然後學習函數,再加上一些簡單的數組知識,足矣。到現在為止,只要理解結構化程序設計的思想也就夠了。
(5)編程靠的是什麼擴展閱讀:
*C++、C#: C語言是一種面向過程的計算機程序設計語言; C++是一種靜態數據類型檢查的,支持多重編程範式的通用程序設計語言。它支持過程化程序設計、數據抽象、面向對象程序設計、製作圖標等等泛型程序設計等多種程序設計風格。C#是微軟公司發布的一種面向對象的、運行於 .NET Framework 之上的高級程序設計語言。
6. 學習編程的基礎是什麼
編程零基礎都可以學習,所以是不需要什麼基礎的,只不過是一個學習進度快慢的問題!
想英語好的,那指定代碼敲的稍微快點!數學好的,演算法理解得更快些!所以,想學都能學會,不過學精就比較難了!
下面就拿Java來舉例吧!
入門學習java唯一需要的基礎就是英語詞彙量,入門階段不需要太多的詞彙量,3000足夠了(這裡面java程序類關鍵字是最重要的),注意僅僅是詞彙量而已,不需要掌握英語口語溝通中的語法。但是入門以後,想要完全精通java(當然這不是一件容易的事),8000以上詞彙量還是要有的。
除此之外就是書本上最基礎的一些java理論知識,這些理論知識不一定必須都要一字不差的背下來,但是這些都是基礎需要很好的了解和理解,而且並不難理解。
這些基礎的東西並沒有什麼技術性的難度,可以說就是一些需要死記硬背的東西而已,真正有難度的是你之後自己動手寫代碼的這個階段。剛開始可能很難自己動手寫出來100行以上邏輯性強且沒有Bug的代碼,基本都是需要看著別人的代碼然後自己照葫蘆畫瓢的抄寫,不然就不會寫,所有初學者開始都是這樣,所以是很正常的,這個就需要平時多寫多練,一點一點累積。知識點積累的多了,邏輯通順了,之後自然而然的就會動手寫出自己的代碼了。就是一個多寫多練的問題。
如果你已經決定了要去學java,並且以找工作為目的的話,不建議自學,因為java想要零基礎自學到最後順利找到開發的工作,可以說基本是不可能的。一種情況除外,就是你對電腦編程有著異於常人的天賦可以無師自通,否則的話還是要去系統的培訓一下。只要你能跟著有經驗的人學,能有人帶你練習做項目,外加平時自己多寫代碼,多去接觸並理解新的知識點,最後找到開發的工作問題還是不大的。
希望能幫到你,望採納!!
7. 編程主要學什麼內容
編程主要學習的課程有Java、R、Swift等,首先要對編程有個比較大概的了解,編程的對象,編程的原理,編程的目的等等。推薦咨詢達內教育。
達內教育已從事19年IT技術培訓,累計培養100萬學員,並且獨創TTS8.0教學系統,1v1督學,跟蹤式學習,有疑問隨時溝通。該機構26大課程體系緊跟企業需求,企業級項目,課程穿插大廠真實項目講解,對標企業人才標准,制定專業學習計劃,囊括主流熱點技術。
該機構是引領行業的職業教育公司,致力於面向IT互聯網行業培養人才,達內大型T專場招聘會每年定期舉行,為學員搭建快捷高效的雙選綠色通道,在提升學員的面試能力、積累面試經驗同時也幫助不同技術方向的達內學員快速就業。
想了解更多有關編程的相關信息,推薦咨詢達內教育。達內啟用國際領先的O2O教學模式,首創雲平台實訓,並自主研發了TTS教學系統,有效地實現了學員學習過程的可視化及課程的標准化,全方位,多角度的培養學員實戰技能,為就業打下堅實的基礎。同時為實現經濟困難學員就學,達內率先開創了「零首付、低押金,就業後付款」的學費模式。
8. 學編程從什麼學起
編程主要是靠語言編寫的,所以起碼你要把基礎的編程語言要學會,比如:C/C++、Java、J2ME、Linux等等。一定要把C學好,因為在以後編程底層高級開發的時候都是用C編寫的。
說譚浩強誤人子弟?真是人雲亦雲。雖然代碼的風格比較老,不太新潮,但是它是一本相當好的入門書。
C語言本來就是比較簡單的語言,書比C++少多了……
比較有名的:
《The
C
Programming
Language》(C語言程序設計,第2版新版,機械)
《C
Traps
and
Pit
falls》(C陷阱與缺陷,郵電)
《Expert
C
Programming》(C專家編程,郵電)
《Pointers
on
C》(C和指針,郵電)
《高質量C/C++編程指南》
《C:
A
Reference
Manual》(C語言參考手冊,機械)
《C
Interfaces
and
Implementations:
Techniques
for
Creating
Reusable
Software》(C語言介面與實現:創建可重用軟體的技術,機械)
9. 學編程需要什麼基礎
1、數學基礎。從計算機和應用的發展歷史來看,計算機的數學模型和體系結構等好多都是由數學家提出的,包括最早的計算機也是為數值計算而設計的。因此,要學好計算機是需要一定的數學基礎的,初學者有高中水平就差不多了。
2、邏輯思維能力的培養。程序員必須要有一定的邏輯思維能力,邏輯思維能力的培養更需要長時間的實踐鍛煉。但是也不必操之過急,邏輯思維說白了是一個技術,和打游戲,把妹,打拳擊一樣,多進場練習才是關鍵。如果做到這一點必須在反復的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。誰都有第一次。有些問題只有通過實踐後才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。
3、選擇一種合適的入門語言。網路編程目前較為流行的網路編程工具可謂「風格迥異,百花齊放」。每一種工具都有其獨特的特點,在互聯網實現上都有各自的優勢序設計工具不外乎如下幾類: ① 本地開發應用軟體開發的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;資料庫開發工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 ② 跨平台開發開發工具如 Java等。
4、注意理解一些重要概念。程序設計的教程看到的無非就是變數、函數、條件語句、循環語句等概念,但要真正能進行編程應用,需要深入理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針對這些語法、結構的應用例子,做到舉一反三。
10. 編程最靠電腦的那.是CPU和還是內存.還是其它地方
編程靠的是編程語言,與硬體關系不大
與硬體有聯系的是編程語言的編譯器,它會把程序編譯成能在當前CPU中運行的機器指令碼