作者:小傅哥
博客:https://bugstack.cn
沉淀、分享、成长,让自己和他人都能有所收获!
一、前言
标题想吸引你进来参考下我的学习方式,或许能给你带来一些经验。当然不乏一些培训中也有超级优秀的开发人员。
讲道理
,程序员上学这段时光相对每个人都是公平的。同样是拿到了一本 谭浩强
的《Java 2 实用教程》,也同样有一台笔记本电脑,和一个宿舍一张床。
说说我自己,刚上大一编程方面的课程是C语言
,先不说能不能运行出来 HelloWorld
,就连安装个 VC++ 6.0
,都折腾好几天。可能也是神奇,因为萌新小白学习东西能遇到各种各样的问题。 最后安装好了软件的电脑真的不敢乱弄,怕它坏。C语言
学了一个学期后开始了 Java
课程,大家都说 Java
简单,巴拉巴拉 有很多函数、开发工具好用、内存自己回收等等。但确实,工具还是蛮好安装的,除了配置环境变量要去网上抄一下,还是可以写出一个 Hi Java
的。从此便开始了 Java
学习的旅途。
从你摸起电脑的那一刻,每个人学习编程都会遇到很多问题,包括;
- 完全不知道是啥,不知道从哪开始,老师讲过也不会。
- 多次碰壁运行不出结果,带不来成就感。没有游戏和隔壁系的妹子好。
- 学完就忘,背了也记不住,觉得自己也没有项目,不能锻炼。
- 能交流的人少,身边也是打游戏的多,大学校园花花绿绿,有钱没钱,我也想玩玩。
除了这些问题
,可能比这些多的还有很多问题。我也同样遇到过,初学时我也去加一些QQ群,但是很多都是比较水,能讨论技术的不多。也看过一些技术论坛,确实还是有引导性的帮助的。也跟一些师哥师姐交流,大学学哪些知识才能找到工作。好在,慢慢摸索出一条学习路线。同时为了可以与同好
共同学习,就自己建了技术QQ群(东软帝国
),认识了一群好友,在我大学期间时常给我解决bug;大帝
、糖糖
、苏二毛
、蚂蚁
、ZERO
、小凯
、Ticmy
、大宝
、萌货
等众多好友。他们现在也分布在BAT等一线互联网的中,也有做到总监级别的大佬。
给自己打打气,有时候真的需要给自己点激励,毕竟这条路走起来不是那么容易。我的方式是上学期间时常会写一些自己认为算事诗句的诗,来提升自己的斗志。
红尘世界几个王,我自不服迎头上。
日敲代码两百行,冲进世界五百强。
如果你在网上搜这几句话,还是可以搜的到的!
学习编程的过程很大一个问题是写的少,总有一部分人觉得只要看了视频,背了代码,这东西就能会。但往往真的不是这样,只要这东西不是你亲手敲了几十遍,你就永远也记不住。因为这个过程是在锻炼你的逻辑思维和肌肉记忆,为啥说是肌肉记忆呢?就像你打字聊天,输入一个拼音nihao
,你会现在会想到它是从哪个手指敲出去的吗?根本就不会了,肌肉记忆早已形成,你只需要把你要的内容想到就能立刻通过键盘呈现出来。同样写代码也是也有的,public static void main
,如果这一句代码你要反复看着键盘去敲,那么就是你写的代码量还是太少。
愿努力拼搏的你都能承载一份美好!
二、初学编程用过的书
嗯!是用过的书,不是看过的书。
初学编程的人往往并不需要太多的书,因为一本书所涵盖的知识基本已经很全面了,难的是要一字一句的把里面的内容都搞定。如果只是看还是很容易的,但是要想按照里面说的都实现运行出结果,那对收获来说就不不一样了。当然,如果你已经深入的学习了,领悟性有很好。可以在继续扩展其他书籍的学习,包括一些深入的原理、源码的分析、技能的拓展等等。
1. 谭浩强的这本书看了好久
一遍遍翻,一遍遍看,一遍遍运行里面的代码。这本书真的给我带来很大的帮助,时至今日它也一直在我的身边。
2. SSH 几百页的书翻烂了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pqZx01xk-1588258242775)(https://bugstack.cn/assets/images/2020/itstack-code-life-04-03.png)]
学习完基础编程后,就需要去拓展Spring相关技能,去开发真正的项目。类似这样的书还是比较多的,书中也包括了一些项目可以跟着学习。
3. 除了书还有视频可以看
似乎每个程序员都看过 马士兵
的视频,主要是他的声音和讲课方式很吸引人,不沉闷又能学的干货。至少他的视频我是看了5-6遍,也跟着写了5-6遍。
三、同样的项目做了N遍
在学习编程的过程中,我搞过很多的项目,当然这些项目的需求很多都是我臆想出来的。通过我需要锻炼什么样的知识点,之后去想着大概一个什么样的项目可以涵盖的去练习,如果你目前也是这样没有什么项目,那么也是可以这样去自己造需求。
当!学到 Socket
后,大家应该都做过局域网聊天,而我比较能折腾做了N次。直到最后这次模仿微信聊天项目,不仅自己得到锻炼,还可以通过我的代码帮助别人成长。
1. 上学期间第一个仿QQ聊天
登录
好友
聊天
- 这个期间是学校聘请了外部的老师来教我们做项目,为了尽可能做的好一点,当时就研究着仿照QQ做一款通信。现在看还是比较丑的,但是当时也是比较牛的了。往往就是这样一点点的努力,在一个很长时间的捶打中获得成就感,不断的刺激着学习的动力。
2. 培训期间局域网聊天
登录
聊天
控制台
- 清楚的记得这是当时搞了一周写完的,毕竟这样的工程还是比较熟练了。
- 甚至我在考虑把好友与聊天窗口合并,貌似现在大部分聊天软件也都是这么干的了!嗯!优秀!
- 同时这个项目的完成,也让我后来找工作能一面就通过,还是当时工资最高的仔。
3. 学Netty5.0写局域网聊天
登录
聊天
- 这一阶段开始开始学习了
netty5.0
,尝试使用netty+protobuf,开发局域网聊天。目前网上也是能搜到这个工程。 - 源码还有一份;https://github.com/fuzhengwei/itstack-demo-nettychat
4. 学WebSocket仿微信聊天
聊天
- 15开始学习
netty5.0
,但是后来由于5.0
版本问题,netty官网下掉5.0。于是去年19年,我又开始编写nett4.0
案例。为此也写了一次WebSocket
通信。 - 源码:https://github.com/fuzhengwei/itstack-demo-netty
5. 出专栏仿桌面版微信
登录
聊天
好友
- 这个项目是20年过年期间发起的,使用JavaFx、Netty4.x、SpringBoot、Mysql等技术栈和偏向于DDD- 领域驱动设计方式,搭建的仿桌面版微信聊天工程实现通信核心功能。
- 整体的工程已经非常贴近微信,工程代码实现上也更加清晰明了,架构代码分层也显得老练了许多。如果是新人看这份代码,确实能带来很大的成长。
- 源码地址:https://github.com/fuzhengwei/NaiveChat
6. 除了这些还搞过很多
只要是能学习编程的内容,我似乎一直在折腾。谁学习期间也没有一个项目,但是可以自己去想出来一个项目,之后通过这样的项目锻炼自己的知识,尽可能让学到的内容得以实践。下面在列举一些大学期间自己练习的项目;
1. 分数计算机
2. 学生成绩管理系统
3. 考试题库系统
4. 图书馆系统
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ab4I6eJI-1588258242803)(https://bugstack.cn/assets/images/2020/itstack-code-life-04-16-04.png)]
5. 彩礼管理系统
6. 在线考试系统
好在当年留了一些图片
虽然这些系统在现在看有点点丑,甚至算不上项目,但对于编码从初识到了解的一个学习过程是需要的。总归,是要做一些实际的目标性内容,引导自己不断地强化知识。把一些未知的知识尽可能通过问题诉求学习到。
四、沉淀、分享,交个朋友
从19年开始,我想着生活里要添加一点自己能长期坚持的事情,不要把时间都浪费掉。于是,选择了我最擅长的方向,做原创技术输出。这样既能让自己有所沉淀,也能把知识传播给他人带来成长。
2019年7月,搭建个人博客;https://bugstack.cn - 沉淀、分享、成长,让自己和他人都能有所收获
2019年8月,找回公众号
bugstack虫洞栈
,定期推送个人原创技术文章。2019年9月,CSDN 申请博客专家通过。
2019年10月,微信公众号终于有了1k的读者。
2019年11月,完成四个专栏内容编写;
《用Java实现JVM》
、《Netty4.x专栏学习》
、《基于JavaAgent全链路监控》
、《DDD领域驱动设计实践》
。2019年12月,开发微信公众号与博客打通引流粉丝。
2020年,还在进行中!发布了
GitChat专栏
、深入编写了字节码编程
、持续做原创技术输出
,加强个人技术栈学习
,吸纳架构设计精髓
等等。-
整理了一整套
CodeGuide 程序员编码指南
- https://github.com/fuzhengwei/CodeGuide/wiki本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助,请给予支持(关注、点赞、分享)!
做这些事情,更多是我的爱好
和爱折腾的性格
在支撑我。也希望将我的编程学习经验和技术沉淀多多分享。
其实大家可支配的时间都差不多,只不过开始写技术文章后,不吃鸡、不王者、不去电影、夜里0点前不睡觉也有2点的时候、周末放假不出去浪(今年也出不去)。那么你还是可以做一些有意义的事。当然,如果你说这样不是生活,但每个人爱好不同。
收入,写文章是会有收入的,公众号里日常4毛,也有1块多的时候,但几分也有。好在,我现在也不在乎这个,主要是要做一件可以坚持的有意义的事。
如果说能给你一些意见,我也建议你可以折腾折腾,程序员的世界里折腾一下还是可以全方位的学到很多东西的。做的久了会提升全栈的研发技能(后端、前端、部署、运维等等),而且还会获得;业务、运营、产品定位等等方面的提升。
五、收个尾
- 以上呢,是我学习和不断折腾的一个方式。算不上优秀,但至少这样的学习可以保证你毕业时候找一份不错的工作,也能为你将来做好后路的根基。虽然每个人都有自己的路,但如果到了年纪还是要多把时间放到有价值的事上。
- 持续学习的过程遇到了很多伙伴,各有优秀。虽然他们不会把钱给咱们,但是这些伙伴的宝贵经验都是会无偿告诉你的。
包括你学的技术遇到问题
、包括你写文章需要看哪些书籍
、包括你对各个领域的认知
等等。 - 做人,做事,我喜欢亲和友善,广结同好。自从写公众号文章,有很多小伙伴加了我的微信,也和很多人成为了好朋友,他们日常帮我点赞、分享文章,深深感谢!