C/C++初學攻略

来源:https://www.cnblogs.com/chenlinghong/archive/2018/01/24/8339377.html
-Advertisement-
Play Games

最近有朋友問我C++(or C)怎麼入門,其實這個還真不是很好回答的,想了下就寫下這篇博文以說下我自己的學習路程吧! 正兒八經的,其實我覺得自己也學得不咋地,不管是C還是C++都是如此的強大,要真正的說精通C++的,我覺得至少得花好幾年的時間吧。我是大學裡邊才接觸到電腦語言的(現大二),學校課程安 ...


最近有朋友問我C++(or C)怎麼入門,其實這個還真不是很好回答的,想了下就寫下這篇博文以說下我自己的學習路程吧!

正兒八經的,其實我覺得自己也學得不咋地,不管是C還是C++都是如此的強大,要真正的說精通C++的,我覺得至少得花好幾年的時間吧。我是大學裡邊才接觸到電腦語言的(現大二),學校課程安排是大學二年級才開始學習C++的,上手就是C++,還真有點驚訝,聽其他朋友說都是先學習C,然後再學習C++的,當時就覺得,看來我們學校對我們挺有信心嘛(心中美滋滋的)。

------------------------------------------------------------------------------------------進入正題啦

呀,這一不小心就偏了。(平時思想很跳躍,見諒)

接下來,我就說說從我開始學習C++開始談吧,當然C語言也差不多,具體的就是C++有面向對象方面的知識,但對於初學者來說,本文講解的內容相差不大,但如果你想學得更深入的話,就我自己的觀點來看,C和C++差別還真不是一般的大,不管是編程思想還是具體應用實現,我覺得真的把C和C++分開還是比較好,當然現在就是分開的(不然怎麼叫C語言、C++語言呢,你說是吧)

態度決定一切

對於初學者來說,首先應該有一個積極的學習態度(這個很重要)。畢竟學電腦可是一門苦修(我是這麼認為的,哈哈哈),哎呀,剛開始怎麼就說這氣氛,其實吧,什麼都有兩面性,當你認真投入學習,你會發現,這真的是一片新天地,時刻關註前沿,學習技術,不知不覺自己連聊天內容都不一樣了,吹牛也有說的拉(哈哈哈,開玩笑)

教材很重要

你得需要一本或者幾本學習教材。我這裡推薦呢還是希望你們用大學裡邊正在用的教材,具體的書籍名稱呢,我就不給你說啦,(反正我用的是《C++程式設計(第3版)》 譚浩強),當然你擁有了書還不完全夠哦。這本書主要是學習語法等基礎知識,真正的能力還是得實戰中學習,建議一邊學習一邊做書上的程式,自己想些或者網上搜些程式來寫,在學習期間,你若沒有編寫幾百行代碼的程式的經驗,你談何學習呢。當然,當你學習到後期,也就是基礎知識學得差不多了後,你就應該嘗試上千行代碼的程式了(記得我第一次寫[通訊錄管理系統](http://download.csdn.net/detail/chensanwa/9867525)寫了6個小時六百多行代碼,[銀行管理系統](http://download.csdn.net/detail/chensanwa/9866922)用面向對象編程,編寫+調試總共用了兩天的時間一千三百行左右的代碼,還記得那時我們正放五一)(大家也可以關註下我的CSDN哦!!!),當你寫了這種大型點的程式並正確運行,測試成功後,你心中那滋味,就跟剛耍了女朋友一樣,不信你試試!

視頻學習不可少

建議一邊學習書本知識,一邊看視頻學習。在課堂或者是自己學習C++的時候,加上在網上看視頻學習,效率會高很多,高到自己都不敢想象。我記得當時我學習的時候,上課都認真的聽講的(我們老師講得很好,知識點都講得很細,挺不錯的老師,為老師點贊),然後自己回寢室有時間就看[慕課網](http://www.imooc.com/)上的視頻教學,(額,這裡打個廣告拉,見諒),不過還真的有必要推薦各位看下,我看這個視頻學到了很多很多的知識,當然你得先自己學習過後,再看上邊的視頻,我看都是加速看的,主要是體驗那種和老師不一樣的講課思路,對同樣的知識,不同的講解,這真的學得很透徹也很有趣,然後再從整體上把握知識體系。當然,其他的很多教學網站上的視頻也相當不錯,我看過的還有[網易雲課堂-大一電腦入門課程](http://study.163.com/series/1001245003.htm),這個也是相當不錯的,上邊都是名校名師講解。至於其他網站的呢,就等你自己去發現了,我就不一一列舉了(學電腦的就是要有強烈的探索和求知欲望喲)

實踐吧,少年

到了這裡,其實你應該就有了相當不錯的基礎知識了,現在你需要提高下你自己的編程能力啦。首先,你需要提高下你自己編程小程式的能力,因為小程式考驗的才是真正的編程能力,大程式我覺得考驗的主要是邏輯方面吧,當然邏輯過後就是編程了(說明下,我這裡說的大小之分是以1000行代碼為劃分的啦,只是為了說明問題,還望不要專牛角尖哦)。推薦你網上搜索下一些刷題的網站,當然,對於初學者來說呢,我建議就到一些入門級的OJ網站就行了,當然很多學校都有自己的OJ,我當時是在[C語言網](http://www.dotcpp.com/)上刷了一百道題目左右吧,然後就基本就沒怎麼在上邊刷題了,當然,有很多的OJ都相當的不錯(POJ等),你上網搜索下就有很多推薦的,按照自己的學習目標來學習階段來選擇不同時期的OJ是最明智的選擇。這裡推薦的C語言網呢,主要是推薦初學者,但希望你們不要專上邊的某些題目,不要問我為什麼,因為這樣有益身心健康。

----------------------------------------------------------是不是感覺挺累的,不用擔心,接下來更累(一個挑事的微笑)

演算法才是大佬

到了現在,編程能力有所提高,你可能就會感覺怎麼OJ上邊的一些題目怪怪的,其實,這不叫怪啦,這叫深沉(哈哈哈,開玩笑)。這就關乎到了我們接下來要講解的重點了,那就是[演算法](https://baike.baidu.com/item/%E7%AE%97%E6%B3%95/209025?fr=aladdin),這也是電腦專業學生的核心基礎課程(我個人挺喜歡演算法)。換句話說,就是你現在沒有學習到相應的演算法,你可能會上網搜索下題目的答案,或許能看懂,但不是很明白,那麼現在你就需要學習新知識了(恭喜你啦),那就是基礎演算法的學習,(我準備再寫一篇博文,關於我演算法入門的,一些經驗和感悟吧)(哈哈哈,又有廣告了是吧,不急,我們接著看。)。

我這裡就簡單的說下基礎演算法的學習,同樣的,按照上邊的講解,你需要書籍,推薦劉汝佳的《演算法競賽入門經典(第二版)》(我現在也還在學習),挺不錯的入門書籍,還有其他的就自行百度吧,還有就是你最好還是找點視頻資料學習,我看過哈工大的演算法設計與分析入門課程,上邊也講得挺不錯的,是根據《演算法導論》的體繫結構來講得,至於其他的一些資源呢,就讀者自己去探索吧,還有很多哦。

一展身手

到了這裡,其實你已經有了一定的能力了,你可以去參加一些演算法的比賽了,當然我建議一邊學習的時候就應該關註一些線上或者線下的演算法比賽,在很多的OJ系統,比如前邊推薦的幾個網站上邊每個月都有舉行比賽,其實還有很多演算法比賽(GCJ,百度之星,編程之美,ACM等),就交給聰明的你啦

-------------------------------------------------------------唔,終於要寫完了

抽象?

面向對象編程。在這個部分呢,我就簡單的講下麵向對象的一些認識吧,這也是C++區別於C的一個板塊,因為有了面向對象,有人稱C++為“帶類的C”。我個人理解的面向對象是一種思維,一種邏輯,大家在初學的時候不必糾結什麼叫做面向對象編程,面向過程編程,你現在的任務應該是我要用編程來解決這個問題,然後你就想方設法的去想解決的辦法就行了。當然,如果你實在是想深究下呢,就推薦以看看一些牛人博客論文吧,(如果看到說得好的,記得給我留言分享喲,在此先謝謝啦)。然後就是MFC的學習,這個類庫呢我這裡就不講解了,對於初學者來說,只需要知道具體的類的使用就行,推薦上網看下資料啦(偷下懶就不給鏈接啦)

說明欄目

說的也差不多就是這些了,如果有什麼遺漏的地方我會在後邊補充。對於這篇博文呢,我是按照自己的學習經驗來寫的,如果有什麼地方寫得不對的,歡迎留言評論。若有侵權,還望留言,我會及時刪除。

交友欄目

QQ-1-4-8-6-9-0-4-0-6-9,歡迎各位朋友來擾,博主喜歡交友噢


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 基本使用 html: JavaScript: 通過註入路由,我們可以用 this.$router 來訪問它,就像在任何組件里用 this.$router 訪問當前路有一樣。 路由的命名 要鏈接到一個命名路由,可以給 router-link 的 to 屬性傳一個對象: 這跟代碼調用 router.pu ...
  • 對於前端分頁,不懂的人也許會覺得是個笑話,分頁不都是後端的事情嗎?的確不得不承認,處理邏輯性的話,還是後端更加友好,但前端分頁,也有他友好的一面,舉個慄子:伺服器壓力請求減少,換頁時用戶體驗好。直戳主題——前端實現分頁的原理及其步驟 ...
  • 虛擬化和容器化是項目雲化不可避免的兩個問題。虛擬化由於是純平臺操作,一個運行於linux操作系統的項目幾乎不需要做任何改造就可以支持虛擬化。而項目如果要支持容器化則需要做許多細緻的改造工作。容器化相對於虛擬化的優勢也相當明顯,運行於裸機性能高,秒級啟停容器,更不用說開發、測試、佈署一致的環境(Dev... ...
  • 接著上一篇的內容,我們繼續來梳理分散式系統之中的副本機制與副本一致。上文我們聊到了在可用性與一致性之間的一個折中的一致性等級: 最終一致性 。我們順著上篇的內容,由用戶來分析一致性等級。 1. 客戶端的困擾 上篇文章我們提到了數據系統常用的模型,當提交新數據時,必須將它發送給Leader節點,但是當 ...
  • 本篇將介紹python中sys, getopt模塊處理命令行參數 本篇將介紹python中sys, getopt模塊處理命令行參數 如果想對python腳本傳參數,python中對應的argc, argv(c語言的命令行參數)是什麼呢?需要模塊:sys參數個數:len(sys.argv)腳本名: s ...
  • 如果你在使用 Pandas(Python Data Analysis Library) 的話,下麵介紹的對你一定會有幫助的。 如果你在使用 Pandas(Python Data Analysis Library) 的話,下麵介紹的對你一定會有幫助的。 如果你在使用 Pandas(Python Dat ...
  • 思路 上一篇大概梳理了一下 GatewayWorker 的基礎知識。這篇就來準備整合 GatewayWorker 到 Laravel。 GatewayWorker 是基於 Socket 監聽的伺服器框架,而 Laravel 是基於 HTTP 請求/響應模型的 Web 框架。所以一定要明白,兩者的部署 ...
  • 前言 本文的目的是基於 GatewayWorker 官方手冊,梳理一次 GatewayWorker,併在實踐中與 MVC 框架整合的思路(附最終的項目源碼)。如果你已經理解了整合這一塊兒的知識,那麼就可以關掉這個網頁了。時間蠻寶貴的~ 很久以前就想做一個聊天室了。百度了下 "php 通信",看到了可 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...