各职业方向要求:
https://blog.csdn.net/lsfreeing/article/details/77921603
https://blog.csdn.net/fengfeng0328/article/details/82925001(发展前景及展望!重点)
C/C++发展规划:
C语言和C++属于“造轮子”语言,几乎什么都能做。不过一般来说,C语言和C++主要还是做后台(服务端)开发比较多,包括:
通信公司后台开发
互联网公司后台开发
游戏公司后台开发
……
当然这个后台开发具体职责又有很多细分,比如:
有做数据处理和分析的
有做基础协议和通信的
有做服务端底层应用优化的
甚至还有做后台系统驱动和内核的
……
IC原厂一般指的是芯片生厂商,看是在什么行业;我目前从事Android手机、平板这方面,主要的原厂有MTK、全志、瑞星微、TI、展讯等等,在这些原厂里工作,可以学到不少东西
老实说,楼上列举的部分原厂,真心不敢恭维。写的驱动只要最基本情况下能用就行了,都没有仔细测试过。。。楼主,做驱动和做应用不在于技术含量。做驱动要做精要对linux内核比较熟悉(中断/ tasklet/workqueue/锁等),对于协议和一些调试分析工具比较熟悉。举一个例子,如果调试USB连接本的抓包不会,抓到包分析不对,那还能调试什么。做应用涉及到设计模式,如何把一个代码架构好,耦合性小,易于维护等,做好架构,这都是技术活
驱动和应用的技术含量真心来说是相对的,不同的公司有不同的侧重点。在一个方面做到精才好的。
做驱动其实没什么意思,搞内核也没什么意思,虽然TMD很有技术含量,但是有又怎么样,很高大上?技术这东西,能创造价值就是好东西。当初我跟楼主一样,以软硬件结合很感兴趣,而且前辈们经常跟我讲搞应用层开发没什么技术含量,现在发现被误导了。钻研内核只会花费你大量的时间。 |
HR谈薪资:
性格特点:
从人的职业性格取向来说,有这样一个维度,你是喜欢对事,还是喜欢对人。
大多数从事技术工作的人,都是喜欢对事的。喜欢安安静静的研究技术,不喜欢复杂的人际关系,不愿意操心,爱抠细节,一般都很实在,有一说一。
对于不是特别喜欢与人打交道的人来说,技术工作是个不错的选择,干净,省心,没那么多乱七八糟的事情,只要安心把自己手上的活儿干好就行了。
但也正是因为普遍这样的特质,使得技术人员的发展容易受到限制。整天和技术打交道,面对人的能力就得不到锻炼。无论何种能力,你有意识的使用它,锻炼它,它就会逐渐变强,不用就会越来越弱。
那些在技术团队中,擅长沟通和注重人际关系的人,就非常容易在团队中脱颖而出,成为领导角色。
很多技术人员可能觉得,我并不想成为一个管理者,我想一直安心做技术。安心做技术,不是不可以,但是无论做什么技术,想要做到更高的级别,同样需要出色的沟通力和领导力,当你有了一定资历,你就不再需要做底层的实现层面的东西,你的任务是讨论、协商、谈判,定方案,你可以不管人,但你不能没有沟通和领导别人的能力。
要知道,这个社会,终究是人的社会,要走向更高的层级,终究还是要面对人。
职业规划:
1.升职成为管理者:
在一般大企业里,老实说,这条路径还是有难度的。大多数被提拔为经理的技术人员,首先在技术上是非常有实力的,而且展示了自己可以带领团队的能力。
这意味着你首先要在技术上下功夫,做出成绩来,才能在人才济济的团队中崭露头角。
如果同样技术能力差不多,谁的机会大呢?那就靠软技能了。你争取的活儿多,出成绩的机会就大,跟领导沟通的好,被看见的机会就大,同事关系好,资源就更多。
当然也有技术能力不突出,但是软技能非常强的,这种属于少数,而且看机缘。
一旦你成功晋级成为领导角色,就走向了另一片天地,你级别高了,挣的多了,各种操心,各种政治斗争也就来了,你面临的将是不一样的挑战。
从技术岗位到管理岗位是一个很大的转变,意味着从面对事,到更多的面对人。当你走向了人的世界,你就不再局限于技术领域,你的职业生涯之路就会变得更宽阔。
因为技术虽然各不相同,但管理的理念是通用的。你的适应面会更宽,接触的也会更多,层级就不一样了。
2.成为技术专家:
如果你的确对技术有热情,爱钻研技术,那么你可以朝着专家的方向发展。你要正正经经的与时俱进,不断学习新技术,不断精进,让自己成为这个领域真正的专家。无论工作如何变动,你都是最有价值的那个,走到哪都有人要。
做技术也分不同的角色,有些技术岗位涉及的领域非常窄,只局限于一小块东西,有些技术岗位则更具有系统性和全局性,这样的角色将更靠近产品和市场,视野更开阔一些。
不过即使你想一心做技术,你也同样需要提升面对人的能力,但是比起要升职成为管理者,你要面对的人和事还是简单多了。你的方向是向精深发展,而不是面对复杂的人事。
3.转向其他相关的岗位:
如果你对技术没有很大的热情,也觉得升职无望,那么就尽早考虑转岗。
在一些技术相关但又不是纯粹技术的岗位上,比如项目管理,售前支持等等,技术背景还是用得上的,而且通常在企业内部,转岗的机会还是有的,比你跳出去找一个新的岗位要容易得多。
比起纯技术岗位,这些职位的面向更宽一些,有可能让你看到更多不一样的东西,比如接触市场、客户、运营,为今后的发展提供更多的可能性。
4.转型:
这个话题就大了,前面提到的转岗,也是一种转型,但是还相对容易一些。如果想转到一个离技术岗位比较遥远的职位上,或者是完全不同的行业里完全不同的职业,在我看来,技术人员的转型,是比较难的。
正如前面所说,他的专业性太强,和其他职能领域产生交集的地方太少了。因此,技术人员的视野是比较狭窄的,对市场和运营管理没有感知,无论转向哪个领域都会有一道鸿沟。而且技术人员一般比较爱较真,不擅于沟通,其他领域的人会多多少少戴着一些有色眼镜来评判一个技术人员从事其他工作的潜力。
我曾经面试过一个产品经理的职位,招聘人员觉得我虽然看起来有一定沟通能力,但是毕竟只做过工程师,离市场客户太远了,如果做过项目经理,或许还能有一些相关的经验,担心我应付不来,于是被拒了。
因此,如果你确定眼下的技术工作不是你想一干到老的事情,尽早寻找机会转向管理岗位或者其他领域,用心关注其他的机会,寻找其他的可能。
发展副业,也是当下最时髦的事情,但还是那句话,离开了赖以生存的专业技术,没有什么是容易的,你必须要有这样的心理准备。
5.只想安心做个普通的技术人员?
不是不行,是有点危险,这是一个不进则退的时代。
或许在早些年,做一个工程师安安稳稳的干到退休还有可能,现在这样的可能性越来越小了。传统行业的技术人员,也许还能靠技术安稳过一辈子,越是高科技行业的工程师,到了一定年龄,你越是要拥有和年资匹配的能力,成为同龄人中不可或缺的那个,否则就将面临失业的风险。
试想,当你到了一定年龄,既不是管理者,技术能力也不突出,薪水又涨的挺高,企业为什么要雇佣你呢,找一个比你年轻比你能干又比你便宜的人不好吗?
年龄歧视是当今普遍存在的现象,如果你不希望成为歧视的牺牲品,那就需要早做准备,不要等到年龄大了工作没了的时候手足无措。
目前对技术方向还保持着较大的热情------往技术方向发展
首先提高自己的开发能力(多方面),然后逐渐提升自己的等级层次,计划在1年左右提升到高级开发工程师,能够在项目中担任核心主导得作用。并继续积累自己的开发及项目经验,逐渐锻炼自己的协调沟通能力,成为推动项目发展得关键人物,从系统层面去思考工作内容。也为自己称为架构师打下基础。-------太空泛,没有具体事件
https://blog.csdn.net/itguangzhi/article/details/78416479(从面试方面取巧技巧)
职业规划是对自己职业生涯的目标的设定和实现目标的方式及途径,是求职者本人的事,没有必要在讲特讲对行业或公司的了解、对未来可能从事工作的具体的规划。你可以讲讲自己职业目标和理想。其实,表露出能随公司共同发展意愿就可以。---某些公司期望看到对行业和公司的发展规划
职业规划,面试时企业会重点考察您对职业生涯的规划,以及您对自己学习的规划。他们很看重一个人是否具备明确的学习目标和规划能力。
保持不断学习的习惯,更深入学习人工智能等技术,并结合工作项目思考实际的运用,将学习运用于实际,使公司也收益。
求职动机,傲势对于人才筛选上看重稳定性,所以对于您为何考虑选择傲视的原因,需要综合自身兴趣和发展等说明,从而展现您对企业的兴趣度和意向度。包括离职原因,考虑离开目前单位的原因,这个也需要慎重回答,尽量不要对现单位进行负面的消极评价。
无人机领域现在已趋于成熟,各类产品已经在大量应用场景投入使用并且在实际使用中也证明了其效率成本等优势。如这次疫情,无人机的使用就得到政府和人们的认可。而随着5g人工智能物联网云计算大数据等技术的不停进步,工业级无人机也会有很大的进步空间。这也是该行业的活力所在。因为我也是在爱立信做5g项目,可以看到带来的提升:在恶劣环境下更快更稳定的传输,更高清的传输质量,实时的控制等。
项目中角色及贡献(印象最深的项目经验及贡献)
面试官想获得什么样的信息
面试官问这个问题的目的是想了解:
1. 应聘者是不是一个善于制订计划和完成计划的人——计划性。
2. 应聘者想在这个职位上干多久,是长期行为还是短期行为——稳定性。
3. 应聘者到底是喜欢这人份工作,是临时起意还是志趣在此——兴趣点
自我总结:
就读于东北大学电子科学与技术专业,毕业于2016年
有两段工作经历:
首先在沈阳当地,在东软对日项目工作,做的是sony的智能电视,使用C++语言负责嵌入式软件的开发:前端是java语言的界面,通过jni层传递到命令到嵌入式软件进行控制。
第二段就是现在工作的爱立信,进行基站RU测的软件开发工作。主要负责产品软件的设计开发调试及维护,公司使用gerrit进行代码库的维护,使用C/C++语言开发软件,UT框架运用的是gTest,也会用java编写测试case来进行不同产品间的入库管理。
目前因为该公司软件项目比较少和职业提升不明确,想尝试更换工作环境来获得更长远的发展
Ø 四年C、C++、JAVA及Linux、Android等嵌入式平台开发经验。
Ø 可完成需求规格分析、详细设计、编码以及调试工作,具有一定的python编程能力。
Ø 掌握linux命令,gcc/gdb等编译调试工具,git/SVN等版本控制工具。
Ø 参与过C++、Android、iOS等编程项目,能熟练使用XCode、Android Studio、Visual Studio等IDE。(souce insight,eclipse)
Ø 掌握SQLServer、Sybase、Oracle数据库的基本操作。
Ø 熟悉TCP/IP等网络协议,抓包分析等技能。
Ø 喜欢数据结构和算法,参加过许多编程比赛,包括微软编程之美、百度之星、阿里巴巴大数据竞赛、谷歌codejam等。
Ø 抗压能力强,执行力强,有责任心,善于沟通凝聚团队力量,按照公司制定的计划完成各项任务和挑战。
Ø 英语六级。
优缺点:(完全忽略了面试的时候应该注重的是自己能够给新单位带来什么价值,能够在逆境中怎么去帮助公司,而不是逃避。我觉得这里是我比较失误的地方)
1.抗压能力强,能够在高强度的压力下保持冷静的思考:工厂生产中的紧急bug,pra前为了抢占客户需要迅速完成的新feature
2.学习能力强,对于新的协议新的功能,能够很快的理解并完成目标:mix mode,CBRS,CPRI协议
3.协同能力强,本部门和其他部门同事沟通和交流都非常友好,不管是进入公司初期的学习过程。还是之后项目上的互相协调,都能得到及时的反馈。
4.协调能力强,如果在必须的情况下能够安排好时间,处理多分不同的工作。比如工作A做完了一个阶段,需要等待其他测试或者是其他依赖的完成,这时可以用等待的时间来做工作B
1.急于求成,生活中就是喜欢把当天需要做的事情列出来,如果只有当天完成了,才会感到满足。工作上,交付的任务比较想尽快解决,不然会一直在脑子里思考这件事
换工作原因:(里又是败笔,我又开始强调目前的公司业务在走下坡路,UNIX市场在不断的衰退,我的技术是在逐渐被市场所淘汰,我想换个更好的公司,最好是原厂之类的。只能说我是认清了目前的市场形势,但是在面试的时候我去强调这种想要换工作的原因,估计也是面试官不喜欢的。而我最初准备的回答是,在目前的公司工作,需要处理的事情繁多,面对是产品过多,自己的技术通而不精,现在想专注的往一两个方向去发展,也能发挥出我的工作经验的优势和学习能力的优势。)
1.公司合作模式非期望得:和总部在外国,需要和外国同事一起合作,由于文化差异和工作习惯导致交付给他们得工作完成总是比较慢,也就导致了这边需要把时间花在等待他们交付得途中。尝试过解决该问题,制定比较详细得计划表,把各个部门详细到人得交付日期给定,但是还是会有延期等事情发生。还有就是一种互相的不信任感,比如他们负责芯片的迭代和更新,当我们更换成新芯片后出现DDR问题出现时钟失锁(phy dll unlock),但他们本地没有问题,也就让我们自己查,但我们比较难去处理芯片本身的硬件问题。最后他们复现发,发现是xenon cpu里面fw(固件)配置ddr有问题,更新后解决。
2.技术发展受到限制:对于现有得产品比较熟悉,对于交付得工作能够比较容易得完成。但如果想进一步深入学习,就有权限或不同部门得限制。自己得性格还是比较喜欢拼搏一点得工作环境
3.期望到更有发展前景得公司工作,能够有明确得晋升体系,再付出努力和贡献后能创造相应得价值,不想在现在得公司里花费时间却无法创造更大得价值
提出问题:
1.请问有没有系统的资料或培训计划,对于该领域知识不够充足,不过对该领域有非常大的兴趣与长远发展的打算!如果有系统的资料可以自我学习,进入角色更快。有培训计划说明有长期工作的动力。
2.项目的周期,及流程
项目遇到的问题 解决方案 没解决的问题 打算怎么解决
对领导有什么要求
如果工作不适合自己怎么办
兴趣爱好
offer的情况(一个offer,一个正在面试过程中)
为什么面试华为的岗位?
1.首先技术方面,和现在自己做的工作有很大的兼容性,但却有更大的发展前景。也就是说我能够更好的利用这几年自己的工作经验和技术来更快更好的为公司创造价值。
2.环境问题,有更明确的晋升空间,能够让自己对于技术上的热情得到更好的发挥,能够看到未来至少5年的努力道路
期待薪资
OD社招只有死工资+年终奖(看绩效加班要加的比华为的还狠才勉强有个好绩效),实在找不到工作的可以去,去的话要死守月薪,千万别被高年薪低月薪这种套路给忽悠了,鉴于外包裁员的随意性,一定要死守月薪再谈其他福利,到手的钱才是钱。通过绩效考核的奖金水分太大,要去的话至少比市场价高50%,不然对不起“高端外包”四个字
年终奖:
工资构成
问下当前定级是多少
od 分一到五级,对应华为13-l7級,每级薪资的中位线对应华为相应级别的最低位线
1. 工资和绩效工资和华为一致,D1-D5对应华为的13-17,不过来源是合作外包费用
2. 工资涨幅太高:这是在调查了行业整体薪资情况和个人工作年限和能力后提出的应有的工资条件,是对自己能力和价值的评估
想先了解下工资构成,比如绩效和年终奖,加班工资等
来成都后9800,一共14月。说好每年涨薪20,结果都没有涨,计算下来今年应该有15k 。这也是我跳槽的原因
我还看了招聘网上相关职位的招聘信息,一般最低也是16k起
能够接受薪资低于预期:
如果能给到期望的工资,当然会使人有自我认同感和满足感。但如果因为综合我的能力后,考虑到薪资高于公司的预期,我也能接受少,这可能说明我目前的能力不足与匹配当前的薪资;但我希望通过自己的努力和公司的晋升规则,在近期内让公司看到我的价值,达到我期望的薪资甚至高于它
汇顶科技,鼎桥通信
要从对方离职的原因进行分析,抓住其在原公司未能满足的部分来寻找需求,例如:稳定性、锻炼机会、工作权限、团队氛围、加班情况甚至试用期的长短等等。
),不过我觉得底薪还是很重要的。
首先是HR面试(HR也懂点技术,只记得大致的面试内容):
1. 你当前的技术发展的最大问题是什么呢?(这个问题我觉得还是挺不错的,即显示了你的当前的技术水平,也考察了你对自己的认识)
2. 工作中的成果。
3. 现有的公司部门,你觉得最好的几点。
4. 团队怎么样?有没有什么牛人。
5. 公司加班多不多(主要想看你们对加班的看法,以及能不能接受加班,感觉这个面试过程中华为挺看重的)
6. 家庭成员
7. 期望薪资(说了自己的期望,视乎面试官觉得我说高了)
技术领导面试(只记得大致的内容):
1. 大致聊了下简历上的工作内容(好像前面的技术面试官,对我的评价还可以)。
2. 期望薪资。
3. 其他的记得不清楚。
方向问题:
嵌入式工程师:内核等C语言https://blog.csdn.net/sailor_8318/article/details/2325483
算法相关技能?
职业书籍推荐:https://blog.csdn.net/misayaaaaa/article/details/82957163
数据结构与算法
入门:《大话数据结构》
进阶:《算法·第四版》
手撕代码:
《剑指offer》https://www.nowcoder.com/ta/coding-interviews
《程序员代码面试指南》左神 (时间紧,可以直接看书)
不想看书的,可以直接看左神的视频:
基础:https://www.nowcoder.com/courses/semester/algorithm-elementary
进阶:https://www.nowcoder.com/courses/semester/algorithm-senior
leetcode(有时间一定要刷)
海量数据处理:
《编程珠玑》
https://blog.csdn.net/v_july_v/article/details/6279498
动态规划:https://www.geeksforgeeks.org/top-20-dynamic-programming-interview-questions/
计算机网络
入门:
《图解TCP/IP》
《图解HTTP》
进阶:《TCP/IP详解·卷1》或者《计算机网络:自顶向下方法(原书第6版)》(看一本即可)
OS
入门:《Operating Systems: Three Easy Pieces》(讲的非常好,只有英文版)
进阶:《深入理解计算机系统》
视频:http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+sp/about
Linux
《鸟哥的linux私房菜》
视频:https://pan.baidu.com/s/1hx2as373BZlAKtKonn5u1g
数据库MySQL
入门:《MySQL必知必会》
进阶:
《MySQL技术内幕 Innodb存储引擎》
《高性能MySQL》(这本更好,不过有点难)
数据库Redis
《Redis设计与实现》
分布式架构(想找BAT,一定把这块吃透)
System Design Primer (https://github.com/donnemartin/system-design-primer):目前这个仓库收集到了好些系统架构和设计的基本方法。其中包括
CAP理论
一致性模型
可用性模式
DNS
CDN
负载均衡
反向代理
应用层的微服务和服务发现
关系型数据库和NoSQL
缓存
异步通讯
安全等
面向对象与设计模式
《Head First 设计模式》
马士兵的设计模式
C++语言基础
C++Primer
STL源码解析
深入探索C++对象模型
C语言:
除了最最基础的语法:变量、条件、循环、字符串、数组、函数、结构体等之外
C语言最最最最最重要的那就是:指针、内存管理,以后企业里开发就靠它俩吃饭,这也是检验C语言掌握情况的两大标准
推荐书籍:《C Primer Plus》、《C和指针》、《C专家编程》
C++:
C++和C语言确实是不同的语言,但是C++确实是对C语言的延伸,可以理解为在C语言里加入了面向对象的特性。因为只有面向对象特性的加持,代码才能更好的复用、扩展和工程化,这是大型项目的必备要素
除了C语言所有的底子之外,还需要学习C++的面向对象(封装、继承与多态)特性、泛型、模板、STL等等
推荐书籍(有先后顺序):《C++ Primer》、《Effective C++》、《C++ 标准程序库》、《STL源码剖析》《深度探索C++对象模型》
最后一个小建议是:语言部分的学习建议不要拖太久,一定要规划好时间,一鼓作气,高强度给它压下来,否则容易把自己拖泄气。
基础四大件包括:数据结构和算法、计算机网络、操作系统、设计模式
这跟学什么编程语言、后续从事什么编程方向均无关,只要做编程开发,这四个计算机基础就无法避开。可以这么说,这基础四大件真的比编程语言重要!!!
1、数据结构和算法
可以说这个直接决定了面试的成败!几种基础数据结构类型得烂熟于心,比如:字符串、链表、二叉树、堆、栈、队列、哈希等;基本的几大算法也要了如指掌,比如查找、排序、动态规划、分治等等。
建议LeetCode多刷题啊啊啊啊啊!
参考资料: 《大话数据结构》、《算法》、《剑指offer》《LeetCode刷题》
2、计算机网络
此处的计算机网络指的就是TCP/IP协议栈,可以说它是当下互联网通信的基石,无论如何一定要对TCP/IP的协议栈了如指掌,主要就是学习和掌握原理,包括:ARP协议、IP协议、ICMP协议、TCP和UDP协议、DNS协议、HTTP协议、HTTPS协议。
推荐书籍: 《TCP/IP详解》
3、操作系统
该部分重点包括:进程和线程的相关原理(原子性、并发、锁)、内存相关原理(内存分布、内存调度)
推荐书籍:《深入理解计算机系统》
4、设计模式
倒不需要23种设计模式全部记住,常见的几个如:单例模式、工厂模式、代理模式、策略模式、模板方法模式建议熟练于心。
推荐书籍:《大话设计模式》、《设计模式之禅》
这部分会涉及到一些工具、编程环境、和具体编程实践,应该说这一部分学完,自己应该能做点东西出来、或者说能看懂一些实际项目的代码。
实践这部分,我也是结合我之前在通信公司的实际工作经历和所听所见,来聊一聊。
1、Linux操作系统的使用
很多人初学C语言、C++(包括我)都是在Windows环境上进行的,而实际企业级开发几乎不可能,所以Linux系统必须要会,我们别无选择。先谈使用。
包括:常见的Linux操作命令、基本的Shell编程。
推荐书籍:《鸟哥的Linux私房菜》
2、编译/调试工具
首先是跟编译相关的:编译工具!
我们知道很多人学C语言、C++都在类似Visual Studio这种集成IDE里进行代码编译,这个其实也用了编译器,只不过是微软自家的MS编译器,而且所有操作均可视化。而企业里开发很少会基于Windows系统,所以Linux平台上的编译器更为重要,最典型的当属 GCC
,甚至有些公司有自己定制过的交叉编译工具,但没关系,只要 GCC
熟悉,其他问题都不大。
其次,大家自学C语言、C++,都借助类似VS这种IDE,点按钮即可对源文件编译。而企业里实际项目的编译动作叫 make
,编译的实际动作和过程都是写在 makefile
文件里,所以makefile的书写规则建议学习!
最后说到调试工具,Linux平台上的 GDB
调试工具要熟练使用,会借助于它进行调试。
推荐资料: 这部分没有书可推荐,英文好的同学可以直接看
GNU
官网关于GCC
和GDB
的文档,中文材料可以看:《debuging with gdb》(中文版)和陈皓先生的《跟我一起写makefile》
3、Linux环境编程
还是那句话,企业里C语言和C++几乎都是基于Linux平台的,这一部分我们没办法避开
(1)Linux系统编程
众所周知,Windows系统编程里有各种各样的Windows API,同理Linux系统API的使用就更加重要。
(2)多线程编程
此处指的是多线程编程实践相关的东西,一般包括:线程、资源、信号、同步、互斥、锁等等一些具体的编程方法。
(3)网络编程
此处的网络编程主要指的是具体Linux系统上的网络编程 API
和 IO
函数的编程实践。
推荐书籍:这三部分综合在一起,推荐必看书籍包括《Unix环境高级编程》、《Linux高性能服务器编程》、《POSIX多线程程序设计》