一、写在后面的话
嗨喽,大家好呀!我是简凡,一位游走于各互联网大厂间的新时代农民工。
这是我初写博客的第一个系列,做为已经编程小白我,也经验了长期的困惑怅惘,想学点什么做点什么,但又无从下手😂。所以想在此分享下这一路走来的成长之路,心愿能帮忙到正在观看文章的你。为了让成长变得更加能够操作,所以我不想间接扔一篇什么后端成神之路的路线图 xmind 进去,而是通过成长的第一人称视角去一步步实现这个系列。
首先介绍先这个系列的题目,后端从入门到相熟,为什么要用相熟呢?因为程序员要学会的第一件事就是低调🐶,家喻户晓要是在简历外面写上精通某某,你会被面试官问的遍体鳞伤,哈哈。那又是为什么用了后端,而没有写具体的语言呢?因为我已经是 Javaer,当初是一个 Gopher,我期待从一个更通用的视角来对待后端开发的常识体系。言归正传,俗话说磨刀不误砍柴工,所以这篇序言我不会讲入门第一步该怎么做,而是打算从以下三方面来进行,因为把握了这些才会让前面的路走的松软、巩固,这也是你将来成长为技术大牛的真正外围:
- 克服学习过程中的长期性怅惘,和间歇性懈怠
- 开始建设本人的常识体系
- 正当利用本人的工夫
二、如何成长为一位技术大牛
2.1 咬定青山不放松,立根原在破岩中
首先第一点,作为一个技术人咱们可能会经常会处于一种常识焦虑的状态,比方你想要学习,想要提高,但不晓得明天该做些什么,今天要做些什么,这个月要做些什么。又比方你明明仿佛很想达成一件事,但经常还没起步就被别的事件吸引过来了,打了半天游戏,刷了半天抖音,一天就过来了。别放心,首先有所焦虑这是件坏事,证实了你对将来有所期待,你所欠缺的就是一条能通向你将来的切实可行的路线和一种反馈激励机制,促使你乐此不疲的去达成你的欲望。那咱们该如何做呢?这里我想提四个关键词:指标、打算、执行力、正反馈。
2.1.1 指标
首先说指标,举个例子,比方你的指标是,我想学会 Java,我想学会 Golang。其实这不算是指标,我认为指标中必须要蕴含一些要害因素,工夫、地点、水平。
还是已学习 Java 为例,你能够给本人设置一个短期指标,我想在学校图书馆里 7 天内学习完 Java 根底,我想在 1 个月内学会 JavaWeb 根底,并且能跟着做一个小型我的项目,这样你会给本人锁定一个场景,你每天睁开眼就晓得了,我明天要去图书馆,为了达成我要在 7 天内学习完 Java 语言根底的指标。这里还要留神的是长期指标是由一个个短期指标构建成的,咱们如果定的指标太大就很难跟踪执行,咱们能够学习互联网的治理理念来治理本人,” 小步快走 ”,将一个大的指标进行逐级拆解,变为短周期的指标,个别指标工夫不要超过一个月。有人可能感觉 7 天学会 Java 根底是不是有点激进呢?其实并不是,咱们要置信本人的后劲,一个稍高一点的指标能力激发咱们一直为达成指标的欲望,并且在指标达成播种更强烈的正反馈。而后来说什么是“水平”,这里讲的学习完 Java 根底,学习完 JavaWeb,会做一个小型 Web 我的项目,都算是一种水平。这种水平会让咱们的指标更加清晰,咱们在执行时会晓得,如果我保持实现,就会有一个怎么的播种,那么做起来也能更有能源了。此外一个带有水平的清晰的指标,能力为咱们的下一步“打算”,做一个很好的铺垫。
2.1.2 打算 & 正反馈
为了达成咱们的指标,咱们须要具体的列一份打算,这里有几点要留神。
一是,打算肯定要粗疏,拆分到切实可执行的操作单位,每个操作单位执行工夫不要超过 3 天,比方你的打算项是学会 Java 根底,这个是不可操作的,因为 Java 根底还蕴含很多,最终你的这个打算项就会变得不可监控。而你把打算项列为学习 Java 中的变量和运算符,这样你就能够每天对你的打算项进行打卡了,你也能一直的播种到正反馈,感觉得到本人在一直打怪降级。
二是,打算要有工夫和完成度的阐明,这里我给大家举荐一个最简略的管理工具,用 excel 写一个 WBS(想要获取 wbs 模板能够关注我的微信公众号“简凡丶”,后盾回复 wbs),这样咱们就能够一直的跟踪咱们的指标达成水平啦。
三是,咱们在一段期间还有其余想要达成的指标,比方想学习理财、学习一项乐器,这里倡议次要不宜太多,集体倡议不要超过 3 个。否则容易把本人的生存搞的凌乱,最终哪个指标都没有达成。咱们晓得多线程的程序,如果 CPU 是单核的,往往还不如单线程程序解决,因为程序上下文切换时会耗费无谓资源。咱们要抓住主要矛盾,放弃对次要指标的专一度,能力让工夫更加高效。
2.1.3 执行力
我很喜爱一句简略且实用的话,干就完了。当咱们遇到困难,去查资料,去和人交换,总之干就完了。当我遇到懈怠,还在给本人的启动学习,发明理由,发明空间,干就完了。在程序员这个行业付出和播种成正比的,想要高薪,好的待遇就要一直付出,放弃学习。如果抉择躺尸,就是会在年龄较大的时候,面临淘汰。像治理一个我的项目一样,开始对本人的学习、工作,乃至人生进行一个布局和治理吧,你的人生肯定会逐步变的清晰、璀璨起来。
2.1.4 总结
讲到这里咱们就能够依照指标 -> 打算 -> 执行 -> 正反馈 -> 下一阶段指标,这样循环递进的形式看到咱们成长的进度条在直线向前了。
2.2 学而不思则罔,思而不学则殆
咱们在学习的过程经常会遇到学到前面,后面的常识就忘了,甚至想查也无从查起,只能再学一遍。这是因为咱们没有记录,常识在脑子里都是一个个碎片,彼此之间没产生上下文分割。那咱们该如何做呢?
一句话,开始记笔记,并逐渐建设本人的常识体系,而后对本人的体系进行欠缺和定期重构。在《金字塔思维》一书中说,人在一小段时间,最多记住 7 件事,再多进去就会将后面的淡忘。那咱们该如何让繁冗的常识在脑中记忆的更加牢固呢?答案就是对常识进行分层。例如,你要去菜市场买菜,要买葡萄、黄瓜、苹果、茄子,如果你只零散的记住几样物品,到菜市场你就有可能遗记了一两样。但你如果对他们进行分类,分为蔬菜和水果,蔬菜有黄瓜和茄子,水果有葡萄和苹果,这样的话,你就变得不容易遗记。再进一步,你如果无意识晓得一共要买四件物品,蔬菜两件,水果两件,最终买完时,进行一个 check,看看是否买了四件物品,这样你最终就肯定不会漏买了。这就是典型的的结构化思维的理论利用。它能够帮忙咱们加深记忆,建设常识之间的分割,甚至激发咱们的创造性思维。所以当初你曾经意识到建设常识体系的重要性了吧。
2.2.1 如何建设常识体系
上面咱们来说如何去建设本人的常识体系。我已经学习和理论利用过多门开发语言,比方 Java 和 Golang,Python 等,我发现了在各语言之间,其实是有雷同的学习的逻辑程序的。
咱们学习一门语言,首先必定要学习语言根底,蕴含根底语法和语言个性等。而后就是为了实现一个后端业务需要咱们要学习 Web 框架,来帮忙咱们方便快捷的和网络与数据库打交道,以便咱们疾速实现一个单体我的项目。例如,此时 Java 中要开始学习 Spring、SpringMVC,而后学习在 SpringMVC 根底上进一步封装的 SpringBoot,对于 Golang 咱们可能会学习 beego、学习 Gin。再接下来就是对于一些简单的大型零碎须要为了业务的疾速迭代和根底层的复用,须要把单体我的项目拆分为微服务。此时咱们要开始学习微服务框架,例如,Java 要学 Dubbo、学 SpringCloud,Golang 中要学习 gRpc、Micro 等。当然有时咱们还须要解决某种业务场景,就须要一些语言框架或者中间件,辅助咱们高效解决利用需要。比方咱们须要存储页面中的图片,会用到对象存储 OSS;再比方咱们须要一个核心缓存,来加重数据库压力,减速咱们的查问申请,咱们会用到 MemCache、Redis 等,咱们须要对业务流量进行异步、消峰咱们须要用到音讯队列。这些需要场景每种语言都会有相干的 SDK 来供咱们操作应用这些中间件来解决问题。当然这里只是列举了后端体系的一小部分,前面几期我会依照技术层级的深度与广度逐渐递进,逐渐揭开后端体系的神秘面纱,并为大家整顿出适宜不同成长阶段的学习路线。
言归正传,你会从我下面的表述中发现建设常识体系的两个因素,第一,是对常识进行分层,在每个成长阶段,依据本人的状况,将所学常识深刻到肯定水平。例如,你是一个刚入门的小白,在第一轮学习时,就要去把握 JVM 调优,把握各种设计模式,这是不必要的,第一个阶段你应该现已独立开发一个我的项目为前提,去进行初级阶段的学习。当你能够较为纯熟的写出一个利用了,再去学习设计模式,浏览开源代码学习人家的我的项目构建,才是正确的路线。” 小步快走 ”,能够帮忙一个企业或集体构建一条疾速成长的高速轨道。第二,是一直摄取优良的开源文章或我的项目,来欠缺你常识的体系,并定期对你的常识体系 review。
此外,工欲善其事必先利其器,咱们还须要一个好的笔记利用帮助咱们构建常识体系。这里是我过后选取笔记软件的需要 (优先级递加):
- 反对全局关键词搜寻,只有这样笔记本能力成为咱们的第二个大脑,随时能够获取想要的资源
- 页面反对目录纲要,建设一篇文章中的常识层级
- 简洁、清晰、赏心悦目的编辑页面,并且反对 Markdown
- 反对云同步,反对多端同步,这样能够避免数据失落,还能够没事时随时拿来回顾下以前的常识
- 有客服,能凝听到用户志愿,并对产品进行更新(这里吐槽下 oneNote, 感觉微软做的产品真的不够用心)
- 能够做常识共享,作为博客对外输入
综合以上几点,我在诸多笔记软件中选出了语雀,或者间接用 typora 写 Markdown 也是不错的,但因为本人写的 Markdown 图片须要找图床保留,还容易生效,我集体最终抉择的语雀。这里只想说语雀 yyds。这里有个小插曲,过后因为公司网络隔离起因语雀忽然不能用了,分割了官网后端小哥,效率很高,当天就帮忙了我解决了问题,这里给一个赞👍🏻
2.3 光景不待人,须叟发成丝
下面说完了办法的问题,上面再说下心态问题吧,与君共勉。这里第一个要说的就是程序员的 35 岁问题,其实是理论存在的,起因我感觉大抵是这样,这个行业目前比拟炽热,竞争强烈,所以会有源源不断的新人涌入进来,那企业方天然有了更多的抉择,所以天然会感觉等同程度下,一位工作年限较短的人比另外一位更加有后劲,更加酷爱学习。所以用更少的钱,招聘一位技术优良,可塑性强,学习能力强、后劲深的青年人天然成了自然而然的事件。
那对于曾经进入这个行业该如何自处呢?其实没别的方法,只能本人卷本人了😭,咱们至多要让本人的工作年限至多能匹配上等同程度的要求,而且越早达到目标程度,那咱们将来的溢价空间就越大,因为这体现着你将来的后劲,这也是企业抉择技术人才的一个重要指标。
所以疾速成长,成为了 IT 人的刚需,所以还在懈怠踟蹰不前的你,别犹豫了,就是干!
另外,这里还想说一点,就是防止假忙,聚焦成长。对于曾经步入职场的同学常常会被繁冗的事件所烦扰,仿佛很忙的样子,但当你想要跳槽时却发现自己如同又什么都不会了,所以拼命的刷八股文。恰好最近部门在扩招,我也面试了很多相似的人,面试者是刷的八股文,还是有真正的实战经验一深问就看进去了。其实对于面试官来说刷八股文并不会引起多少恶感,容易让面试官引起反感的是面试者体现出的对于工作和学习不足思考的意识,此时往往会被评估为短少后劲。“后劲”这个词很神奇,就跟相亲时候的“感觉”一词似的,一旦被评估为没“后劲”,那拿到 offer 的心愿也就渺茫了。所以,咱们在工作中肯定要勤于思考、长于总结、把一些通用的事件造成“方法论”,能力成为面试官和老板眼里一个有“后劲”的 developer,能力让本人在繁冗的工作中播种成长。
2.4 总结
啰啰嗦嗦的说了好多,心愿能给渴望成长的你一些启迪。从下一篇开始,咱们将正式进入《后端从入门到相熟之路 - 入门篇》,一起摸索如何从一个编程小白成长为一个高级开发工程师,咱们下期见,Peace😘
我是简凡,一个励志用最简略的语言,形容最简单问题的新时代农民工。 求点赞,求关注 ,我会为你提供以下帮忙:
- 帮忙建设本人的常识体系
- 互联网实在高并发场景实战解说
- 不定期分享 Golang、Java 相干业内的经典场景实际
我的博客:https://besthpt.github.io/
微信公众号: