1.熟悉編程語言
熟悉編程語言是學習編程的第一步。人們通常以C,C++,Java或Python開頭。我個人一開始就喜歡C++,因為它既不太簡單(如Python),又不太缺乏庫(如C是)。C++相當快,并且也具有良好的庫支持-兼而有之!另外,C++是競爭性編程的一個不錯的選擇,因為它速度很快并且具有標準模板庫(STL)的支持。根據您的興趣和目標,對第一語言的選擇非常主觀。您可能對前端,后端,移動應用程序開發,游戲開發,數據科學等感興趣。如果您的主要目標是找工作,請查看我們的文章。哪種編程語言最適合找工作?
您可以從學習基礎知識開始-語法,數據類型,變量,循環,數組等。嘗試解決基于實現的簡單問題,以熟悉這些基本概念。
2.學習數據結構和算法
一旦您對上一節中提到的任何一種語言感到滿意,接下來您應該做的就是學習數據結構和算法。數據結構和算法有助于建立編程所需的正確能力。有關數據結構的知識將幫助您選擇要解決的問題的正確方法-并非所有數據結構都可以在任何地方使用。了解算法之后,您將能夠理解許多庫函數的工作機制,否則,它們會像黑匣子一樣出現。
您可以學習許多優秀的在線課程。算法的第1部分和第2部分是很好的入門課程。花時間思考這些數據結構和算法的實現,以使其適應它們,這一點很重要。您可能認為學習它們的實現可能并不重要,因為最終會使用庫函數。這是人們最常見的誤解之一。了解實現將幫助您評估時間復雜度,這將幫助您進一步優化代碼。有一個很棒的網站Visualgo,您實際上可以在其中可視化各種數據結構和算法的工作。
3.競爭激烈的編程讓您的手變得骯臟
一旦學習了數據結構和算法,就應該開始在SPOJ,Codechef,Codeforces,Topcoder,Hackerrank,Geeksforgeeks等網站上解決問題。解決的問題越多,效果越好。不過,最好以難度遞增的順序解決問題。您可以按提交的解決方案數量的降序對問題進行排序,然后開始解決。解決了大約100種混合品種問題后,您將對自己的編程技能充滿信心。
在解決問題并編寫解決方案編碼后,您便可以開始參加各種在線編程競賽。這樣做將大大提高您的編程技能。
4.做一個項目
現在,您已經提高了解決問題和編程的能力,是時候創建一些有用的應用程序了。您可以選擇一些流行的Web開發框架(Django,Flask,RubyonRails等)并使用它來創建項目。編寫應用程序會讓您有實際的軟件開發感覺,這是大多數程序員所做的。
完成一些Web開發項目后,您可能想嘗試Android或iOS開發。不要束縛自己-學任何你想學的!
5.探索
一旦對編程技能充滿信心并完成了一些項目,現在就應該繼續探索計算機科學的各個領域,并找出最讓您著迷的地方。
計算機科學是一個廣闊而豐富的領域,有許多有趣的子領域。計算機科學的一些熱門領域是人工智能,機器學習,密碼學,云計算,系統編程,計算機視覺,自然語言處理,區塊鏈,虛擬現實,Web開發,移動應用程序開發等等。您應該嘗試探索盡可能多的領域,以了解您的興趣所在。