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