通知:代码随想录算法训练营 46期在下周三(9月11日)开营,目前可以报名,提前拉群做等开营。
刚刚入职的录友,都会发现,稍稍大点的公司都是自己单独一套开发框架,和我们平时学的技术还不太一样,不通用。
反而小公司技术栈更通用一些,因为小公司为了节约成本,直接用开源的东西。
以下是知识星球里一位录友的提问,发现公司技术栈不通用,很苦恼。
卡哥您好,我是24届的毕业生,已经工作了两个月了,当初面试的时候面的是cpp岗位,但是现在部门使用的并不是cpp,而是自己开发的一套工具。
我本人比较倾向于写cpp或者qt,一来公司的工具并不通用,如果跳槽很受限制,二来对cpp也更感兴趣。
想问问卡哥工作中要怎么提升自己写项目能力?其次是在哪里可以找到质量比较高的cpp开源项目?
谢谢卡哥的回答🌹
Carl答:
公司使用内部工具或者内部系统很正常,即使你跳槽其他公司也都是这么做的,大公司更是完全封闭的开发环境。
如果内部系统很通用的话 对员工跳槽有帮助,对公司稳定没帮助。
所以你会发现大厂内部热衷于造轮子,就是有分明有很好用的开源框架,不用,都是自己造。
从公司角度,公司需要自己开发生态环境,才能将技术沉淀在公司内部,同时也防止代码工程被离职员工拿走。
从员工角度,当部门无事可做的时候,领导一般都是开始造轮子,保住这个部门就是让这个部门有事可做,要不然不就被裁了。员工也是拿着轮子年底才好晋升。
所以这是正常的。
你可以先定期设定小的项目目标,逐步构建大型项目。
例如先去复现经典项目:可以尝试复现一些经典的C++项目,比如数据库引擎、操作系统内核模块等。这样能锻炼你的底层技术实现能力。
公司内部应用:你可以试着在公司的业务或项目中找到可以引入C++或Qt的场景,做一些创新或性能优化工作。
比如,你可以提出用C++实现某些核心模块,提高性能,向团队展示C++的优势。(这个就比较有价值了)
除了功能实现,你可以关注一下公司代码的可维护性、可扩展性。
可以用你的写的工具 来做单元测试或者性能分析。这些是工业级项目非常重视的技能。
关于高质量的C++开源项目,我这里列几个:
Abseil:Google的C++库,提供了许多基础工具和实用函数,适合学习工业级C++代码。 Boost:广泛使用的C++库,它涵盖了从数据结构、算法到并发、IO操作的各个方面。 Redis:虽然Redis本身是用C写的,但其源码的架构设计和性能优化思路可以借鉴,并且有一些C++的客户端库可以学习。 Awesome C++:这是一个 GitHub 上的 curated list,汇集了许多高质量的C++项目和资源。
准备求职的录友们都在代码随想录知识星球 每日打卡,星球置顶一,硬核资料可以让大家少走很多弯路:
已经有3w录友加入了知识星球,方向比努力更重要,一群人可以走的更远!