一、前言
标题想吸引你进来参考下我的学习方式,或许能给你带来一些经验。当然不乏一些培训中也有超级优秀的开发人员。
讲道理,程序员上学这段时光相对每个人都是公平的。同样是拿到了一本 耿祥义 的《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. 耿祥义的这本书看了好久
谭浩强《Java 2 实用教程》
一遍遍翻,一遍遍看,一遍遍运行里面的代码。这本书真的给我带来很大的帮助,时至今日它也一直在我的身边。
2. SSH 几百页的书翻烂了
学习完基础编程后,就需要去拓展Spring相关技能,去开发真正的项目。类似这样的书还是比较多的,书中也包括了一些项目可以跟着学习。
3. 除了书还有视频可以看
似乎每个程序员都看过 马士兵 的视频,主要是他的声音和讲课方式很吸引人,不沉闷又能学的干货。至少他的视频我是看了5-6遍,也跟着写了5-6遍。
三、同样的项目做了N遍
在学习编程的过程中,我搞过很多的项目,当然这些项目的需求很多都是我臆想出来的。通过我需要锻炼什么样的知识点,之后去想着大概一个什么样的项目可以涵盖地去练习。
但!学到 Socket 后,大家应该都做过局域网聊天,而我比较能折腾做了N次。直到最后这次不仅自己得到锻炼,还可以帮助被人成长。
1. 上学期间第一个仿QQ聊天
登录
仿QQ聊天,登录
好友
仿QQ聊天,好友
聊天
仿QQ聊天,聊天
- 这个期间是学校聘请了外部的老师来教我们做项目,为了尽可能做的好一点,当时就研究着仿照QQ做一款通信。现在看还是比较丑的,但是当时也是比较牛的了。
2. 培训期间局域网聊天
登录
局域网通信,登录
聊天
局域网通信,聊天
控制台
局域网通信,控制台
- 清楚地记得这是当时搞了一周写完的,毕竟还是比较熟练了。
- 甚至我在考虑把好友与聊天窗口合并,貌似现在大部分聊天软件也都是这么干的了!嗯!优秀!
3. 学Netty5.0写局域网聊天
登录
Netty5.0通信,登录
聊天
Netty5.0通信,聊天
- 这一阶段开始开始学习了netty5.0,尝试使用netty+protobuf,开发局域网聊天。目前网上也是能搜到这个工程。
- 源码还有一份;https://github.com/fuzhengwei/itstack-demo-nettychat
4. 学WebSocket仿微信聊天
聊天
WebSocket通信,聊天
- 15开始学习 netty5.0,但是后来由于5.0版本问题,netty官网下掉5.0。于是去年19年,我又开始编写 nett4.0 案例。为此也写了一次 WebSocket 通信。
- 源码:https://github.com/fuzhengwei/itstack-demo-netty
5. 出专栏仿桌面版微信
登录
Netty仿桌面版微信,登录
聊天
Netty仿桌面版微信,聊天
好友
Netty仿桌面版微信,好友
- 这个项目是20年过年期间发起的,使用JavaFx、Netty4.x、SpringBoot、Mysql等技术栈和偏向于DDD领域驱动设计方式,搭建的仿桌面版微信聊天工程实现通信核心功能。
- 源码:https://github.com/fuzhengwei/NaiveChat
6. 除了这些还搞过很多
只要是能学习编程的内容,我似乎一直在折腾。谁学习期间也没有一个项目,但是可以自己去想出来一个项目,之后通过这样的项目锻炼自己的知识,尽可能让学到的内容得以实践。下面在列举一些;
1. 分数计算机
计算器
2. 学生成绩管理系统
成绩系统
3. 考试题库系统
考试题库系统
4. 图书馆系统
图书馆系统
5. 彩礼管理系统
彩礼管理系统
6. 在线考试系统
在线考试系统
好在当年留了一些图片
虽然这些系统在现在看有点点丑,甚至算不上项目,但对于编码从初识到了解的一个学习过程是需要的。总归,是要做一些实际的目标性内容,引导自己不断地强化知识。把一些未知的知识尽可能通过问题诉求学习到,希望对你们有所帮助。
ps:资料已整理成文档,需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取哦!