最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【深夜閑談】我對(duì)程序設(shè)計(jì)的理解

2023-04-12 00:10 作者:MRSlouu  | 我要投稿

(依依依舊是不計(jì)入更新范圍,寫完感覺自己說的其實(shí)都是廢話awa)

本專欄觀點(diǎn)僅代表個(gè)人觀點(diǎn),如有異議歡迎提出

很多人對(duì)編程有刻板印象,認(rèn)為這是一門非常高深,晦澀的學(xué)科,其實(shí)不然。編程很累似于寫作文,作文簡單來說就是依照一定的句式,加上邏輯關(guān)系拼湊出來的。代碼也是由一個(gè)個(gè)關(guān)鍵字和變量套用邏輯結(jié)構(gòu)所組成的一種文本,兩者有很多相似的地方。 也有不少人認(rèn)為學(xué)編程需要好的英語水平。其實(shí)我覺得并沒有必然關(guān)系,英語好可以讓你學(xué)習(xí)編程的時(shí)候更輕松一點(diǎn),更容易記住一些代碼,但是不會(huì)英語也并不會(huì)讓你學(xué)習(xí)寫代碼,記不住只是你的努力不夠罷了。 程序設(shè)計(jì)是什么

從結(jié)構(gòu)上講程序設(shè)計(jì)可以拆分成兩大塊:語言實(shí)現(xiàn)+結(jié)構(gòu)和算法。 語言實(shí)現(xiàn)

語言實(shí)現(xiàn)也即我們常說的編程語言,即可以通過編譯器轉(zhuǎn)換成機(jī)器碼執(zhí)行的代碼?,F(xiàn)在主流的編程語言有C,C++,C#,JAVA,Python,JavaScript,HTML,PHP等,除此之外還有很多編程語言,這里不再一一列舉。當(dāng)然這是比較狹義的編程。 想學(xué)習(xí)一門語言首先我們需要知道學(xué)的目的是什么。每門語言都有自己的特色,用途和優(yōu)缺點(diǎn),網(wǎng)上資料很多,這里就不贅述如何選擇了,并且懂得如何選擇自己所需要的語言也是一門學(xué)問。 除了語言的用途外,現(xiàn)實(shí)方面的目的也需要考慮。比如如果你是因?yàn)榕d趣而學(xué)習(xí)的編程,那么所有語言都?xì)g迎你,可以隨便去學(xué)習(xí)自己喜歡的語言。如果是為了將來的就業(yè)或者賺錢,那么盡量選擇前景好,熱門一點(diǎn)的語言,比如Python(深度學(xué)習(xí),大數(shù)據(jù),后端,爬蟲),Go(網(wǎng)絡(luò)應(yīng)用),C++(大型應(yīng)用開發(fā),游戲開發(fā),套件開發(fā)等),C(嵌入式)等等。不過首要原則還是根據(jù)自己的實(shí)力量力而行。 關(guān)于JAVA web:是一個(gè)很火爆的就業(yè)方向,但我個(gè)人不太建議,因?yàn)楸容^看學(xué)歷,并且非常的卷。 每一門編程語言的難度與學(xué)習(xí)曲線也是有很大不同,要懂得靈活變通,根據(jù)自己的學(xué)習(xí)能力規(guī)劃學(xué)習(xí)方法。簡單的語言如Python,難一點(diǎn)的如C++,兩者學(xué)習(xí)方法不可一概而論。 另外就我個(gè)人建議來說,應(yīng)該先學(xué)POP再學(xué)OOP語言。POP有助于理解編程的邏輯過程,而OOP更方便開發(fā)。(*POP:面向過程編程,OOP:面向?qū)ο缶幊? 最后一點(diǎn),上面所說的都是狹義的編程語言,廣義一點(diǎn)的話諸如SQL(*數(shù)據(jù)庫操作語句),SHELL(*命令行腳本)一類的代碼也是算做編程語言的 結(jié)構(gòu)和算法

也即常說的數(shù)據(jù)結(jié)構(gòu)與算法,簡單來說是組織程序的方式,好的程序應(yīng)該具有體積小,運(yùn)行快的優(yōu)點(diǎn),而結(jié)構(gòu)和算法即為此而生。 也許有人會(huì)說:我也沒學(xué)過數(shù)據(jù)結(jié)構(gòu)啊,照樣能寫出代碼。不可否認(rèn)的是,即使沒有學(xué)過數(shù)據(jù)結(jié)構(gòu)也能寫出不錯(cuò)的代碼,但是很多人并沒有想過為什么。造成這種現(xiàn)象主要有兩個(gè)原因:①現(xiàn)在的很多開發(fā)都是基于已有的輪子進(jìn)行的(*輪子:編程領(lǐng)域指已經(jīng)由其他人編寫好的功能代碼,可以直接使用),尤其是有大量第三方庫和帶OOP特性的語言,比如JAVA和Python,其實(shí)你追溯這些語言的源代碼,都使用了大量數(shù)據(jù)結(jié)構(gòu)和算法的知識(shí)(比如Python的list類型的sort,JAVA的hashmap)。②項(xiàng)目體積小/對(duì)程序效率要求不大/現(xiàn)代CPU性能遠(yuǎn)超程序需求。其實(shí)像我學(xué)習(xí)算法就是為了程序“好看”,即簡單明了,可以簡化很多代碼。而程序效率差異只要不是太大的項(xiàng)目與CPU密集型運(yùn)算,不同算法的差異人類一般都分辨不出。 那到底有沒有必要學(xué)習(xí)呢?因人而異。如果你只是按照興趣去學(xué)學(xué)編程,那就看自己需求來決定。如果是職業(yè)化,強(qiáng)烈建議學(xué)習(xí),因?yàn)闊o論是考研亦或是招聘基本都是必需的。另外學(xué)好這個(gè)也能很大的提升你的編程思維。 程序設(shè)計(jì)的類型

為目的的我按照自己的理解把程序設(shè)計(jì)分成了以下幾類(不是很專業(yè),請(qǐng)見諒) ①網(wǎng)絡(luò)開發(fā):基于互聯(lián)網(wǎng)進(jìn)行的程序開發(fā),范圍很廣。比如web開發(fā)(前后端),爬蟲與數(shù)據(jù)分析,大數(shù)據(jù)計(jì)算,服務(wù)器運(yùn)維等 ②硬件開發(fā):將硬件交互作為目的的程序開發(fā),比如嵌入式。 ③桌面應(yīng)用開發(fā):以與PC機(jī)交互為目的的程序開發(fā)。比如QT應(yīng)用開發(fā),游戲開發(fā),WPA開發(fā)等等 ④移動(dòng)式應(yīng)用開發(fā):以與移動(dòng)式終端進(jìn)行交互的應(yīng)用開發(fā)。比如Android開發(fā),iOS開發(fā)等。 ⑤工具類開發(fā):用于方便人類進(jìn)行某種活動(dòng)的開發(fā)。如matlab,shell等。 ⑥依賴性開發(fā):以某個(gè)成熟軟件為依托的開發(fā)。如idea插件開發(fā),模組開發(fā)等 ⑦智能開發(fā):為避免重復(fù)性勞動(dòng)或人力資源不足而出現(xiàn)替代人類的開發(fā)。比如深度學(xué)習(xí),機(jī)器學(xué)習(xí),人工智能,機(jī)器人等。 學(xué)程序設(shè)計(jì)有什么好處

直接點(diǎn)的目的就是可以多一項(xiàng)技能,以后多一個(gè)就業(yè)/賺錢的機(jī)會(huì)。除此以外還有加強(qiáng)邏輯思維,為日常生活提供便利等目的。 如何學(xué)習(xí)程序設(shè)計(jì)?

首先一點(diǎn)要求就是要有恒心和良好的心態(tài)。有恒心是為了一學(xué)到底,而不是學(xué)了一點(diǎn)就不學(xué)了中途廢棄。良好的心態(tài)是程序出錯(cuò)時(shí)能靜下心來尋找錯(cuò)誤原因,而不是到處抱怨。 其次建議先學(xué)入門快的語言,比如C(PS:不是很推薦Python,因?yàn)樗恼Z法比較特立獨(dú)行,先學(xué)的話會(huì)難以適應(yīng)其他語言語法) 還需要具有自我學(xué)習(xí)和探究的能力,多去網(wǎng)上搜搜資料,不會(huì)的地方先去自己查資料,然后再去問會(huì)的人。

最后祝大家能在自己擅長的領(lǐng)域取得成績! (吐槽:這個(gè)文章改來改去,寫了三個(gè)晚上,終于結(jié)束了)

【深夜閑談】我對(duì)程序設(shè)計(jì)的理解的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
盈江县| 茶陵县| 班戈县| 佛教| 来宾市| 齐河县| 沾益县| 仁怀市| 黑山县| 黄石市| 松滋市| 章丘市| 晴隆县| 龙门县| 永济市| 阜南县| 东光县| 上思县| 同江市| 万州区| 电白县| 肃宁县| 庆城县| 普格县| 金湖县| 屏南县| 蒙城县| 庆安县| 福安市| 南昌市| 静安区| 西宁市| 怀远县| 石柱| 宁河县| 班玛县| 吉林市| 灵川县| 吉安市| 三穗县| 法库县|