查看原文
其他

我是如何从通信成功转型为 Java 软件开发工程师的?

倪升武 CSDN 2018-11-24

十年寒窗苦读,无论是谁,都希望能够拥有一个好的未来,但是在面临职业生涯的抉择时,会有不少人会为曾经的选择而后悔,不过在为时不晚的情况下,大家更多的还是会转型。在本文中,作者将分享其从传统的通信行业融入一线 Java 开发者的成功经验,希望对迷茫中的你有所帮助。

作者 | 倪升武

责编 | 屠敏

我的 CSDN 和公众号的读者里面有绝大部分都是在校学生,有本科的,也有专科的,我在微信里收到很多读者的提问,大部分问题都跟如何学习编程有关,有换专业自学的、有迷茫不知道如何学习的、有报培训班没啥效果的等等,我能感受到他们的诚意和焦虑,所以我觉得我很有必要写下这篇文章。


本科的脚踏实地


高考之后填志愿,那时候其实我也不懂,就觉得电子信息工程好像还不错,于是就填了。在大学四年,除了在学校学了 C 语言之外,我没有学习任何第二门编程语言,而且 C 语言也只是初级的水平。我在大学都干了啥?

我在大一,就决定读研,所以我一直在努力学习,高等数学、线性代数、概率论、大学物理、还有一些数电、模电、信号与系统、通信原理等等专业课。老实说,我非常认真,一部分是因为自己的学习习惯,另一部分也是因为自己要读研,所以我每一步都走的很踏实。在我的同龄人里,执行力和毅力能跟我比的,没几个,这点我不吹牛逼。

大学没少拿奖学金,最起码可以抵消我四年的学费,单片机也玩了不少,51、52 到后面的 ARM9 都玩过,当时还买了好几块板子,写程序跑,那时候对嵌入式还蛮感兴趣的。

但是毕业后,我有点后悔。为什么呢?我没怎么学编程啊!除了会写一些简单的 C 代码,其他编程技能为零。


研究生的觉悟


考入同济之后,我的专业是电子与通信工程。从研一开始,我很明确我自己想要什么,研究生也是要上课的,基础课、专业课等等。研究生也有课题,需要看各种论文,需要写论文,其实还是蛮忙的。

我研究生对自己的唯一要求就是提升自己的编程技能。一开始我在看 C++,语法看完了之后,看了一点基于 C++ 的数据结构和算法。我真正开始决定学 Java 是在研一下学期,当时在 eBay 跟一些大佬们聊了蛮多,倒不是学到了什么牛逼的技术,而是开拓了自己的视野,开始有了自己的一些想法。

后来我在实验室里闷头苦学了一年左右,从 Java 语法基础开始,到集合框架源码(那时候还是基于 JDK1.7 的)、到网络编程(基础)、到数据结构和算法,学完了这些基础知识后,开始学习 Servlet/jsp(现在已经过时了)、再到 Spring、Struts2、Hibernate(SSH 框架,现在也过时了)、再到 Spring、SpringMVC、Mybatis(SSM 框架,这个现在还在用)、再到 Java 并发基础、再到一些组件等等,再到后面我开始学习微服务相关的东东,学习 Spring Boot,Spring Cloud 等等。这期间,我做了 4 个项目实战。我是如何自学的?


我是如何自学 Java 的?


如果要说自学 Java,我觉得我有资格说上几句。我一开始看了一个星期左右的书,然后我把书扔在了一边,看不进去啊!我自认为自己的脑袋瓜还算可以,但是我看不进去。这也是初学者的通病,有好多读者也跟我说:武哥,我书也看了,可是感觉还是不会。事实上,我也是这么过来的。

所以我当时看了视频,我看的是毕向东的 Java 视频,现在已经有更加新的视频了。找一个好视频,从头到尾认认真真跟着学一遍,做好笔记,那也是我写博客的开始。为什么要记笔记?为什么要写博客?我曾经也提到了,之所以我在 CSDN 坚持写了 3 年多的博客,主要原因有二:

第一:想法只是昙花,文字才是永恒。

第二:IT 人需要有个自己的品牌。

人都有惰性,如果你做一件事情,一直看不到明显的效果,你就会慢慢懈怠,慢慢怀疑自己到底对不对,适不适合。编程也一样,为什么我不建议初学者上来就抱着别人跟你推荐的所谓的经典书籍去啃?什么《Thinking in Java》、《Effective Java》等等,你啃的了吗?你啃不了是对的,否则你就是神了。你啃不了,你就会放弃。我就很讨厌那些贴吧论坛里一上来就给一些初学者推荐很多经典书籍的人,显得自己很博学很牛逼的样子,其实没什么用。

包括 Java 并发、SSH、SSM 框架、组件等等,我全部看的视频。当然,一些源码我是自己啃的。当你有了基础,上路了,你再去看书,不仅仅就是看懂看不懂的问题了,那是真正的提升。

但是这些还不够,你学了这些东西不能派上用场。必须要项目实战,网上有很多免费的实战视频,但是我觉得不好,因为那时候我已经有基础了,我知道如何去选择我的学习资源了,我在这还是要强调一点,不要吝啬给自己投资,我当时也买了好几个项目实战视频跟着学习,提升很多实战经验。我在前面一篇文章:同样是程序员,为什么别人比你更优秀?中第一点就提到了这个。

当然了,我这边也有很多优质的视频资源,也许已经大家够用了,不用像我当初那样去花钱了,我那时候自学,就没有遇到像我这样懂得分享的人。所以缺视频资源的读者,可以找我要,我就是单纯的分享,为了帮助更多的朋友。

但是有很多人坚持不下来。我在文章的开头也说了,在同龄人里,执行力和毅力能和我比的没几个,我也是从小白一步步过来的,花了整整一年左右的时间去自学。我做了好几个项目,我敢说我在学校这一年学到的东西,不比别人在外面工作两年的能力差。所以有很多人觉得工作年限长就牛逼,见识多,但是在我看来,这不一定。

我曾经好几个月直接睡实验室里,每天除了看论文,完成导师的任务,其他时间全部用来学习,晚上搞到十一二点,否则一年时间不可能学那么多东西,而且我大部分还写成了博客,要知道,写博客是很花时间的。如果你能像我这样坚持,这样严格要求自己,我不相信学不会一个东西。你就算今天学不会,你一个月之后呢?一个月不行,你一年总行了吧?就像马云爸爸说的:今天很残酷,明天更残酷,后天很美好。但是很多人都坚持不过明天,他永远看不到美好。就像我考研一样,没有坚持付出,哪来的结果?


遇到选择,我如何取舍?


我当初研究生刚毕业,是去了华为,我的岗位就是 Java 软件开发,结果进去之后做通信了。我就纳闷,我研究生读的是通信,我特地自己自学 Java,结果又回到做通信,这就很尴尬了。

所以后来我还是走了,有些读者问我,你为何放弃华为的高薪?我说自己的兴趣不在通信,我有自己的打算,决定从华为离开的,肯定不是为了钱。最起码,我现在过的比在华为好,我相信以后也会。

职场遇到选择的时候,我个人觉得还是要结合自己的兴趣,人生最重要的几年可能就是刚毕业那几年,那几年也在绝大程度上决定我们以后从事的行业,所以在做选择的时候,需要结合自己的兴趣,综合各方面因素权衡好。


总结一下


自学一门技术,首先要会用,要先建立兴趣,再想着去提升,去内化,否则,你坚持不下去。

自学一门技术,要有规划,最起码要知道你接下来要学哪些东西,不能走一步看一步。有了规划就得有计划,有了计划,就得有执行。

学习的过程中,永远不要吝啬投资自己,该花钱就花钱,现在是知识付费时代,像很多教学网站上,里面一些课程还是挺不错的。花钱提升自己,本来就没毛病。

做任何事,离开了坚持二字,那都是扯淡。如果随随便便就能成功的,就能做好的事情,是个人都可以的话,那你也没有什么竞争力。有句话说的好:小聪明不如傻坚持。

不懂就要多问,不管我们是什么样的人,不管问谁,不管别人比自己牛逼或者弱,都得放低自己的姿态,虚心一点。如果哪天我们有点影响力了,那么尽量以一个低姿态去多帮助那些初学者,帮助更多的人,因为我们也是那样过来的,比自己牛逼的人,满大街都是。人,不要膨胀,要懂得韬光养晦。

希望这篇文章能够给那些初学者,或者有自学困惑的人带来一点帮助,也希望我的读者能从我这里获得一些正能量。

作者简介:倪升武,CSDN 博客专家,CSDN达人课作者。硕士毕业于同济大学,曾先后就职于 eBay、爱奇艺、华为。目前在科大讯飞从事Java领域的软件开发,他的世界不仅只有coding。

声明:本文为作者投稿,版权归其个人所有。

微信改版了,

想快速看到CSDN的热乎文章,

赶快把CSDN公众号设为星标吧,

打开公众号,点击“设为星标”就可以啦!


征稿啦

CSDN 公众号秉持着「与千万技术人共成长」理念,不仅以「极客头条」、「畅言」栏目在第一时间以技术人的独特视角描述技术人关心的行业焦点事件,更有「技术头条」专栏,深度解读行业内的热门技术与场景应用,让所有的开发者紧跟技术潮流,保持警醒的技术嗅觉,对行业趋势、技术有更为全面的认知。

如果你有优质的文章,或是行业热点事件、技术趋势的真知灼见,或是深度的应用实践、场景方案等的新见解,欢迎联系 CSDN 投稿,联系方式:微信(guorui_1118,请备注投稿+姓名+公司职位),邮箱(guorui@csdn.net)。


推荐阅读:


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存