自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

沒(méi)有人能真正精通C++

譯文 精選
開(kāi)發(fā) 前端
大多數(shù)C++程序員都存在著這樣一種心態(tài)——“如果我能遵守這些規(guī)則,避免炫技、避免犯錯(cuò),我就可以避免把槍口對(duì)準(zhǔn)自己的腳。

點(diǎn)擊參加51CTO網(wǎng)站內(nèi)容調(diào)查問(wèn)卷

作者 | Mohit Pandey

編譯 | 徐杰承

任何說(shuō)自己很懂C++的人可能都是在夸大其詞。

我想你可能已經(jīng)注意到了,是的,今天的大多數(shù)程序員都在使用Python、Rust、Go或是其他新的編程語(yǔ)言。大部分人已經(jīng)不再需要掌握C、C++等古老的編程語(yǔ)言了,甚至很多程序員已經(jīng)從手動(dòng)編碼開(kāi)始向AI編碼轉(zhuǎn)型。

但即便如此,還是有很多人認(rèn)為自己足夠了解并熟練掌握C++這門古老的編程語(yǔ)言,但他們之中絕大部分人其實(shí)都在夸大其詞。這個(gè)說(shuō)法來(lái)自 Louis Brandy此前發(fā)布的一篇博客——《永遠(yuǎn)不要相信自稱懂C++的程序員》。

1、C++的“雙峰”特性

在博客中,Brandy提到,自己在長(zhǎng)期面試C++程序員的過(guò)程中開(kāi)始意識(shí)到C++非常重要的一個(gè)特性,C++是一種“雙峰”語(yǔ)言。也就是說(shuō)剛剛接觸C++的開(kāi)發(fā)者會(huì)覺(jué)得它很簡(jiǎn)單,但隨著了解深入,他們的自信會(huì)被這種語(yǔ)言龐大的復(fù)雜性慢慢摧毀,直到他們犯下了足夠的錯(cuò)誤,就像下面這張圖所展示的一樣。

圖片

程序員,尤其是那些曾經(jīng)學(xué)習(xí)過(guò)C語(yǔ)言的程序員,通常能夠非??焖俚卣莆誄++并感覺(jué)對(duì)這門語(yǔ)言非常熟練。這些程序員會(huì)告訴你他們精通C++,然而其實(shí)這并不是真實(shí)的。

隨著他們繼續(xù)學(xué)習(xí)C++,他們會(huì)經(jīng)歷這個(gè)沮喪的低谷,在這里他們會(huì)完全了解到這門語(yǔ)言的全部復(fù)雜性。但好消息是,程序員很容易意識(shí)到自己處于谷前和谷后的區(qū)別。只要你和他們提起C++的復(fù)雜性,處于谷后位置的人會(huì)為你描述上百種他們寫C++的挫敗經(jīng)歷。而處于谷前的人則會(huì)說(shuō),C++不過(guò)是有類的C而已。

2、沒(méi)人能真正精通C++

當(dāng)然,很多程序員把這種說(shuō)法當(dāng)做一個(gè)玩笑,但也有很多人在爭(zhēng)論這種理論的正確性。在Reddit上,程序員們分享了對(duì)該說(shuō)法的觀點(diǎn),一位技術(shù)管理者提到,面試時(shí)他會(huì)讓程序員以1—10分為標(biāo)準(zhǔn)描述自己的C++水平,如果答案高于6,那就需要詳細(xì)談?wù)勱P(guān)于這門語(yǔ)言的細(xì)節(jié)了。

此外,這位面試官還提到,建議程序員在面試時(shí),盡量不要直接說(shuō)自己對(duì)哪門語(yǔ)言的掌握程度很好,而是要與面試官交流你具體擅長(zhǎng)處理哪類業(yè)務(wù)或哪類問(wèn)題,否則當(dāng)你遇到一位技術(shù)狂熱者時(shí),你將很容易在面試過(guò)程中暴露自己的無(wú)知。

在當(dāng)前以AI為主導(dǎo)的世界中,C++這門古老的語(yǔ)言好像更多變成了幫助人們建立知識(shí)體系和賣書的工具,而不是實(shí)際被用于生產(chǎn)的語(yǔ)言。一些Reddit用戶分享了他們將精通C++寫在簡(jiǎn)歷上,但當(dāng)被問(wèn)到智能指針和右值引用等問(wèn)題時(shí)卻回答不出來(lái)的窘迫經(jīng)歷。

圖片

事實(shí)上,很多開(kāi)發(fā)者在使用C++進(jìn)行工作時(shí),其實(shí)并不了解它的細(xì)節(jié),使用C++幾十年的人大多也不敢說(shuō)非常熟悉這種語(yǔ)言。甚至連C++之父Bjarne Stroustrup也曾表示自己并非100%精通C++,他提到:“C++存在一些錯(cuò)綜復(fù)雜的陷阱,大多數(shù)人甚至沒(méi)法寫出一個(gè)簡(jiǎn)單的沒(méi)有漏洞或錯(cuò)誤的類。”

2、世界仍然需要C++

當(dāng)前編程世界中的真相是,你可以選擇任何適合你得編程語(yǔ)言。如果有人反駁這個(gè)觀點(diǎn),那便會(huì)被貼上“語(yǔ)言霸凌”的標(biāo)簽,編程語(yǔ)言只是一個(gè)程序員需要學(xué)習(xí)和使用的工具。如果Python能夠幫助你很好的完成工作,為什么還要使用C++呢?

目前很多開(kāi)發(fā)者已經(jīng)認(rèn)為C++是一種瀕臨死亡的語(yǔ)言,但事實(shí)上并不是這樣。如果開(kāi)發(fā)人員需要從頭開(kāi)始構(gòu)建一些東西,例如操作系統(tǒng)、游戲或其他基礎(chǔ)軟件,C++目前仍被認(rèn)為是實(shí)現(xiàn)這些目標(biāo)的首選語(yǔ)言,當(dāng)然在面對(duì)很多現(xiàn)代應(yīng)用開(kāi)發(fā)時(shí)使用復(fù)雜性過(guò)高的C++會(huì)變得很痛苦。

圖片

C++為了不限制程序員的想法,包含了太多的范式,包括面向?qū)ο螅`活應(yīng)用virtual繼承+shared_ptr)、模塊化(type rich programming和meta programming)、函數(shù)式編程(lambda,配合文件),以及面向過(guò)程編程。然而當(dāng)前世界上的大多數(shù)需求,只需要用到面向?qū)ο蠡蚝瘮?shù)式編程。

顯然,無(wú)論是對(duì)于C++還是其他語(yǔ)言,幾乎沒(méi)有人能夠做到對(duì)它們百分百了解,尤其是當(dāng)語(yǔ)言復(fù)雜性和特性隨著版本更新而不斷變化的情況下。C++只是在這種情況下會(huì)變得更甚,并且由于這種經(jīng)典語(yǔ)言的名氣效應(yīng),人們會(huì)給C++程序員設(shè)定更高的標(biāo)準(zhǔn)。

大多數(shù)C++程序員都存在著這樣一種心態(tài)——“如果我能遵守這些規(guī)則,避免炫技、避免犯錯(cuò),我就可以避免把槍口對(duì)準(zhǔn)自己的腳?!币粋€(gè)很明顯的道理是,當(dāng)你被問(wèn)及是否了解C++時(shí),最好的答案是:我對(duì)C++的了解足夠多,所以我認(rèn)為我并不足夠了解這種語(yǔ)言。

參考鏈接:

https://analyticsindiamag.com/dont-trust-a-programmer-who-knows-c/

http://lbrandy.com/blog/2010/03/never-trust-a-programmer-who-says-he-knows-c/ 

責(zé)任編輯:武曉燕 來(lái)源: 51CTO技術(shù)棧
相關(guān)推薦

2013-01-10 12:50:38

移動(dòng)游戲人才

2019-05-27 11:06:21

貿(mào)易戰(zhàn)

2020-10-09 15:39:59

C語(yǔ)言編程語(yǔ)言C ++

2023-03-29 18:37:52

2018-05-15 11:14:07

面試官C++編程

2009-04-24 08:21:52

蘋果喬布斯董事會(huì)

2009-02-19 10:31:09

2017-05-17 14:58:28

2020-05-06 10:29:45

機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)TensorFlow

2019-02-27 15:15:41

汽車保險(xiǎn)自動(dòng)駕駛數(shù)據(jù)分析

2020-07-23 18:00:32

人工智能AI

2017-12-01 10:05:59

C++編程開(kāi)發(fā)

2021-03-18 09:24:11

DrogonC++框架

2022-08-04 23:41:10

零信任安全API

2010-04-01 09:17:02

C++程序員

2013-11-06 10:12:26

2022-08-20 17:46:04

算法研究

2014-03-14 10:07:09

極限編程敏捷開(kāi)發(fā)

2016-10-12 15:43:44

云計(jì)算災(zāi)難恢復(fù)業(yè)務(wù)連續(xù)性

2021-01-21 16:03:15

Java文本編輯器編程語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)