前段时间写了很多关于嵌入式学习的文章,很多学习者的反馈让我很有成就感。 分享的快乐让我决定继续写作。 在接下来的时间里,我也计划开始写一些关于Java的文章。 希望能为大家提供或多或少的指导。 当然,旧规则仍然适用。 新手遇到问题或者想要开发但是没有方向的可以私聊我。 废话不多说,给大家带来一个软件工程师的成长史:其实我很早就想写了。 Java是我毕业后学的第一门语言。 准确的说,如果我只是想做一个普通的开发人员的话,只要精通MVC的分层,List和Map的使用,然后会写SQL,基本上就不会有什么大问题。 这确实不难。 和大多数刚接触编程的人一样,我觉得Java非常难学。
确实,如果你想深入研究,我的意思是,深入研究Java的运行机制、底层代码等等,确实很难。 不过,如果你只是想找一份工作养家糊口,在小公司做发展,那你真的不需要很精通。 原因很简单。 在这个时间就是金钱的时代,程序框架是现成的,公司主要追求的是项目的开发进度。 特别是对于中小型公司来说,不需要很深入地研究Java底层。 如果你能模仿猫并快速开发出功能,那就没问题了。 如果有一个新的需求,需要你从网上借一些代码,弄一些免费的组件,直接复制来实现功能,那就更好了。 升职加薪是肯定的。 记得第一次写文章的时候,收到了很多评论。 说实话,我没想到会这样。 我只是分享我自己的经历,没有别的意思。 当然,那篇文章的描述确实存在不准确的地方。 在这篇文章中,我将详细描述我是如何从硬件工程师转型到Java Web软件开发的,希望能够给有需要的人一个参考。 或者,你也可以把它当作一个故事来读。 2、有一段话我至今记忆犹新。 我一开始希望从事这个专业,从事单片机或者嵌入式开发。 现在我依稀记得曾经面试我的一个老板对我说过的话,大意是这样的:“我真不明白你们这些刚起步的人,毕业生总是讲一些理论,很简单,我问的是你啊,一个功能马上就要用了,你能在三天之内给我开发一下吗?网上有现成的东西,你直接拿过来就可以用吗?。
如果我接到订单,你说需要半年时间研究,我的公司还开吗? 我早就饿死了。 也许像百度、华为这样的大公司需要招几个人来做研发,但我们不需要。 我们只关注效率和速度。 我朋友的公司几年前也招了几个大学生,但是两年过去了,核心代码仍然不是自己写的,CAD也不是自己画的? 即使要求他们这样做,他们也不能生产出任何东西。 不是他们不擅长,而是需要很长时间的积累。 并不是说一毕业就可以直接达到高水平。 “虽然最终被录取了,但我也明白,在学校学到的CAD和单片机知识已经跟不上公司的步伐了,我只知道STC-89C51芯片,还不是很熟悉。它。我根本不知道STM32。我以前用过它,但是51单片机与这里的工作无关。我的CAD绘图仍然是理论,实际操作中可能会暴露出来。我深刻地理解了即使我进了这家公司,也没有人教我怎么做。如果我能胜任这份工作,我会变得很尴尬和被动。所以最后我没有去。但他的话也提醒了我我说我必须有一技之长,我必须有一技之长,我可以使用。社会不如在学校。只要听,通过考试。如果不行,你必须补考。在公司,这是事实并非如此,恰逢这几年制造业陷入衰退,嵌入式领域的工作变得更加难找。 我投了很多简历,除了一些小作坊、小公司,其他都丢了,进入大公司的机会是0。
很多公司并不是缺人,而是缺的是一到就可以上手的工程师,而不是招应届毕业生,到了之后一步步教他们。 哈哈,我没那个时间。 3. 理论真的不重要吗? 理论真的不重要吗? 不,从某种程度上来说,理论确实很重要。 它将使您对技术有更深入的了解。 我不否认这一点,也不能否认,因为这是事实。 不过,我不得不承认,如果我的学历不够强,我真的无法收到大公司的面试通知。 名牌大学的毕业生不少,研究生大军也对这些职位虎视眈眈。 哪里可以获得普通第二学位的毕业生? 或许,大公司会看重你的理论知识是否扎实,所以在校招的时候,你会去参加他们给你安排的笔试。 在上一篇文章中,有评论提到,如果没有扎实的理论,你连笔试都过不了。 确实如此,但这也必须建立在你能收到大公司笔试邀请的前提下。 事实是我们学校招聘的大部分是中型企业,还是不错的。 在大公司里是看不到的。 还有一些老司机(你没看错,真的是老司机)和仓库管理员的职位。 对于大公司来说,嗯,肯德基,大娘的饺子算不算? 4.在我的一次校招经历中,我看到一家稍微好一点的公司,把我所有的证书,比如六级、高等数学竞赛、英语竞赛、数学建模等都拿去应聘。 我记得他看了一会儿,然后把证书副本扔到一边。
然后他问我,你懂Java吗? 你能写测试用例吗? (当时没看懂,根本不知道什么意思,现在明白了,他是招软件测试的,唉~)我说:“我不会。但是我可以学。” ” 他继续说道:“哦,没关系,我们的职位不需要太多编程,顺便问一下,你参与过什么项目吗?” 我说:没有,但是我对编程很感兴趣,我学过C、C++,甚至还通过了考试。 然后就什么也没有了。 我不记得他后来对我说了什么。 反正一句话就是:“你什么都没做,就来应聘了?” 你什么都没做,就来应聘这份工作。 啊? 这句话对我的触动很深。 嗯,我没有做,我只是按照老师的要求完成了课程。 我说的是实话。 这是我毕业前的一次面试经历。
5. 克服困难,从硬件转向纯软件
说来惭愧,我在大四的时候,其实也当过一段时间的硬件工程师(纯属自嘲)。 那段时间接触了一点protel 99SE,也能画CAD了。 不过三足猫功夫我完全是通过网上搜索一些视频才学会的。 一段时间下来,我连最基本的事情都做不了。 很多时候,我不知道该学什么,也不知道如何学。
我查阅了模拟电子技术和数字电子技术的教材,复习了晶体管、二极管、电力电子技术等,但实在是很无奈。 我不知道在工作中如何使用这些东西。
那个时候确实是一个低迷的时期。 我什么都做不了,也没有人教我。 准确的说,他们太忙了,我也不好意思请教。 更何况我也不知道该问什么。
两个月后,我实在受不了这种尴尬的气氛,就辞职了。
我总结一下,我并不认为我的理论知识有那么差,我只是没有一个实际的平台让我去实践。 对于大公司来说,我连笔试的资格都没有。 对于小公司来说,就算我面试进去了,我也根本不够资格。
这时我意识到,如果我没有三五年的嵌入式技术经验,我真的不可能达到很高的水平。 而且,需要大量的练习,而练习需要硬件设备。 对于我这样一个大学里只懂理论,没去过实验室,在性能板上搭建实验电路有困难的人来说,确实不适合我。 虽然当时我很想学习嵌入式技术,但就是没有人带路。 现在想起来还是很后悔…
不知道如何开始,如何学习,也没有机会实践。 这就是我那段时间的状态。
不知道正在读这篇文章的你能否理解我当时的无奈呢?
但我还是要过我的生活。 我辞职后,家人也很担心我。 我认真思考未来的发展道路。
我发现我其实对硬件不是很感兴趣,而是对计算机感兴趣。 如果我继续开发硬件,我必须有足够的实验设备,添加各种单片机芯片,然后绘制CAD并制作出来。 虽然可以使用仿真软件,但是我对仿真软件不是很熟悉。
问题是我在大学里实践的机会太少了。
PLC方向? 哈哈,我对PLC的实践经验没有单片机那么多。
当时在我看来,硬件工程师和电气工程师正在走一条未知的道路,充满了太多的不确定因素。
那我们就来做纯软件吧!
我脑子里突然冒出一个念头,是啊,我说,为什么我一定要读这个专业呢?
如果我从事纯软件,我只需要一台电脑,不需要关心芯片的型号,也不需要画任何CAD,也不需要焊接任何东西。
是的,只要有一台电脑,我就可以在家学习了! 其他硬件设备我不用担心!
我越想越兴奋,于是我迈出了第一步。 直到今天,当我写这篇文章时,我仍然感谢我当初的决定。
不管怎么样,成为一名软件工程师,虽然有点累,但是却很充实、快乐。 而且,工作环境也很好。 记得以前做硬件的时候,每天都要和焊锡丝打交道(因为不能做设计工作,主要任务是焊接电路板和更换元件,如果不小心电容爆炸了,我还是会被打到)身上很疼,如果不小心被烙铁烫伤了,请立即包起来。)
总之,这就是我学习软件开发的原因和过程。
六、总结
如今故事已经结束,人生真是难以预料。 有时候,一个小小的决定就能极大地改变你未来的人生轨迹。
无论是硬件还是软件,都由您选择。 任何技术,只要你真心热爱它,就一定能够走得更远。
后来我问自己,我的兴趣确实不是硬件,所以软件开发才是我最终的选择。 如果你对硬件、嵌入式方面感兴趣,那也很棒。
我大学的一个同学选的是嵌入式方向。 当然,他也是在中小型公司,甚至大公司连笔试的机会都没有。
大学里,他基本上都要跳过选修课和必修课,毕业前就拿到了高薪。
他和我处于光谱的两端。 我整天研究理论、进行各种测试、竞争。 结果连大公司笔试的机会都没有。 他整天练习,不管怎样,他找到了一份更满意的工作。
曾经有人问我做什么工作,我说软件开发。 对方一听,感觉自己是在支持自己,然后就抱怨自己的工作怎么不好。 但他不知道我为此付出了多少汗水。
每个软件开发者都知道,虽然IT行业在普通人眼里看起来很伟大,但实际上我们在幕后要付出很多。 晚上别人去看电影的时候,我们却在加班。 当别人周末出差的时候,我们还在电脑前敲代码,学习最新技术等等。 其实,各种口味,只有我们自己心里知道。 社会就是这样,我们就应该渐行渐远! 这仍然是同样的旧规则。 如果你想学习但没有方向,或者是刚进入IT行业的新手,可以私聊我。 作者多年来也保存了很多有用的信息,送给了幸运者。 我相信它一定会帮助你达到更高的水平!