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

80%的學(xué)校還在給新生上C語言,它們OUT了嗎?

開發(fā) 后端
大家好,最近有小伙伴在后臺問我,大一新生學(xué)校在教C語言,是不是已經(jīng)過時(shí)了?第一門語言應(yīng)該學(xué)什么比較好?大學(xué)期間什么課程對于畢業(yè)之后的從業(yè)幫助比較大呢?

 大家好,最近有小伙伴在后臺問我,大一新生學(xué)校在教C語言,是不是已經(jīng)過時(shí)了?第一門語言應(yīng)該學(xué)什么比較好?大學(xué)期間什么課程對于畢業(yè)之后的從業(yè)幫助比較大呢?

[[361338]]

今天這篇文章就和大家簡單聊聊這個問題。

關(guān)于我

最后給大家講講我自己的一些情況吧,掐指一算才發(fā)現(xiàn),從我初學(xué)編程至今已經(jīng)超過十年了。

我是高中的時(shí)候?qū)W習(xí)編程的,那時(shí)候我們學(xué)的是Pascal。大家沒聽說過是很正常的,這是一門非常古老的語言。這門語言古老到什么程度呢?古老到它的IDE都是藍(lán)屏的,看起來就像是死機(jī)了一樣。大概長這樣,當(dāng)時(shí)我們在機(jī)房里寫代碼的時(shí)候,一片藍(lán)光,跟進(jìn)了鬼片現(xiàn)場似的。

 

80%的學(xué)校還在給新生上C語言,它們OUT了嗎?

 

當(dāng)時(shí)學(xué)Pascal也是淺嘗輒止,只是學(xué)了一些基礎(chǔ)的用法,連結(jié)構(gòu)體我都不太會用。很多人都說Pascal是一門非常適合新手入門的語言,不知道是不是我太菜了,我至今也沒get到。從那之后我又陸續(xù)學(xué)過很多語言,比如C/C++,Java、Python、JS還有最近學(xué)的Go。十年前學(xué)的Pascal的語法早已忘得精光,當(dāng)時(shí)的編程習(xí)慣也都很挫,基本上也改得差不多了。

如果非要說學(xué)了Pascal對我現(xiàn)在有什么幫助的話,唯一的幫助應(yīng)該是它讓我學(xué)C語言的過程變得非常簡單?;旧现皇呛唵慰戳艘幌翪的語法,做了一些練習(xí)就掌握了。其實(shí)這也是大多數(shù)人學(xué)習(xí)的第一門語言的意義,不是為了學(xué)到了就能上手做事情,更多的是為以后學(xué)習(xí)其他的內(nèi)容打基礎(chǔ)。

所以嚴(yán)格說起來C語言是我第二門學(xué)習(xí)的語言,但是我第一門掌握得比較完善的語言。

C語言適合入門嗎

關(guān)于這個問題我是有過翻轉(zhuǎn)的,我曾經(jīng)有一段時(shí)間覺得是不合適的。因?yàn)閷W(xué)習(xí)C語言的過程就是面對一個黑框框?qū)懜鞣N數(shù)學(xué)題的過程,挺枯燥和無聊的,很多人都是這樣被勸退的。如果是Python、JS等語言的話,則可以做的事情就很多,學(xué)習(xí)者會有極大的熱情繼續(xù)學(xué)習(xí)下去,這樣入門的門檻可能會低一些。

我想很多人也是這么覺得的,因?yàn)閷W(xué)習(xí)了C語言會有一種無處施展的感覺。我們花了很大精力學(xué)了編程這么黑科技的東西,搞半天居然除了對著黑框框做題什么也做不了,這太不炫酷了。你看看Python,學(xué)會了之后又可以爬圖片又可以處理文檔,難道不香嗎?還有些人可能也不太懂,就覺得Python、Java這些新興語言要比老舊的C語言厲害一點(diǎn)。

最近幾年我的看法又再次翻轉(zhuǎn)了回來,我現(xiàn)在覺得C語言其實(shí)挺適合初學(xué)者入門的,它也是有很多其他語言沒有的好處的。同樣Python、Java這些看起來濃眉大眼魅力十足的語言,其實(shí)也是有很多缺陷的。

C語言最大的好處是什么?我個人覺得有兩點(diǎn),第一點(diǎn)是它的語法很干凈,C語言當(dāng)中基本的語法幾乎都能在其他所有語言當(dāng)中找到。這一點(diǎn)在Go語言上同樣有所體現(xiàn),精簡到極值,多余的一點(diǎn)也沒有。也就是說你在C語言上積累的編程功底換了其他的語言基本上都能用上,但像是Python這樣的語言可能就不是如此。Python當(dāng)中的新特性非常多,換一門語言可能就玩不轉(zhuǎn)了。

第二點(diǎn)是C語言區(qū)分了引用和指針,了解這點(diǎn)對于初學(xué)者而言非常重要。引用和指針直接關(guān)系到傳參以及函數(shù)內(nèi)的變量處理邏輯,但很多語言這兩者只涉及一個,比如Java當(dāng)中就只有引用,Go語言當(dāng)中就只有指針。如果搞不清楚引用和指針的區(qū)別會埋下很多隱患,比如參數(shù)傳遞的時(shí)候?qū)戝e了邏輯,再比如完全沒有內(nèi)存使用的概念,寫出來的代碼內(nèi)存泄漏嚴(yán)重。

當(dāng)然C語言存在的問題也不少,比如應(yīng)用場景太少,庫函數(shù)也不多,寫起代碼來非常費(fèi)勁。但這不妨礙它非常適合培養(yǎng)編程思想以及良好的編程習(xí)慣,對于初學(xué)者而言,擁有一個好的習(xí)慣和意識,其實(shí)要比具體學(xué)到的內(nèi)容更加重要,從這點(diǎn)上來說,大一新生的第一門語言課上C語言其實(shí)是沒有問題的。

語言的選擇

當(dāng)然,也有一些學(xué)校給大一新生開設(shè)Python或者是Java的(比如MIT和斯坦福),難道這些學(xué)校就錯了嗎?

其實(shí)也沒有,這是一個取舍問題。比如Python學(xué)起來可能比較有趣,對于有些學(xué)院而言可能更加看重學(xué)生的興趣。再比如Java一切面向?qū)ο?,從Java開始可能更加有利于之后面向?qū)ο蟮膶W(xué)習(xí)。還有些大牛是從JS入門的,因?yàn)闀容^方便之后從事前端。這些其實(shí)都沒有問題,并沒有一條規(guī)定的所謂正確路線。語言本身并沒有高下之分,有的只有適用的范圍不同。

所以說,其實(shí)我們選的不是語言,而是方向。比如你想要以后從事算法,那么Python顯然是必學(xué)的,不僅需要學(xué)還需要比較深入。比如你想要做開發(fā),那么就比較推薦Java,入門的門檻相對較低,并且崗位缺口很大,學(xué)得好不愁找不到工作。比如想要做前端,那么顯然Python、Java這些都用不上,HTML+CSS+JS三件套才是王道。

也就是說語言是和我們方向掛鉤的,我們想要成為什么領(lǐng)域的工程師,就需要相應(yīng)地進(jìn)行該領(lǐng)域內(nèi)的學(xué)習(xí)和鉆研。嚴(yán)格來說并沒有一門語言是普適的,是不管什么方向的工程師都需要掌握的。

另外一點(diǎn)是到了后期學(xué)習(xí)一門語言遠(yuǎn)遠(yuǎn)不像大家想的那么費(fèi)勁,其實(shí)熟悉了編程的核心邏輯之后,語言之間基本上只有語法的差異。打個比方來說好了,我在剛?cè)肼毜臅r(shí)候?yàn)榱送瓿扇肼殰y驗(yàn),在3天內(nèi)學(xué)習(xí)了go語言,并且從無到有用go語言寫了一個簡單的后臺程序。說起來好像3天學(xué)完一門語言很夸張,其實(shí)不然,我只是看了基礎(chǔ)的語法就開始上手了,邊看邊查而已。這并不是我的特殊能力,實(shí)際上大部分入職的新人都做到了這一點(diǎn)。

第一門的語言選擇重要,但也沒那么關(guān)鍵,關(guān)鍵還是以后能不能找準(zhǔn)方向。

成長路線

說到方向估計(jì)很多人一聽到就頭疼,尤其是學(xué)生黨,很多人可能完全不知道之后要做什么,也不知道這些崗位有哪些能力要求。這其實(shí)也很正常,因?yàn)閷W(xué)校的教育少了工程師培養(yǎng)的部分。它只負(fù)責(zé)授課,并不負(fù)責(zé)工程師的培養(yǎng),這是這個問題的核心原因。

那我們怎么辦呢?

我想你們一定很想知道答案,但很遺憾的是,每個人的成長路線需要自己找,誰也不知道你究竟適合做什么。不過話雖如此,但還是有一些比較萬金油的方法的。

如果你學(xué)了C/C++之后不知道學(xué)什么,那就學(xué)Java就好了。學(xué)了Java之后用Java踏踏實(shí)實(shí)做兩個項(xiàng)目,提升一下項(xiàng)目能力。不管是什么崗位,工程能力都是必須的。而且有了這兩個項(xiàng)目經(jīng)驗(yàn)之后,其實(shí)也算是一個保底,最起碼畢業(yè)了以后找個Java后端的工作基本沒問題了。并且這兩個項(xiàng)目做下來,你會對自己有一個比較清晰的認(rèn)知,這樣寫代碼、調(diào)試程序?qū)ふ覇栴}的工作究竟是不是你喜歡的。

而且關(guān)于做項(xiàng)目還有一個小技巧,我們做項(xiàng)目也不是盲目做,項(xiàng)目之間是有高低之分的,和公司實(shí)際業(yè)務(wù)越接近的項(xiàng)目面試的時(shí)候吸引力越大。比如你親自做過一個推薦系統(tǒng)、搜索系統(tǒng),即使做得很簡陋,只是勉強(qiáng)能用,這樣的項(xiàng)目在面試的時(shí)候一樣是非常非常具有價(jià)值的。要比做XX管理系統(tǒng)有含金量得多,而且這樣的系統(tǒng)也算是和算法相關(guān),既可以面算法的崗位,也可以面工程的崗位,可以說是一舉兩得。

其實(shí)個人成長這件事和寫文章的邏輯是一樣的,首先要有一個主線,然后一個好的開頭。之后呢,需要結(jié)合主線適當(dāng)?shù)匕l(fā)散,該覆蓋的點(diǎn)都要覆蓋到。當(dāng)然寫文章的時(shí)候,我們是在寫之前就有了主線,而成長的路途中可能一開始的時(shí)候一直是一個尋找主線的過程,尋找主線其實(shí)并沒有問題。對于學(xué)生來說,還年輕,擁有大把的青春,做一些工程項(xiàng)目進(jìn)行適當(dāng)性的試水完全沒有問題。即使以后選了算法或者其他的方向,當(dāng)初的付出和努力也一樣是有用的。

今天的文章就到這里,衷心祝愿大家每天都有所收獲。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2020-11-13 07:20:53

C語言編程課程

2021-11-22 22:05:47

電腦回收站文件

2012-01-13 13:05:41

Scale Out網(wǎng)絡(luò)

2022-04-19 15:59:38

C語言編程語言

2011-08-18 09:21:17

Objective-C

2010-01-14 17:52:02

2022-11-11 08:29:24

C語言中文字符代碼

2013-12-26 09:44:30

互聯(lián)網(wǎng)物聯(lián)網(wǎng)區(qū)別

2023-04-20 17:26:40

FreeDOSC 語言

2015-05-14 11:00:00

編程語言偉大女性

2010-01-15 17:38:37

C++語言

2021-04-24 20:05:27

機(jī)器人餐廳人工智能

2016-03-03 09:54:26

云環(huán)境后云時(shí)代

2018-10-09 10:07:57

Ubuntu應(yīng)用程序軟件包

2009-06-01 08:48:19

作用域變量作用域對象作用域

2009-08-21 16:05:04

C#使用ref和out

2009-08-07 13:18:48

C#傳遞數(shù)組

2019-07-22 13:28:04

5G物聯(lián)網(wǎng)通信

2021-06-05 06:52:16

Kubernetes

2013-06-13 10:54:46

iOS7WWDC蘋果
點(diǎn)贊
收藏

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