网站首页 > 资源文章 正文
简单说,如果仅仅学C/C++本身的话,学到什么程度你都找不到工作。
学习掌握某种编程语言的语法只是一个基础,一个起点。因为语言只是一种工具,学会语法特性仅仅是知道这种工具长什么样子、能拧能钻能铣能刨,如此而已。
想要找到工作,你需要能够使用这件工具创造价值——你不能仅仅知道钢锉能挫铁,还要学会看图纸、会在给你的料子上合理规划、做出符合图纸要求的合格元件来。
简单说,如果分若干级别的话,可能如下:
1、了解C++的常规语法,知道函数调用、类、虚函数、多态等的功能/原理;可以独立完成课后习题。
达到这个水平已经可以胜任很多职位了;但需要在工作中继续成长。幸好愿意招应届生的公司对新人的要求都不高,你有时间慢慢成长。
但要注意,这里的要求是“独立完成课后习题”,靠老师教、抄别人答案是不管用的。甚至抄完了死记硬背下来也是白搭。必须自己通过独立思考解决问题。面试者有的是办法试探出你有没有自己解决问题的能力。
如果课后题被“剧透”的太厉害的话,网上刷题也是条路子。还是那句话,别一味抄别人的代码,你起码要能独立解决其中一小半的问题,这才能证明你的确知道这件工具的用法。
2、能够活用自己掌握的C++知识,独立实现一些小型项目
比如,写个沙雕小游戏逗女朋友开心,写个排课程序帮老师解忧,甚至写个简单的课程提醒程序提示你每天带哪些书,等等。真正把“实践任务”和“C++编程连起来”——现在很多公司其实干的就这活,没什么技术含量。
3、借助别人封装好的API/库,实现看起来更强更厉害的功能
比如,借助算法库里的MD5算法和OS提供的目录遍历API,把系统所有要害文件(应用程序、DLL、注册表等)的大小、修改时间、数字摘要都算出来、储存到一个文件里。以后每隔几天遍历一次,检查它们的大小、修改时间,如果有变化就计算数字摘要——也可以强制计算所有的数字摘要——从而找出哪些要害文件被修改了、这些修改是系统自己打的补丁呢,还是不法程序(病毒木马流氓软件等)的非法修改。
这就是一个极为简陋、但效果还行的反病毒工具。它的缺点是,这是个白名单工具,只能检查到通过修改要害文件获得执行权的病毒/木马,同时会对系统更新产生误报。但仍然不失为一个效果不错的系统问题排查工具——因为OS要害文件经常是好些年不变的(现在你知道为何有时候有的杀毒软件会杀系统文件甚至杀自己了吧?)。
再比如,利用现成的深度学习库/语音识别库搞一些貌似高大上实则没什么技术含量的人脸识别/语音识别/声线识别程序——别紧张,你能行。
能折腾这些,你到公司基本上就可以算是个“能人”,可以跟风做一些听起来很帅但其实仍然没什么技术含量的工作了。
4、真正理解算法与数据结构,理解操作系统原理、计算机原理、数字电路原理以及编译原理、数据库原理、网络原理等等基础原理
到了这个程度,你才算没辜负“科班出身”这个头衔,脱离了“码农”“调库专家”“新技术层出不穷怎么都跟不上学不完”的半外行状态,可以从事一些较为硬核的、探索性的工作,帮公司开拓新应用领域了。
5、你仍然可以继续深入。比如图形图像压缩,比如加解密算法,比如网络协议栈等,每一个子领域都够很多专家投入一辈子的。不过这些领域经常返璞归真,C反倒会成为更常用的语言;而且往往需要高等数学作为发动机。
比如著名的卡马克牛顿迭代法求平方根的倒数算法,其中用的魔幻数字就引出了好几篇论文。专家们用卷积找出了一个魔幻数字,但是效果不如卡马克数字。再后来有人暴力穷举,这才找出一个优于卡马克魔幻数的新数字来。
再比如,现在的CNN神经网络,有次我提到要理解它你得懂卷积;于是跳出来几个自以为很懂的出来杠我“我敢打赌,你是听到这个东西的名字里有个卷积于是胡乱脑补。其实这东西和卷积没半毛钱关系”……
他们不知道,CNN里面的确没有卷积符号、也没有使用卷积计算公式;但它的实现思路就是卷积运算。只不过它的设计者把卷积算法化用进简单的连续矩阵计算中,在深度神经网络中实现了“特征抽象和特征空间变换”——这是矩阵和卷积全都学到出神入化、用出来让普通人看不懂、但内行一看就知道还是新瓶装旧酒的结果。
其实前面提到的数据结构与算法等基础知识,会玩的同样能玩到返璞归真。比如有人随随便便三两行代码就把一个数组变成了环形缓冲区,或者简简单单两行声明就搞定了一个递归算法。如果你积累不够深厚、头脑不够灵活,这个东西就很难看懂。
总之,这个领域是属于创造者的。能踏入这个领域,那就不是你找工作,而是工作找你了。
综上,如果仅仅是学C++这门语言的话,学到什么程度你都不好找工作。
你需要学的,是用C++这门语言去解决问题。能解决课后练习题是一个水平,能刷网上的算法题又是一个水平;能自己搞定简单的实用项目是一个水平,能充分利用操作系统以及第三方软件/库给你提供的抽象(意味着你能理解他们的设计思路)实现几乎所有东西又是一个水平;理解各种东西背后的原理是一个水平,把这些原理玩的出神入化又是一个水平;学会用数字认识这个世界是一个水平,能够化用高深的数学知识、信手解决没人说得清的难题又是一个水平……
一般来说,只要你能达到“用C++解决简单问题”的水平,找工作就不成问题了;只是受限较多,只能从事一些较为初级的工作,极易陷入没日没夜机械的写代码的窘境,然后看着层出不穷的新技术欲哭无泪。
你往前赶的越多,你代码里的智慧和灵气就越多;此时你才可以尝试那些必须用巧力的工作,或者用巧力把繁重的工作变得简单、甚至促进你所在公司乃至全人类的开发效率。玩到这个程度,你才算真正踏入程序员的行列。
猜你喜欢
- 2024-09-21 信号处理绕不过去的坎:相关与卷积
- 2024-09-21 揭秘卷积神经网络热力图:类激活映射
- 2024-09-21 PyTorch中傅立叶卷积:计算大核卷积的数学原理和代码实现
- 2024-09-21 C++学到什么程度可以面试工作(c++要学多久才能找到工作)
- 2024-09-21 吴恩达深度学习笔记(72)-卷积网络的边缘检测
- 2024-09-21 卷积神经网络原理及其C++/Opencv实现(5)—参数更新
- 2024-09-21 复共轭像(共轭复信号)
- 2024-09-21 卷积的计算(卷积的计算过程)
- 2024-09-21 机器学习中的评价指标(机器学习线性回归模型评价指标)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)