V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sc3263
V2EX  ›  杭州

基础没打好,找 C++的工作好难。。。

  •  
  •   sc3263 · 2016-07-01 00:18:23 +08:00 · 4463 次点击
    这是一个创建于 3097 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这几天面试,想找份 C++的工作。结果被各路大神各种虐。快被自己蠢哭了。

    第一家公司做企业网盘的,需要重构桌面客户端。面算法的时候崩了。"N 个元素中取第 K 大的元素"没答出最优解,"找出数组中重复次数过半的元素"面试的时候除了各个元素计数最后找重复次数最大的元素之外,完全没有任何思路。(结果面试一结束就想到排序取最中间的元素。最优解更优雅,遍历数组剔除不同的两个元素)。最后 HR 礼节性的问了下期望薪资啥的。还是毫无悬念的被拒了。

    第二家公司要做计费系统,还是做桌面客户端的。吸取之前的教训,好好复习了下算法,技术面没啥问题,薪资待遇没谈拢。实在接受不了”试用期没有公积金,转正了按照 6000 基数交公积金“,外加地点离自己买的房子太远了,没接受。

    第三家公司做安全的,应该是被虐得最惨的一次了。画之前项目的架构图,画自己重写的模块的时序图。发现自己做过的项目自己都快忘了。特别是底层的通讯机制,真的是一边回忆一边画一边被吐槽,整个人都懵逼了。最后连“监听的 socket 有新连接进来时, select 中监视的事件是什么”都反应不过来。直接被面试官质疑”这个模块你到底有没有做过,到底负责哪个功能。你说出来我们才能好好聊“。最后还被面试官指出了发现了一堆之前根本没意识到的 bug 。读取线程读取 socket 并解码数据的时候把 fd 的值存在数据对象中,写入线程从数据对象中取出 fd ,把编码后的数据写入对应的 socket -> 读取时发现 socket 断开了, socket 关闭, fd 归还给操作系统。之后新连接复用了原来的 fd 的值。再然后写入时从数据对象中取出 fd 并写入。导致原来应该发送失败的数据,现在直接发给了某个随机客户端。这个 bug 真的一直都没注意过。

    瞎写了那么多,其实总结下来就是,自己学艺不精。本来就是非计算机专业毕业,基础差,还不好好努力补。遇到问题上 google 搜一下,解决完就忘。很多东西都只是囫囵吞枣的理解了一下。大致说一下原理吧,都知道。一问细节吧,瞬间懵逼。还有就是,简历上写的东西,一定要确保自己真的真的都吃透了。要不然真的很尴尬。。。

    37 条回复    2016-07-19 17:37:24 +08:00
    kingddc314
        1
    kingddc314  
       2016-07-01 00:40:15 +08:00 via Android
    C++后端更不好找
    sc3263
        2
    sc3263  
    OP
       2016-07-01 00:47:55 +08:00
    @kingddc314 简历上写上 Qt 的话,很快就能找到工作的。但是真的很想找 C++后端开发的。去面试的几家公司,要么是后端,要么有能往后端发展的机会。感觉 C++这种语言,就是要追求跑得稳定跑得快,否则的话根本没必要用。。。但是 C++前端,真的没那么多机会给你优化性能。
    3dwelcome
        3
    3dwelcome  
       2016-07-01 00:59:22 +08:00 via Android
    看你第二次挺顺利的、只是公积金不够罢了。和相亲一样、自己的要求高、期望值高、遇到合适的机会肯定就少很多。

    很多时候、并不是技术不够、而是缘分问题。要说技术、 github 上大神一堆、追求没底的、 c++开发人员很容易陷阱细节、其实有 google 、肯努力肯学习新知识、这都不叫事。

    面试被拒不是技术不够、大部分是公司也不是那么真诚的想招人。要不就把技术面拉的很高、要不就把薪资压到很低。
    sc3263
        4
    sc3263  
    OP
       2016-07-01 01:31:36 +08:00 via iPhone
    @3dwelcome 感谢你的安慰。这事儿确实就和谈恋爱似的,得看缘分。
    Andiry
        5
    Andiry  
       2016-07-01 06:07:31 +08:00
    面的这些东西和 C++没什么关系吧。
    sc3263
        6
    sc3263  
    OP
       2016-07-01 07:59:06 +08:00 via iPhone
    @Andiry 因为面 C++的部分没写。毕竟靠这个语言吃饭的,常见的语法特性坑都还比较熟,聊起来都没啥问题。太深太新的部分,了解的不深,但工程上也很少用,面试的时候也很少问细节。毕竟绝大部分公司的编译器都被智子锁定在很古老的版本上😂
    gulucn
        7
    gulucn  
       2016-07-01 08:54:59 +08:00
    @sc3263 ,既然第一家公司也喜欢这种面试题,推荐你看一下 http://blog.csdn.net/v_july_v/article/details/6543438 ,肯定对面试有帮助
    sc3263
        8
    sc3263  
    OP
       2016-07-01 09:07:45 +08:00 via iPhone
    @gulucn 嗯谢谢~我瞅瞅~
    Rect
        9
    Rect  
       2016-07-01 09:19:34 +08:00
    ”试用期没有公积金,转正了按照 6000 基数交公积金“

    哥们这其实没什么问题。放弃三个月公积金(这三个月公积金即使交了最多不到 3000 块)而获得一次机会,很划算呢。
    sgissb1
        10
    sgissb1  
       2016-07-01 09:24:55 +08:00
    从你的面试经历上看,我只看出第一家和第三家你确实可能不适合对方的岗位。

    另外第一家面试上来就考所谓的算法题,在想这会不会不妥。因为岗位和面试者的职业背景都需要考虑一下,不是一味的考算法就能体现出面试者或者岗位水平如何。

    第二家的话,我估计可能还是你自己心态需要调整。总体来说,看你描述,你和对方公司都也不足的,也不需要过于自责
    iamzhuyi
        11
    iamzhuyi  
       2016-07-01 09:27:04 +08:00
    我只看到楼主都买房了。。
    acoder2013
        12
    acoder2013  
       2016-07-01 09:52:59 +08:00
    @iamzhuyi 我也是。。。
    3dwelcome
        13
    3dwelcome  
       2016-07-01 09:58:53 +08:00
    买房不是很正常,写 C++一般都是有好几年工作经验的老码农,涉及核心代码,他们工资自然不会低。

    找个 C++工作薪资肯定比 IOS 要好不少,后者的同行竞聘都是刚毕业的小朋友。而 C++不一样,同事年龄工资都高,自然水涨船高了。开得出价格。
    testlc
        14
    testlc  
       2016-07-01 10:07:50 +08:00
    @sc3263 上面你提到的连接池的 bug ,面试官提了建议吗?感觉是没有及时调整事件对应的 fd ?
    sc3263
        15
    sc3263  
    OP
       2016-07-01 10:17:36 +08:00
    @Rect 主要还是太远了。。。等地铁通了基本就是坐地铁从城的西北边->市中心->城的东北边。至于公积金,我个人的经历是,试用期不给公积金的公司,通常还会有其他我个人不太能适应的规定啊公司制度啥的。。。

    @sgissb1 确实没满足他们的条件。所以在恶补,顺带感慨一下,要补的东西有点多。第一家的面试,事后沟通的时候 hr 也说了,确实特别需要算法,所以面试的时候很看重这个。

    @iamzhuyi
    @acoder2013
    其实还是在啃老。。。妹子说差不多该买房了,然后发现自己攒的家里攒的亲戚那边借的钱加起来,刚好够付个首付,然后就买了。至于“半年后推荐朋友买隔壁楼的房子,同样面积的户型,价格一样还送个车库外加装修升级”什么的,就是另外一个悲伤的故事了。。。
    sc3263
        16
    sc3263  
    OP
       2016-07-01 10:31:55 +08:00
    @testlc 面试官只是提出来这个问题,问我当时在项目里有没有处理。确实是没有及时调整各个消息对应的 fd 。原先的 socket 已经断开连接了,消息应该发送失败,然后记录下来。现在直接发送出去了,没有记录这条错误。虽然说因为各种原因,实际并没有出现过这种 bug 。但总归是个问题,而且还是面试官一看就意识到,而我一直都没想到的问题。
    testlc
        17
    testlc  
       2016-07-01 10:36:35 +08:00
    @sc3263 嗯嗯
    but0n
        18
    but0n  
       2016-07-01 10:44:13 +08:00 via iPad
    有过类似的经历,当时就懵逼了😂
    zhaohui318
        19
    zhaohui318  
       2016-07-01 11:19:46 +08:00   ❤️ 1
    "找出数组中重复次数过半的元素"

    貌似是这个算法 https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_majority_vote_algorithm
    sc3263
        20
    sc3263  
    OP
       2016-07-01 11:34:15 +08:00
    @but0n 其实还是基础差,有些东西要想一下才能回答出来。一下子懵逼就想不出来了。。。

    @zhaohui318 嗯,就是这个算法,原来那么有名~刚搜到的时候着实被惊艳了一下。。。谢谢~
    acros
        21
    acros  
       2016-07-01 11:36:03 +08:00
    @zhaohui318 这个我是在 leetcode 上看到的···

    目前还在 easy 难度推进中···
    j4fun
        22
    j4fun  
       2016-07-01 17:42:04 +08:00
    不知道 LZ 有没尝过被面试官忽悠的经历。刚开始答的很顺利,我说的眉飞色舞。然后面试官突然转移话题,问了个很奇怪的问题,看我答不上来,他就围着这个问题一顿问,当时就懵逼了。我居然还问什么都不会,适合这个岗位么。回想起来我那是脑子肯定进水了 = =!而且后来去查了相关的知识点,发现面试官说的是错的,喵的!= =
    carlding
        23
    carlding  
       2016-07-01 18:41:25 +08:00
    第一个的两道算法题都是“结构之法”上的。第一题快排,第二题根本不需要排序...时间复杂度 o(n),空间复杂度 o(1)就可解出~~~
    sc3263
        24
    sc3263  
    OP
       2016-07-01 18:51:28 +08:00 via iPhone
    @j4fun 刚工作那会儿经常遇到类似的情况。现在好像少很多了。我猜,大约是面试的企业越来越靠谱了😂
    sc3263
        25
    sc3263  
    OP
       2016-07-01 18:53:12 +08:00 via iPhone
    @carlding 嗯,回来查资料的时候看到了。正在向楼上的哥们学习,努力刷 leetcode 。。。
    Lautitia
        26
    Lautitia  
       2016-07-01 21:07:12 +08:00
    小哥啥专业的,怎么想想入了计算机这个坑
    sc3263
        27
    sc3263  
    OP
       2016-07-01 21:25:50 +08:00 via iPhone
    @Lautitia 一直以来的梦想就是当个程序员。高考填志愿的时候爹妈不懂,填了个其他专业。于是毕业之后就一直在填自己当年挖的坑了。。。
    Lautitia
        28
    Lautitia  
       2016-07-01 21:44:58 +08:00
    @sc3263 我觉得吧,你没必要入 C++的坑,别的语言也是可以的呀,能在计算机领域发挥你原有专业的特长是最好了
    sc3263
        29
    sc3263  
    OP
       2016-07-01 21:55:38 +08:00 via iPhone
    @Lautitia 原先专业的知识已经丢的差不多了而且对那个专业真的是没啥兴趣。。。
    newghost
        30
    newghost  
       2016-07-02 11:47:25 +08:00
    跟基础没关系, C++国内需求偏写,学 JS 大法吧。

    你第一家做企业网盘的公司叫什么?
    sc3263
        31
    sc3263  
    OP
       2016-07-02 12:28:06 +08:00
    @newghost 现在待的单位需要,正在学呢。然而还是想继续写 C++。
    ShiHou
        32
    ShiHou  
       2016-07-02 12:35:06 +08:00
    第一个是快选,第二是在栈上做消除。 建议去系统的补一下数据结构吧。
    sc3263
        33
    sc3263  
    OP
       2016-07-02 13:42:21 +08:00
    @ShiHou 恩。正在补。
    jeffersonpig
        34
    jeffersonpig  
       2016-07-02 14:26:48 +08:00
    @j4fun 这种情况一般是面试官故意“刁难”你,这是种面试手段。问这种问题一般不是为了了解你懂不懂,只是为了看应聘者在紧张情况下能不能有清楚的思路罢了,至于说得对不对,面试官也不关心
    lixingcong
        35
    lixingcong  
       2016-07-02 22:56:01 +08:00 via Android
    那个断 socket 的 bug 很像 shadowvpn 的 bug 。。

    具体表现为,路由器使 shadowvpn 翻 q 时偶尔出现 connection reset ,抓包发现是局域网其他 ip 发送 reset 到我的 ip 。。。醉了
    j4fun
        36
    j4fun  
       2016-07-14 12:28:14 +08:00
    @jeffersonpig 对,当时确实就慌了。。。脑子一片空白><...第一次面试唉~
    lv1015
        37
    lv1015  
       2016-07-19 17:37:24 +08:00
    @sc3263 楼楼,我还是感觉 golang 大法好。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   902 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:26 · PVG 06:26 · LAX 14:26 · JFK 17:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.