精华内容
下载资源
问答
  • 你知道嵌入式可以什么工作吗?

    千次阅读 2020-05-19 17:07:25
    那么现在嵌入式正好就符合你的这些要求,这里只需要大家认真去学习嵌入式技术就可以了,如果你有参加嵌入式培训的话,那么培训机构还会负责给你找工作,不过下面还是先来了解下嵌入式可以什么工作吧。 嵌入式可以...

    大家在选择专业的时候,也是想要找个高薪职业,那么现在嵌入式正好就符合你的这些要求,这里只需要大家认真去学习嵌入式技术就可以了,如果你有参加嵌入式培训的话,那么培训机构还会负责给你找工作,不过下面还是先来了解下嵌入式可以做什么工作吧。
    嵌入式可以做什么工作?薪资多少?嵌入式就业方向可以分为二个方面:
    1、软件方向的开发,这占社会需求的主要方面,主要从事嵌入式操作系统和应用软件的开发。可以担任嵌入式产品及应用系统的设计与开发工程师,从事嵌入式技术的应用项目设计开发、产品维护与技术服务等工作。
    2、硬件方向,对硬件比较了解,有一定的硬件功底,主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。
    2019年,嵌入式人才依旧稀缺,身价高涨。据了解,初入门的嵌入式开发人员年薪一般都能达到4-7万元,有2年以上经验的人员年薪多在10万元以上,有10年工作经验的高级嵌入式工程师年薪30万-100万元。
    嵌入式系统是软硬结合的东西,那么什么人适合做嵌入式?
    一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,这是嵌入式人才发展方向之一。有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心。
    一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果学软件的人对硬件原理和接口有较好的掌握,完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作,所以做软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。
    还有一类是0基础转行,这部分人群做软件比较占优势。由于没有相关基础,所以通常都会参加培训,快速完成前期大量知识积累,并且在老师的指导下进行相关项目实践,能在最短的时间完成就业所需的全部技能。
    以上介绍的就是嵌入式可以做什么工作了,既然选择学习嵌入式,那么就不要想着投机取巧,本身嵌入式就是要你自己动手去完成的,嵌入式技术本来也没那么简单,也是需要时间需要精力去做的,切忌浮躁。

    展开全文
  • 这个行业是不是不好找工作? 失业期间那种焦虑感,我深有体会,每天不断在支出,看不到收入。 如果是一个人还好,如果有个女朋友或者家庭啥的,根本经不起消耗。 就像我现在,每个月硬开支都在1万多,没有...

    最近在某吧看到一个小伙伴提了一个让我有点感触的问题。

    他说学了嵌入式4个月出来都找不到工作,该怎么办?这个行业是不是不好找工作?

    失业期间那种焦虑感,我深有体会,每天不断在支出,看不到收入。

    如果是一个人还好,如果有个女朋友或者家庭啥的,根本经不起消耗。

    就像我现在,每个月硬开支都在1万多,没有任何贷款感觉压力都很大,生怕哪天收入断了。

    1万多对于一个工薪阶层,要做多久才能达到,已经很不容易了,很多人工资都还没有1万。

    买房那些事根本想都不敢想,唯一能做得到就是祈祷亲朋好友平平安安,千万不要出什么意外,一次意外足以让你几年翻不了身。

    还好当初我果断转行做了嵌入式单片机开发,一路走来还算比较顺利。

    这么多年,虽然也没挣到什么钱,但是该潇洒的时候还是能潇洒。

    那个时候门槛比现在要低一点,已经是10年前了,技术也还没如今发展的这么成熟。

    现在如果自学嵌入式转行的话,学习周期会比较长。

    如果是走ARM+Linux方向,别说学4个月了,学1年找不到工作就是很正常的事。

    当初我也很幸运,先学的单片机,大概学到4个月的时候就找到工作了。

    刚开始至少也被20几家公司拒绝,把我打击的都没信心再去找工作了。

    这个对于刚入行的小伙伴来说,都是正常的,也是必须要去面对的,千万不要因此灰心。

    因为你可以换个角度想一想,刚学出来本身经验就很有限,也不具备产品开发的能力。

    虽然你可能能实现产品的功能,但是各方面可能都还不能满足商用产品的标准。

    一般公司对于培养新人都会比较谨慎,公司培养你相当于公司投资你,你为公司创造不了什么价值,公司每个月还要给你发工资。

    有些没良心的,公司把你培养个半年,可能就跳槽了。

    所以,很多公司宁愿多花点钱请有经验的,也不愿意要新手。

    要解决这个问题,其实要从自身着手,看懂企业的需求和痛点。

    把自己打造成一个能够帮别人解决问题的人。

    下面我给新手提一些建议,如果你也想入行做嵌入式,根据我的方法和流程去规划,找个工作so easy!

    我至少有5年没更新和投简历了,隔三差五经常会有一些公司主动找我去面试。

    其实嵌入式这个行业不管是现在还是以后,都会是个朝阳行业,所以不存在工作不好找。

    不好找肯定是个人的原因

    我认为啊,新手要先定位好自己未来的从业方向。

    嵌入式其实分很多方向的,这如果你搞不清楚,盲目学习就是浪费时间。

    那主流的方向有单片机开发Linux开发,还有就是FPGA之类的,没接触过就不说了。

    单片机开发对新手比较友好,只要你的学习路径和方向正确,4个月达到找工作的水平完全没问题。

    Linux开发相对比较复杂,学习周期就不用说了。

    如果你是急于找工作的话,我强烈建议先走单片机开发,这个方向做好足以让你养家糊口了。

    等你有了工作,有了稳定的收入,后面学什么就轻松了,自己学不会就付费呗,反正有这实力。

    在刚踏入这个行业的时候,我经常会跳槽,一个公司基本做个半年-1年都走了,最短的1天。

    这几年我积累了很多面试经验,现在公司最需要的其实就是你的项目经验,跟他们公司的产品相不相符。

    所以这也是为什么大家都喜欢去同行那里挖墙脚,不管是大厂还是小厂。

    反正最低标准都是你要有项目经验。

    我们无际单片机编程也自主研发了2款项目帮助学员快速去找到工作,硬件和代码都是经过批量验证的。

    最后说一下新手常犯的一个误区就是,以为自己还是学的太少。

    举个例子,比如说自己只会51单片机,觉得还不够,还要学stm32等等。

    虽然stm32现在用的很多,但也不是必须的。

    如果你用51的做过很多产品,那公司也不会在乎你会不会stm32。

    单片机只是工具,真正核心的是你的编程思维。

    展开全文
  • 不管什么时候,我都很羡慕那些月收入很高的人,并且对这种人特别好奇,他们到底是做什么的。 可惜啊,我在10前就毕业出社会了,那时还是只会打...不过也罢,学校的东西其实跟实际工作落差也非常大。 以前,我以为那

    不管什么时候,我都很羡慕那些月收入很高的人,并且对这种人特别好奇,他们到底是做什么的。

    可惜啊,我在10前就毕业出社会了,那时还是只会打游戏的稚嫩少年。

    哪里懂得什么行业有前途,反正看着名字挺牛逼就选了,就像我选了电气工程,读了2年才知道是修电梯的专业。

    那个时候,唯一能帮我们甄别行业前途的可能就只有父母了,不像现在,网络这么发达,可以在网上求救一下踩过坑前辈。

    但是那个年代,父母的思想都很传统,单纯认为就业率高的就是好的行业。

    不过也罢,学校学的东西其实跟实际工作落差也非常大。

    以前,我以为那些西装革履,出入逼格高办公场所的人收入很高。

    到后面,慢慢接触的有钱人多了,我才发现,其实很多有钱人做的都是那些不起眼,甚至你都不愿意去做的工作。

    不可否认的是,不同行业之间差别还是挺大的,很简单的例子就是,你做清洁工,你10倍努力去完成工作,回报也不及程序员上班混工资。

    所以,选择在某些程度上是大于努力的。

    有点扯远了,回到我们今天的主题,学大数据好还是嵌入式好?

    其实这两个我觉得这两个行业旗鼓相当,前景都非常不错,而且同样的付出不会形成一个很大的回报落差。

    1.大数据

    其实大家不难发现,做平台的公司日子过得是最舒服的,因为他们有庞大的数据。

    大数据是什么?

    比如说你每个月的工资是一个数据,你10年的工资就是大数据。

    有了这个大数据,可以很直观的分析出,你这10年混的怎么样,工资有没有跑赢通货膨胀。

    那这个数据有什么用?

    在你看来,或许只是让你了解你这几年的收入情况,并不能为你产生什么实质性的价值。

    但是在别人眼里就不同了,比如说银行,他能通过你的收入和支出分析出你是一个怎么层次的人。

    相对应的他们就会给你推适合你的投资方案,并从中盈利。

    这些就是大数据背后潜在的巨大价值。

    万物皆数据,大数据的作用就是,从这些数据里可以挖掘出某些规律,这就是为什么你只是搜了某个产品,然后打开网页或者某宝就会给你推荐相关类型的产品。

    这些都是基于你的喜好这个数据的推理衍生的结果,这样更精准,你也更容易去购买他们的产品。

    我虽然没从事过大数据相关的工作,但是大数据采集分析应该不是一个人能够胜任的。

    这意味着,假如你以后出来创业,你的成本会很高。

    2.嵌入式开发

    嵌入式开发其实也是一样,细分很多方向,主流的有单片机开发、ARM+Linux开发、安卓应用开发等等。

    其中单片机开发是我认为是学习嵌入式开发性价比最高的一个切入点。

    我自己从事了单片机开发10年,也在公司带过一些当初在产线做机械化工作的徒弟。

    很多都是初中文凭,然后经过3,4个月的学习就能胜任单片机开发工作,跳槽后工资直接翻倍。

    如果你是学ARM+Linux开发的话,少则1年,多则2年,学费也非常昂贵,前期学习成本太高。

    而且,随着现在物联网和5G发展,单片机结合物联网能做的应用更多,因为单片机具备成本低、功耗低、尺寸小的特点。

    非常适合去做一些数据采集,智能控制的电子产品。

    3.学嵌入式好找工作吗?

    我最近感觉特别明显,最近1个月有4家公司找到我们无际单片机编程,问我们有没有合适的学员介绍。

    而且转正起薪基本在8K以上,还带项目奖金之类的,不过是在一线城市。

    对比你需要付出的,这个起步薪资已经很不错了,记得10年前,我第一份工作才1.8K。

    所以,在未来我是越来越看好嵌入式开发这个行业的,本身门槛其实并不高。

    很多人觉得高,是因为自身定位不清晰,没有规划好学习路径,对这块有疑问,也可以找无际单片机编程来求助。

    最后总结:

    这两个行业其实都非常值得投入,也是非常有前景的,关键就是你自己喜欢哪一个。

    展开全文
  • C++ 什么程度可以找工作

    千次阅读 2021-07-22 00:44:58
    置顶/星标公众号????,硬核文章第一时间送达!链接 |https://www.zhihu.com/question/400543720至少需要哪些知识?需要掌握到什么程度呢?https...

    置顶/星标公众号????,硬核文章第一时间送达!

    链接 | https://www.zhihu.com/question/400543720

    至少需要哪些知识?需要掌握到什么程度呢?

    https://www.zhihu.com/question/400543720/answer/1275849097

    简单说,如果仅仅学C/C++本身的话,学到什么程度你都找不到工作。

    学习掌握某种编程语言的语法只是一个基础,一个起点。因为语言只是一种工具,学会语法特性仅仅是知道这种工具长什么样子、能拧能钻能铣能刨,如此而已。

    想要找到工作,你需要能够使用这件工具创造价值——你不能仅仅知道钢锉能挫铁,还要学会看图纸、会在给你的料子上合理规划、挫出符合图纸要求的合格元件来。

    简单说,如果分若干级别的话,可能如下:

    1、了解C++的常规语法,知道函数调用、类、虚函数、多态等的功能/原理;可以独立完成课后习题。

    达到这个水平已经可以胜任很多职位了;但需要在工作中继续成长。幸好愿意招应届生的公司对新人的要求都不高,你有时间慢慢成长。

    但要注意,这里的要求是“独立完成课后习题”,靠老师教、抄别人答案是不管用的。甚至抄完了死记硬背下来也是白搭。必须自己通过独立思考解决问题。面试者有的是办法试探出你有没有自己解决问题的能力。

    如果课后题被“剧透”的太厉害的话,网上刷题也是条路子。还是那句话,别一味抄别人的代码,你起码要能独立解决其中一小半的问题,这才能证明你的确知道这件工具的用法。

    2、能够活用自己掌握的C++知识,独立实现一些小型项目

    比如,写个沙雕小游戏逗女朋友开心,写个排课程序帮老师解忧,甚至写个简单的课程提醒程序提示你每天带哪些书,等等。真正把“实践任务”和“C++编程连起来”——现在很多公司其实干的就这活,没什么技术含量。

    3、借助别人封装好的API/库,实现看起来更强更厉害的功能

    比如,借助算法库里的MD5算法和OS提供的目录遍历API,把系统所有要害文件(应用程序、DLL、注册表等)的大小、修改时间、数字摘要都算出来、储存到一个文件里。以后每隔几天遍历一次,检查它们的大小、修改时间,如果有变化就计算数字摘要——也可以强制计算所有的数字摘要——从而找出哪些要害文件被修改了、这些修改是系统自己打的补丁呢,还是不法程序(病毒木马流氓软件等)的非法修改。

    这就是一个极为简陋、但效果还行的反病毒工具。它的缺点是,这是个白名单工具,只能检查到通过修改要害文件获得执行权的病毒/木马,同时会对系统更新产生误报。但仍然不失为一个效果不错的系统问题排查工具——因为OS要害文件经常是好些年不变的(现在你知道为何有时候有的杀毒软件会杀系统文件甚至杀自己了吧?)。

    再比如,利用现成的深度学习库/语音识别库搞一些貌似高大上实则没什么技术含量的人脸识别/语音识别/声线识别程序——别紧张,你能行。

    能折腾这些,你到公司基本上就可以算是个“能人”,可以跟风做一些听起来很帅但其实仍然没什么技术含量的工作了。

    4、真正理解算法与数据结构,理解操作系统原理、计算机原理、数字电路原理以及编译原理、数据库原理、网络原理等等基础原理

    到了这个程度,你才算没辜负“科班出身”这个头衔,脱离了“码农”“调库专家”“新技术层出不穷怎么都跟不上学不完”的半外行状态,可以从事一些较为硬核的、探索性的工作,帮公司开拓新应用领域了。

    5、你仍然可以继续深入。比如图形图像压缩,比如加解密算法,比如网络协议栈等,每一个子领域都够很多专家投入一辈子的。不过这些领域经常返璞归真,C反倒会成为更常用的语言;而且往往需要高等数学作为发动机。

    比如著名的卡马克牛顿迭代法求平方根的倒数算法,其中用的魔幻数字就引出了好几篇论文。专家们用卷积找出了一个魔幻数字,但是效果不如卡马克数字。再后来有人暴力穷举,这才找出一个优于卡马克魔幻数的新数字来。

    再比如,现在的CNN神经网络,有次我提到要理解它你得懂卷积;于是跳出来几个自以为很懂的出来杠我“我敢打赌,你是听到这个东西的名字里有个卷积于是胡乱脑补。其实这东西和卷积没半毛钱关系”……

    他们不知道,CNN里面的确没有卷积符号、也没有使用卷积计算公式;但它的实现思路就是卷积运算。只不过它的设计者把卷积算法化用进简单的连续矩阵计算中,在深度神经网络中实现了“特征抽象和特征空间变换”——这是矩阵和卷积全都学到出神入化、用出来让普通人看不懂、但内行一看就知道还是新瓶装旧酒的结果。

    其实前面提到的数据结构与算法等基础知识,会玩的同样能玩到返璞归真。比如有人随随便便三两行代码就把一个数组变成了环形缓冲区,或者简简单单两行声明就搞定了一个递归算法。如果你积累不够深厚、头脑不够灵活,这个东西就很难看懂。

    总之,这个领域是属于创造者的。能踏入这个领域,那就不是你找工作,而是工作找你了。

    综上,如果仅仅是学C++这门语言的话,学到什么程度你都不好找工作。

    你需要学的,是用C++这门语言去解决问题。能解决课后练习题是一个水平,能刷网上的算法题又是一个水平;能自己搞定简单的实用项目是一个水平,能充分利用操作系统以及第三方软件/库给你提供的抽象(意味着你能理解他们的设计思路)实现几乎所有东西又是一个水平;理解各种东西背后的原理是一个水平,把这些原理玩的出神入化又是一个水平;学会用数字认识这个世界是一个水平,能够化用高深的数学知识、信手解决没人说得清的难题又是一个水平……

    一般来说,只要你能达到“用C++解决简单问题”的水平,找工作就不成问题了;只是受限较多,只能从事一些较为初级的工作,极易陷入没日没夜机械的写代码的窘境,然后看着层出不穷的新技术欲哭无泪。

    你往前赶的越多,你代码里的智慧和灵气就越多;此时你才可以尝试那些必须用巧力的工作,或者用巧力把繁重的工作变得简单、甚至促进你所在公司乃至全人类的开发效率。玩到这个程度,你才算真正踏入程序员的行列。

    https://www.zhihu.com/question/400543720/answer/1723466994

    应届毕业加入腾讯做游戏开发,用的就是windows C++!

    先说下我应届加入腾讯的经历,供大家参考:

    大三就制定了加入腾讯游戏的目标,同时锁定在图形图像开发,这意味着要好好学习C++。

    因为大学前两年全荒废了,所以大三是冲击的一年。

    要学好C++,先了解C语言,当年这是师兄告诉我的,今天回头看非常对!

    谭浩强的《C语言程序设计》反复看,然后一行行在电脑上敲出来。

    当时对计算机缺乏系统认识,最难理解的就是指针,书上说它是个变量地址,那么问题来了,什么是地址?一不小心,指针就让程序Crash了。直到读研的时候,看了大学教材:《计算机组成原理》这本书,我才明白指针背后的含义。

    攻克完C语言之后,听师兄师姐说数据结构也是自学编程需要攻克的重难点。从数组到链表再到堆栈、二叉树、平衡二叉树、红黑树、B+/B-树,简直就像看天书。还记得二叉树的先序,中序,后序遍历就把我弄晕乎了。更别提后面的AVL树的删除以及B-树。

    我应付看不懂的方式也很粗暴:做笔记,勾选出没看懂的部分,反复看。一遍不行看两遍三遍四遍,直到所有内容看懂为止,看懂后就上机,上到天昏地暗上到头晕脑胀。数据结构这本书,记得来来回回看了10多遍,上机100小时以上。

    这之后开始系统的学习网络、C++、VC,还记得有一本非常厚的书:《C++ Primer》,可以说上面的每一个例子,都上机造过轮子。

    随后开始啃《Effective C++》、《More Effective C++》、《C++程序设计原理》、《深度探索C++对象模型》、《STL源码剖析》、《计算机网络系统方法》、《TCP/IP详解》。

    除了疯狂自学,毕业的压力也很重,但掌握的东西越多,你对未来就越笃定。

    疯狂学习的过程是枯燥且伴随痛苦的,编译报各种不通过的时候让人无比抓狂,知识点学不会的时候会让你怀疑自己的智商。

    曾经看过的一部分书籍:

    成长的过程,润物细无声,极难察觉。但那段枯燥痛苦的学习和刷题岁月让我未来的道路受益匪浅。毕业后,我也如愿拿到腾讯游戏年薪近15万(多年前)的Offer,开启了职场生涯。

    毕业后,担任过360技术委员会成员,在C++这条路上走得更远了,再给大家一些系统的建议:

    一、C/C++入门阶段

    这个阶段全力以赴的话,5个月时间差不多可以掌握。

    刚入门的时候我们主要是学习培养编程思维和动手能力,深刻理解面向过程和面向对象的思想方法,这对以后的程序员之路非常重要!

    所以学习语言更为重要:

    面向对象编程思想;类的封装,构造和析构、静态成员、对象管理;类的构造(有参构造函数、无参构造、拷贝构造、默认构造函数)和析构;对象动态管理、友元函数、友元类、操作符重载;C++编译器对象管理模型分析;类对象的动态管理(new/delete);友元函数和友元类;运算符重载(一元运算符、二元运算符、运算符重载难点、项目开发中的运算符重载);类的继承、多继承及其二义性、虚继承;多态(概念、意义、原理剖析、多态案例);虚函数、纯虚函数、抽象类(面向抽象类编程思想案例);函数模板、类模板,模板的继承。

    C++类型转换;C++输入输出流(标准I/O 文件I/O 字符流I/O);C++异常处理(异常机制、异常类型、异常变量、异常层次结构、标准异常库);利用一些IDE开发工具:诸如Windows平台VC系列:VC++6.0(比较古老) ;Visual Studio2013, Visual Studio2015,Visual Studio2017,Visual Studio2019;Mac平台的XCode系列,还有CodeBlock,另附一些高级编辑器Notepad++, EditPlus,UE等一些开发工具的常用设置和一些常见快捷键的使用。

    这个阶段推荐以下两本书:

    《Essential C++》 这是一本内容不多但很实用的C++入门书籍,强调快速上手与理解C++编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。你不只学到C++的函数和结构,也会学习到它们的设计目的和基本原理。

    《C++ Primer》 本书对C++基本概念、技术、以及现代C++编程风格进行了全面而且权威的阐述,是C++初学者的最佳指南;本书可以帮助你编写实用的程序,而无需首先精通每个语言细节。对于中高级程序员,本书也是不可或缺的参考书。

    二、C/C++开发进阶

    这个阶段非常刻苦的话,需要半年以上时间。

    在第二阶段学习的时候,就是比较重要的了,C++开发的进阶之路,更是一个让自己找份薪水比较体面的工作的筹码。

    C++进阶之STL:

    STL = Standard Template Library,即标准模板库。这是提高开发效率的极品工具。通过学习此阶段,应掌握泛型编程技巧,理解容器类在C++语言中的应用模式,以及熟练掌握全部STL类的使用方法。

    C++进阶之设计模式:

    决定一个项目成败最重要的因素是项目总体的设计,通过本阶段的学习,可掌握面向对象编程中重要的一环,是编码前建模的技巧所在。单例模式;工厂模式;代理模式;迭代模式等,这些都是你要掌握的哦。

    C++进阶之数据结构基础:

    这是所有编程语言中最应该学习的部分,程序组成的基础之一。顺序存储、链式存储、循环链表;

    双向链表、栈(顺序和链式)、队列(顺序和链式);

    栈的应用、树基本概念及遍历、二叉树;

    排序算法、并归算法、选择、插入、快速、希尔。

    这个阶段推荐以下几本书:

    《Effective C++》和《More effective C++》 作者是Scott Meyers。你应该熟读它们,并清楚地理解每个项目。该书围绕55条准则,每一条都介绍了一个可让你写出更好的C++程序代码的方法,并以特别设计过的例子详加讨论。

    《Exceptional C++(C++编程剖析)》和《More exceptional C++》 这两本书中都包含了40个C++编程问题,这些问题会让你磨练自己的技能,最终成为优秀的C++程序员。这些问题是Herb Sutter精心挑选,与ISO/ANSI C++官方标准相一致,帮助程序员在设计、架构和编码过程中保持良好的风格,从而使编写的C++软件更健壮、更高效。

    《Inside the C++ object model(深度探索C++对象模型)》 本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承,帮助你理解程序的底层实现,以便写出更高效的代码。

    《The design and evolution of C++(C++语言的设计与演化)》 本书作者也是C++语言的设计者Bjarne Stroustrup,作者在书中综合性地介绍了C++的发展历史,C++中各种重要机制的本质意义和设计背景,这些机制的基本用途和使用方法,讨论了C++所适合的应用领域及其未来的发展前景,既没有忽略关键性的详情,又没有过多地陷入技术细节。

    三、C++开发高级

    这个阶段几乎伴随了职场后续的整个生涯,只有更精没有最精,C++高手之路,任重道远!

    C++进阶之QT开发:

    掌握QT类库构架,图形界面开发模型;掌握QT开发技巧,消息机制,图形处理;掌握QT网络编程,UDP,TCP使用方式;掌握QT文件处理方式,序列化;掌握QT在windows,linux,ios,android不同平台下的移植技术

    C++进阶之Windows/Linux网络服务器:

    掌握Unix/Linux平台开发方式;熟练使用系统调用;熟练Unix/Linux内存管理,进程,线程调度;掌握MFC界面开发,网络编程;熟悉网络服务器开发方式,熟练编写TCP,UCP网络服务程序;掌握同步/异步IO模型在网络编程中的使用方式。

    C++进阶之数据库开发:

    掌握SQL语言的实用技巧。Oracle,MySQL数据库的使用方式。

    如果你能熟练掌握以上列出的技能,具备解决复杂问题和技术难点的能力,而且你能独立开发一些比较复杂的功能模块,这个时候月薪过万都是小意思了!

    这就是所谓的程序员大牛了,当下炙手可热的全栈开发工程师,既晓前端,又通后台。快速定位问题,解决问题对他们来说已是小菜一碟,就是人们常说的神秘大牛,只在公司技术攻关的时候才会才看到他们的身影。

    这个阶段,在C++领域,你已经飞跃愚昧之巅跨越绝望之谷,进入开悟之破了。推荐以下书籍:

    《The C++ standard library(C++标准程序库)》 这是标准模板库字典,你可以在本书中找到STL相关的一切知识。本书焦点放在标准模板库、检查容器、迭代器、函数对象和STL算法上。每一个元素都有深刻的呈现,包括其介绍、设计、运用实例、细节解说、陷阱、意想不到的危险,以及相关类别和函数等。

    《Effective STL》 这是Scott Meyers的第三本C++专著,也是学习STL最权威的书籍。作者对书中的50个指导方针都作了详尽的分析,并配以示例。通过这些规则,C++开发者可以最大限度地使用STL。

    《Generic programming and the STL(泛型编程与STL)》 本书阐述了泛型程序设计的核心理念:concepts(概念)、modeling(模型)和refinement(改善),并为你展示这些观念如何导出STL的基础概念:iterators(迭代器)、containers(容器)和function objects(函数对象)。按照本书所述,你可以把STL想象成一个由concepts组成的library,你将学习到STL正式结构并理解其强大的优势。

    《Exceptional C++ style》 作者为Herb Sutter。本书同样提出了40个C++风格相关的问题,对一些至关重要的C++细节和相互关系提出了新的见解,为当今的关键C++编程技术(如泛型编程、STL、异常安全等)提供了新的策略,帮助开发者在开销与功能之间、优雅与可维护性之间、灵活性与过分灵活之间寻找完美的平衡点。

    《C++ template》 这是一本关于C++模板的完整的参考手册和教程,它强调模板的使用实践,包含了现实世界中的例子。每个C++程序员都应该好好读一读这本书。

    《Modern C++ design(现代C++设计)》 作者Andrei Alexandrescu为C++程序员打开了一个新的局面。本书提供了一些针对软件设计的前沿方法,如联合设计模式、泛型编程,使程序员可以编写有表现力的、灵活的、高度可重用的代码。

    《Thinking in C++(C++编程思想)》 C++ 领域权威著作,介绍了C++实用的编程技术和最佳的实践方法。

    以上是用一年时间应对面试学习C++的建议。

    还有一个我最近发现的一个非常赞的视频,是一个国外 C++ 游戏引擎开发工程师录制的一套偏向 talk 类型的教程,比较通俗易懂和深入浅出。

    推荐一下:

    [中英字幕] C++_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili:https://www.bilibili.com/video/BV1Ay4y1i7Z6

    另外翁凯老师无论是 C、C++、Java 的视频都讲得非常深入浅出,值得学习。

    这是网易云课堂地址:

    面向对象程序设计-C++ - 网易云课堂:https://study.163.com/course/introduction/271005.htm

    作者:江东某人
    https://www.zhihu.com/question/400543720/answer/1275079446

    这个答案具体取决于方向,面试级别等等,但一个不争的事实是

    C++是不可能精通的

    想起了自己学习C++的血泪史/(ㄒoㄒ)/~~

    1. 学习了基本输入输出,条件语句,循环,函数,内心:这玩意也就比C多了函数重载、引用,还有个顶层const与底层const,分分钟搞定

    2. 学习了基本的OO部分,内心:emmm~~~,C++还是有两把刷子的,不过还行还行,开阔了思维

    3. 学习了闭包,泛型,STL,内心:好多要记的东西,好烦呀,感觉不行了

    4. 了解了模板元编程,多重继承,虚继承,多线程,Boost库,内心:

    以后见人只敢说用过C++。。。。(C++还有Qt,opencv,opengl,甚至微软的.net等一堆东西

    所以Life is short, you need Python

    作者:匿名用户
    https://www.zhihu.com/question/400543720/answer/1282930274

    “C++学到什么程度可以面试工作?”是一个毫无意义的问题。

    这个问题等价于“我锤子用到什么程度就能找到工作?”

    锤子可以修汽车,可以盖楼房,可以做装修,但“锤子用到什么程度”这个语句毫无指向性。

    锤子只是一个手段,而不是目的。

    所以一个人的C++实力得结合具体的工作内容来谈。

    目前市场上使用C++岗位不多,且要求都比其它岗位更高,所以题主如果有志于在C++相关的方向上发展,得做好在这个方向上长年累月去投入的准备。

    C++有下面这些方向,下面我们一一介绍一下:

    1. Web Backend

    Web业务后台目前国内使用C++的公司不多,并且使用范围在逐渐缩小,业务后台开发需要的是快速的产品迭代和极高的开发效率,因此C++在web后台开发所使用的份额已经被JAVA和Go所吞噬的差不多了,强烈建议题主不要使用C++走这个Track,如果一定要走,那么要把OS, Networks等科班课程学精,熟读《Linux系统编程手册》《TCP/IP详解123》。这个方向对于C++本身的语法要求并不高,把C++ OOP和STL部分掌握熟练就行,Lambda以及Template了解即可。

    2. HPC(High Performance Computing)/AI Infrastructure/ML System

    HPC这个方向比较学术性,只会在BATTMD等大公司存在,小公司没有,因此就业比较窄,就业人数也很少,竞争不那么激烈。目前HPC开发更多的是作为AI Infrastructure的一环存在,着重解决的是DL的算力问题。若从事相关工作,需要学习的东西非常非常多,个人认为这个Track是整个CS工作中最累也最难的,需要学习的东西横跨软件,硬件,算法三个维度。首先得学习Computer Architecture等硬件课程,然后得阅读Tensorflow/Pytorch等某个深度学习框架的C++源码,详细了解主流神经网络的结构,最后还得熟悉CUDA编程,TVM/XLA以及编译原理等相关内容。这个方向对于C++语法的要求也比较高,需要深入理解C++11/20, C++函数式编程以及C++ Template,而不只局限于C with Class以及STL。本人认为这个方向很难走,若不是科班毕业并且有几年的积累,不建议走这个方向。

    3. Database开发

    Database开发,Database的学术性比较高,并且就业岗位比上面两个更多,属于C++中就业压力相对较小的,BAT等大公司才有能力根据自己的业务定制Database,因此相关岗位集中在大公司。Database所需要的技能栈和1比较相似,但对于OS以及Computer Architecture知识的能力要求高于1,需要深入理解Disk架构,对于C++的语法能力要求也高于1。记住,只要和业务性能瓶颈处相关的开发岗,对于C++的语法要求都很高。

    4. Networks

    Networks这个方向我不是很了解,在此不做过多的描述,此方向的就业岗位主要集中于思科,华为,中兴,诺基亚等公司,岗位较多,和3差不多。Computer Networks的相关的知识是核心,需要精读《TCP/IP详解》。

    5. OS/驱动/Compiler

    这三个方向的就业岗位相当少,国内也只在微软,华为等少数几个公司存在,严格来说这些方向上对C的能力要求要更多一些,所以把C++中C的部分以及C++以外C的部分学好就行,对于CS的Compiler,OS,Architecture三大件要熟练掌握。

    6. Multimedia(图形/视频/语音处理)

    严格来说, Multimedia其实属于算法方向,C++只是实现算法的一种手段而不是目的,走这个方向需要对相关音视频图像的处理算法有很透彻的理解,图像的话熟读《Digital Image Processing》,熟练使用FFmpeg/OpenCV等相关工具。这个方向对于C++的语法能力要求不高,把C with class搞明白就OK了。

    7. 游戏引擎开发/游戏前后台开发

    其实游戏引擎开发严格来说也是一个算法方向,从事这个方向数学要好,尤其是线性代数,熟读《Computer Graphics》,C++主要用来实现相关的图形学算法。游戏前后台开发答主没有经历过,不便做过多的描述,但我可以告知的是此方向就业岗位较多,并且很长一段时间内会非常稳定,题主若有兴趣,可自行搜索相关资料。

    以上7个相关的岗位就是目前市场上使用C++最多的7个岗位,当然还有嵌入式,Windows软件开发等稍冷门的方向。题主若想从事C++相关的工作,绝非把C++的语法搞明白这么简单,而需要从技术上深刻理解C++上下游的环境依赖,也要结合具体业务在技术上有所思考。

    往期推荐

    ☞ 专辑 | 趣味设计模式

    ☞ 专辑 | 音视频开发

    ☞ 专辑 | C++ 进阶

    ☞ 专辑 | 超硬核 Qt

    ☞ 专辑 | 玩转 Linux

    ☞ 专辑 | GitHub 开源推荐

    ☞ 专辑 | 程序人生

    关注公众「高效程序员」????,一起优秀!

    回复“1024”,送你一份程序员大礼包。

    展开全文
  • 希望能够帮助题主和对嵌入式开发工作感兴趣的朋友,揭开嵌入式开发的神秘面纱。 Part One:技术支持的日常工作 答主刚毕业便加入了华为公司,定岗嵌入式驱动开发工程师。入组之后,当时的驱动产品已经基本成熟,...
  • 大家好,我是小麦,从一开始接触嵌入式到现在,已经已经有十年了。在这期间走过很多弯路,踩过很多坑。平时和搞技术朋友聊到嵌入式的各种坑的时候,都会不约而同地提到这几点, 硬件的成本高,比较氪...
  • 大家好,我是张巧龙,今天给大家分享一篇关于嵌入式工程师的岗位文章。嵌入式工程师分布在各行各业上面,这其中包括了消费电子、工业电子、汽车电子和军用电子等。从功能上面看,嵌入式本身包括了51、...
  • IT行业现在已经超越金融行业,成为平均薪资最高的行业,大家都纷纷开始想在IT行业谋得一席发展之位,很多想入门IT行业的朋友纷纷开始学嵌入式,可是到底什么是嵌入式?为什么学嵌入式呢? 到底什么是嵌入式? ...
  • 这里面随便抓一个出来足够让新手头疼,如果你真的这样去学习,等你达到找工作水平的时候,已经50岁了! 这就是典型的定位出了问题,先有定位再去规划学习内容,这样你才能以最快的速度学会。 嵌入式其实涵盖的...
  • 小白找工作嵌入式工程师前言从单片机到嵌入式,我该投哪个岗位 前言 好久没有写博客了,这段时间主要是去做自己的毕业设计了,嵌入式学习也就先放了一段时间 最近在找嵌入式实习的岗位,遇到了点事情,跟大家分享...
  • Linux嵌入式学习过程(转载)

    万次阅读 多人点赞 2018-07-09 14:04:41
    嵌入式时代已经来临,你还在等什么? ---循序渐进学习嵌入式开发技术最近经常有用人单位给 我打来电话,问我这有没有嵌入式Linux方面的开发人员,他们说他们单位急需要懂得在嵌入式linux环境下的软件开发人员,我...
  • 还有就是多和同学交流,平时说话说不流畅,就自己多加练习,老师布置的作业,课下自己认真完成,不会就问问同学或者上网查资料,还有每个课程结束,自己总结所的知识点,把本周所的知识浓缩在几张图上也可以加强...
  • 本人在本科阶段学的是电子信息工程里的自动化专业,在学校接触过C语言、单片机、... 有比我小一届的师弟问我学嵌入式需要报培训班吗,我觉得需要,但不应该是现在报,除非你对嵌入式一无所知,想转行做嵌入式。 ...
  • 大学四年嵌入式学习心得体会

    万次阅读 多人点赞 2018-08-14 00:44:15
    我所在学校是普通的本科院校,从大一开始加入嵌入式实验室,一直在实验室呆了三年半,从大一的懵懂无知,天天看着 C 语言书自己敲代码,到后来学习51...是否在迷茫为什么的这么吃力呢?下面作为过来人的我为您解...
  • 在互联网行业中,嵌入式技术后来居上,因为物联网和人工智能的发展,嵌入式技术越来越值钱,学嵌入式的人也越来越多。那嵌入式Linux开发能做什么工作内容?一般有以下这几种: 1.嵌入式系统开发设计工作 在系统的...
  • 嵌入式学习二:怎么学习Linux操作系统

    千次阅读 多人点赞 2019-02-23 19:21:23
    2. 怎么学习嵌入式Linux操作系统 本文假设您是零基础,以实用为主,用最快的时间让你入门;后面也会附上想深入学习时可以参考的资料。 在实际工作中,我们从事的是“操作系统”周边的开发,并不会太深入学习、修改...
  • 憧憬是了20多年,终于能靠自己双手挣钱,恐惧是不知道自己的东西到底有没有用。 现在10年过去了,我对社会的需求更加清晰,认知也上了一个层面。 其实我们学校所的东西是真的非常有用的,我也非常后悔在一个...
  • 关注、星标公众号,直达精彩内容ID:技术让梦想更伟大整理:李肖遥很多学习嵌入式的新人、工程师,在学习到半途中,总会感觉到迷茫,不知道自己从哪方面入手、进阶,也不知道自己目前处于学习的哪个...
  • 学嵌入式,一定要买开发板吗?

    千次阅读 2020-04-11 15:17:33
    经常有同学:我想学嵌入式,应该买哪个板子?这个问题本身就是错的。如果你去问10个买过开发板的人,至少有8个最终都吃灰了,而且他也没通过这个板子以及板子附带的所谓“教程”真的学会。如果你...
  • 嵌入式的定义从技术上来区分嵌入式嵌入式硬件工程师必备技能嵌入式驱动工程师必备技能嵌入式软件开发工程师必备技能嵌入式系统开发工程师必备技能总结 嵌入式的定义 IEEE(Institute of Electrical and Electronics ...
  • 猛男如何学嵌入式,关注@我要学嵌入式,嵌入式男人的加油站。01前言大家好,我是张巧龙。今天转载的这篇文章来自一个本科生,在嵌入式学习上有自己独到的心得体会。以下是正文:发这篇文章主要是针...
  • 嵌入式工作一年总结

    千次阅读 2020-05-28 15:53:43
    刚开始进入公司的能力很差,可以什么都不会吧,wifi拼成wife,杜邦线不知道是什么,串口板不会焊,简单的工具也不会使用。不过几乎每天都在成长。每天都了很多东西,虽然辛苦但是很充实。慢慢的接触到了很多大佬...
  • 集成电路让产品的电路设计越来越简单化,但对嵌入式单片机程序编程水平依赖是越来越高。 小到儿童玩具,大到飞机导弹,太多智能电子产品都离不开单片机的开发,电子烟,按摩椅,智能红绿灯,耳机,手表,音箱…… ...
  • 我刚毕业的那个时候,要单片机相关的工作就要到深圳,广州等一线城市,在二三城市,是很难找到工作的。 现在很多在大学的读书的时候,就开始学习嵌入式开发的相关课程,有些是电子专业的,有些是机械,计算机,...
  • 嵌入式开发难吗?嵌入式多久可以学会?

    千次阅读 多人点赞 2021-08-27 19:46:23
    大家好,我是无际单片机编程的徐工,今天闲暇,抽点时间和大家聊聊关于嵌入式开发的学习。 因为爱迪生发明灯泡的故事...嵌入式开发是什么呢?嵌入式开发就是开发智能电子产品的,专业的名词叫“可编程设计”,主要针对
  • 想自学单片机的兄弟,都先会通过各种途径了解评估一下单片机该如何学习?或通过网络,或通过同学,或通过同事朋友等。...每个学习单片机的都会有这样的经历,我也一样,买51嵌入式单片机开发板的时候,
  • 我做了嵌入式单片机开发10年,有时做产品的时候经常会跟做机械、做外壳的工程师打交道。 工作话题之余,我们也会拉拉家常,最好奇的就是各自行业的一个待遇水平。 我碰到好几个做机械的,干了7,8年甚至有的10几年...
  • 从何起,以什么样的学习路线稳步推进就成了摆在嵌入式开发学习面前的首要问题。本文以作者的学习经验和体会,为大家阐述一种学习路径,供各位同学参考。 一、嵌入式工程师必备技能总览 在介绍学习路径之前,...
  • 学嵌入式需要掌握哪些知识

    千次阅读 2015-07-01 22:39:18
    嵌入式操作系统(EmbeddedSystem)是指以应用为中心、以计算机技术为基础,软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。举例来说,大到油田的集散控制系统和工厂流水线...
  • 机械转嵌入式需要哪些东西?

    千次阅读 多人点赞 2021-11-02 20:07:10
    告诉你一个残酷的现实,即便告诉你学习方法和路径,能坚持下来的也寥寥无几。 除此以外,还有学习过程中的突发情况,比如走弯路不知道,碰到问题没人指导。...当时,从电气专业转行到嵌入式单片机软件开发,最终找到工

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,730
精华内容 14,692
关键字:

学嵌入式可以找什么工作