hp,python,C++哪個更好一點,哪個簡單易學一點
隨著計算機技術的發展,如今的編程語言其實都能算是簡單易學了。不考慮算法和數據結構等知識,單從學會編程語言本身來講,只需要一點點英語基礎,能認識幾十個單詞,花一點時間,通常不超過三個月,就完全可以學會一門新的編程語言了。
不管你是從來沒有接觸過計算機編程,還是想換一種從未接觸的新的編程語言,通常都會有一個疑問:哪種編程語言適合我?也有人會好奇,到底哪種語言是世界上最好的編程語言,如果存在的話,學會這種語言不就行了。
在過去,通常意義上的編程指的都是桌面程序的開發,比如Windows操作系統中的記事本和計算器,都算是桌面應用。在那個時代,通常只要學好一門語言就可以通吃大部分應用場合了。曾經有一種說法,學好C++,走遍天下都不怕,可見一斑。
但在今天看來,計算機編程已經滲透到人類生活的各個領域,計算機設備也不僅僅指的是PC機,在Web領域、移動端、傳統桌面、游戲和嵌入式設備中都大量運行著程序代碼,來滿足人們日益增長的計算需求。對于沒有很多經驗的初學都來講,面對如此多的開發環境,選擇一種語言是相當困難的。
一、Web開發
所謂Web開發,指的是編寫一個網站,或者一個開發一個基于瀏覽器的應用軟件。Web開發在編程領域是獨一無二的,與傳統的開發方式截然不同。Web開發可以說是入門最簡單的編程領域,同時隨著互聯網的普及,Web開發是當前最熱門的行業之一,所以我們認為對于初學者來說,接觸Web開發是一個不錯的選擇。
HTML與CSS:雖然嚴格來講,它們并不是真正意義上的編程語言,但兩者都是創建網頁所必需的,HTML描述了頁面的數據結構,而CSS則決定了頁面的排版樣式及視覺效果。HTML與CSS都遵循W3C(萬維網聯盟)所制定的標準,并且簡單易懂,很容易學會。
Javascript:傳統意義上的Javascript是指增加瀏覽器邏輯功能和實現頁面動態變化的唯一途徑。同時,它又是學習某些編程框架如JQuery的基礎。如今,Javascript可以同時在瀏覽器端和服務器端進行開發,甚至利用某些工具,還能應用于桌面領域。Javascript是現在最火熱的編程語言,不論是否從事Web開發,都應該盡可能的掌握這門語言。
Python:Python語言通常應用于服務器端邏輯,也就是說,在瀏覽器端,還是需要通過HTML, CSS和Javascript來構建頁面。但在服務器端,Python則是一門神奇的語言,簡單易學,功能強大。越來越多的程序員加入到Phthon開發的行列中,這讓其迅速成為了當前最熱門的語言之一。
PHP: 有一種說法,PHP是世界上最好的編程語言。這種說法是否靠譜姑且不論,但PHP的確是一門效率很高的語言。由于這門語言在Web開發領域屬于不是那么時髦的語言,所以有許多歷史遺留問題,顯得有些混亂。不過仍然有許多地方在使用PHP語言,比如著名的開源博客平臺WordPress,要知道全世界27%的網站是通過WordPress搭建的。
二、移動開發
移動開發是目前軟件編程領域的大熱門,并且在相當長的時間里,它將一直是整個行業最前沿的陣地。整個移動開發領域保持高速發展,技術日新月異,沒有任何放緩的跡象。人們越來越離不開手機,離不開手機應用,移動開發領域競爭激烈,可選擇的編程語言也不多。神奇的是,每天都有各種神奇的應用被開發出來,可見這一市場的繁榮。
Java: Java語言是開發安卓應用的主要編程語言,同時Java也被譽為世界上最偉大的語言之一,移動開發只是Java語言無數應用場合中的一種而已。雖然說你可以使用其它語言來編寫安卓應用,但使用Java來開發,通常會擁有更高的性能和靈活性,遇到問題時也更容易在開發社區找到解決方案。
Swift: iOS 系統的應用此前一直是通過Objective C語言來開發的,但現在蘋果公司更建議你采用其新開發的Swift語言。相比較之下,Swift語言更容易學習和使用,很適合iOS開發新手,通常用Swift語言開發要比Objective C語言開發更高效、穩定。
Javascript: 可以看到,開發安卓應用和開發iOS應用采用了完全不同的技術,這給開發人員帶來了極大的困擾,為了能編寫出同時運行在兩個平臺的應用,程序員可能要準備兩個截然不同的開發環境。于是就有一些框架應運而生了,它們允許開發者用Javascript開編寫應用,并幫你把代碼轉換為兩個不同的應用安裝包。還有一些框架則利用內嵌瀏覽器的技術,通過Web頁面的方式來開發移動應用。這些技術使得用Javascript來編寫移動端軟件成為一種可能。
三、桌面開發
雖然桌面開發領域不再那么熱門,但并不意味著它已經過時了。相反的,隨著計算機技術越來越深入我們的生活,桌面應用的開發需求仍然十分巨大。曾經,開發桌面程序是一件非常復雜的事情,不過今非昔比,現在有了更多強大的工具,進入桌面開發領域已經沒有那么高的門檻了。
Java: 在很久很久以前,Java應用程序中的圖形用戶界面(GUI)都是通過Swing開發包來實現的,不過現在一般都采用JavaFX框架,它提供了一個更豐富、更時尚、更現代的方式來構建應用程序設計。由于Java程序運行在虛擬機中,所以擁有更高的兼容性和可移植性,可以在多種平臺上運行。
C#: C#語言(C Sharp)是一種基于微軟公司推出的 .NET 框架的編程語言,與Java有許多相似之處。用C#語言開發應用程序,通常會用到 Visual Studio,Visual Studio被譽為最好的集成開發工具,廣受C#開發者的好評。你可以很方便的通過C#語言,并使用WPF框架來創建Windows桌面應用。曾經C#只能用于Windows平臺的開發,但現在,也可以通過Mono和Xamarin等第三方工具來實現跨平臺開發。
Swift: 除了 iOS 應用,Swift語言還可以用來開發Mac系統的桌面應用。如果你習慣于在蘋果生態系統下工作和學習,那么Swift語言就是最好的選擇。
四、游戲開發
游戲開發過去一直是非常困難的事情,需要掌握大量的知識和工具,但現在,游戲編程變得越來越簡單。隨著大量免費(開源)游戲引擎的出現,你幾乎可以選擇任何主流語言,并可以用它來創建游戲。但是有些語言顯然是更優秀的,如果你是新手,我們推薦你選擇這些語言。
C#: 許多時髦的游戲引擎都是采用C#語言開發的,通常這些引擎支持2D和3D游戲開發,并且可以將構建導出到許多平臺,包括Windows、Mac、Linux、Android、iOS和HTML5等等。采用C#的游戲引擎通常都比較容易學習,對開發者更友好。
Java: 程序員可以使用諸如LibGDX框架這樣的開源引擎來快速創建游戲,該框架可以導出到任何桌面平臺,和安卓、iOS等移動端。LibGDX是一個簡單明了的框架,有助于快速生成產品。即使不談游戲引擎,特別是在安卓平臺,Java語言都是首選的游戲開發工具。
Haxe: Haxe是一個全新的、現代的語言,你可以用它來取代其他的編程語言。通過游HaxeFlixel或Luxe這樣的戲引擎,開發跨平臺的2D游戲的速度要比其他語言快得多。可惜的是,目前為止還沒有一款針對Haxe語言的3D引擎面市。
JavaScript: Javascript已經取代Flash,成為開發Web游戲的最佳和最快的方法。通過類似Phaser這樣免費開源的HTML5游戲框架,以及像 nw.js 這樣的工具,快速開發并包裝出一款Web或者桌面游戲。
五、數據處理和自動化腳本
有時候我們學習編程語言并不是為了開發一款應用軟件,也許只是為了統計和分析一些數據,或者用程序來實現一個自動化腳本,代替人工來完成一些枯燥乏味的工作。這種情況下,下面兩種語言或許是不錯的選擇:
R語言: R語言是一種主要用于數據挖掘、數據計算和數據分析的編程語言。如果你曾經使用過MATLAB,那么可以把R語言看作是一個自由和開放源碼的替代方案。雖然MATLAB更容易使用,功能也更強大,但它也很貴(售價高達上萬元)。R語言唯一的缺點是入門比較難,如果你不介意它的學習曲線,那么選擇R語言能為給帶來許多好處。
Python: Python語言除了在Web開發領域外,還經常在數據計算中使用,因為它是一種直觀而非冗長的語言,學習和使用都很容易。你可以用它做各種事情,包括數據抓取、分析以及編寫自動化腳本。而類似NumPy(數據計算)和Pada(數據分析)這樣的第三方工具則能讓你事半功倍。
本人最熟悉的是C++,10年碼農,差不多擼了10年C++。
java、golang、python、php、jsp也都寫過相當一段時間。
但,如果現階段讓我推薦,我會推薦NVM(node.js+vue.js+mysql/mongodb),前后端上下通吃沒有壓力,從Vue.js切入(不建議react和angular),可以用餓了么的ElementUI(基于Vue)寫界面,Vue文檔非常友好,一兩天就能入門,一周就能搭個可用平臺,配合atom等開源方案可以很輕松的制作desktop app或者移動端app,后端node.js使用express庫,寫restful api相比python效率高很多(golang開發效率差不多,java和C++就不說了)。
node.js生態非常完善,基本想要的庫npm install一下就OK了。
絕對值得花小幾天嘗試一下,就算不適合也不虧。當然前提要有一點點html、js、css基礎。網上有個斐波那契單一場景的性能對比,nodejs差不多是C++的4x倍,golang是C++的1.x倍。
雖然性能不及純后端語言,但技術棧單一,工作好找(現在國內用Vue的公司開始變多)。C++、golang性能確實高,但C++開發效率低只能做后端,而golang只能用template方式開發網站,并且繞不開再學習前端技術棧(php也一樣)。而js本身就是前端技術棧的一部分,node.js自然而然具有天然優勢。性能不夠、機器來湊,畢竟現在貴的還是人力哇!少開發一個月,完全可以多租點機器了。
NVM絕對是創業公司或自主創業的不二選擇。
總之,可以看到,世界上沒有哪種語言是最好的,只有最適合自己的語言。
寫在最后,很多人都知道我是自學全棧的,都以為我有很多web前端,PHP,JavaScript視頻學習資料,我就笑了,我確實有呀,哈哈哈,下面就是我收集的web前端,PHP,JavaScript全套視頻了。
這些都是我積累幾年來的web前端,PHP,JavaScript學習視頻,前前后后也花了有2萬多元買的,我都看完了也沒啥用了,這里分享給大家,評論區。
創翻譯,原始鏈接 本文為awesome系列中的awesome java
Awesome Java
Java 框架、庫和軟件的精選列表
簡化 bean 映射的框架
處理應用程序的構建周期和依賴關系的工具.
以編程方式操作字節碼的庫
提供緩存的庫。
與 CLI 相關的所有庫.
可以動態管理集群內應用程序的框架。
提供指標和質量測量的工具。
為測試套件啟用代碼覆蓋率指標收集的框架和工具。
生成重復代碼的工具,可以有效減少代碼量和錯誤.
幫助創建解析器、解釋器或編譯器的框架。
尋求從圖像和視頻中獲取高級信息的庫
提供外部配置的庫。
幫助實現優化和可滿足性問題的庫。
簡化讀取/寫入 CSV 數據的框架和庫。
高效和特定的數據結構。
簡化與數據庫交互的一切。
處理日期和時間相關的庫
有助于實現控制反轉范例的庫。
從根本上增強開發過程。
用于編寫分布式和容錯應用程序的庫和框架。
分布式事務提供了一種機制來確保在存在并發訪問和部分故障的情況下數據更新的一致性。
以原生格式處理應用程序分發的工具。
協助處理辦公文檔格式的庫。
與金融領域相關的庫。
形式化方法工具:證明助手、模型檢查、符號執行等
促進函數式編程的庫。
支持游戲開發的框架。
用于處理地理空間數據和算法的庫。
創建現代圖形用戶界面的庫。
關于高性能計算的一切,從集合到特定庫。
幫助創建 HTTP 請求和/或綁定響應的庫。
處理超媒體類型序列化的庫。
簡化部分開發的集成開發環境。.
幫助創建、評估或操作圖形圖像的庫。
有助于使 Java 內省和反射 API 更容易和更快地使用的庫。
用于調度后臺作業的庫。
用于從 Java 對象序列化和反序列化 JSON 的庫。
JVM/JDK 的當前實現。
記錄應用程序行為的庫。
提供特定統計算法以從數據中學習的工具。
幫助在客戶端之間發送消息以確保協議獨立性的工具。
ActiveRPC - 用于復雜高負載分布式應用程序和類似 Memcached 解決方案的輕量級和快速庫。
其他一切。
用于創建或管理移動應用程序的工具。
監控生產中應用程序的工具。
用于使用特定于平臺的本機庫。
專門處理文本的庫。
用于構建網絡服務器的庫。
處理對象持久性的API。
Java 平臺即服務。
幫助處理 PDF 文件的工具。
用于性能分析、分析和基準測試的工具。
包含多個類別的多個庫套件的框架。
幫助管理操作系統進程的庫。
用于開發反應式應用程序的庫。
專門用于創建 RESTful 服務的框架。
用于科學計算、分析和可視化的庫。
為搜索和分析索引文檔的引擎。
處理安全、身份驗證、授權或會話管理的庫。
高效處理序列化的庫。
專門用于部署應用程序的服務器。
在模板中替換表達式的工具。
從模型到視圖的測試工具。
簡化測試異步服務的工具。
測試源自 TDD 并深受 DDD 和 OOAD 影響的軟件開發過程。
與隨機數據的創建和處理有關的一切。
為特定用例提供運行測試的環境。
提供自定義匹配器的庫。
其他與測試有關的東西。
模擬合作者以幫助測試單個、隔離單元的工具。
提供通用實用功能的庫。
幫助創建開發 shell 環境和在不同 Java 版本之間切換的實用程序。
分析網站內容的庫。
分析網站內容的庫。
Awesome Lists related to the Java & JVM ecosystem.
積極討論。
為此列表提供前端的網站。 請注意,不會有官方網站。 我們不與特定網站關聯,每個人都可以創建一個。
Books that made a big impact and are still worth reading.
產生重大影響且仍然值得一讀的書籍。
編程時可以看或聽的東西。
要關注的活躍帳戶。來自推特的描述.
這些網站值得閱讀.
熱烈歡迎進行貢獻!
請先看 CONTRIBUTING 引導 和 驗證工具.
近叨叨和公司里的實習生閑聊,小伙子提出了想要自己寫游戲引擎的想法,激動地和我講了半個小時的引擎架構設想,生命周期怎么怎么定,我們現在用的引擎是多么多么的不行,有多少多少的問題。
我只想說,WHAT?有木有搞錯?自己寫引擎?驚訝的我手中的大寶劍都軟了!小伙子干游戲程序猿真是屈才了!給你一個團隊能干翻所有的引擎!
還真是閑著沒事車輪子排排造!看來是平時分配的小任務少了。叨叨干游戲程序猿也已多年,期間用過或者了解過的游戲引擎不下十幾款。不過叨叨做的是手游研發,自然引擎都是手游相關的。在Cocos2d還沒有跨平臺前,Android平臺有N多款開源引擎,例如:Angle、Rokon、LGame、AndEngine(用該引擎做過兩個小游戲)、libgdx、jPCT、Alien3d、Catcake等等。iOS平臺則有Cocos2d-iphone,當時就已經廣泛用在了iOS端的手游研發中了。但在Cocos2d-x跨平臺游戲引擎出來之后,這些開源引擎基本沒有了市場。而叨叨所在的公司里大多數項目使用的是Unity3D,小部分用了Unreal4。目前手游市場上Cocos2d-x、Unity3D、Unreal4幾乎占了99%的份額,這些年TX出來的游戲基本都是Unity3D開發的。下面就重點介紹下這三款游戲引擎。
Cocos2d-x是MIT許可證下發布的開源游戲引擎,游戲開發快速、簡易、功能強大。2015年2月,觸控科技正式推出了游戲開發一站式解決方案cocos,將Cocos 2d-x、Cocos Studio、Cocos Code IDE等框架及工具整合在一起。
Cocos2d-x核心優勢在于允許開發人員利用C++、Lua及Javascript來進行跨平臺部署,覆蓋平臺包括iOS、Android、Windows Phone、Windows, Mac OSX 3及Tizen等等,省事省力省成本。
【特點】
易于使用:游戲開發者可以把關注焦點放在游戲設置本身,而不必消耗大量時間學習晦澀難懂的OpenGL ES,此外,Cocos2d-x還提供了大量的規范。
高效:Cocos2d-x基于OpenGL ES進行圖形渲染,從而讓移動設備的GPU性能發揮到極致。
靈活:方便擴展,易于集成第三方庫。
免費:基于MIT協議的免費開源框架,用戶可以放心使用,不用擔心商業授權的問題。
社區支持:關心Cocos2d-x的開發者自發建立了多個社區組織,可以方便的查閱各類技術資料。
隨著Cocos Studio的推出,其包括了UI編輯器、動畫編輯器、場景編輯器和數據編輯器,更是進一步降低開發難度,提高開發效率,減少開發成本。
官網地址:http://www.cocos2d-x.org/
Unity3D是由Unity Technologies開發的一個讓玩家輕松創建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內容的多平臺的綜合型游戲開發工具,是一個全面整合的專業游戲引擎。Unity類似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的圖型化開發環境為首要方式的軟件。其編輯器運行在Windows 和Mac OS X下,可發布游戲至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平臺。也可以利用Unity web player插件發布網頁游戲,支持Mac和Windows的網頁瀏覽。它的網頁播放器也被Mac widgets所支持。
從2014年年底開始,叨叨公司里幾乎所有的項目都轉到了Unity3D引擎中做開發,目前叨叨最熟悉的游戲引擎也是Unity3D。Unity3D使用的C#作為主要的語言,各種高級的語言特性使用的爽爽噠!再加上Unity Asset Store里提供各種插件支持及完整工程實例,讓叨叨是徹底愛上了Unity3D游戲引擎。
Unity3D官方還放出了超可愛的二次元萌娘“Unity娘”,更是符合眾多的二次元程序猿的口味!
官網地址:http://www.unity3d.com/
虛幻引擎4是享譽全球的3D游戲開發工具,它支持從2D的移動平臺游戲到電腦到游戲主機平臺的3D游戲大作的開發,如今市面上流行的很多優秀游戲作品都是采用Unreal Engine4引擎開發的,現在這款優秀的3D游戲引擎正式宣布免費提供給游戲開發者們使用,用戶可以將 UE 免費用于游戲開發、虛擬現實、教育、建筑以及電影等方面。
前一代的虛幻引擎的代表作《戰爭機器》、《彩虹六號》、《生化奇兵》、《質量效應1、2》、《鏡之邊緣》、《蝙蝠俠:阿甘瘋人院》、《永遠的毀滅公爵》、《國土防線》,相信或多或少都有聽過,游戲的狂熱愛好者更是每款都不會錯過,其在PC端游上的表現更是大家有目共睹。作為第4代支持了移動平臺的虛幻引擎4,各大游戲廠商都期待其在移動端的卓越表現。
去年更有國人用虛幻引擎4打造了HGame,放出的游戲Demo更讓各位紳士激動不已!
官網地址:https://www.unrealengine.com/
HGame的Demo地址就不放了!
最后再說一句,這個世界的車輪已經夠多了,造車輪需謹慎啊!少年郎!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。