Discuz!大师网

搜索
123
返回列表 发新帖
楼主: Blanshard

开个帖子说说面试那回事

[复制链接]
 楼主| 发表于 2014-2-22 02:35:44 | 显示全部楼层
电面之后如果觉得应聘者不错基本下一步就on-site了,但有时候会加一轮笔试,比如不错的应聘者比较多,或者应聘者水平在平均线,比较纠结。on-site是比较耗费资源的事,应聘者如果不在附近,经济上说要负责因聘者的机票,宾馆,吃喝,面试的时候也要大概5,6个面试官抽出时间。

闲扯下笔试的形式,行业内笔试的形式五花八门,国内考卷式笔试居多,拉一堆应聘者,每人一份卷子,然后规定时间做完,负责笔试的再根据笔试的结果筛选。现在比较流行的还有在线笔试,开先河者主要是google, amazon.基本电面的时候,提前让你开个网页,边面边让你写程序,压力其实满大的觉得要求深厚的算法功底。大家有兴趣的可以去搜一下,这方面的文章帖子比较多,俺就不多说了。

我们的笔试形式有些不一样,因为嵌入式这行对算法有些要求但并不那么强烈。我们更注重对整个系统的理解以及设计。如果要求应聘者笔试,我们会通过email发过去要求,设计一个简单的嵌入式系统,时间一般给一到三天,看系统难易程度。你可以参考技术书,可以网上搜索,当然也不能阻止你作弊找人帮忙。coding的要求包括:要能实现个比较简单的kernel以及正确的task scheduling, 设计好你需要实现哪些task, 他们的priority如何来安排,task之间如何通信,系统有哪些必须的interrupt, 你怎样会处理这些interrupt等等。code要尽量写得简洁且结构化,因为时间充足,一些纯C的function有办法调试的话尽量去调试一下,尽量避免一些简单的语法错误,程序中在必须的地方要有合理的注释等等。总之,笔试主要看你对系统的理解,C或C++的功底以及data structure的应用等等。

电面或笔试过后就是最终的on-site了,后面会说说on-site的一些技巧,常见的技术题目以及一些behavior question啊等等。
发表于 2014-2-22 08:25:19 | 显示全部楼层
弱弱问一下 一个二本非计算机相关专业 要走计算机这条路 还需要什么?由于我们学校是弱校 所以我混进我们学校acm实验室 现在就会一部分的经典算法 没读过c/cpp标准 cpp只会一点stl 在oj刷了200多题
发表于 2014-2-22 08:41:00 | 显示全部楼层
发表于 2014-2-22 09:10:17 | 显示全部楼层
434000
发表于 2014-2-22 09:24:12 | 显示全部楼层
ACM的话,尽量保证每周能做两三道普通题(不涉及复杂算法)就行,不用把时间全部花在这上面,多搞些应用性质的东西,也就是有实际使用价值的东西,比如手机app,小网站之类,也可以去找同学一起去威客网接个小单子,这些东西在你毕业时就是你找工作的强大助力,很大程度能弥补你的学历劣势,而ACM其实如果能获奖(全国以上规模),那样价值比较大,但是即使你很努力,学校没那个环境也是基本没戏的,所以ACM主要作为锻炼动手能力的方式就行。
发表于 2014-2-22 09:34:19 | 显示全部楼层
必须赞
发表于 2014-2-22 10:21:30 | 显示全部楼层
顶起,不要沉,难得给力的贴子,果断收藏了,我今年大一,在黑大,就是普通二本学计算机,很茫然的说,楼主可以给一些建议么?
 楼主| 发表于 2014-2-23 19:44:57 | 显示全部楼层
鉴于吧里还是学生的比较多,很多童鞋希望得到一些关于大学计算机学习的一些建议,这楼就聊聊这个话题。
首先俺本科,研究生都是读的EE,所有关于程序的东西基本都是自学来的,非科班出身,如果说得不好请大神指正
很多童鞋问关于选C++还是Java,个人以为如果你没有任何程序基础,C不要跳过,即使你最终找的工作跟c没任何关系。
有了一些c的接触之后,C++, Java任选一个,到底是c++好还是java好,这个争论已经存在好多年了。个人认为没有好还之分,只有适合不适合你。看你以后想做的方向,比如你喜欢偏硬件一些,比如嵌入式,驱动开发,操作系统开发,或者大型游戏开发,人工智能,机器人之类的,那就C++. 如果你想做Android开发,大数据,云计算,Social media之类的大型网站开发那就Java.
语言只是工具,C++稍难比java复杂点因为灵活度高,Java的人转c++刚开始会有很多不习惯,c++转java稍微好一点。
从找工作上来说,十年前的是C++好一些,现在个人认为Java好一些。 这和IT的发展有很大的关系,十年前是硬件和操作系统的黄金时代(Intel和MS最辉煌的时候),但这几年以及下一个十年用户和数据是王道,
硬件和OS逐渐变成一个载体。便携硬件设备和智能家居也许这两年会火一点,但一样不过是为了取得用户群和数据。 MS收购诺基亚,微软收购摩托罗拉和现在的NEST是看中了能赚多少钱?当然不是。FB收购Whats App也不是因为利润,不过是为了灭掉一个对手以及获得更多的用户。
扯得有点远了。。。Python其实也不错,在校有精力的话也可以看看,语法和数据结构足够简单,而且功能也很强大。喜欢做网站的话,学学Django,可以让你对MVC有个深刻的理解。个人偏见,我不喜欢.net虽然也写过asp,学过c#。觉得它有点鸡肋(平台限制,太封闭,以及MS在走下坡路),前面我记得吧里有个在微软的朋友还抱怨没Java经验,不好跳槽。
CS核心课程,数据结构,算法,操作系统一定搞懂搞精。还有数据库,计算机结构,编译原理俺个人认为没有前三个来的重要,但也会对你职业有很大的帮助。
如果不是CS科班,或是培训出来,也请不管是学习的时候还是工作的时候把这几个核心的东西补上,网上的材料和视频很多,自己找找。如果英文好,MIT的开放课堂很好很强大。
学算法和数据结构的时候存在个刷不刷题的问题,我的个人意见是刷,你刷的多,总比你刷的少在算法上理解的更深刻,但千万别死记硬背。。。我记得很早以前看过一个帖子,有个童鞋问每天需要背多少代码。。。差点昏倒了。刷的时候多看看别人的讨论,无论国内国外的,cs没有国界。leetcode是俺比较喜欢的oj网站,讨论也比较多。 百度和google是你最好的助手,stackoverflow是最好的讨论区,基本你能想到的问题你都能找到别人的讨论和解答。
除了课程的那基本书,课余或快毕业了要面试的话有空看看CC150(Cracking the coding interview 150)也不错,我记得国内好像有翻译,但我不记得书名了也不知道哪有卖,可以网上找找电子版。这本书其实并不是较你有哪些面试题你可能会碰到,而是教你解决问题的方法,如何思考。
上面在说刷题,但请记住,刷题不是你的全部,除了面试之前或参加竞赛,请只花费很少的一部分时间。 因为并不是所有人努力了就能拿ACM的全国大奖,或是能得到国外的FLAG,国内的BAT面试。理想是理想,生活是生活,程序员这行和所有其他的行业一样,在金字塔顶端的只是很少一部分人。
多积累经验,有机会跟老师混项目是最好的,没钱拿打杂也可以。有志同道合的朋友可以一起搞个小工作室,无论尝试些手机APP开发啊就,接些网站的活都对你练习你学校学校的知识,接触社会,积累经验有作用。也能给你简历润色不少。楼主虽然本科EE,但当年大部分时间都花在了写程序,接项目,赚钱上。搞过工作室,开过小公司。 虽然创业失败,大四找工作的时候,简历拿出来真的很能唬人。有机会也参加点开源项目,俺一直认为好的程序员要懂得开源,共享,和协作。 多一点分享,少一点无脑乱喷。
培养自己的CS素养,也许有人说CS就码代码呗,要啥素养,不然,很多时候面试和相亲差不多,就是个看对眼部对眼的过程。技术过关了,你和面试官闲聊的时候,就会暴露你在这行的素养,有空多看看书,多关心关心这个行业的风向,重要事件之类的,面试的时候也会有很多谈资。 这个方面前面  说得很好,推荐的书的很详细, 俺就不班门弄斧了。
积累人脉,很多程序员都是宅男宅女,往往忽略了人脉的重要性。 但这个往往是对你找工作,职业发展最重要的。 前面也说了,找工作的时候90%是死在了HR的简历筛选上,所以内推真的很重要,尤其如果你的学校不是那么出众,那么很多大公司你可能根本就没面试机会,HR那边就直接刷下来了。 而如果你多认识些师兄师姐呀,或是因为项目啊,甚至是bbs,论坛之类的认识人能帮你内推,至少你能拿到个笔试或者电话面试的机会。
先扒这么多吧,各位大神畅所欲言。本来还想继续侃侃现在热门的几个方向的,一看已经不早了,改天再说。
定好目标,坚持这个目标,大家一定都能成功!程序猿们和程序媛们,加油!

TA的专栏

  • 打卡等级:小镇青年
  • 打卡总天数:60
  • 打卡月天数:1
  • 打卡总奖励:422
  • 最近打卡:2023-01-02 10:11:05
发表于 2014-2-25 19:37:44 | 显示全部楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|网站地图|小黑屋|展会网|Discuz站长论坛 |天天打卡

GMT+8, 2024-4-28 02:34 , Processed in 0.034536 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表