西电电子信息研二,学完 CPP语法+刷题200道,接下来该怎么学?离秋招开发岗还差什么?
今天给大家分享的是一位粉丝的提问,西电电子信息研二,学完 CPP语法+刷题200道,接下来该怎么学?离秋招开发岗还差什么?
接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。
同学提问:
我是二本本科,现在西安电子科技大学在读研二,电子信息工程专业。看完了CPP基本语法,然后数据结构都在刷题,也有差不多200到多的,在力扣上,最近在看计算机网络、操作系统还没学。想问问这个阶段我该怎么做?是不是该做做项目了?我看周围人都在找春季实习了。
Yt回答:
这其实就是很多朋友自学的时候,其实作为一个研究生,现在研二,马上下学期研三开始秋招。其实期间还有一个暑假实习,最起码保证自己有一段实习,这样找工作会更加有竞争力一点。当然也不是说一定要有实习你才能找到工作,不是,有实习你会更具有竞争力一点。现在其实这个哥们儿你可以看到,到研二的时候才看完了CPP基本语法,请注意这是看完,就是基本上可能没有写过什么代码。当然这里提到了数据结构也在刷题,刷了差不多两百多。也就是到目前本科加研究生,本科四年,研究生两年,加在一起六年的时间,所有的代码量提到现在来说可能就是两百多题的样子。
才看完C++语法。其实转码的过程中间呢,编程语言是一个什么样的角色呢?因为你后面转码,你转的是一个开发的岗位,是一个软件工程师。软件工程师第一门手艺就是你得会有一门编程语言,你能够用它去操作计算机进行工作。就跟我们人类一样,刚刚生下来你可能第一任务就是学走路以及学说话。其实这个编程语言它就是在开发过程中,它是一门很基础很基础的技能,也是一门很必备很必备的技能。在这里来说这个节奏其实是有点慢的。
最近在看了计算机网络和操作系统,操作系统还没开始啊。你看计算机网络这本书,这本书里面讲的什么?是讲的物理层、数据链路层、网络层、传输层以及应用层。应用层呢这里面就分为会话层,表示层。你会发现你看完之后你依旧写不出代码,而且你会发现你后面背的那些八股文跟那个计算机网络里面东西很多都不是一样的。你包括看操作系统,就以汤子瀛那边操作系统为例,你去看,你发现看完之后,它和你后面工作中具体看的,比如Linux系统那个操作系统,那个工程的,它是差别很大的。操作系统这本书里面讲的,我是认为那本书可能多多少少它是代表着一种过时啊。就里面包括讲的进程、线程,包括死锁这些东西。你会发现这些概念在Linux系统里面是有的,但是它到底是以什么代码呈现出来?你会发现它是不一样的。所以你现在看到的东西其实是偏学术的,你没有到一种工程上面。
学术是怎么理解?学术就是有很多的理论,很多的概念。在工程上面,它讲究的是一种产品,就是我能够把它做到一个别人可以用。你不管是网络,你用网络的时候,你不可能是说给别人去拿几个概念给别人用,而是真的说它呈现出来。你比如你拿手机如何上网,或者说你做了一个APP,或者你通过PC机如何让它访问百度,或者说如何让他能够去请求某些第三方的接口,请求一些数据。包括操作系统也是,操作系统你到后面用它的时候,比如进程、线程、共享内存、互斥锁、条件变量、信号量,这种你在工程上用它怎么解决问题的。比如你在测试的时候,你怎么测你的性能,就很多人比如说我写了一个web server,比如就把那个web server写完之后,你怎么测它的性能,比如说你首先你得测它QPS,你得测它的并发量,你得测它的那个网络吞吐量。对应来说你测它的QPS,你就得考虑多线程,多进程,我同时建立连接,同时再给他发对应的请求,然后它返回结果,我比对结果对不对,从而来说我可以得到一个叫做QPS的值,就是一秒钟它能处理的请求数量。那其实你会发现你没有结合的一个概念,就是我用这个东西能解决哪些问题,如果你只是单纯这些概念,你就会发现后面面试的过程,你是很难去撑得了这种1个小时的。因为你学的东西,你现在看到的东西,比如C++语法也好,包括操作系统那本书里面的概念也好,包括计算机网络书里面的概念,你会发现你的面试官他是不会care的,他不会感兴趣的。即使他为了避免双方的尴尬,他肯定会问一些你了解的东西,但是你会发现他只是去迎合你,因为他怕问深入了,你不是很懂,所以这个东西他是缓解一个双方尴尬的情况。如果你按这么学习,你肯定会出现一种现象,就是后面面试你发现,简历里面的东西好像压根都不问了,问的就是C++语法,后面给了我两道算法题。包括很多朋友在牛客上看的很多朋友的面经啊,都讲了比如说面试的时候,简历里面东西都不问,项目都不问,只问八股文,只问点这种给我两道算法题,以及C++语言的基础。那各位你有没有怀疑过是不是你简历的问题,是不是别人看一眼就能看得出来那个清澈般的菜,让你感知到这种情况。
我认为在这里呢目前阶段怎么做呢?你还是结合着能够做一两款产品,语法它重要吗?它重要。但是我认为你结合的项目来做,即使我认为从一开始你把那web server,你把它撸出来了,做到你可以用,都比你去看C++语法和你去看操作系统、计算机网络它都要好。你把那个web server做完以后,你再去书上找,你比如说这里面用到了哪些东西,你这个web server里面用到哪些,你再去书上找基本概念也行。就跟我们曾经高中的时候,比如你为什么有本牛津字典放到你这个课桌上面?因为你是遇到问题你可以查。你有没有想过我们从一个项目中间直接开始撸,然后遇到问题,遇到的一些不懂的概念,我们直接去书上找,把这书当做字典式的查阅,他可不可行?这种姿势它是不是会比你学的更加有效一点呢?我们大家可以讨论一下,后面就是是否以一种项目的方式,一个项目一个项目往下面走,它会不会比单纯的看书节奏会要更快,而且是否更加有效。
那现在的这结论,你现在是不是该做点项目,我也不知道好吧,反正我认为这个问题我们只是提供一些我们的理解。请注意我们现在虽说名义叫做答疑,其实我们只是把我们的一些想法表达出来,至于后面能不能采纳,那还是你们自己的事情。我看周围人都在找春季实习,请注意现在目前我们已经有很多学校实习已经上来了,到目前是我们应该在上周的时候,这一周就爆发的比较多了,到这周应该出了将近有十个这种实习的offer了,所以目前来说我认为节奏还是有点慢。
总结:
一、学术与工程实践的差异认知
- 理论学习局限性:当前学习的C++语法、计算机网络(如OSI七层模型)、操作系统理论(如进程/线程概念)偏向学术化,与工业界实际工程需求存在鸿沟。例如,Linux系统编程中的共享内存、信号量等机制需通过代码实践理解,而非仅靠书本概念 学术知识应作为“工具书”使用,遇到实际问题时针对性查阅,而非按部就班从头学习。例如,开发Web服务器时遇到多线程问题,再深入理解锁机制和同步原理
二、项目驱动学习的必要性
- 项目优先于理论:实践验证知识:通过开发可落地的项目(如高并发Web服务器、简易数据库),将理论转化为代码能力。例如,实现HTTP服务器后,通过压力测试(QPS、吞吐量)验证性能,倒逼学习多线程优化 简历竞争力:企业更关注工程能力而非单纯知识点。完成1-2个完整项目(如开源工具、分布式系统)可显著提升面试通过率,避免因“简历空洞”被淘汰
- 推荐项目方向:C++领域:高性能服务:基于epoll的异步网络框架、RPC通信组件(参考Nginx架构)。系统工具:实现内存池、线程池、日志库等基础设施,适配Linux环境 结合研究方向:电子信息背景可尝试嵌入式AI(如基于树莓派的图像识别系统),或物联网数据中台(集成传感器+边缘计算)
计算机相关专业就业求职学习路线/offer选择/职业规划建议
工种浩:程序员yt (学习就业困惑?我们来为你答疑解惑!)免费投稿 投稿必回
#职业规划##计算机#解决计算机相关专业就业/面试/技术提升等问题解答(投稿必回)