211本硕科班研一下,学的Java现在转C++研二实习能赶上吗?C++职业寿命更长是真相还是误区?

今天给大家分享的是一位粉丝的提问,211本硕科班研一下,学的Java现在转C++研二实习能赶上吗?C++职业寿命更长是真相还是误区?

接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。

同学提问:

老师你好,我是学院本211硕,现在是研一下,科班。Java只学到的MVC,平时写一些网络项目主要使用django+drf和前端的vue来完成的。

看到一些关于C++的视频,感觉相比于Java,学C++的职业寿命更长一些。我想询问一下如果现在开始学C++,能赶上研二下的实习吗?还有就是现在学C++的话,建议我朝着什么方向学习呢?

Yt回答:

首先我跟大家讲这里有几个点要回答,这个职业寿命更长一些,没有任何一个说法说C++的职业寿命会比Java的职业寿命强,也没有说Java的职业寿命比C++长,这个不是,职业寿命它不是你学哪门语言就能够决定长与短的,而是你在哪家公司,如果这家公司发展的很好,你的职业寿命它就会更长,这家公司如果不行,你不管学哪门语言,它一样都很短。包括有很多说我去国企,国企职业寿命很长,然后还能躺平,请注意它不是所有的国企是这样的,国企它一样也有裁员,这种35岁危机它也有。它并不是说你学哪门语言学哪门技能,你就能够职业寿命更长,没有这个说法。反而说在这里你要选择一家企业,这家企业如果发展的好,那你的职业寿命它就会长很多。如果这家企业做两年倒闭了,或者说你去的这家公司,这家公司就倒闭了,你不管学什么都没用啊,这是关于这个问题。

我现在开始学习C++能赶得上研二下实现吗?现在是研一下到研二下还有一年的时间,我不知道为什么会给大家一种情况,我一年的时间这个东西我学不明白吗?包括我曾经也很长一段时间,包括我们我上大学的时候,我曾经学开发的C/C++语言,包括数据结构、操作系统、计算机组成,包括编译原理这一系列的,然后看的时候你发现好多好多东西,乃至后面还有项目,还有八股文,你发现整体很多东西,包括我们的当时还有qt,fmc这种,你会发现好像很多东西我半年一年时间能否搞定,我就一直在思考,这个东西它是否有点不对,是否有一条更加捷径,更加合适的方式,让我们能够快速的去上手,能够去做这个事情,能够快速的使我们把它吸收明白。其实后面让我想到了,你比如说计算机网络那本书,谢老那本书。那讲的什么?从物理层、数据链路层、网络层、传输层以及到应用层上面的,包括会话层表示层应用层。然后这个东西你发现看完之后你写不出代码,你没有代码可写,包括操作系统学这个东西你会发现你也没办法写代码。但是去了企业之后,你作为一个软件工程师,首先你面临的就是你得写代码,你得去搞定问题。你大部分的问题是代码所产生的,所以撇给你,你把这种问题搞定,你这个过程有没有一个方式它会更短一点。其实后面我再思考一下,我们能不能够就直接从项目开始,就直接你比如说我学完C/C++语言,我就结合着数据结构,我把数据结构把它封装一遍,封装完之后我后面就用我的数据结构,然后我去迭代我的数据结构库,比如这里面链表、队列、栈、红黑树、B树、哈希、跳表这些东西,我封装完之后我自己在用我自己的,你会发现刚开始封装的时候,你的接口不一定做的好,包括结合的多线程情况下,线程安全的不一定能做,包括结合的多进程的时候,这种情况它也不一样。那你就会发现包括在共享内存使用的时候,它也会不一样。所以你会发现你在封装的库,你也会随着你使用的场景越来越多,你会逐步去迭代你的库。所以在这里就讲了一点,在后面再仔细思考的时候,它能够去把这个做成一个个项目去解决具体问题的时候,我认为这种方式它是最快的。随着你解决的问题越来越多,随着你累积的方案,解决问题的方案越来越多,你的工程能力它就会越强。这是跟大家讲到的这个技术能力。

但是这里话又说回来,这个面试它等于你的技术实力吗?就是你发现我面试的时候,他要你手写代码,有,但是你会发现真正决定的它是面试,面试的过程中它不是让你去写代码,比如给个工程问题让你直接搞定,它不是的,它是让你能够表达出来,它是要能够说,所以这个技能上面和后面面试上面它是有一定差异的,但是两者它又很有关联。比如说在这个技术表述的时候,你包括很多朋友在表述,比如问这个进程线程,那很多朋友说进程是程序的一次执行,线程是操作系统最小的调度单位,这种话术你可以不断讲,但是你会发现东西说完之后,就是书上面的概念。结合的问,比如你在哪个地方用过线程,你线程怎么用的,如何解决问题的,包括进程你在什么时候选,你怎么用的,你就发现你没写过代码,没有这个技术实力,你是讲不出来的。你这个东西它不是通过背能够有这个感觉的,就跟做过和没做过它是有本质性区别的。这一点讲的什么?其实这里讲的就是一年的时间,你结合着项目来做,你就即使把数据结构封装一遍,然后结合着网络做一遍,然后再做一个产品项目。就从数据结构开始,你就比如说就给你提一个web server这个项目,你就把数据结构封装完,你就把网络做一个web server,Web server里面的IO管理,包括内存管理,然后包括线程池、内存池,你用的就用你前面的数据结构,然后封装完之后,你再把这个web server在做一个类似于网页面的即时通讯,这种工具你把它做到上线,你能用别人用,你就跟你女朋友聊天,你让你女朋友帮你测,这个就可以了。你做到这一点,你就发现这里几个项目它是一脉相承过来的,那这个过程它就会慢慢的使你,你做完这个项目,你做完的封装的库你自己用,你封装完的库,封装完的底层框架你自己用,做完之后你再把它做成产品化,你会发现整体上面你是会很扎实的。

那这个时间里面你需要一年吗?它肯定不需要一年,肯定不需要。真的来说你每天能够花个3个小时,每天你就后面找一图书馆,找一个自习室,你就自己每天三四个小时,你不用一年的时间,真的能通过这三四五个项目的时候,你自然而然你就发现你技术实力会很强。后面面试的时候,你就把你自己讲的,把你自己做的东西表述清楚就可以了,没有这么复杂。

总结:

  1. 职业寿命和语言无关,关键看公司和行业别信“C++比Java谁寿命长”这种话,能不能干得久全看公司稳不稳。比如去游戏公司用C++做引擎,公司黄了照样失业;去银行用Java写业务,只要银行不倒就能接着干。国企也不是铁饭碗,现在照样裁员,与其纠结语言不如挑个靠谱行业(比如军工、自动驾驶)。
  2. 一年时间学C++足够冲大厂实习别从头死磕理论:直接上手项目,比如先用C++把数据结构(链表、哈希表)自己实现一遍,再用这些数据结构搭个Web服务器。项目链条化:比如先写个网络聊天室,再给它加个网页前端(用你之前学的Vue),最后部署到云服务器让朋友实测,三个月就能攒出能吹的项目。
  3. C++学习暴力三步走第一阶段(2个月):用C++复刻STL核心组件(比如手写vector、红黑树),顺带搞明白内存管理和模板。第二阶段(3个月):写个带线程池的Web服务器,处理高并发请求(参考Muduo源码),同时学CMake和Linux系统编程。第三阶段(4个月):做硬核项目——比如用C++写个简化版Redis(GitHub搜tinyredis),或者给开源项目(如Nginx)提交代码补丁。
  4. 面试靠“项目故事”不是八股文面试官问“进程线程区别”,别背课本,直接说:“我在Web服务器项目里用线程池处理请求,后来发现线程切换太耗资源,改成协程后QPS翻了3倍”。把项目中的踩坑经历变成谈资:比如手写内存池解决服务器内存碎片,或者用RAII机制防止资源泄漏。

计算机相关专业就业求职学习路线/offer选择/职业规划建议

工种浩:程序员yt (学习就业困惑?我们来为你答疑解惑!)免费投稿 投稿必回

#职业规划##计算机#
计算机就业职业规划辅导 文章被收录于专栏

解决计算机相关专业就业/面试/技术提升等问题解答(投稿必回)

全部评论

相关推荐

评论
2
5
分享

创作者周榜

更多
牛客网
牛客企业服务