A. 編程都有哪些語言
如果你是軟體開發領域的新手,那麼你會想到的第一個問題是「如何開始?」編程語言有數百種可供選擇,但是你怎麼發現哪個最適合你,你的興趣和職業目標又在哪裡呢?選擇最佳編程語言以學習的最簡單方法之一,是通過市場反響、技術趨勢的發展…
閱讀下文,你會發現一些用於Web開發,移動開發,游戲開發等的優秀、專業的編程語言。最後,你將清楚地了解哪種編程語言可以在未來幾年甚至更長時間內幫助你的職業發展。讓我們來看一看……
1、JavaScript
如今,如果連JavaScript都不會用,那麼你不可能稱之為一名合格的軟體開發人員。榜單中的第一個是JavaScript,根本無法想像沒有JavaScript的軟體開發會是怎樣的世界。從Stack Overflow的2019年開發人員調查中可以看出,JavaScript已經連續7年成為開發人員中最受歡迎的語言。過去一年中,大約有75%的人使用了這種語言。
首先,JavaScript是輕量級的,可解釋的,並且在前端開發中起著重要作用的一門語言。甚至一些主要的社交媒體平台都認為JavaScript提供了一種輕松創建互動式網頁的簡便方法,並且是由職業驅動的。最受青睞的是JavaScript,因為它與所有主要瀏覽器兼容,並且其語法確實很靈活。作為一種前端語言,JavaScript還通過Node.js在伺服器端使用。
JavaScript是初學者中最可愛的編程語言。
2、Python
這可能會讓你感到驚訝;python出現在第二位。在許多調查中,它可能都放在第5上。但是,我一定會讓你相信,這是為什麼呢?在我的list中,Python是通用的,用戶友好的編程語言之一。為什麼這么說?像Java一樣,Python語法清晰,直觀並且幾乎類似於英語。Python的「基於對象」子集類似於JavaScript。根據Stack Overflow的說法,有一個部分說「被採用或被遷移,或者遷移得太早」,廣泛來說,遷移到python的人接近42%,這表明它排名第二。
如果你有興趣從事後端開發工作,例如Django –開放源代碼框架,則是使用python編寫的,這使得它易於學習且功能豐富,但卻很受歡迎。另外,python具有多種應用程序,使其功能強大。在科學計算,機器學習和工程學等領域中,Python支持一種編程樣式,該樣式使用簡單的函數和變數,而無需過多地查詢類定義。
人生苦短,我用Python!
再者,因為人工智慧這幾年大熱,而python尤其在大數據和人工智慧領域有廣泛的使用。
python本身面向對象語言,具有豐富和強大的庫,輕松地使用C語言、C++、Cython來編寫擴充模塊,所以很多稱它為「膠水語言」。當然僅僅知道這些還是不夠的。
3、Java
如果有人問為什麼Java,最常出現的句子是「寫一遍,哪都可以運行」 – Java在過去20年來一直是統治性的編程語言。Java是99%面向對象的,並且很強大,因為Java對象不包含對自身外部數據的引用。它比C ++更簡單,因為Java使用自動內存分配和垃圾回收。
Java具有高度的跨平台兼容性或平台無關性。由於你可以在任何地方(我指的是所有設備)進行編碼,因此可以編譯為低級機器代碼,最後,可以使用JVM – Java虛擬機(取決於平台)在任何平台上執行。
Java構成了Android操作系統的基礎,並選擇了約90%的財富500強公司來製作各種後端應用程序。我會毫不猶豫地採用由Amazon Web Services和Windows Azure運行的最大的Apache Hadoop數據處理。有許多充分的理由和廣泛的業務應用程序,擁有巨大的靈活性,而Java一直是初學者的最愛。
4、C / C++
「越老越吃香」 – C用不同的方式證明了這句話。C語言於1970年代後期被引入,為編程世界做出了巨大貢獻。C是少數幾種語言的母語。有些是從C派生的,或者是從其語法,構造和範例(包括Java,Objective-C和C#)啟發而來的。
即使在當今,可以看出,每當需要構建高性能應用程序時,C仍然是最受歡迎的選擇。Linux OS是基於C的。CPP是C的混合版本。C ++是一種基於C的面向對象的編程語言。因此,在設計更高級別的應用程序時,它比其他方法更可取。
C ++比動態類型的語言具有更好的性能,因為在真正執行代碼之前先對代碼進行類型檢查。開發的核心領域是虛擬現實,游戲,計算機圖形等。
5、PHP
這個事實會讓你感到非常驚奇,這種語言是為維護Rasmus的個人主頁(PHP)而創建的,實際上到今天已佔據了全球83%的網站。PHP代表超文本預處理器,是一種通用編程語言。顯然,PHP是一種腳本語言,可在伺服器上運行,並且用於創建以HTML編寫的網頁。它之所以受歡迎,是因為它免費,而且易於設置並且易於新程序員使用。
對於全球的Web開發人員來說,PHP是一個非常強大的選擇。它被廣泛用於創建動態網頁內容以及網站上使用的圖像。由於使用范圍廣泛,因此排名第五。另外,PHP可以很好地用於WordPress CMS(內容管理系統)。
它位於第五的原因之一,是英文PHP降低了網站性能並影響了載入時間。(無奈)
6、Swift
接下來是是Swift。Swift就像它的名字一樣流暢,是Apple Inc.開發的一種通用、開放源代碼的、已編譯的編程語言。如果你正在尋找針對本機iOS或Mac OS應用程序的開發,則Swift就是首選。Swift受Python和Ruby的影響很深,並且被設計為對初學者友好且易於使用。與它的前一個Objective-C相比,Swift被認為是一種更快,更安全,更易於閱讀和調試的工具。
與Objective-C不同,Swift需要更少的代碼,類似於自然的英語。因此,來自JavaScript,Java,Python,C#和C ++的現有技術人員可以更輕松地切換到Swift。
除此之外,人才儲備有限是它面臨的一個挑戰。與其他開源語言相比,你周圍可能找不到很多Swift開發人員。最近的調查表明,在78,000名受訪者中,只有8.1%的人使用Swift,這比其他人要少。並且由於頻繁的更新,Swift被認為在每個新版本中都不太穩定。
7、C#(C-shap)
C-sharp是Microsoft 2000年開發的功能強大的面向對象的編程語言。C-sharp用於開發桌面應用程序和最近的Windows 8/10應用程序,並且需要.NET框架來運行。微軟開發了C#作為Java的競爭對手。實際上,Sun不想讓微軟的干擾來改變Java,於是C#誕生了。
C#具有多種功能,使初學者更容易學習。與C ++相比,代碼是一致且合乎邏輯的。由於C#是靜態類型的語言,因此在C#中發現錯誤很容易,因為在將代碼轉到應用程序之前會先檢查代碼。
簡而言之,它是開發Web應用程序、桌面應用程序的完美選擇,並且在VR,2D和3D游戲中也得到了證明。像Xamarin這樣的跨平台工具已經用C#編寫,使其與所有設備兼容。
8、Ruby
一種開源的動態編程語言,著重簡單性和生產率,於1990年中在日本開發。它的設計主題是簡化編程環境並增加樂趣。Ruby在全棧Web框架Ruby on Rails框架中流行。Ruby具有動態類型化的語言,它沒有硬性規定,並且是一種高級語言,在很大程度上類似於英語。
簡而言之,你可以使用更少的代碼來構建應用程序。但是Ruby面臨的挑戰是動態類型化的語言,它不容易維護,並且靈活性使其運行緩慢。
9、Objective-C
Objective-C(ObjC)是一種面向對象的編程語言。Apple將其用於OS X和iOS操作系統及其應用程序編程介面(API)。它開發於1980年代,並在某些最早的操作系統中得到使用。Objective-C是面向對象的通用對象。你可以將其稱為混合C,因為它為C編程語言添加了功能。
10、SQL
SQL(es-que-el)代表結構化查詢語言,是一種用於操作資料庫的編程語言。它包括存儲,處理和檢索存儲在關系資料庫中的數據。SQL保持數據的准確性和安全性,並且無論其大小如何,都有助於維護資料庫的完整性。
今天,SQL已在Web框架和資料庫應用程序中使用。如果你精通SQL,則可以更好地掌握數據探索和有效的決策制定。
如果你打算選擇資料庫管理作為你的職業,請首先使用C或C++。SQL開發人員的需求量很大,而且薪水也不低。
B. 新手如何學習編程
熟悉以下關鍵東西,可以邊學邊做,定期訓練,經常思考,長期積累:
1、語法。
2、基礎理論(數學、數據結構、演算法等)。
3、設計方法(編程原則、設計模式、框架設計等)。
4、庫(核心、基礎、UI、擴展、游戲引擎等)。
5、計算機相關(操作系統、網路、圖形學等)。
6、領域知識(游戲設計、網站設計等)。
7、開發工具(編輯器、IDE、自動部署等)。
8、項目管理(進度管理、分工協作、Bug管理、版本控制等)。
最普遍也是最重要的能力:創造力。努力分析並理解好做什麼以及怎麼做。要知道上面那些東西一開始都是不存在的。
具體方法包括:
1、快速閱讀入門教程和書籍,適合學習語言和基礎庫。比如我學Java讀的《Java編程思想》,練習題做過一點,然後學ActionScript就沒讀過書,只讀過Adobe官方文檔《ActionScript 3.0編程》。
2、閱讀庫的文檔、實例、源碼。比如Flash、Flex開發,熟悉官方API很重要,很多細節要具體使用時才注意到,這時候最好做個筆記,雖然我從沒看過我的筆記。
3、做一個自己感興趣或熟悉的小項目,比如我就以黑白棋游戲作為多個語言的試水項目,一樣的邏輯,便於把關注點放在語言特點上。
4、自己動手豐衣足食。廚師有菜譜,程序員可沒菜譜。比如我做游戲,最關鍵的游戲編程知識全部是動手學出來的,很少有專門針對某個業務領域(如游戲)的編程書籍,要麼是入門書,要麼是模式書(如演算法)、理論書(圖形學),很少有書籍教你如何開發一個45度角地圖系統加編輯器的,全靠自己思考,以及看前人的代碼,需要時找些網路資料。關鍵是,可以培養最重要的創造力。
對於演算法和設計模式,可以研讀下,但是關鍵還是靠平時如何使用了。新手勉強不來的。
項目管理方面的,就得靠工作經驗了,多思考多提意見不要只走流程。