十年寒窗苦读,无论是谁,都希望能够拥有一个好的未来,但是在面临职业生涯的抉择时,会有不少人会为曾经的选择而后悔,不过在为时不晚的情况下,大家更多的还是会转型。在本文中,作者将分享其从传统的通信行业融入一线 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)。

推荐阅读:

  • 马蓉微博对呛王宝强,结果坑了新浪肥了阿里云

  • 马云:CFO 不能做 CEO;腾讯推短视频“哈皮”;三星中国份额跌至 2% | 极客头条

  • 10 张有关程序员的趣图,图图扎心

  • BCH硬分叉完毕,澳本聪放话:一切尚未结束,游戏继续!

  • Python告诉你:这类程序员最赚钱!

  • 清华夺ASC、ISC、SC三项超算比赛大满贯

  • 刚写完排序算法,就被开除了…

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

  1. 招聘:JAVA软件开发工程师

    招聘:java软件开发工程师 本公司所有新创办的创业型小公司. 研发团队6-7个人. 工作地点:厦门软件园二期观日路 现需招聘java软件开发工程师2-3名 要求: 1.有良好的沟通能力.团队合作精神 ...

  2. java软件开发工程师面试题_Java开发工程师常见面试题01

    Java 基础 1. JDK和 JRE 有什么区别? JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境. JRE:Java Run ...

  3. Java软件开发工程师实习生面试经验分享总结

    原文地址:http://blog.csdn.net/timer_gao/article/details/71175353 说在前面的话 今天收到了自己满意的第一个offer也是第二个offer(第一个 ...

  4. Java组件化开发教程!工信部java软件开发工程师证书

    这些面试题包含哪些内容? 借花献佛!朋友干了5年整的Java面试官,给我分享了一份面试官最爱问的Java面试题这份面试题包含了 19 个模块:Java 基础.容器.多线程.反射.对象拷贝.Java W ...

  5. 字节Java高工面试:java软件开发工程师的市场薪资

    专题1:JavaOOP 1.什么是B/S架构?什么是C/S架构 2.Java都有哪些开发平台? 3.什么是JDK?什么是JRE? 4.Java语言有哪些特点 5.面向对象和面向过程的区别 6.什么是数 ...

  6. Java 并发编程—— Exchanger 应用,java软件开发工程师面试题

    前面已经介绍 SyclicBarrier.CountDownLatch.Semaphore 三个并发编程中的工具类,还剩下最后一个 Exchanger.Exchanger(交换者)是一个用于线程间数据 ...

  7. java软件开发工程师证书考试费用,太完整了!

    1. 消息的可靠性投递 在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景. RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式. confirm 确 ...

  8. 学习Java软件开发该从何入手

    21世纪科技飞速发展的时代,软件行业进军国内以来,发展潜力巨大,一点一点的从生活中渗透到企业运行中,Java软件开发无处不在,因此企业对Java软件开发工程师的需求非常大,就目前而言,想要学习Java ...

  9. 2021年Java软件开发有前途吗?

    Java从1995年诞生至今,连续多年占据着流行编程语言排行榜前列,如今也越来越多的人选择学习Java语言, 可大数据等新技术层出不穷,有网友说,Java市场已经饱和了,要过时了.事实究竟如何,202 ...

最新文章

  1. System.PlatformNotSupportedException
  2. initializeAdvisorChain
  3. hive配置遇到的问题( Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D)
  4. js(Dom+Bom)第二天(2)
  5. [ANSYS APDL] 平面单元应力分析全步骤截图详解
  6. 【C++学习】C++中的强制转换
  7. 比亚迪汉鸿蒙系统测评_深度:预判比亚迪汉EV电驱动系统技术状态
  8. 阶段3 3.SpringMVC·_03.SpringMVC常用注解_5 RequestHeader注解
  9. SQL Server 数据库性能优化(转载)
  10. oracle日期按时间点过滤,Oracle数据库日期过滤方法性能比较
  11. java-如何反编译
  12. 网络重置或电脑重置后WLAN/WIFI图标不显示 最全解决方法
  13. OpenGL超级宝典(第7版)之第九章片段处理与帧缓冲
  14. Postman下载使用
  15. 中国企业考勤软件市场趋势报告、技术动态创新及市场预测
  16. html自动聊天机器人源代码,QQ全自动聊天机器人
  17. python计算方位角_利用python计算太阳天顶角、方位角、高度角
  18. Hive 异常,长期更新帖
  19. 逻辑与计算机设计基础实验报告,逻辑和计算机设计基础--课实验报告.doc
  20. uni-app 快手小程序如何设置跟元素样式

热门文章

  1. flask部署pytorch模型
  2. python ^ and or >> <<
  3. 【QT】QT从零入门教程(十七):QT+OpenCV+VS 打包exe
  4. Linux下TCP循环接收数据的方式
  5. 剑指offer之使数组的奇数在偶数前面
  6. Charles安装与入门
  7. 2021-2025年中国电子风扇速度控制器行业市场供需与战略研究报告
  8. React ant design UI 禁用 启用 switch 开关 加弹窗确认提示 代码片段
  9. html如何设置轮动,手把手教你构建轮动策略
  10. 谷歌再遭反垄断起诉:曾试图“扼杀”三星应用商店!