非常好的一個問題。
首先我想糾正題目裡一個概念的問題。 學C++和ACM題是兩個完全不同的東西。 C++只是一門程式語言。是一種控制計算機執行指令的工具,而不是必要的工具。從題主的問法看,應該是一名計算機專業的大學生。 一定要樹立這麼一個概念“我學習的是計算機科學技術而不是程式語言”, 將來走上工作崗位,語音的切換會變得非常平凡而自然, 而不是我只學了C++, 那我就只能用c++程式設計。
扯遠了, 會到題主的問題。 ACM是學習程式設計必要的步驟嗎?答案是並非必要。ACM更多的是訓練開發人員的思維能力。在大型專案中, 資料結構和演算法會顯得非常重要, ACM則是一個很好的訓練手段。 這也是為什麼一線網際網路公司非常喜歡以ACM題作為選拔人才的依據。
ACM不是必須的,但資料結構的基礎是一定要打好的。資料結構幾乎覆蓋了計算機技術的方方面面。 一味的追求刷題也不是最佳的方式。 ACM狂熱者通常都是追求將來成為一名演算法工程師。 但是除了演算法之外,計算機科學還有很多分支, 資料庫技術, 計算機網路, 作業系統, 分散式架構, DEVOPS等等。 對ACM頭大的同學不妨可以考慮考慮其他感興趣的方向
非常好的一個問題。
首先我想糾正題目裡一個概念的問題。 學C++和ACM題是兩個完全不同的東西。 C++只是一門程式語言。是一種控制計算機執行指令的工具,而不是必要的工具。從題主的問法看,應該是一名計算機專業的大學生。 一定要樹立這麼一個概念“我學習的是計算機科學技術而不是程式語言”, 將來走上工作崗位,語音的切換會變得非常平凡而自然, 而不是我只學了C++, 那我就只能用c++程式設計。
扯遠了, 會到題主的問題。 ACM是學習程式設計必要的步驟嗎?答案是並非必要。ACM更多的是訓練開發人員的思維能力。在大型專案中, 資料結構和演算法會顯得非常重要, ACM則是一個很好的訓練手段。 這也是為什麼一線網際網路公司非常喜歡以ACM題作為選拔人才的依據。
ACM不是必須的,但資料結構的基礎是一定要打好的。資料結構幾乎覆蓋了計算機技術的方方面面。 一味的追求刷題也不是最佳的方式。 ACM狂熱者通常都是追求將來成為一名演算法工程師。 但是除了演算法之外,計算機科學還有很多分支, 資料庫技術, 計算機網路, 作業系統, 分散式架構, DEVOPS等等。 對ACM頭大的同學不妨可以考慮考慮其他感興趣的方向