AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

首選C++,徹底麻了!

來源: 責編: 時間:2023-11-22 09:15:00 422觀看
導讀作者丨SteelPh0enix編譯丨諾亞出品 | 51CTO技術棧(微信號:blog51cto)“作為初學者,我應該選擇什么語言?”網(wǎng)上沖浪時,我經(jīng)常看到上面這樣的疑問。作為一個同樣在這個選擇上掙扎許久的人,我最終選擇了C++。我想,我可以就這個

作者丨SteelPh0enixszA28資訊網(wǎng)——每日最新資訊28at.com

編譯丨諾亞szA28資訊網(wǎng)——每日最新資訊28at.com

出品 | 51CTO技術棧(微信號:blog51cto)szA28資訊網(wǎng)——每日最新資訊28at.com

“作為初學者,我應該選擇什么語言?”szA28資訊網(wǎng)——每日最新資訊28at.com

網(wǎng)上沖浪時,我經(jīng)常看到上面這樣的疑問。作為一個同樣在這個選擇上掙扎許久的人,我最終選擇了C++。我想,我可以就這個特定的選擇以及它如何影響我之后的學習談一下個人看法。szA28資訊網(wǎng)——每日最新資訊28at.com

本文將圍繞以下四點展開:szA28資訊網(wǎng)——每日最新資訊28at.com

  • 這是個陷阱!
  • 你為什么要這么做?
  • 那么,還有什么其他選擇呢?
  • 當真正有意義的時候,再將C++作為首選

一、這是個陷阱!

通常來說,選擇C++作為你的初始語言并不是一個好主意。在用C++工作了很長一段時間,并嘗試了許多不同的編程語言之后,我覺得C++就像是用劣質(zhì)膠帶粘在一起的一團亂麻,不知怎么地仍然堅持著,甚至可能在最近的變化中朝著相對較好的方向發(fā)展,但對于初學者來說,真的算不上一個好選擇。szA28資訊網(wǎng)——每日最新資訊28at.com

二、你為什么要這么做?

在大多數(shù)情況下,我總是會聽到一些具體的論點,試圖努力地證明選擇C++作為入門也不錯。比如:szA28資訊網(wǎng)——每日最新資訊28at.com

1,它非常快!

這是很常見的誤解。語言本身并沒有快慢之分。當然,有些語言可以比其他語言更快地解析或解釋,但這并不意味著用語言A編寫的程序總是比用語言B編寫的程序快,反之亦然。一個好的做法是問自己“為什么?”和“什么時候?”為什么用A語言編寫的程序可能比用B語言編寫的同等程序更快/更慢?它在多大程度上對性能有意義?但這不是新手應該關心的事情。一般來說,作為初學者,你不應該關心“語言性能”,因為這是你在學習編程時最不需要擔心的事情之一。一開始,真正的性能主要取決于代碼中使用的數(shù)據(jù)結構和算法,而不是語言的選擇。   szA28資訊網(wǎng)——每日最新資訊28at.com

2,學習C++會教你一些底層的概念,比如指針和手動內(nèi)存管理!

它的確可以,但是問題在于:你大多數(shù)時候不需要知道這些低級的概念來編寫軟件和學習編程。每天都有成千上萬的程序員在不知道指針是什么,或者如何手動管理內(nèi)存的情況下編寫出完美而有效的代碼。這并不是為了編寫工作代碼而必須知道的東西。這對你來說可能永遠都沒有用。固然,知道指針和手動內(nèi)存管理在很多情況下是有用的,但對于初學者來說,這不是剛需,因為即使在C++中,你通常也不想手動管理原始指針和內(nèi)存分配。szA28資訊網(wǎng)——每日最新資訊28at.com

3,游戲編程是在C++中完成的——通常伴隨著“性能”參數(shù)。

這個論點有時也站不住腳,因為有許多非常流行的游戲引擎提供了一種更適合新手的游戲開發(fā)方法。Godot是最好的例子之一,因為它有自己的工具集,可以使用自己的GDScript語言,也可以與其他語言和工具一起使用。我知道有很多人在使用C++進行游戲開發(fā),他們也有自己的觀點——相對接近硬件。但我仍然堅信,如果你想學習“編程”和“游戲開發(fā)”,這可能適得其反,因為在學習你真正想學的東西之前,它帶有“必須學習C++”的沉重包袱。szA28資訊網(wǎng)——每日最新資訊28at.com

4,我懂一些C語言,所以C++只是一個擴展,所以我會學習它。

事實并非如此,這樣的想法會迫使你走上一條很難回頭的道路。注意,不要把C++看作是C的補充,因為這就像把龍看作是他珍貴的金山的補充一樣愚蠢。如果執(zhí)意如此,你將目睹你無法理解的恐怖。szA28資訊網(wǎng)——每日最新資訊28at.com

四、那么,還有什么其他選擇呢? 

除了C++之外,還有什么選擇?關于這個問題,我將根據(jù)個人觀點來回答,我也會努力解釋為什么我是這樣想的。szA28資訊網(wǎng)——每日最新資訊28at.com

1.Python

有些人會告訴你Python很爛。然而,我要告訴你,我喜歡Python,因為它很少讓我失望。當我需要寫一個簡單的工具來自動做一些事情,我希望它在任何地方都能工作時,Python 就是我的夢中情“語”。szA28資訊網(wǎng)——每日最新資訊28at.com

它的長期支持、龐大的社區(qū)、包管理器和現(xiàn)有的工具使我很難不向初學者推薦這門語言。它的語法確實非常具體,有些人甚至會說它很奇特,但是在使用它一段時間后,只有當我不得不將代碼塊移動到不同的位置并手動修復每個縮進時,它才會讓我感到惱火。它甚至有類型提示和易于使用的工具,以確保你遵守鍵入規(guī)則,有些人可能會覺得非常有用。szA28資訊網(wǎng)——每日最新資訊28at.com

不過,對于初學者來說,你很可能希望將重點放在龐大的PyPI存儲庫上,以便為自己編寫一些有用的東西。它的文檔也相對不錯,甚至有一個教程讓你入門,但如果你完全是IT新手,我建議你尋找一個更適合你的知識水平的入門教程,因為“官方”的教程不是很面向新手。szA28資訊網(wǎng)——每日最新資訊28at.com

2.JavaScript

它是通往廣闊 Web 應用程序世界的非常簡單的門戶,但不僅如此,因為現(xiàn)在你幾乎可以在任何地方插入 JavaScript......我個人不是這種語言的粉絲,但從我所看到的,我發(fā)現(xiàn)從 JavaScript 開始的人有一定的“自由”,可以在他們想要的任何地方使用這種語言。我更支持JavaScript作為初學者,而不是C++,但是要注意這種語言自帶的許多陷阱。這基本上適用于任何語言,但大開發(fā)不會告訴你這一點!szA28資訊網(wǎng)——每日最新資訊28at.com

3.Kotlin

如果你想學習Java,不管你有什么緊迫的理由,盡量放棄Java,學習Kotlin吧!如果你想制作Android應用程序,并且你更愿意使用官方工具而不是一些web開發(fā)工具,Kotlin就是你的理想之選。它的Java遺產(chǎn)使它成為一種相當不錯的入門語言,因為你既有一門漂亮的現(xiàn)代語言,也有很好的現(xiàn)代語法和有用的功能,使用起來非常愉快,還有一個龐大的庫存儲庫,其中一些庫在Kotlin出現(xiàn)之前很久就編寫了。我很少使用這門語言,但我?guī)缀跸硎苁褂盟拿恳豢獭?span style="display:none">szA28資訊網(wǎng)——每日最新資訊28at.com

4.C

你想和你的硬件保持密切的關系嗎?如果是,這就是一門合心意的語言。平心而論,C確實缺乏真正的泛型,但這并不妨礙人們現(xiàn)在使用它。szA28資訊網(wǎng)——每日最新資訊28at.com

這份清單絕不是全面的。有很多被認為“適合初學者”的語言沒有出現(xiàn)在這個列表中,只是因為我從來沒有使用過它們,或者工作了太久,以至于我的知識儲備已經(jīng)不適應其當前的發(fā)展狀態(tài)(比如C#,我想說點什么,但我真的不能)。szA28資訊網(wǎng)——每日最新資訊28at.com

請注意,我在這里的重點是推薦一種相對容易學習和使用的語言,基本標準是它有一個大的社區(qū)和大量的學習資源。C++在這些方面都缺乏,這使得以“正確”的方式學習現(xiàn)代C++變得異常困難。而且,公平地說,這使得在C++中做任何事情都變得不合理地復雜和痛苦。szA28資訊網(wǎng)——每日最新資訊28at.com

曾經(jīng)嘗試過從頭開始設置具有自動單元和集成測試的C++項目嗎?我做了,但都以失敗告終。不是因為這是不可能的,而是因為我寧愿選擇一種支持開箱即用的語言(至少是單元測試)。szA28資訊網(wǎng)——每日最新資訊28at.com

四、當真正有意義的時候,再將C++作為首選

任何規(guī)則都有例外,當然也包括我的“不允許初學者使用C++”規(guī)則。szA28資訊網(wǎng)——每日最新資訊28at.com

對我來說,最明顯的例外是把嵌入式編程作為你想做的事情。這也是為什么C在我的列表上的原因——因為C比C++簡單得多,所以它開始可能是一個更好的主意。但是,如果你想使用Arduino,就像現(xiàn)在大多數(shù)初學者一樣,只堅持使用C沒有什么意義,因為你已經(jīng)可以訪問C++中功能強大且相對易于使用的功能(并且可能必須使用,這取決于你使用的庫)。當然,你可能沒有標準庫及其花哨的功能(我認為這是一件好事),但你仍然擁有模板、lambda表達式、constexpr和許多更酷的功能。如果你想擺弄硬件,那么學習C++對你來說可能是不可避免的。szA28資訊網(wǎng)——每日最新資訊28at.com

另一個明顯的情況是“你必須學習它,因為學校/大學/工作/我和一些C++開發(fā)人員一起做的業(yè)余項目”。或者你可能只是非常、非常、非常強烈地、奇怪地專注于學習C++。對此,我沒有解藥。我只有一個建議:盡量堅持使用現(xiàn)代的資源,不要被過時的、早于C++11的教程和那些名聲可疑的書籍所吸引。szA28資訊網(wǎng)——每日最新資訊28at.com

而且我真的想不出還有什么其他的情況能讓C++真正有意義。szA28資訊網(wǎng)——每日最新資訊28at.com

不久前,我曾說OS-dev是一個很好的利基,但你也可以用C來做OS-dev,還有別忘了Rust,如果你問我的話,我認為這比C++更明智。借用檢查器可能很難,但它就在那里,永遠不會離開你。你想從C或C++中得到同樣的承諾嗎?還是自行配置吧。而且它還不如Rust為你的代碼所做的一半好。圖形編程和游戲開發(fā)?是的,也許吧。如果你仍然年輕天真,這聽起來是個不錯的選擇——你甚至可能毫發(fā)無損地走完這條路。但話又說回來,你可能不會。我還是會先看看其他的選擇,因為很多人用C++做,并不意味著你也必須用C++做。szA28資訊網(wǎng)——每日最新資訊28at.com

我可能聽起來像一個非常討厭C++的人,說實話,也不盡然。我花了好幾年的時間學習這種語言,其中一半的時間我都在與它抗爭。我會后悔嗎?我很后悔沒有早點改變方向,但我想說的是,我從C++中學到的很多東西在某些時候都很有用。我能在學習不同語言的同時學習這些東西嗎?是的,其中一些,但不是全部。szA28資訊網(wǎng)——每日最新資訊28at.com

如果我可以重新開始我的旅程,我會選擇不同的道路嗎?當然,我會直接跳到Python或web開發(fā),但考慮到我的興趣和專業(yè)領域,我最終還是會選擇C++。szA28資訊網(wǎng)——每日最新資訊28at.com

我也不是說永遠不應該學習或使用C++。它有自己的東西,有一定的通用編程經(jīng)驗和建立軟件項目的經(jīng)驗,就有可能使用它。但是你首先需要這些經(jīng)驗和知識,與其他可用的方法相比,在C++上一條道走到黑可能無助于你獲得這些知識。szA28資訊網(wǎng)——每日最新資訊28at.com

參考鏈接:https://steelph0enix.github.io/posts/choosing-first-language/?ref=dailydevszA28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-33374-0.html首選C++,徹底麻了!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 使用單例模式管理全局音頻

下一篇: 六個開發(fā)者必知必會的Git命令

標簽:
  • 熱門焦點
  • 0糖0卡0脂 旭日森林仙草烏龍茶優(yōu)惠:15瓶到手29元

    旭日森林無糖仙草烏龍茶510ml*15瓶平時要賣為79.9元,今日下單領取50元優(yōu)惠券,到手價為29.9元。產(chǎn)品規(guī)格:0糖0卡0脂,添加草本仙草汁,清涼爽口,富含茶多酚,保留
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優(yōu)化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實現(xiàn)了一個流處理程序
  • 電視息屏休眠仍有網(wǎng)絡上傳 愛奇藝被質(zhì)疑“薅消費者羊毛”

    記者丨寧曉敏 見習生丨汗青出品丨鰲頭財經(jīng)(theSankei) 前不久,愛奇藝發(fā)布了一份亮眼的一季報,不僅營收和會員營收創(chuàng)造歷史最佳表現(xiàn),其運營利潤也連續(xù)6個月實現(xiàn)增長。自去年年初
  • ESG的面子與里子

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之三伏大幕拉起,各地高溫預警不絕,但處于厄爾尼諾大“烤”之下的除了眾生,還有各大企業(yè)發(fā)布的ESG報告。ESG是“環(huán)境保
  • 東方甄選單飛:有些鳥注定是關不住的

    文/彭寬鴻編輯/羅卿東方甄選創(chuàng)始人俞敏洪帶隊的“7天甘肅行”直播活動已在近日順利收官。成立后一年多時間里,東方甄選要脫離抖音自立門戶的傳聞不絕于耳,“7
  • 華為HarmonyOS 4升級計劃公布:首批34款機型今日開啟公測

    8月4日消息,今天下午華為正式發(fā)布了HarmonyOS 4系統(tǒng),在更流暢的前提下,還帶來了不少新功能,UI設計也有變化,會讓手機煥然一新。華為宣布,首批機型將會在
  • 國行版三星Galaxy Z Fold5/Z Flip5發(fā)布 售價7499元起

    2023年8月3日,三星電子舉行Galaxy新品中國發(fā)布會,正式在國內(nèi)推出了新一代折疊屏智能手機三星Galaxy Z Fold5與Galaxy Z Flip5,以及三星Galaxy Tab S9
  • 三星Galaxy Z Fold5今日亮相:厚度縮減但仍略顯厚重

    據(jù)官方此前宣布,三星將于7月26日也就是今天在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • “買真退假” 這種“羊毛”不能薅

    □ 法治日報 記者 王春   □ 本報通訊員 胡佳麗  2020年初,還在上大學的小東加入了一個大學生兼職QQ群。群主“七王”在群里介紹一些刷單賺
Top