一个菜鸟程序猿的跳槽经验谈(附c++笔试面试总结)

2 篇文章 0 订阅
1 篇文章 0 订阅

背景:鄙人c++菜鸟一枚,工作不足两年,以前做工业自动化业务背景下的c++前后端开发工作。想想自己的同学朋友,有车的有车,有户口的有户口,有房的有房,而我还在浑浑噩噩,不免悲从中来。于是,我也想在这个跳槽季做一次转型,向互联网公司靠拢。

 

计划与行动:

1.选方向:首先做一件事就是有个方向,自己比起那些事业上起色很快的同学最大的问题就是没有一个方向,或者说没有一个明确的方向。因为没有很强烈的为某一个方向努力的决心所以很多时候遇到困难会轻易放弃。随着java、php、node.js甚至python等脚本语言都可以做服务端开发后,c++的就业前景不是很乐观。

那么目前还有那些公司用c++呢?这就需要先说说c++的优势。我总结的c++大概有那么两条优势:早期的服务后台开发唯一首选;性能优势。对,就是这两条,很多的传统行业比如银行系统软件、工业自动化方面等等,由于早期都是用c++开发的后台,所以目前在这些行业里还是有一定的使用量的。那另一个就是c++本身语言的优势了,相比目前流行的几种后台开发语言来说,c++是处理效率最高的,因此向游戏开发、搜索引擎、网络通信、大型互联网服务器底层很多都用c++。

列举了c++的应用行业,我自我分析了一下,传统行业不想去了,我要挣钱挣钱挣钱。而通信行业莫名感觉会走下坡路,那剩下的就是做游戏开发,搜索引擎,网络或者进梦寐以求的大型互联网公司。可是又综合自己的实际能力,搜索引擎和网络门槛还是挺高的,大型互联网公司可能面试的机会都没有,那只有游戏开发最合适了。

 

2.看招聘要求:通过招聘网站上我总结了游戏开发包含游戏引擎开发、游戏后端服务开发。引擎开发可能涉及到很多2D、3D图形学的问题,同时还有很多前端开发,例如用qt;后端开发涉及游戏逻辑、数据库、网络,但是游戏逻辑往往是最多的工作,因此了解一些tcp网络、数据库的简单实用剩下的就是业务逻辑了,如果你恰好还喜欢玩游戏那就更完美了。

 

3.找资料:笔试面试本质上还是考试,既然是考试的就必然会有三年模拟五年高考类型的套题,经过我上网搜索并自己整理,终于整理出来了c++基础知识、c++数据结构与算法、c++网络通信与多线程三部分内容。(可以进我的csdn资源下载https://download.csdn.net/my)

 

4.投简历:我先在拉钩上投了自己的简历,但是总是到“被查看”就再无音讯,在我对象的推荐下我用了boss直聘,那效率简直谁用谁知道。其他的招聘平台我没多用,不过听说有好多互联网的也经常用猎聘,可以自行尝试。

 

5.面试:如果是在职人员我建议最好周一、二、三投简历,周四周五请假面试,这样一方面可以有时间准备一下,还有就是可以把距离相近的公司安排在一天。每次面试后记下面试官的题,回去总结,很多时候面试官会问相同的题,比如我上午面试让我写链表反转,下午又遇到了。

 

6.其他的一些经验:

a.各公司的找人原则:小公司没时间培养人,所以他们不会找没有经验的,如果招肯定是看中你的便宜;中型公司可以短期的培养人,他们希望你是有一定基础的,能快速培养起来的,他们在考察的时候不会很细致,尤其是缺人的时候;大公司很看重你的基本功,这就是为什么你总是感叹为什么他们大量的招应届生也不找工作两年的自己,他们在问问题时很看中你的基本功,问简历上的项目时也问的很细致。大厂一定会问你数据结构与算法(链表反转必会问),尤其是工作三年内的同学,如果有相关工作经验然后就会问的很细致,把项目中有些问题点会深入原理去问。

b.投递简历时不要被招聘要求吓到,有很多公司招聘要求上写的很多,但是他们并不一定要求你都会,所以大胆的投简历。

c.刷刷题很有必要,牛客网之类的。

d.棋牌类的公司要求处理效率很高,内存合理使用;大型网游更注重安全性。可以看看闲徕互娱和途游在线的棋牌笔试面试题。要有针对性的准备笔试面试。

e.有一个好的心理素质很重要,这一点我做的很不好,面试会紧张,而且有时候面对考官没有思考能力。

 

https://download.csdn.net/user/u012076529/uploads这里有我总结的c++笔试面试基础、c++笔试面试数据结构与算法、c++笔试面试网络和多线程,取之网络,用之网络,希望大家都能有一个好东家。 

 

-------------------------------------------分割线----------------------------------------------------

       写这篇文章的时候刚去一个二线互联网公司,现在来到了阿里,最近又有一些面试的新得,请移步到:https://mp.csdn.net/console/editor/html/107599643

       为了能帮助到大家,我可以帮大家内推阿里各部门,应届生和社招生都有名额,欢迎留言,格式:应聘岗位-联系方式

 

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
好的,以下是一个简单的菜鸟驿站系统的设计: 1. 定义数据结构 首先,我们需要定义数据结构来存储包裹和快递员信息。我们可以使用结构体来表示它们: ```c++ // 包裹信息结构体 struct Package { int id; // 包裹编号 string sender; // 寄件人姓名 string receiver; // 收件人姓名 string address; // 收件地址 bool isDelivered; // 是否已送达 }; // 快递员信息结构体 struct Courier { int id; // 快递员编号 string name; // 快递员姓名 bool isAvailable; // 快递员是否可用 }; ``` 2. 实现菜鸟驿站类 接下来,我们可以实现一个 `CourierStation` 类来管理包裹和快递员。该类可以包含以下成员变量和方法: ```c++ class CourierStation { private: vector<Package> packages; // 包裹列表 vector<Courier> couriers; // 快递员列表 public: // 添加包裹 void addPackage(const Package& package); // 删除包裹 void removePackage(int packageId); // 更新包裹状态 void updatePackageStatus(int packageId, bool isDelivered); // 添加快递员 void addCourier(const Courier& courier); // 删除快递员 void removeCourier(int courierId); // 查找空闲快递员 int findAvailableCourier(); // 显示所有包裹和快递员信息 void display(); }; ``` 3. 实现菜鸟驿站类的方法 下面我们来实现 `CourierStation` 类的方法: ```c++ void CourierStation::addPackage(const Package& package) { packages.push_back(package); } void CourierStation::removePackage(int packageId) { for (auto iter = packages.begin(); iter != packages.end(); iter++) { if (iter->id == packageId) { packages.erase(iter); break; } } } void CourierStation::updatePackageStatus(int packageId, bool isDelivered) { for (auto& package : packages) { if (package.id == packageId) { package.isDelivered = isDelivered; break; } } } void CourierStation::addCourier(const Courier& courier) { couriers.push_back(courier); } void CourierStation::removeCourier(int courierId) { for (auto iter = couriers.begin(); iter != couriers.end(); iter++) { if (iter->id == courierId) { couriers.erase(iter); break; } } } int CourierStation::findAvailableCourier() { for (auto& courier : couriers) { if (courier.isAvailable) { courier.isAvailable = false; return courier.id; } } return -1; // 没有空闲快递员 } void CourierStation::display() { cout << "Packages:" << endl; for (auto& package : packages) { cout << "ID: " << package.id << ", Sender: " << package.sender << ", Receiver: " << package.receiver << ", Address: " << package.address << ", Status: " << (package.isDelivered ? "Delivered" : "Undelivered") << endl; } cout << endl; cout << "Couriers:" << endl; for (auto& courier : couriers) { cout << "ID: " << courier.id << ", Name: " << courier.name << ", Status: " << (courier.isAvailable ? "Available" : "Unavailable") << endl; } cout << endl; } ``` 4. 测试 最后,我们可以编写一个简单的测试程序来测试 `CourierStation` 类的功能: ```c++ int main() { CourierStation station; // 添加包裹 Package package1 = {1, "Alice", "Bob", "123 Main St", false}; Package package2 = {2, "Charlie", "David", "456 Main St", false}; station.addPackage(package1); station.addPackage(package2); // 添加快递员 Courier courier1 = {1, "John", true}; Courier courier2 = {2, "Mary", true}; station.addCourier(courier1); station.addCourier(courier2); // 查找空闲快递员 int courierId = station.findAvailableCourier(); if (courierId != -1) { cout << "Assign package 1 to courier " << courierId << endl; station.updatePackageStatus(1, true); station.display(); } // 删除快递员和包裹 station.removeCourier(1); station.removePackage(2); station.display(); return 0; } ``` 输出结果应为: ``` Assign package 1 to courier 1 Packages: ID: 1, Sender: Alice, Receiver: Bob, Address: 123 Main St, Status: Delivered ID: 2, Sender: Charlie, Receiver: David, Address: 456 Main St, Status: Undelivered Couriers: ID: 1, Name: John, Status: Unavailable ID: 2, Name: Mary, Status: Available Packages: ID: 1, Sender: Alice, Receiver: Bob, Address: 123 Main St, Status: Delivered Couriers: ID: 2, Name: Mary, Status: Available ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值