文章目录
写在前面
前天晚上发的一篇博文《你不是学生,你是开发者》点赞数和收藏数都创了新高,内心小窃喜的同时也从可以从侧面看出CSDN社区中还是有很多在不断精进学习并且有明确目标的学生党的(对号入座的可以在评论区扣1,大家报个团嘿嘿)。有时他们浏览CSDN并不是为了解决BUG,也不是为了完成学校老师布置的课题或毕设,而是希望找到茫茫大海上的一盏明灯,指引自己掌舵离开港湾驶向远方——即迈出学习编程的第一步,不再是被人口口称道的小白,而是被同学敬仰的大佬。
因此我有了一个新想法,平时在做技术分享的同时,也把自己亲身实践并觉得有用的学习方法、学习经验分享出来——正所谓工欲善其事必先利其器,对于学习编程这件充满实践性的事情,依旧照着其他学科的学习方法来进修可能并不能取得预想到的效果,反而会在学习了一段时间后没看到成果而心如死灰,对计算机专业的学习失去兴趣。
所以也就有了今天的这篇文章,这是我在半个月前作为一名小讲师在腾讯会议上给大概30名大一以及大二的本校学生讲后端方向学习相关时写的一篇推文(勉强算是一个课件吧,当时我讲课也是照本宣科对着一条条讲下去的)当时为了方便分享,就发布在了自己的微信公众号上,没有在CSDN社区上发布。不过今天我改变想法了,心血来潮搬运过来,与君共赏。
我目前也是大二计算机专业学生,相对于其他同学多学一些后台开发知识,而本次活动是学院奖助工作室组织的筑梦青春·技能培训活动,邀请我们工作室的成员来为报名参加本次活动的同学讲讲自己在工作室里的所学所悟。故此也就有了我人生第一次网上授课。
后台"筑梦青春·技能培训"课堂实录
一、从哪开始,怎么开始
你的想法总是太多,但是做的事情却太少,该从哪里开始第一步呢?
其实,学习编程是有一个很好的开端的——在各大平台写博文。(CSDN,博客园,掘金,微信公众号)
用写博客的形式记录下你的成长足迹,和有价值的思考,会给你带来很多好处,却没有一点明显的坏处。
下面是我总结的最大的几点好处:
1.1 写博客的好处
1. 能够交到很多志同道合的朋友
在这个时代,对于生活中的大多数人,网络成了很多人扩展朋友圈子的重要途径。现实中,由于地域的限制,你认识的人太局限,或者说能有共同追求的人太少。而网络不同,大家因为共同的兴趣而聚集在一起,还能找到比自己更牛逼闪闪的人,互相学习前进。
当你看一个人的博客(专栏)很长时间了,就仿佛和这个人交流很久了,用程序员的话来说就是——专栏是你在互联网时代的复制产品。我们没有办法像孙悟空一样有72变,变出多个自己,但是我们可以通过专栏轻松的实现无限制复制。
2. 书写是为了更好地思考
如果一件事情你不能讲清楚,十有八九你没有理解透彻。
在程序员行业面试的时候,面试官都会要求你讲解一个东西给他听,就是考察你的思考理解能力。
为了讲清楚一个东西,你必须要知道如何从不明白到明白对象究竟要清楚哪些概念。而书写的过程,会迫使我们的大脑对整个的知识体系来个"打破砂锅问到底"的大操盘。
而在这个剖根问底的过程中,你会建立主动搜索答案的过程,而这个找问题的过程,又会帮助你在网上找到更多牛人写的专栏,进而结识他们,开拓自己的见识。
3. 书写为你带来新机会
最直接的机会就是书写可以帮助你找到工作。如果你有自己的博客或者专栏,在面试之前把自己的博客地址写入简历中。你说的面试官不一定信,但是将自己实践的过程花时间记录在博客中,面试官可以通过博客直观地看到我一步一步是如何学习和实践走过来的,当然无需多说他也会"眼见为实"。
书写会让你成为一个持续学习和思考的人,最重要的一点:写作可以倒逼你成为一个实践主义者,因为写作需要输出,会倒逼你去实践,不然没有输入就不会有输出了。当你创作出一个属于自己的有价值的专栏,其他一切机会就会随之而来。
即便我在上面列出了N条写博客的好处,但有时候只需要一条不写的理由就会让人停止做一件事情。所以,在这里我写下可能出现的问题及如何面对。
1.2 写博客的阻碍
1. 写不出来
对于刚入门编程或者刚学习某个方向的同学来说,可能会说自己什么都不会,怎么能写出一篇博文来呢?这里不是要求你一上手就是一篇上千赞的优秀文章,你可以简单地将自己的学习笔记或者一些BUG排查记录上去,也是自己成长的脚印。同时前期还是推荐先把笔记记录在云笔记软件上,方便查阅和防丢失。
另外一方面写不出来的最大问题在于你没有去实践做东西,如果你实践做了demo,自然会有内容去写了。
这就好比,你不知道如何谈恋爱,是因为你没有开始去时间追一个女孩子。在追女孩子的过程中,和追上的恋爱过程中,你自然就会了。
2. 到哪里写
相信很多人为了尝鲜都开通了微信公众号,但是微信公众号最大的坏处是它所处的环境是微信。而微信的朋友圈又是一个噪音及浮躁的环境。可能你写了很好的一篇文章,转发出来阅读量很少。
那到哪里写最好呢?
-
首推是到所在专业的最热门社区,例如技术博文,那么CSDN、知乎、博客园、掘金等都是不错的IT平台。相信大家没少访问过CSDN吧。
-
其次就是微信公众号了,写在微信公众号的一个好处是方便与微信好友共享,但是阅读量会偏少。
-
最后就是自己搭建独立博客,好处是没有广告,内容都是自己的。缺点是搭建一般需要服务器,或者搭建过程复杂劝退。这里推荐Hexo、WordPress
这里还有一个问题要提一下,不关注阅读量,自己成长最重要,肯定是正确的。但是,别忘了人性的弱点:人类都是快感型动物。得不到激励的事情,你很快会放弃的,几乎没有人会逃脱这个人性的弱点。
3. 担心想法太幼稚被别人笑话
如果你有这个思想,说明你目前写的博文是原创的,这是十分值得鼓励的事情,从copy到create,迈出了很大的一步。在这里你可以转念想想,你学习遇到的问题,很多人也会遇到。不仅没有人笑话,很多人还会给出意见,让你对学到的技术有进一步的理解。
更大的一个好处是,将自己学习时间的内容写到博客上,遇到以前解决过的问题忘记了,可以返回来在分类中查找到当时的解决方法。博客是一个很好的备忘录。(有点类似于笔记
所以,大胆地开始写博客吧!如果真遇到了只喜欢嘲笑批评的人,请忽略他们,这些人连自己都不知道怎么去升级,哪有资格说别人。
二、Typora+PicGo+Snipaste笔记三件套
工欲善其事必先利其器,古人都懂的道理,我们自然也是不能忽略了。可能我们最初记笔记只是写在纸质笔记本上,一些同学觉得效率不高,开始使用印象笔记、有道云笔记。作为计算机专业的学生,记电子笔记是趋势和潮流。各大IT平台上的博文也都是电子文章,使用的是程序员通识的语言——Markdown(以下简称md)。
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。
使用md格式来记电子笔记是可以提高自己效率的。你只需要关注内容,而排版和格式的问题,只需要记住几个常用的符号就可以做到。
2.1 Typora
既然要使用md,当然需要一个编辑器的帮助,总不能学某些技术大佬用记事本写代码吧。这里首推Typora
Typora是一款优秀的md编辑器,支持实时渲染,在左侧有文件+大纲显示,能很方便的纵览全局。并且主题丰富,写的时候赏心悦目。这里我使用的是Barfi暗色主题。
2.2 PicGo
我们平时在记电子笔记的时候,少不了放一些图片,可能是一张流程图,或者是一张架构图,甚至是一个表情包,有图的笔记能让我们更好地理解我们所学的知识。(现在的初高中教辅教材也在往这个方向靠拢了)
所谓图床工具,就是自动把本地图片转换成链接的一款工具,网络上有很多图床工具,就目前使用种类而言,PicGo 算得上一款比较优秀的图床工具。它是一款用
Electron-vue
开发的软件,可以支持微博,七牛云,腾讯云COS,又拍云,GitHub,阿里云OSS,SM.MS,imgur 等8种常用图床,功能强大,简单易用
这里我使用的是阿里云OSS对象存储服务,价格不高,一年好像是10块钱。40G能放很多图片了。至于具体的图床搭建自己百度。
2.3 Snipaste
Snipaste 是一个简单但强大的截图工具,也可以让你将截图贴回到屏幕上!下载并打开 Snipaste,按下
F1
来开始截图,再按F3
,截图就在桌面置顶显示了。就这么简单!Snipaste 是免费软件,它也很安全,没有广告、不会扫描你的硬盘、更不会上传用户数据,它只做它应该做的事。
上述是官方介绍,我再说下。Snipaste是一款截图工具,与微信截图工具不相上下,比Win10自带的截屏不知道好到哪里去了。
如果你不想每次截图都:打开微信—>截图—>发送到微信传输助手—>复制到你想要的地方;这样的一套繁琐的流程,下载一个Snipaste是一个不错的选择。使用其流程可以简化为:F1—>框选截图,加上箭头文字等—>ctrl+c保存至剪切板—>ctrl+v粘贴。
一套下来就是这么简单,快去试试吧~
2.4 日常使用
保持 picgo,sniptaste都在后台运行
typora 编写博客,sniptaste F1 随时截图,ctrl+c 复制到剪切板,picgo ctrl+q 上传图片至图床,在文章内 ctrl+c 插入刚刚保存的截屏。
三、怎么在编程中找到快乐,并得到持续的动力
编程也是需要新鲜感的。就好比一个"上了道" 的程序员,估计这辈子,再也找不回当年首次Run起"Hello World"时,回响于内心的那阵阵抑制不住的欣喜了。
认识的一个朋友,大家都叫他"亮哥",4年前开始混互联网公司,陆续从销售,转到运维,再转到后端,一身技术全是自学的。问他为什么要转做技术,他很爽快地说:"做技术,工资高呀!还可以接外单,收入可观,水鱼也多。"然后他接着说,他在周末还在自学React,太难肝了。
我打趣地问他说:“你这样学技术,以后会不会变成样样会,没样精通呀”,他笑着说:“没关系,对于技术,我只想学到能赚钱,够用的程度就行。一想到往后可以把外单的技术环节都独揽下来,赚更多的钱,想想就开心。”
转眼几年过去,他已摇身一变,成为一家小外包公司的BOSS。值得敬佩的是,为了满足不同客户的新需求,他依旧保持着对新技术的涉猎热情。
亮哥的路线,是否为我们提供了一种新的思路?
程序员的编程动力,不一定只能源于编程这件"法器"的内部,何况其内部的乾坤,是相当得抽象,非朝夕之功可品鉴把玩。
我们是否可以设法让自己有一个外部的目标,高新也好、赚外快也好、进大厂也好、买房也好、准备创业都好。总之,让自己有个具体利好的小目标,你特别心仪的那种最好。以此作为驱动你在编程道路上前进的马达。
兴许某天,你会在追求编程外部的红利的过程中,渐渐领悟到编程内部的精粹。
这种由外而内的路子,或许才是大多数程序员保持编程动力的较优路线
毕竟,技术精神有时候也是一种天赋,却非人人都有。而物质名利则是芸芸众生的生活刚需,虽然俗气,但它能真能产生驱使人行动的巨大能量,无论是主动的,还是被动的。
所以,当你暂时在编程中找不到乐趣时,不放先把它当成一个刷金币的工具,先往Money看起吧。至少,这个世界能用"钞能力"获得的乐趣还是相当多的哟~
以上内容摘抄自知乎
我的外部目标
我的爱好还是倾向于电子产品的——
- Asus/华硕天选 AMD R7-4800H 16G+512G 144Hz屏幕
- ipadAir3
- iphone11
- MBP
- 分享技术、成为大佬
- 切实一些,进大厂
四、后台学习网课推荐
如今虽然说有很多网课资源在小破站上可以搜到,但是良莠不齐,有选择困难症的同学卡在这一步就麻烦了。这里我就按我当时的学习经历(顺序)推荐几门网课——
4.1 JavaSE
JavaSE是java基础知识,其中面向对象概念、语法贯穿Java开发始终,而异常处理和三大集合框架又能便利我们开发,同时线程相关操作能让我们开发出高并发的程序,最后反射又是许多框架的基础。因此JavaSE的重要性可想而知。
推荐课程:尚学堂JAVA300集2020版 [https://www.bilibili.com/video/BV1L7411N77n?from=search&seid=11024377461426442031]
如果想要追求速度的同学可以学到异常处理和三大集合框架之后继续学JavaEE,线程+反射以后学。
4.2 JavaEE
Java EE阶段学的主要是WEB开发方面的内容,也是以后做项目比较多用到的,建议跟着视频学。
推荐课程:JavaWeb视频教程 [https://www.bilibili.com/video/BV18s411u7EH]
4.3 Maven
Maven是一个用做包管理的工具,用了Maven以后导包就不用专门跑去下载,方便很多。
推荐课程:尚硅谷Java视频教程_Maven视频 [https://www.bilibili.com/video/BV1Pt411y7Rh?from=search&seid=10873798893901584747]
4.4 SSM
SSM框架包括Spring(IOC,AOP),SpringMVC,Mybatis
推荐课程:Spring教程IDEA版-2018黑马,SSM三个框架课程地址——
-
Mybatis:[https://www.bilibili.com/video/BV1Db411s7F5?from=search&seid=15754277871204284468]
-
Spring:[https://www.bilibili.com/video/BV1Sb411s7vP?from=search&seid=15754277871204284468]
-
SpringMVC:[https://www.bilibili.com/video/BV1Sb411s7qa?from=search&seid=15754277871204284468]
4.5 SpringBoot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
推荐课程:SpringBoot 权威教程 雷丰阳 尚硅谷:[https://www.bilibili.com/video/BV1Et411Y7tQ?from=search&seid=15754277871204284468]
4.6 后续
之后的学习就是微服务+中间件+数据库了,这部分就自行寻找资源吧。
五、后台开发定位
5.1 前言
有些同学虽然选择了后台,但是可能并不清楚后台开发到底是在干嘛,需要做什么。知道的可能只是很多人使用Java语言开发,能开发网站、小程序,Spring框架…但对于后台开发的具体内容可能没有一个形象地认识,Java语言在开发中怎么使用?开发流程?需要的技术栈?架构?服务器部署?因此在这里就带大家看一看师兄开发的项目源码以及一些作品展示——
我的Gitee地址:https://gitee.com/smietao,一些开源的项目大家可以clone下来运行下来自己研究,有能力的可以运行试试。
5.2 VTMER招新后台管理系统纵览
对于大学生来说,后台开发做的学生项目无非这些内容——开发接口,提供接口文档,开发后台管理系统。
从0基础到能开发上述系统,如果是真的用心去学,3个月足矣~
5.3 …
技术太菜,也没有什么其他项目展示了。其中还有一个商业项目,这里不方便展示,做的是电商小程序,其中也涉及到了上述内容,本质上是一样的。
六、结语
按照文章的形式来说,该有一个收尾的环节。该说些什么好呢…
希望大家都能顺顺利利地进入BAT吧。(啪!)
希望大家都能找到适合自己的编程学习方向以及学习方法,制定好每日\每周\每月的学习计划以及目标,并坚持地付诸行动。我不能打包票说这般做你就能一帆风顺地成为技术大牛,但至少也能同我一样,能写技术博文、做知识分享,甚至是给你的同学开小课堂~
套用一句老话:但行好事,莫问前程
![](https://i-blog.csdnimg.cn/blog_migrate/714c76b0b1de51d527fc44dbcc23eb89.png)
既然选择了远方,就只顾风雨兼程