双非本211硕士非科班,C++学完基础后如何继续深入?未来投递哪些岗位和企业最合适?
今天给大家分享的是一位粉丝的提问,双非本211硕士非科班,C++学完基础后如何继续深入?未来投递哪些岗位和企业最合适?
接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。
同学提问:
我是一名双非本211硕的学生,本科电子信息,硕士交通运输工程(在通信工程学院),目前研二,因为本科学过C++,现在读研用的也是C++,但其实没啥自己的项目,所以学的C++,然后现在是学完了基础语法和数据结构之后在刷题,也学了一点网络编程的内容,研一的时候因为自己的方向学了一些tcp/ip协议的东西,想请教您后续C++的学习路线是怎么样的呢,然后后续投递岗位以该以什么方向和企业为主呢?
Yt回答:
本科电子信息,研究生是交通运输工程,本科学过C++,读研也用的是C++,但其实没啥自己的项目。能够看得出来是一种纯学,这就是典型的一种都是一直在学啊,学完之后没有做,就是一直学一直学,我不断的想去学点新东西,没有做,没有一个产出,没有一个结果,没有一个产品能够出来,所以就导致越学越迷茫。这是很多朋友自学都会出现这个现象,这个东西它不是你的问题,它是自学避免不了的,它肯定会出现,它不以人的意志为转移,都会是这样的。如果你在一种你只学没有产出,只学没有项目,只学没有一个产出,没有一个结果,那你就发现你一直学你肯定会迷茫,不是你的问题,它不以人的意志为转移。因为你会发现在这个学完基础语法和数据结构之后就在刷题,首先刷题我认为它肯定是要刷的,刷题的话但是不是在这个时候学点数据结构就开始刷题,那刷题你发现它中间一个很重要的情况还是没有解决,就是没有一个产出,没有一个结果,这个东西它很重要。我们做程序员YT这个账号很核心的一个理念:就是大家要有一些产品化的东西,一定要有个产品,我们几乎每个回答都含沙射影的都在讲,而且很多回答都是直白的在讲,你一定要有一个项目,有一个产品,不管什么东西,你一定能用的东西,你再去把你所学的语法也好,数据结构也好,设计模式也好,包括网络也好,乃至包括Linux也好,你能够去用起来,能够做一个产品出来,你就能够知道这些技术它在整个产品环节中间它是哪些东西。你比如说TCP/IP,很多朋友从一开始就从TCP/IP协议开始,我认为TCP协议它很重要,但是请注意你如果把它当做一种学术研究去研究这个东西,那你就发现是一种纯理论性的东西,你没有做到一种工程实践我能够用它。
你一定就是做两个项目出来,那到底做什么呢?结合着网络来说,你现在目前我认为你实现一个webserver也行,就实现一个webserver,你把你前面基础的语法、数据结构、网络这些东西能够揉起来,做一个webserver,但是请注意这个webserver它是不能写到简历里面的。那很多人说这个不是项目吗,我有项目呀,这个webserver为什么它不能写到简历里面呢?这种简历里面你一定要能够解决具体问题,就是你这个项目的背景意义,就是你为什么会做,如果你比如写webserver,你就发现一种情况,我就是为了学,为了把我之前学的东西能够揉到一起,但是我没有想过去解决具体问题,那你会发现学这东西它就没有意义。你有没有考虑过一个情况,就好比学厨师一样,炒菜一样,我就学先放油,放猪油怎么放,放植物油怎么放,放盐怎么放,放蚝油怎么放,放菜怎么放,颠锅。但是我就是没有一道合适的菜,我从不炒。那你会发现这个过程中你没有一个菜出来的话,没有一个产品出来的话,那你是很难能够把你学的这所谓的放油也好,放盐也好,放蚝油也好,颠锅的这种技巧没有揉到一起。就是你没有一个产品,没有一个东西能够把这些东西揉到一起。你就发现你学再多,你学了就是为了忘,而且学完之后过一段时间你就不记得了,就是这样的。所以跟你讲到的后面来说你的学习路线上面,就是一定要有一些产品化的东西。
你就比如学完数据结构,你把数据结构封装完以后,你后面的项目能不能用。你比如说你学完数据结构,队列也好、栈也好,链表也好,包括环形链表也好,双链表也好,然后你都把它封装成这种数据结构,你自己后面项目你就用你的。包括这种数也好,二叉树、234树、B树、红黑树你都把它封装出来,你后面自己的项目自己用,你封装的库你自己用,包括这种图封装出来你自己用,反正给你的就是接口,你自己去用它。比如实现这个webserver的时候,你比如管理每个连接时长的时候,加一个定时器,那这个定时器里面你就可以用红黑树,你把它加入进来。那你能不能用到这个过程中间,你才能够知道学这个东西它有什么用。如果没有一个产出,没有一个项目,你把这个技术揉到一起,你越学越迷茫越学越迷茫。这个真的它不以人的意志为转移,这就是我们在这里做程序员YT这个账号能够跟大家去分享的东西,就是跟大家讲的项目。那很多朋友呢你比如就直接跟他说,你比如去做一个什么什么项目,那很多朋友比如做一款即时通讯,做这个项目,做一款用于你跟你女朋友聊天的这种即时通讯的工具,你去做吧。那很多朋友就会出现的情况,在github上找个现成的,我跑起来,我也做了一个项目,我把这代码熟悉一遍是不是就可以了。这个项目大家各位你一定要自己动手去做,你可以实现完之后去对比别人怎么做的,你比如说你在实现这个即时聊天的时候,实现单表的时候,实现群聊的时候,你实现完你去考虑这个聊天的记录,我的数据库里面存,你先按照你的思路先实现一遍,实现完之后你发现好像不是那么稳定,好像用着用着它有点崩,对应来说你就把这种问题都解了,然后你再去看看开源的版本,别人怎么做的,他的表怎么建的,他的数据库怎么建的,比如他的IO怎么管理的,你再对比他的,然后你再去取长补短,把它吸收给自己,你再去把你的项目再进行迭代,你会发现你第二个版本肯定会比第一个版本好。第二个版本你做完之后,你就发现在第一个版本的基础上面,你有了第一个版本,第二个版本在做的时候你肯定就会想,之前这些业务我都是有的,我有没有地方我可以融一些设计模式,或者说我在考虑我能不能用多个人开发,我能不能开发一个基础的框架,然后别人在上面开发,我只要做业务就可以了,我能不能引入一些设计模式,一些设计一些架构相关的。第二个版本做完之后,你就发现你会比基本上的这种项目你就好很多。第二个项目你在做的时候,你就发现这个好像运维部署它还有点难,好像我把它做到产品化,比如说我只能在我的机器上部署,我没办法部署到其它机器上面,或者说我在开发完之后我代码去迭代的时候我还需要重新编译,我能不能够更好的去做。你肯定就会融入一些这种运维的元素,以及更好的把它去部署,更好的去使用。你把它做好之后,第三个版本你就把更好的部署的环节,做的那种CICD这种持续集成,你把它融入,把docker化部署,你把它融进去。做完之后你会发现这个过程好像还不是那么好用,比如说我现在不在线的时候,我能不能有一些短信提醒,你会发现第三个功能,慢慢你的整个项目就会越来越完善,越来越像个产品。
我跟大家讲的这个产品是什么?不是大家找一开源版本,直接把它跑起来,而是你真的能够经过一代一代一代一代的去迭代,根据它的问题你迭代第二个版本,迭代第三个版本,迭代第四个版本。你自然而在这个过程中,你就能够把你所有学的东西你都能够融进去,你后面就凭着你这个项目找工作就可以了,并且来说你的面试官就能够看到这东西。所以在这个过程中间,你就会发现你这种迭代它就会不断的有一种改进的思路。这就是跟你讲的接下来怎么做,做一两款产品,迭代两到三个版本,你做一款产品迭代二到三个版本,做完之后重新推倒再来一遍,推倒再来一遍,你自然而然你发现你水平不会太菜的。就跟炒菜一样,你刚开始炒完之后,所有的放进去炒完之后我发现不那么好吃,你再去迭代,你发现到底是哪个地方可能盐放多了,或者油放多了,或者水放早了,或者是菜放晚了等等这种情况或者火太大了,你就不断的去迭代,慢慢迭代你就会有一套自己的经验,这种东西就是你的东西了。
至于这个投递岗位以什么方向和企业为主,你不用去考虑这个问题。你就把这个项目写在你简历里面,所有的方向都投递,后面面试的时候你就聊你这个项目就可以了。那很多朋友说那这个东西他后面不对我项目,肯定会有人感兴趣,所有的企业都对你这个方向感兴趣是不可能的,而是你就以你做过东西写到简历里面,面试你就把你项目聊清楚就可以,把你那些融入的技术,那些元素,你把它聊清楚,我怎么怎么做的就可以了,好吧。
最后:
兄弟,别光啃书刷题了!赶紧找个实际问题(比如做个聊天工具),自己动手写代码,从能做出来→到做稳定→再到做好用,迭代两三版。把你学的数据结构、网络啥的都塞进去用!做一两个项目做透写简历上,然后海投就完事了!方向不方向,等你拿到offer再挑!
计算机相关专业就业求职学习路线/offer选择/职业规划建议
工种浩:******(学习就业困惑?我们来为你答疑解惑!)免费投稿 投稿必回
#职业规划##计算机#解决计算机相关专业就业/面试/技术提升等问题解答(投稿必回)