关于提高 c++水平的一个疑问

2020-04-29 01:41:34 +08:00
 fishCatcher
小弟大四学生,打算出国读研然后找后端工作,感觉编程水平遇到瓶颈不知如何提高,来请教各位 v 友。

目前 lz 的 c++水平停留在会基础、能刷题(大概刷了 350 道 LeetCode )的水平,然而一到实际项目就完全不知道该如何用 c++搞。之前在 tx 实习过一段时间,但主要用的是 Go,没怎么提高 c++水平;平时自己做项目就 php 一把梭了。所以感觉现在自己的水平就是各个语言都有短腿,没有一个特别擅长的。

感觉自己的 c++水平总缺了点什么导致无法与实际工程结合(也许是网络编程),然而 unix 网络编程、unix 环境高级编程这种书太厚了实在是不敢去学(从小不爱读文字),请教各位 v 友这种情况该怎么提高呢?
5194 次点击
所在节点    C++
20 条回复
owwlo
2020-04-29 02:35:50 +08:00
我是工作之后才开始“真正”学习并使用 c++的,到现在已经快 5 年了,而且如果只说 c++的话直到现在在工作上解 bug 或看别人的代码依然会时不时的发出“卧槽原来还可以这样!”的惊叹。
作为一个跟你的计划经历相似的人(肉翻读研+leetcode+工作……),一些小小的建议(当然只是建议哈~每个人的情况都或多或少的不一样,只是希望对你有点帮助;)):
* 对付大厂面试性价比高的方式是刷题+练习口语
* 小公司才可能多一点会看你自己做出了什么项目,可不可以展示
* c++对于刷题和做项目成本太高,python 和 java 作为第一和第二选择应该会比 c++好很多
Procumbens
2020-04-29 03:04:27 +08:00
Procumbens
2020-04-29 03:08:19 +08:00
@owwlo 其他都同意,不过个人认为 C++刷题的成本并不高。常用的数据结构( vector, set/unordered_set, map/unordered_map, stack, queue, priority_queue ) C++都有,最多就是 String 的 split, join 等处理起来稍微复杂些。我个人更喜欢用 C++写 LeetCode 。
msg7086
2020-04-29 06:18:19 +08:00
之前看了 feisty2 大大写的 C++20 的项目,感觉直接颠覆了我对 C++的理解了…
MintZX
2020-04-29 06:51:53 +08:00
你这个问题让人很不理解你的目的是什么?

你是为了掌握高级 C++技术吗?

C++ Prime -> Effective Modern C++ -> The C++ Standard Library -> C++ Templates

你是为了出国以后找工作吗?

那跟 C++没关系,国外 C++的职位不多,学一门 python JS 这样的语言然后去做题不香吗?

人家都测试一遍过了你还在那想 STL 的 reverse 是怎么引用的

而且国外公司不在乎你用什么语言面试,你把题做出来就行。

除了银行金融系统类的公司没见过几个要求会 C++的,而且大多数都是要求 5 年+经验的 C++开发。
watzds
2020-04-29 07:14:31 +08:00
我 C++学了多年,还是找了 java 工作
你不如多学学 Go 和相关生态,不好吗
GPLer
2020-04-29 07:18:29 +08:00
@Procumbens +1,C++ 刷题成本能算高,那纯 C 算啥。
hello2060
2020-04-29 07:37:30 +08:00
既然要做后端还抱着 c++不放干啥,FLAG 招聘也不会限定你的语言。
tianshilei1992
2020-04-29 08:11:17 +08:00
C++ 这个东西的学习曲线还挺大的我觉得…我研究生期间几乎把所有的 C++ 经典书籍(大概 18 本)全看了,才慢慢有了一点感觉。然后就开始了实习、工作,又辞职肉翻当科研狗…当时在公司的时候给 Chainer ( MKL-DNN )、TensorFlow 还有 LLVM 贡献代码,阅读了大量的 C++ 代码(得搞明白了才能下手嘛),然后现在读博还在继续给 LLVM 贡献代码。在这期间呢,就经常能回忆起以前书上的一些知识点来,而当时读的时候并没有觉得怎么样。这还是我能记住的,没记住的肯定就更多了。由于现在做编译器,所以得对语言更加了解,就又开始跟最新的标准…漫漫长路啊…
laike9m
2020-04-29 08:12:49 +08:00
没事,等你再学五年 C++,会发现不懂的比现在还多🐶
May725
2020-04-29 08:33:26 +08:00
@tianshilei1992 配合上头像,一看就是大佬
May725
2020-04-29 08:34:02 +08:00
@May725 🐶
dearmymy
2020-04-29 09:10:31 +08:00
你水平已经蛮厉害了。既然打算考研我觉得就不必要刷题了。我觉得你可以看看设计模式,让你老大推荐一个开源 c++项目,自己跟着敲一边,理解下
paoqi2048
2020-04-29 10:26:57 +08:00
可以看下 C++11/14/17
tianshilei1992
2020-04-29 10:27:40 +08:00
@May725 甭管技术到不到位,头型一定得先到位不是 🐶
watzds
2020-04-29 13:30:09 +08:00
autogen
2020-04-29 19:52:39 +08:00
用 C++做一个网络课堂网站+APP ?
Noobs
2020-04-30 00:36:54 +08:00
不要为了学而学吧,看你以后工作内容再决定深入了解哪门语言吧。应届刷算法更有性价比吧。
fishCatcher
2020-04-30 01:43:03 +08:00
@autogen 雷课堂可还行
coderEOS
2020-04-30 09:55:03 +08:00
找感兴趣的优质开源项目,能看懂一半就行,然后试着做自己的项目,学习 代码管理、接口封装、类抽象、设计模式。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/667137

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX