回覆列表
-
1 # 少木木啊
-
2 # 大學生程式設計指南
演算法和程式設計不是同等而言,學好程式設計包含層面很多,基礎的程式語言,良好的邏輯思維能力(演算法算是包含在這個層面),程式設計最核心的是程式設計思想。
相比而言演算法是程式設計基礎裡面佔比相對高點,但不是全部。現在大致分析下如何練就高階的程式設計能力
有一門非常熟練的程式語言一個好的程式設計者,必須有一門非常熟練的程式語言,這是作為程式設計的基本功,也算是程式設計的工具,程式語言屬於基礎,很初學者把程式語言看的特別重,覺得程式語言學不好一定搞不定程式設計,程式語言這種基礎性的東西,一年學不好可以兩年甚至更長的時間,總會有自己能學會的時候,所以初學覺得程式語言難學也是很正常的事情,學會了一種程式語言了,也不要覺得自己就得道成仙了,程式設計是一項綜合能力很強的技能絕不僅僅一個專案決定。
良好的邏輯思維能力為啥提到邏輯思維能力,這涉及到計算機語言的特性,就是理性思維能力,簡單概述透過現象看本質,這裡面涉及到演算法思維,面對一個應用場景採用什麼的邏輯更加合理,面對複雜的處理場景,採用什麼樣的演算法更加合理,演算法不是為了學而學習,需要學以致用。
演算法的都是為了解決現實中的問題提煉出來的,所以在學習過程中儘量的還原到實際場景中。
具備程式設計思想其實程式設計在具備良好的程式設計基礎上,決定一個人的水平高低的主要因素就是程式設計思想了,遇到一個實際的問題,需要使用什麼樣的解決方案,什麼樣的程式碼框架都是程式設計思想要考慮的問題,舉個簡單的例子,解決高併發的問題,無論你用java語言還是c++處理,採用的思路基本上是一致的,甚至是別的程式語言,解決的關鍵問題是一致的。
所以程式設計能力是一項綜合技能,絕不是一個程式語言或者演算法就能搞定的事情。
演算法好不等同於程式設計能力強,但是程式設計能力強必須要求演算法好!!!
什麼是演算法演算法通俗的理解是解決一系列問題的思路。我的印象裡面。九年級數學課下冊講過這個問題,高二數學選修課2-1是一本專門講演算法與數學的,國家層面的教育中,從小對數學的要求其實涵蓋了很多演算法的概念,各種公式的推導,本質上都是演算法的抽象。可這一切並不一定要去搞程式設計啊,初級的程式設計問題還是為了解決工程問題,我們從小培養的這種數學思維可以應付大多數的工程問題了,以我所從事的前端工程師為例,初級的話,對各種排序演算法要求掌握,高階的二叉樹、紅黑樹,並不做要求。
程式設計能力需要什麼既然選擇了程式設計這個行業,必須具備coding的能力,talk is cheap, show me your code,是經典名言,必須能解決實際問題才行。基本的計算機理論必須具備,包括但不止於資料結構、演算法、編譯原理、網路基礎,很強的程式設計能力必須要求會創造演算法,也屬於造輪子的範疇,這個能力不是初級工程師所具備的,中級及以上需要好好培養演算法功底,例如前端行業,合適的排序演算法對於遍歷DOM樹操作會有很大的時間長,選擇好的演算法處理使用者提交的資料,響應時間受很大的影響。
所以,演算法只是程式設計能力的必要條件,並不是充分條件,當然最好具備良好的演算法思維,畢竟這也意味著嚴密的邏輯思維~