Re: [請益] 如何學習C/C++並能使之成為應職技能?

看板Soft_Job作者 (「雄辯是銀,沉默是金」)時間9年前 (2015/02/10 13:05), 編輯推噓3(3014)
留言17則, 7人參與, 最新討論串2/18 (看更多)
c++ 太可憐了, 想為 c++ 說點話, c 之所以難學, 其中有個指標的難題, c++ 可以在某 種程度上減低這樣的困難。 int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); 呼叫 getaddrinfo 之後, 還得記得要 freeaddrinfo(result), 而 res 本身又是個複雜 的 linked list 資料結構, 有興趣可以參考 man page 的用法, 雖然難不倒你, 但用起 來實在太複雜。 要是用 c++, 就可以使用 std::vector 來對付這樣的資料結構, 無需操作指標, 又保有 高效率。 vector<XXX> res getaddrinfo(..., res); for (int i=0 ; i < res.size() ; ++i) { } 不需要記得去 free 記憶體, 也不用使用那令人害怕的兩顆星操作。 而 c++ 也提供了 std::string, 光是這個和 std::vector, std::list, 就足夠降低寫 c 程式的門檻, 不用辛苦的注意 \0 到底有沒加上, 字串 size 是不是少了一, 更不用擔 心老是搞不清楚 char str[] = "abc"; char *str="abc"; static char *str="abc"; 這些奇怪的差異, 我還沒提到如果 function 要傳入, 或是傳回字串時的麻煩事。 這些都減少了很多初學者操作指標的困擾, Joel 說過, 一個語言好用是因為你不用自己 管理記憶體, c++ standard library 提供了不少的幫助, 這些都比學習 c 來得容易。 我第一個自學的語言是 x86 組合語言, 遇到重重困難, 一事無成, 太高估我自己了, 若 一開始改學 c/c++, 應該略有小成。 從我改學 c++ 之後, 大多是她陪伴著我, c 也是靠著學 c++ 時, 順便接觸到的, 果然要 操作指標難度會整個提升不少。 那你說 template, oo, lambda, c++11, c++14 那些東西呢? 管他的! 你需要多學習那些才能寫出程式嗎? 雖然工作都是以 c/c++ 為主, 不過薪水沒有特別高。 ※ 引述《NewSpec (新規格)》之銘言: : 這個問題我老早就想請教各位版大了 : 並不是為了嗆前面那個問題= ="" : 雖然說有人覺得學C/C++沒必要 : 但事實上就是某幾個browser公司依舊缺C/C++工程師 : 做big data的一樣缺C/C++ infra工程師 : 前陣子有人跟我說有個能讓我現在package +50%的機會 : 一樣是要Linux network programming : 但我他媽的就是一個不值錢的java/python/scala後端 : 事到如今我已經再也受不了了 : 能力也不是比別人弱,但一開始路就走錯了又能怎樣 : 所以想請問各位學習C/C++並能使之成為應職技能要怎樣能比較快達到? : 我已經在物色github project想contribute了, : 但不知道別人吃不吃這套... QQ -- 要有一流的運氣, 才能邂逅一流的美女。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.206.105 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1423544753.A.B24.html

02/10 14:01, , 1F
歡迎你來認識/學習python or ruby,比c++好用太多
02/10 14:01, 1F

02/10 14:02, , 2F
指標操作我一直覺得很單純... 有啥複雜的?
02/10 14:02, 2F

02/10 15:28, , 3F
我習慣 allocate memory 之後,先找好位置寫上 free
02/10 15:28, 3F

02/10 16:03, , 4F
你講的是 API 設計的問題吧 epoll_wait 也是回一串清單
02/10 16:03, 4F

02/10 16:03, , 5F
但就不用兩個星星
02/10 16:03, 5F

02/10 16:04, , 6F
C++ 愛好者給個推。我覺得奇怪的是,我也問到不少人愛寫
02/10 16:04, 6F

02/10 16:05, , 7F
C++ 的都跟我一樣上手以後就完全不想碰 C,怎麼在業界
02/10 16:05, 7F

02/10 16:05, , 8F
看起來還一堆人在用 C... 實在難以理解啊。
02/10 16:05, 8F

02/10 16:05, , 9F
是說 c 沒有辦法用 raii 幫你處理資源那是事實
02/10 16:05, 9F

02/10 16:06, , 10F
所以講到後來方便歸方便,背景知識要很多...什麼東西可以
02/10 16:06, 10F

02/10 16:06, , 11F
怎樣被釋放要很清楚,不然會是災難
02/10 16:06, 11F

02/10 16:07, , 12F
雖然我也很愛 C++,但我絕對不會用簡單來形容
02/10 16:07, 12F

02/10 16:58, , 13F
像是Linux平台的版子儲存空間夠大,我用C++寫的很愉快
02/10 16:58, 13F

02/10 16:59, , 14F
但有些MCU的toolkit只給了C compiler,也只能寫C囉
02/10 16:59, 14F

02/10 17:01, , 15F
業界還在碰C 很多是有portability考量
02/10 17:01, 15F

02/10 21:54, , 16F
寫過C++回不去C 寫過Java回不去C++ 寫過Python其他都不想
02/10 21:54, 16F

02/10 21:55, , 17F
再碰了XD 不過如果碰MCU或是SoC C語言還是躲不了的
02/10 21:55, 17F
文章代碼(AID): #1KsP6nia (Soft_Job)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 2 之 18 篇):
文章代碼(AID): #1KsP6nia (Soft_Job)