找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9418|回复: 25
收起左侧

从硬件到纯软件,回顾一个老工程师的经历之路!

  [复制链接]
ID:286349 发表于 2018-3-1 15:21 | 显示全部楼层 |阅读模式
前段时间,我写了很多关于嵌入式学习的文章,通过不少学习者的反馈使我有成就感。分享的乐趣使我决定继续写下去。在接下来的时间,我计划也开始写关于Java的内容。希望对你或多或少提供方向,当然,老规矩,遇到问题或者想发展确没方向的新手都可以私我。话不多说,给大家带来一个软件工程师的成长史:
其实我很早以前就想写了,Java是我毕业后学的第一门语言,准确来说,如果单纯为了做一个普通的开发人员的话,只要你熟练掌握MVC的分层,熟练掌握List和Map的用法,然后会写写SQL,基本上就没有什么大问题了。真不难,我一开始也和大多数刚刚接触编程的人一样,感觉Java学起来好难的。
1519866542(1).jpg

的确,如果你要去深究,我的意思是,深究Java的运行机制,底层代码等,那真的有一定难度。可是,如果你只是为了找一份养家糊口的工作,在一个小公司做做开发,真的不需要你有多么精通。
原因很简单,在这个时间就是金钱的时代,程序框架都是现成的,公司主要追求的还是项目的开发进度。尤其是中小型公司,根本不需要你对Java底层研究得有多深。你会照猫画虎,快速地把功能开发出来,你就很OK。如果有个新需求,需要你去网上借鉴一些代码,弄一些免费的组件,直接拷贝实现功能,那更加OK,升职加薪是肯定的了。
记得第一次写一篇文章,居然收到了非常多评论,老实说这是我没预料到的。我只是把我自己的经历发出来,没别的意思,当然,那篇文章的描述中,也的确有不妥的地方。
本篇文章,我会详细地讲述我如何从一个硬件工程师转到Java Web软件开发的,希望给需要的人做一个参考。或者,你就当故事看看也可以。
2. 记忆犹新的一段话
我最早是希望从事本专业,搞单片机或者嵌入式开发的,现在依稀记得曾经面试我的一个老板对我说的话,大意如下:
“我真搞不懂你们这些刚毕业的学生,总是谈一些理论。很简单,我就问你,一个功能马上就要用,你三天之内能不能给我开发出来?网上都有现成的东西,拿过来用不就行了。如果我接到一个单子,你说要花个半年时间研究一下,我的公司还能开下去么,我不早就饿死啦。也许百度,华为那种大公司需要专门招几个人来研发,可是我们不需要,我们只看效率和速度。我朋友一个什么什么公司前几年也招了几个大学生,结果两年下来了,核心的代码还不是自己写,CAD还不是自己画?让他们搞也搞不出什么东西。不是说他们水平不行,而是这东西需要很长时间的积累,不是说你一毕业就能直接达到多高的水平。”
虽然最后录取了我,可是我自己也明白,学校里学的那些CAD,单片机方面的知识已经跟不上公司的节奏。芯片我只知道STC-89C51,而且不是很熟悉,我连STM32都没用过,而51单片机和这里的工作没有关系。我CAD绘图也还停留在理论,实际操作起来估计就露馅了。
我深刻地明白,即使进入了这家公司,也不会有人教我如何去胜任这份工作,到时候我会变得很尴尬和被动。所以最后我没有去。
不过他的一番话也提醒了我,必须要有一份拿的出手的技术。社会不比在学校,上课随便听听,通过考试就行了,实在不行还有补考。在公司里,不是这样的。
正好赶上近几年制造业不景气,嵌入式方面的工作更加难找,我投了很多简历,除了一些小作坊,小公司,其他都是石沉大海,进入大公司的机会为0。
很多公司不是不缺人,而是缺少来了就能立马上手的工程师,而不是说要招一些应届毕业生,来了之后再手把手教他们。哈哈,没那个时间。
3. 理论真的不重要吗
理论真的不重要吗?
不,从某种程度上说,理论的确很重要。它会让你对一项技术理解得更加深入。这一点我不否认,也不可能否认,因为它就是事实。
但,我不得不承认,如果我学历不够硬,真的没法接到大公司的面试通知。
名牌大学的毕业生都一大把,研究生大军也在盯着这些职位。哪里轮得到我一个普通二本的毕业生?
也许,大公司会看重你理论知识是不是很扎实,所以在校招上,你会经历一次他们给你安排的笔试。
上一篇文章中,有的评论提到,如果理论不扎实,你连笔试都过不了。的确如此,但是,这也要建立在你能够接到大公司的笔试邀请的前提之下。
事实情况是,我们学校的校招,最多就是一些中型公司,都算不错了。大公司是见不到的。还有一些老司机(你没看错,真的是老司机),还有仓库管理员的职位。大公司的话,嗯,肯德基,大娘水饺算不算?
4. 我的一次校招经历
那次校招,我看到一个稍微好一点的公司,就拿着我的各种证书,什么CET-6,高等数学竞赛,英语竞赛,数学建模啥的去应聘。我记得他看了一会,就把证书的复印件抛在一旁了。然后,他问我,Java会不会?会写测试用例吗?(当时我不懂,根本就不知道什么意思,现在明白他招的是软件测试。汗~)
我说,“我不会,但我可以学。”。
他继续说,“哦,没关系,我们这个职位对编程要求不高。对了,你有没有参加过什么项目。”
我说,“没有,不过我对编程很感兴趣,学过C,C++,还考过证。”
然后就没有然后了,我也不记得后来对我说了什么,反正有一句是:“你什么都没做过就来应聘啊?”
你什么都没做过就来应聘啊?这句话深深地打击了我。
好吧,我的确没做过,我只是在老师的要求下完成了课程。我说了实话。
这就是我还未毕业时候的一次面试经历。
u=2941235852,554689914&fm=27&gp=0.jpg

5. 背水一战,从偏硬件转到纯软件
说来惭愧,在大四的时候,我还真做过一段时间的硬件工程师(纯自黑)。那段时间,接触了一点protel 99SE,没事也会画画CAD。可是,我那点三脚猫功夫完全靠自己网上搜了点视频学来了。一段时间下来,我连最基础的事情都做不来,很多时候,我也不知道要学点什么,该怎么去学。
我找回模拟电子技术,数字电子技术的教材,重温三极管,二极管,电力电子技术等等。可是,真的很无奈,我不清楚这些东西怎么用到工作中。
那段时间真的是比较低迷的,做不了事情,也没有人教,准确的说,他们也忙得一塌糊涂,我不好意思去请教。更何况,我都不知道要请教什么。
两个月后,我实在受不了这个尴尬的气氛了,于是辞去了工作。
我总结了一下,我不认为自己的理论知识有多糟糕,只是没有一个实战平台让我来锻炼。大公司,我连笔试的资格都没有,小公司,就算面试吹**混进去了,也根本胜任不了。
这个时候,我才明白,嵌入式这种东西,我没有个三五年,真的不太可能达到一个很高的水平。而且,它需要大量的实践操作,而实践操作需要硬件设备。像我这么一个大学里只会理论,连实验室都没怎么去过,连在洞洞板上搭一个实验电路都费劲的人,真的是不太适合。虽然当时非常想学习嵌入式,只是苦于没有领路人。至今想起仍然后悔不已...
不知道怎么下手,怎么学习,没有实践的机会。这就是我那段时期的状态。
我不知道正在看这篇文章的你,是否能够理解我当时内心的无助?
可是日子还得过,辞去工作后,家里人也为我着急。我认真思考今后的发展道路。
我发现,我其实对硬件不是很感兴趣,却对电脑感兴趣。如果继续发展硬件,我就必须要有足够的实验器材,加上各种单片机芯片,然后画CAD,还要做出来。虽然用仿真软件也可以,不过我对仿真软件也不是很熟悉。
问题就在于,我大学里面动手实践的机会太少。
PLC方向?呵呵,我对PLC的实践经验还没单片机多。
硬件工程师,电气工程师,在当时的我看来,似乎通往了一条未知的道路,有着太多的不确定因素。
那么,干脆搞纯软件吧!
我头脑中冒出来这样一个想法,对啊,我说,我干嘛非得从事本专业?
如果我搞纯软件的话,我只要一台电脑就行了,也不用去关心什么芯片的型号,也不需要画什么CAD,而且我也不需要去焊东西了。
是啊,只要一台电脑就可以了,我在自己家也能学!不需要管其他硬件设备了!
我越想越兴奋,就这样踏出了第一步,直到今天我在写这篇文章的时候,我都庆幸自己当初的决定。
不论怎么样,成为一个软件工程师,虽然累了点,不过很充实,也很快乐。而且,工作环境好。我记得当初做硬件的时候,每天都在跟焊锡丝打交道(因为做不了设计的工作,我主要的任务就是焊电路板,换换元器件啥的。一不小心电容炸了,打在身上还是很疼的。一不小心被电烙铁烫到,立马一个包。)
总之,这就是我学习软件开发的原因和经过。
6. 总结
故事讲完了,说起来生活还真是变化莫测,有的时候,一个小小的决定就会极大地改变今后的人生轨迹。
硬件也好,软件也罢,都是自己的选择,任何一门技术,当你真的热爱它,就一定能走得很远。
我后来扪心自问,自己的兴趣真的不在硬件上面,所以做软件开发是我的最终选择。如果你对硬件,嵌入式方面感兴趣,那也是很好的。
我大学一个同学,就走了嵌入式的方向,当然,也是在一家中小型公司,大公司也是连笔试的机会都没有。
他大学里面基本上选修课必逃,必修课选逃,还未毕业就拿了高薪。
我和他算是两个极端,我一天到晚弄理论,各种考证,竞赛,结果连大公司的笔试机会都拿不到。他一天到晚搞实践,不管怎样,找到了比较满意的工作。
曾经有人问我做什么工作的,我说软件开发。对方一听就觉得好像挺那个啥的,然后各种抱怨自己的工作怎么怎么不好。然而他不知道的是,我背后付出的汗水有多少。
每个软件开发人员都知道,虽然在一般人眼里看起来,IT这个行业多么多么好,可是,我们在背后其实都付出了很多。当别人晚上去看电影了,我们在加班。当别人周末出去旅游了,我们还在电脑前敲代码学习最新的技术,等等。各种滋味,其实也就我们内心知道了吧。社会如此,我们当渐行渐远!还是老规矩,如果你是想学习确没有方向,或者刚刚踏入it行业的菜鸟这边都可以私我。楼主这些年也存了不少干货,送给有缘人,相信一定可以帮助你更上一层楼!

评分

参与人数 3黑币 +125 收起 理由
yousunny + 20 赞一个!
晨_小熊 + 5 赞一个!
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:286349 发表于 2018-3-1 15:22 | 显示全部楼层
企鹅 29...42...454...56,另外喜欢的朋友也可以留下自己的企鹅
回复

使用道具 举报

ID:327159 发表于 2018-5-10 21:23 | 显示全部楼层
苳天里的一把火 发表于 2018-3-1 15:22
企鹅 29...42...454...56,另外喜欢的朋友也可以留下自己的企鹅

2453704283,干了四五年维修电工我今年准备去找个plc方面的工作,不知道这条路走的对不对
回复

使用道具 举报

ID:369456 发表于 2018-7-20 11:57 | 显示全部楼层
2839935440  企鹅
回复

使用道具 举报

ID:333428 发表于 2018-7-20 14:05 来自手机 | 显示全部楼层
苳天里的一把火 发表于 2018-3-1 15:22
企鹅 29...42...454...56,另外喜欢的朋友也可以留下自己的企鹅

1289028249大一鸡,入门嵌入式
回复

使用道具 举报

ID:279533 发表于 2018-7-20 16:55 | 显示全部楼层
1622837015,,,专科快毕业了,在学32现在,但是不太喜欢编程,特别喜欢研究电路这些,虽然我特别菜
回复

使用道具 举报

ID:284488 发表于 2018-7-20 17:46 | 显示全部楼层
3163706042 企鹅 加一
回复

使用道具 举报

ID:98368 发表于 2018-7-20 22:18 | 显示全部楼层
很好,值得我们好好学习
回复

使用道具 举报

ID:276761 发表于 2018-7-20 23:22 | 显示全部楼层
人生的路上总是坎坷的,人在不同的阶段都会经历不同的困境
回复

使用道具 举报

ID:370274 发表于 2018-7-23 16:12 | 显示全部楼层
531092860 我想要从单片机转向纯软件。
回复

使用道具 举报

ID:380880 发表于 2018-7-31 01:10 | 显示全部楼层
佩服楼主
回复

使用道具 举报

ID:76318 发表于 2018-7-31 08:52 | 显示全部楼层
很想向楼主学习,我QQ2933036945,望加我。
回复

使用道具 举报

ID:301077 发表于 2018-7-31 09:14 | 显示全部楼层
我现在就是你说的刚毕业的状态,好难受
回复

使用道具 举报

ID:381173 发表于 2018-7-31 10:59 | 显示全部楼层
我现在大三实习,出去找嵌入式方面工作,面试了好几家直接跟我说实习可以,但没有工资,就是让我跟着学。难受的要死。佩服楼主
回复

使用道具 举报

ID:265988 发表于 2018-8-2 14:29 | 显示全部楼层
写的非常好,心有感触
回复

使用道具 举报

ID:367440 发表于 2018-8-3 18:08 | 显示全部楼层
QQ:1263776468.忘楼主加下。开学就要大三了,现在暑假在学嵌入式,也没参加过什么比赛,很迷茫。知识只限于课本上的。内心和楼主快毕业时差不多。。
回复

使用道具 举报

ID:462046 发表于 2019-1-5 22:51 来自手机 | 显示全部楼层
引起内心共鸣,目前正在考虑转软件
回复

使用道具 举报

ID:391069 发表于 2019-1-7 10:52 | 显示全部楼层
邮箱&qq: 1277557861@qq.com 我是17年机械毕业的,因为公司转型现在在搞嵌入式,从头开始
回复

使用道具 举报

ID:331042 发表于 2019-2-14 08:33 来自手机 | 显示全部楼层
企鹅295812470低端硬件工程师
回复

使用道具 举报

ID:138119 发表于 2019-2-15 02:29 | 显示全部楼层
嵌入式系统开发的,看了你的文章,表示赞同,如果需要和单片机打交道的,可以一起学习!

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:328121 发表于 2019-2-15 08:33 | 显示全部楼层
写得不错,很有方向
回复

使用道具 举报

ID:276663 发表于 2019-2-15 09:41 | 显示全部楼层
鄙人还在嵌入式硬件的道路上苦苦追寻
回复

使用道具 举报

ID:18591 发表于 2019-2-17 12:35 | 显示全部楼层
感謝~~~~~~~~~~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

ID:592020 发表于 2019-7-29 14:52 | 显示全部楼层
企鹅  2814885319    一个纯软件的学生想学硬件,其实主要是觉得物联网很有趣
回复

使用道具 举报

ID:316613 发表于 2019-7-30 13:59 | 显示全部楼层
专科毕业三个月,在学校期间三年参加了很多次比赛,也积累了一定硬件经验,但32碰都不敢碰,工作之后从事硬件工程师,从正点原子开发板一点一点学,三个月也搞定了公司交给的四五个项目,感觉一切并不是太难,只要心中相信这就是你的路,一定要走好,当时下班就看STM32和AD的书,上班就看视频,天天学习 然后根据开发板实践,多上网百度资料,成熟的很快。欢迎大佬们交流
回复

使用道具 举报

ID:544352 发表于 2019-7-31 10:05 | 显示全部楼层
QEQWE123 发表于 2019-7-30 13:59
专科毕业三个月,在学校期间三年参加了很多次比赛,也积累了一定硬件经验,但32碰都不敢碰,工作之后从事硬 ...

都说搞技术的多少都要会点c,打算从单片机入手学点C语言
最近遇到难题,求解答

用的是mini板,案例里读写内容的格式是8位字符串数组

//要写入到W25Q64的字符串数组
const u8 TEXT_Buffer[]={"MiniSTM32 SPI TEST"};
u8 datatemp[SIZE];
读写函数↓
SPI_Flash_Write((u8*)TEXT_Buffer,FLASH_SIZE-100,SIZE);        
SPI_Flash_Read(datatemp,FLASH_SIZE-100,SIZE);        

但是在实际用的时候大部分存储读写的是 32位整数,读写函数只能按照8位传输,请问改如何实现32位整数的读写保存。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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