Re: [問題] 關於C++學習過程請教
※ 引述《Suxing133 (怪盜巴哥)》之銘言:
: 各位前輩們早上好,
: 小弟目前大二,再一年就準備做專題考研。
: 目前正在自學C++,
: 原本是跟學校的課程學習JAVA,
: 雖然是資管但對C/C++的指標有莫名的憧憬,
: 所以才在這個時間點改學習另一個語言,
: 缺點是班上沒有同學一起學習C++,
: 因此想上來板上請教各位前輩們一些問題。
對指標的憧憬導致在資管大二階段跳過來學 C++ 這個動機有點怪,
如果這板不是 C_AND_CPP,有很大機率我會建議你別學下去。
我倒是比較好奇這個憧憬對你後來學習 C++ 和使用 C++ 造成什麼樣的影響。
寫程式很忌諱的一點是炫技,C 要炫技大部分是靠指標,C++ 還有很多語言機制可炫技。
你的生涯規劃我也同樣好奇,未來會想從事用 C++ 開發程式的工作嗎?
資管需要學習的東西很廣,但 C++ 這東西某方面來說需要學精,
你如果未來不想從事會用到 C++ 的相關工作,你還有好多好多東西得去學。
浪費時間在 C++ 這語言的學習上,你可能會喪失職場競爭力,這很嚴重。
不過既然你還打算讀研究所,也許碩班論文和教授給你做的計畫還能給你指引方向,
所以這邊先不強迫你去思考未來想去什麼公司、做什麼樣的工作內容。
只是我眼光比較短淺,好像想不太到哪個資管所教授接的計畫會需要學生使用 C++。
因此 C++ 可能只會變成你花了最精華的大學時期的一個短暫興趣,
而與你同世代的資管人可能利用這四年時間累積了更龐大的有用知識在職場上發光發熱。
你在研究所開始之後的人生不會再有時間讓你這麼悠閒的讀 C++ Primer,
也許將來的某一天你會後悔為何不花一樣的時間去學 10 幾種近代資訊技術。
另外就是畢業專題我記得都是要團隊合作。
班上都沒人跟你一起學 C++ 了,到時專題你打算一個人一組用 C++ 寫嗎?
不過話又說回來,很多其它語言的 plugin 或 extension 其實都是用 C/C++ 在寫。
或許未來有一天你現在的經驗能成為你的助力,讓你能做到別人不能做到的效能改善。
如果幾年後你最終選擇了其它用不到 C++ 的語言當謀生工具,要記得你還有這個優勢。
: 學習過程:
: 目前是讀C++ Primer 5/e 讀到一半左右,
: 預計再半個月能接近讀完,
: 之後打算繼續讀Effective 系列&STL函式庫,
: 中間還有刷一些Leetcode Easy的題目,
: 未來打算寫一些小專題累積開發能力。
: 問題:
: 不知道這樣學習方式有沒有需要改進的地方?
: 不知道有沒有榮幸獲得各位前輩的經驗,
: 目前刷Leetcode算是心態滿崩的,
: 因為網路上大多都在使用STL,
: 還有code都是寫class,
: 這樣好像沒有練習到main呼叫的過程,
: 甚至在考慮要不要改刷CPE的題庫。
: 感謝抽空看我廢話,打擾到不好意思!
: (第一次在ptt發文,排版不好還請見諒!
: (有違反版規的話非常抱歉!
刷題這件事對你來說太早,板友已經都講過了我就不講了。
比起 The C++ Programming Language,
C++ Primer 的內容編排更接近 C++ 語言辭典這類工具書。
如果你打算把寫 C++ 當作你未來正職使用的語言,
讀過它一遍你將不會被編譯錯誤或一些非預期的編譯結果感到意外,
至少遇到的當下你腦中會閃過書上的某些片段然後回來查。
如果現在是 2011 年,而且你的目的是想更透徹瞭解這個語言,
我會建議你在讀完 C++ Primer 之後去讀 The C++ Programming Language。
之後再建議你去讀 Effective 和 Exception 系列的書做補強。
但是從 2012 年開始,Effective 和 Exception 系列已經過時,
雖然裡面的精神可以花點時間去瞭解,但裡面許多過時的內容我也擔心新手誤會。
Effective C++ 3/e 算是 2012 後這系列裡唯一值得去讀的書,但也沒更多了。
類似的進階學習資源都變成在網路上,紙本或電子書已經不太有人出版。
另外關於並行程式設計的主題,是被獨立在一本叫 C++ Concurrency in Action 的書上。
這本書需要特別另外去讀,因為裡面涵蓋的主題既有的書籍裡不太會介紹。
歐萊禮還有一本「優化 C++」在你遇到效能瓶頸時可以去讀,但現在不用急著去看。
你讀的 C++ Primer 5/e 在 2022 年的現在也是一本過時的書,
但我無法給你更好的建議,因為我不是從這個年代才開始學 C++ 的。
如果你想找一本跟得上時代的 C++ 書籍,無論簡體還是繁體中文我還真不知道有沒有。
因為我已經是體力衰退的中年人,沒力氣幫你找,只能說關鍵字是 C++17 和 C++20。
我自己這幾年是在 manning.com、leanpub.com、packtpub.com 上面買電子書來讀,
再來就是去一些板友也常提到的網站逛逛,不斷追著最新標準走。
如果你的英文能力不足以讀這些原文電子書,我會建議你設法把英文補好。
走軟體開發除非你是走少數特殊行業,不然靠吃台灣內需肯定得不到什麼好的發展。
特別是你的英聽跟口說如果不行的話,強烈建議先去補習加強或利用學校資源。
這些基礎語言技能沒有的話,我還是建議你先別學什麼 C++,
不然以國內匱乏的中文資源,再過個 10 年,你跟完全不會 C++ 的人很高機率是一樣的。
除了唸書,Boost C++ Libraries 也該練習去使用,
我學生時代給自己設定一週要學會裡面一個函式庫的目標,
學會使用它可以幫上你不少忙,但終究它也是輪子和積木等級的函式庫。
Qt 之類的 GUI framework 你至少要學會一套,這樣你的軟體開發工具才會完整。
至於你說的「未來打算寫一些小專題累積開發能力」,這又是完全不同的議題。
你在我上述的電子書商網站搜尋 C++ 可以找到一狗票 C++17 和 C++20 的書,
所以我也不去羅列我看過買過什麼只講 C++ 的書,畢竟意義有限。
所謂的開發能力,是跨越程式語言的一項知識,也是你需要花大量時間鑽研的東西。
以歐萊禮的「深入淺出物件導向分析與設計」和「深入淺出設計模式」為出發點,
你會開始見識到超脫語言之外的軟體分析與設計知識,這比起使用什麼語言還要重要。
在這領域也有個名作家 Martin Fowler 出的書也值得一讀,特別是重構相關的書籍。
這裡我可以列一下我讀過的書,因為關鍵字比較難下,
你可以去書商網站從他們的目錄裡瞭解這些書在講什麼東西:
1. Hands-On Design Patterns with C++
2. Software Architecture with C++
3. Clean C++20 - Sustainable Software Development Patterns and Best Practices
4. Architectural Patterns (書名太短給你 ISBN 978-1-78728-749-5 防止你找錯)
5. Software Architect's Handbook
6. Good Code, Bad Code
7. Five Lines of Code
8. Software Mistakes and Tradeoffs
9. Street Coder
有些書還沒出完,上面那些電子書的網站都可以在作者出完書之前買到書,
買了之後先讀到可以把作者目前已經寫好的章節,甚至可以給作者意見或和作者討論。
要注意這些書裡用的範例程式碼未必是 C++,但你要吸收的主要是它的精神。
這對你未來轉換跑道去用其它語言一樣有用,也是你到達學生時代終點前所該學習的。
manning.com 出的書品質比較高,我在這還是會建議你去翻翻這網站上的書籍標題。
我會希望你至少先從標題確認,看看你有沒有能力知道這些書分別是在講什麼的。
雖不求 100% 知道那些是什麼東西,但起碼要知道個七、八成。
我指的是就算只是懂得標題上的名詞是啥也好,就這程度上你至少得略懂七、八成標題。
坦白說以資管人而言,你大概知道它們是什麼,然後都摸過一點,會比你學 C++ 有用。
我也不喜歡在 C_AND_CPP 板上一直勸人學 C++ 以外的東西,
但既然你表明了你是資管人,我這個看過很多資管人人生的資工人還是得勸說一下。
另外 manning.com 這網站近年開始搞起了 live project,
你如果找到感興趣的主題也可以去試試。
不過如果你沒有足夠的英文能力,這些機會也就與你無緣。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.18.57 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1649887500.A.A1C.html
推
04/14 10:56,
2年前
, 1F
04/14 10:56, 1F
推
04/14 10:59,
2年前
, 2F
04/14 10:59, 2F
→
04/14 10:59,
2年前
, 3F
04/14 10:59, 3F
推
04/14 12:35,
2年前
, 4F
04/14 12:35, 4F
→
04/14 12:35,
2年前
, 5F
04/14 12:35, 5F
→
04/14 12:35,
2年前
, 6F
04/14 12:35, 6F
→
04/14 12:35,
2年前
, 7F
04/14 12:35, 7F
→
04/14 12:35,
2年前
, 8F
04/14 12:35, 8F
→
04/14 12:35,
2年前
, 9F
04/14 12:35, 9F
如果想問比較多的東西用站內信,問題比較少的話就推文。
比較多人看到的話,能給的意見也比較多,
所以站內信聊完之後你可以再去適當的板發文問多一點人看看他們意見。
不過所謂適當的板上的人有些可能比較兇一點,不一定像這邊這麼友善,要習慣一下。
推
04/14 21:42,
2年前
, 10F
04/14 21:42, 10F
推
04/15 08:48,
2年前
, 11F
04/15 08:48, 11F
推
04/15 09:28,
2年前
, 12F
04/15 09:28, 12F
推
04/15 12:03,
2年前
, 13F
04/15 12:03, 13F
推
04/15 13:03,
2年前
, 14F
04/15 13:03, 14F
推
04/16 10:12,
2年前
, 15F
04/16 10:12, 15F
→
04/17 14:38,
2年前
, 16F
04/17 14:38, 16F
→
04/17 14:40,
2年前
, 17F
04/17 14:40, 17F
這本確實該讀,現在才發現原來我沒寫到。
年紀大了,大概講完 Effective C++ 3/e 就以為自己已經講過。
Scott Meyers 也頗狠的,出完這本隔年就說林北不出書了,
以後大家自己去上 stackoverflow 還有看 C++ Core Guidelines 吧 XD
我本來還期待他出完這本能回頭更新 Effective 系列的書。
Herb Sutter 雖然沒更新 Exceptional 系列的書,但他有默默把 GotW 的內容翻新過。
雖然更新的部分只有在他 blog 上,而且看起來做一做就沒什麼力繼續了。
剛好今天下午我也在自己網站上正在寫類似的東西,
和回應這討論串原 po 的內容有點不太一樣:
https://bit.ly/3uRPMrm
※ 編輯: tinlans (220.135.18.57 臺灣), 04/18/2022 03:45:53
推
04/19 12:03,
2年前
, 18F
04/19 12:03, 18F
推
04/19 15:03,
2年前
, 19F
04/19 15:03, 19F
→
04/19 15:04,
2年前
, 20F
04/19 15:04, 20F
推
04/20 06:24,
2年前
, 21F
04/20 06:24, 21F
推
04/20 14:15,
2年前
, 22F
04/20 14:15, 22F
推
04/21 15:46,
2年前
, 23F
04/21 15:46, 23F
推
04/21 17:31,
2年前
, 24F
04/21 17:31, 24F
→
04/21 17:32,
2年前
, 25F
04/21 17:32, 25F
→
04/21 17:33,
2年前
, 26F
04/21 17:33, 26F
→
04/21 17:33,
2年前
, 27F
04/21 17:33, 27F
推
04/21 17:36,
2年前
, 28F
04/21 17:36, 28F
→
04/21 17:36,
2年前
, 29F
04/21 17:36, 29F
→
04/21 17:37,
2年前
, 30F
04/21 17:37, 30F
→
04/21 17:41,
2年前
, 31F
04/21 17:41, 31F
→
04/21 17:42,
2年前
, 32F
04/21 17:42, 32F
→
04/21 17:44,
2年前
, 33F
04/21 17:44, 33F
→
04/22 18:30,
2年前
, 34F
04/22 18:30, 34F
推
04/22 18:35,
2年前
, 35F
04/22 18:35, 35F
→
04/22 18:35,
2年前
, 36F
04/22 18:35, 36F
推
04/22 19:05,
2年前
, 37F
04/22 19:05, 37F
還有 44 則推文
噓
04/22 20:56,
2年前
, 82F
04/22 20:56, 82F
噓
04/22 21:43,
2年前
, 83F
04/22 21:43, 83F
推
04/22 21:50,
2年前
, 84F
04/22 21:50, 84F
→
04/22 21:50,
2年前
, 85F
04/22 21:50, 85F
→
04/22 22:18,
2年前
, 86F
04/22 22:18, 86F
→
04/22 22:19,
2年前
, 87F
04/22 22:19, 87F
→
04/22 22:20,
2年前
, 88F
04/22 22:20, 88F
→
04/22 22:22,
2年前
, 89F
04/22 22:22, 89F
→
04/22 22:23,
2年前
, 90F
04/22 22:23, 90F
推
04/23 00:32,
2年前
, 91F
04/23 00:32, 91F
推
04/23 00:33,
2年前
, 92F
04/23 00:33, 92F
推
04/23 14:00,
2年前
, 93F
04/23 14:00, 93F
→
04/23 14:00,
2年前
, 94F
04/23 14:00, 94F
推
04/24 01:30,
2年前
, 95F
04/24 01:30, 95F
→
04/24 02:36,
2年前
, 96F
04/24 02:36, 96F
→
04/24 02:38,
2年前
, 97F
04/24 02:38, 97F
推
04/29 23:31, , 98F
04/29 23:31, 98F
→
04/29 23:31, , 99F
04/29 23:31, 99F
推
04/30 13:07, , 100F
04/30 13:07, 100F
推
05/06 20:58, , 101F
05/06 20:58, 101F
→
05/06 20:58, , 102F
05/06 20:58, 102F
→
05/06 20:59, , 103F
05/06 20:59, 103F
→
05/06 20:59, , 104F
05/06 20:59, 104F
→
05/06 21:00, , 105F
05/06 21:00, 105F
推
05/06 23:05, , 106F
05/06 23:05, 106F
→
05/06 23:06, , 107F
05/06 23:06, 107F
→
05/06 23:06, , 108F
05/06 23:06, 108F
→
05/06 23:07, , 109F
05/06 23:07, 109F
→
05/06 23:08, , 110F
05/06 23:08, 110F
→
05/06 23:09, , 111F
05/06 23:09, 111F
→
05/06 23:10, , 112F
05/06 23:10, 112F
→
05/06 23:10, , 113F
05/06 23:10, 113F
推
05/07 11:50, , 114F
05/07 11:50, 114F
推
05/10 16:03, , 115F
05/10 16:03, 115F
推
05/15 16:20, , 116F
05/15 16:20, 116F
→
05/15 16:20, , 117F
05/15 16:20, 117F
推
06/10 12:11, , 118F
06/10 12:11, 118F
→
06/10 12:14, , 119F
06/10 12:14, 119F
→
06/10 12:18, , 120F
06/10 12:18, 120F
推
06/10 12:26, , 121F
06/10 12:26, 121F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章