程序設(shè)計(jì)的一般步驟 為什么剛?cè)腴T的程序員沒有感覺到算法和數(shù)據(jù)結(jié)構(gòu)的重要性?
為什么剛?cè)腴T的程序員沒有感覺到算法和數(shù)據(jù)結(jié)構(gòu)的重要性?關(guān)于這個(gè)問題,首先,我非常遺憾地告訴你兩點(diǎn)。首先,能夠問這個(gè)問題意味著你不是一個(gè)程序員。只能說你才剛剛開始學(xué)習(xí)編程(即使你有一份編程工作,你也不能
為什么剛?cè)腴T的程序員沒有感覺到算法和數(shù)據(jù)結(jié)構(gòu)的重要性?
關(guān)于這個(gè)問題,首先,我非常遺憾地告訴你兩點(diǎn)。
首先,能夠問這個(gè)問題意味著你不是一個(gè)程序員。只能說你才剛剛開始學(xué)習(xí)編程(即使你有一份編程工作,你也不能改變這一點(diǎn))。就像說一個(gè)剛學(xué)了三個(gè)月吉他的人不能稱自己為吉他手(但他可以說是吉他手或吉他手)。
其次,我很抱歉地告訴你,你還沒有開始。入門的先決條件之一是理解程序?qū)嶋H上是一個(gè)算法數(shù)據(jù)結(jié)構(gòu)。所以你說你是一個(gè)入門級(jí)程序員,但你不覺得算法和數(shù)據(jù)結(jié)構(gòu)的重要性。那么我想問一下,除了算法和數(shù)據(jù)結(jié)構(gòu)之外,程序中還有什么重要的東西。
不理解狹義的算法,認(rèn)為算法是排序算法、搜索算法,認(rèn)為數(shù)據(jù)結(jié)構(gòu)是數(shù)組、鏈表、哈希表、圖形等。這些都是經(jīng)典的算法和數(shù)據(jù)結(jié)構(gòu)。
你寫的程序,不能有任何這些經(jīng)典的數(shù)據(jù)結(jié)構(gòu)和算法,那么,你的程序沒有算法和數(shù)據(jù)結(jié)構(gòu)嗎?你的程序必須解決一個(gè)問題或做些什么。這些東西,你首先需要在計(jì)算機(jī)世界建立一個(gè)模型,這個(gè)模型就是數(shù)據(jù)結(jié)構(gòu)。基于這些數(shù)據(jù),您的程序需要執(zhí)行一些指令,這些指令是作為一個(gè)整體的算法。因此,program=algorithm數(shù)據(jù)結(jié)構(gòu)就是在這個(gè)廣義上說的。
正是因?yàn)椤俺绦?算法數(shù)據(jù)結(jié)構(gòu)”,所以沒有了算法和數(shù)據(jù)結(jié)構(gòu),程序中就沒有殘留。至于算法和數(shù)據(jù)結(jié)構(gòu)之間的關(guān)系,我不在這里討論??傊?,沒有數(shù)據(jù),算法就沒有對(duì)象和基礎(chǔ)。數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)和合理性將影響算法的性能。
為什么你感覺不到?答案是我答案開頭的兩點(diǎn)。我說的話似乎有點(diǎn)殘忍,但實(shí)際上沒什么。繼續(xù)學(xué)習(xí)。
程序員需要終身學(xué)習(xí)。
電腦程序?yàn)槭裁床荒苡弥形模?/h2>
首先,我們要弄清楚每個(gè)詞的意思。我理解的問題是,“為什么我不能用中文寫程序?”。
可以用中文編程,如easy language。請(qǐng)參閱Wiki:中文程序設(shè)計(jì)語言https://en.wikipedia.org/wiki/List但毫無疑問,英語是比較成熟的。既有歷史原因,也有現(xiàn)實(shí)的物理原因。
眾所周知,在歷史上,英語國(guó)家是最早發(fā)展計(jì)算機(jī)技術(shù)的國(guó)家。這里我們必須提到美國(guó)信息交換標(biāo)準(zhǔn)碼ASCII。世界上第一種可以用二進(jìn)制表示的自然語言是英語,它使用ASCII。
還有非常實(shí)際的原因。英語只需要26個(gè)固定字符。ASCII是一個(gè)7位代碼,二進(jìn)制值的范圍是從0萬到1111111,共128位。使用這128個(gè)字符,可以表示英語,包括標(biāo)點(diǎn)符號(hào)、數(shù)字、大小寫字母、控制字符,甚至10個(gè)ASCII保留位。中國(guó)象形文字永遠(yuǎn)做不到這一點(diǎn)。
為什么數(shù)據(jù)分析需要會(huì)編程語言?
數(shù)據(jù)分析需要編程語言。在我看來,沒有必要。數(shù)據(jù)分析就是通過數(shù)據(jù)發(fā)現(xiàn)業(yè)務(wù)規(guī)則。其實(shí),這種發(fā)現(xiàn)往往是一種感覺。當(dāng)你感覺到的時(shí)候,數(shù)據(jù)實(shí)際上是一種驗(yàn)證。雖然這還不夠科學(xué)。在任何情況下,數(shù)據(jù)分析都需要經(jīng)過確定、分解、評(píng)價(jià)和決策四個(gè)步驟。
決定和決策是一個(gè)前端和一個(gè)終端的兩個(gè)步驟。確定步驟要求我們研究問題并了解業(yè)務(wù)。當(dāng)前的問題是,決策是最后的工作。因此,這兩個(gè)步驟與專業(yè)的數(shù)據(jù)分析工具接觸的可能性為0。因此,在分解和評(píng)估這兩個(gè)步驟中,必須使用工具或編程語言。在分解步驟中,我們可以細(xì)化問題并將其分解為更細(xì)粒度的問題。通過對(duì)這些小問題的分析,找出共同的或局部的問題。在這一步中,我們需要使用相應(yīng)的數(shù)據(jù)分析工具。在我看來,如果問題沒有很好地分段,我們可能需要使用一些編程語言來處理所需的數(shù)據(jù),SQL除外。數(shù)據(jù)分析師掌握SQL是毋庸置疑的。畢竟,數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中。
因此,數(shù)據(jù)分析和編程語言不要求您必須掌握編程語言。編程語言只是一種工具。掌握它是一個(gè)額外的項(xiàng)目,這可以使你有一個(gè)更多的門時(shí),處理數(shù)據(jù)。它不能對(duì)您的數(shù)據(jù)分析結(jié)果的正確性起決定性作用。數(shù)據(jù)分析的結(jié)果是否好,取決于你的思維和方法,也就是說,你是否能很好地把存在的問題分割出來。