很高兴你能点进来看看这篇文章,也希望我的这篇文章对你有所触动。助你开启一段奇妙的 IT 之旅。
本篇献给想要入行(或大学生)以及刚入行的小伙伴们;同时也是对我个人学习的一些经验和总结;就如我公众号介绍一样;虽不是资深码仔,乐于分享,皆只为他人少踩坑;如有不妥之处,也希望大佬们给予指正和建议;如果你有更好的学习方法或者思路👏🏻期待能与你一起交流学习,哪怕只是一条留言~
转载请注明一下出处~~
前言
本篇内容稍长,包含(职场经验) 提问❓技巧、搜索🔍经验、BUG🐛经验、软件🛫分享、网站💻分享、编码✍️经验等等;由于我个人习惯问题太菜,有些内容可能写的啰嗦了点儿...😄;望多担待~ 也希望大家可以指正一下,大佬们带带弟弟😊!
列个目录,好让各位知道本文大概内容,也方便大佬们可以一览全局~
- 如何 打造自己的工作站💻?(软件分享)
IT人就是要 “不停折腾”“必备” 软件分享探索更多 “好用工具”“免费软件” 网站分享
- 如何 正确有效✅的提问?(提问技巧)
不要问 “在吗?”不要连 “截图” 都没有不要愚蠢的 “反问/确认“不要过多 “期待”
- 如何 搜索🔍到想要的内容?(搜索经验)
学着自己定位 “问题”学会调整 “思路/关键字”学着不要仅看 “中文”网站IT人网站分享
- 如何 上手🌈新项目/语言?(编码经验)
一定要 “敲写” 起来一定要 “多看“ 官方文档不妨先 逛逛 “社区/生态”试着 “分析” 与 “关注”
- 如何 逛👀“开源社区”(Github/Gitee等)
不要 “吝啬” 你的 “star”记住 “awesome” 这个词学会 “分析” 开源项目
- 如何 不断提升🚀自己?(经验总结)
学着 “记录” 和 “总结”不要停留在 “使用” 阶段试着 “贡献” 自己😁
1.如何打造自己的工作站💻?
俗话说:工欲善其事必先利其器,作为一名开发者,自己的电脑那肯定必须一定要把自己的电脑配置的巴巴适适的(四川话:“很好”、“可以”、“舒服”、“安逸”、“超级爽”)才行呀~;就像搭建开发环境一样,没配置好容易掉链子...😂
1.1 IT人就是要 “不停折腾”
上学的时候,估计很多老师就说过吧~ 入了这行,那就需要不断的学习才行。如果你是转行入的IT,那么恭喜你,前面有 N 个山需要你去翻阅,不说那么细,就说些实际的吧:
折腾如何安装系统,且不仅仅只有Windows系统、macOS、Linux(而且区分很多版本,如:Ubuntu、UOS、deepin等等...)折腾环境、开发环境,部署环境(不同的语言、不同的版本、不同的架构)折腾安装各种软件/工具,开发软件(免费的、破解的),实用工具(解压缩、图片编辑浏览、文件上传、SSH、命令行、虚拟机、API文档等等...)
不要看到这么多就被吓到了😂,其实很多,都是可以直接安装使用的啦~~
只是想告诉各位,软件有很多,想要自己用着舒服,那就必须去探索,去折腾自己的电脑
下面👇🏻 有我常用的一些软件分享给大家:
1.2 “必备” 软件分享
此时我在想应该先推荐个什么... 突然需要截个图😄,那么就从截图软件开始吧;日常工作中,截图肯定是会常用吧,截一个好图,表明意图和BUG报错原因都是迫切的需求!
- 截图软件 Snipaste (支持
Win、Mac)
官网中文链接:zh.snipaste.com
- 浏览器软件 Microsoft Edge / Google Chrome
为什么推荐*“浏览器”*这种是必备软件呢? 别问,用它就对了(具有丰富的插件,写写脚本什么的)。另外当你遇到Bug时用浏览器查阅资料也是必须的吧。
Edge:www.microsoft.com/zh-cn/edge/…
Chrome: www.google.cn/chrome
不经常翻墙上网的小伙伴,可以选择Edge,插件自由了喔~ 还能登录账号跨设备同步书签,访问记录等等。
- 命令行
一切的一切都是为了提高效率,为了更趁手。虽然各个平台都有自己默认的命令行工具,但是作为一个码仔,要与时俱进,有新鲜事物/好用的东西,得去把玩把玩。笔者之前把玩过Zsh及Oh My Zsh,插件是丰富,功能强大。但是呢,就是感觉有点臃肿,需要去配置,有点麻烦。所以这里推荐fish。
Fish 是“the friendly interactive shell”的简称,fish最大的特点就是功能强大,智能并且用户友好。Fish支持语法高亮,自动建议,标签完成等,而且配置十分简单。 而且还有web配置中心。
终端输入fish_config,即可打开web配置中心,如图:
当然,更多宝藏待你去发掘。没有最好,只有你自己用着趁手,那就是好。
- 轻量级的编辑器
Win用户:Notepad++
链接:notepad-plus-plus.org/downloads 虽然它之前闹的有点恶心,但是它确实是好用。
Mac用户:CotEditor
链接:coteditor.com 笔者目前在用的一款编辑器。
但是对于经常在Win、Mac、Linux系统切换的开发者来说,可能更喜欢VS Code(Visual Studio Code)吧~。(虽然它不算轻量) 笔者也经常用😄。所以说,没有最好也没有最轻量的编辑器,适合你自己,用起来舒服,那就是好的编辑器
跨平台:Visual Studio Code
- 软件包管理工具
Mac用户:Homebrew
相信大多Mac用户都对Homebrew比较熟悉了吧。通过它可以快速安装你需要的各种软件。
由于网络问题,有时候需要各位亲自折腾一下了。因为国内是有镜像源的,配置好了就很方便了。虽然我有方便安装的shell脚本,但是我希望各位去折腾一下子。(我相信你可以探索到 get 它的正确方式)
Win用户:Scoop
对于一个码仔来说,能用一行代码搞定的事情,就不会去想搜索软件,找到官网,打开官网,点击下载链接这么繁琐的事情了。有了Scoop。
scoop install nodejs即可开始安装nodejs。
链接:scoop.sh
探索的道路很长,途中你可能看到鲜花💐,也可能踩个坑~
当然这肯定不是所有必备软件,日常中我们可能还会使用项目管理、DevOps、远程控制等等。这就需要我们根据实际情况,自行去探索了。
如果你有什么宝藏软件还请不要吝啬分享一波😁
1.3 探索更多 “好用工具”
- uTools 工具箱
除了必备软件,笔者平时打交道最多的就是这个超级工具箱了。里面涵盖了很多很多实用的工具,有了它就不用那么麻烦在想用某个小工具(如颜色助手、加密、二维码、剪切板等等)的时候,去搜索去找收藏夹了。
它可以自由组合插件应用,打造专属你个人的趁手工具集;同时可以自定义全局快捷键,自己开发一些小脚本。更多功能,需要各位自行去探索啦~
链接:www.u.tools
- Bob 翻译/OCR文字识别
支持快捷键翻译选中文本,以及截图识别文本并翻译。
很遗憾,Bob目前仅有Mac平台软件。笔者目前没有找到Win平台下类似软件。
不过我推荐的uTools是跨平台的,它也有类似的功能。得益于它的插件市场,有着丰富的社区,目前已有很多翻译插件。
如果你有什么宝藏软件还请不要吝啬分享一波😁
1.4 “免费软件” 网站分享
总是找不到好用的软件?或者说是好用的软件都收费,想要用怎么办呢? 当你探索了很久你会发现,Win平台,那下载软件网站是正的五花八门。Mac平台的App Store软件也少了一点儿的感觉...
Mac用户:
相信大多Mac用户都用过MacWk吧,很遗憾,现在它不复存在了。缅怀一下吧。
这里推荐MacApp,虽然目前官网UI看着不是很漂亮,但是软件是很漂亮的。
Win用户:
笔者暂未找到实用的网站,不过有个论坛是可以去逛一逛的。那就是吾爱破解论坛,不仅仅有免费软件,更有如何去自己制作,各种技术分享等等。而且这是一个历史悠久的网站。
忠爱IDEA用户:
想用的IDEA更新就用不了了?不妨看看这个网站:
笔者突然发现一个还算不错的网站了😄,那就是黑域基地,文章还没写完,既然发现了那我就加上。不仅包含Mac、Win平台的软件,还有Android、TV软件呢。如图:
所以说探索是无止境的,指不定哪天突然就会发现一些宝藏呢。
如果你还有什么宝藏网站还请不要吝啬分享一波😁
2.如何 正确有效✅的提问?
在日常工作中,难免会遇到各种各样的问题,无论是在开源项目沟通群里,或者询求老师、师兄之类的帮助,又或者是身边的同事的同行的时候,一个清晰明了的提问,显得尤为重要。无论是沟通、还是整理自己的思路。捋一捋是很有必要的。
2.1 不要问 “在吗?”
身为一个码仔,你要知道,大家可能都很忙的。当你私信别人 问 “在吗?” 的时候,我知道你可能是出于礼貌,但是这很没必要。
如果你觉得直接问问题不太礼貌,你可以把问题及礼貌语一起发送呀~,再说了,如今的通讯软件,不是只能发 1 条信息等别人回复,才能继续发送啊!
例如:
Q:大佬您好,请教一下问题
Q:我在使用 XXX 的时候,遇到了这个 XXX 问题,请问这个该怎么处理,或者有什么思路么?
Q:望回复,感谢大佬!
至少这样,把你的意图,大概能让对方清楚吧。而不是等对方回复在,然后再问你什么事情。
作为一个过来人,反正我更喜欢你直接发问题、或者问题截图,尤其是在技术群里。
2.2 不要连 “截图” 都没有
为什么最好带上截图呢? 因为每个人的表达能力和理解能力都不一样。当然也不能只发个截图,描述都没有。
有时你觉得你描述的很清楚了,换个角度,别人就一定能理解清楚你说的是什么了吗?
所以,我一开始就推荐了截图工具 Snipaste , 可能你的问题涉及几张图, 它有贴图功能,方便将问题融合在一起,也有标注功能,方便框选一下, 写点文字描述, 让别人看到重点。
所以提问的时候尽可能的,表达清楚你遇到的问题,带上截图或许是麻烦了一些,但是对于大多数码仔来说,有图,或许就有真相。我相信大多技术圈的码友看到BUG截图,还是会好奇去点开看看的。
至少,我看到截图的时候,会想着点开看看这是个什么 BUG
2.3 不要愚蠢的 “反问/确认“
有时候确实“需要反问/确认”一下,比如你跟客户/老板沟通需求的时候,没太理解的时候。
但是我觉得这不适合在技术圈子里,当你反问的时候,你应该去实践操作一下,而不是在这里等着别人,回复没错,是的。至少在我看来,更喜欢看到你回复,好的,谢谢,我试试。
“反问/确认”这看着没毛病,实际好像感觉是别人没跟你讲清楚一样😂
当别人指出了问题,或者提出建议之后,动手实践去吧。
2.4 不要过多 “期待”
当你问 “哪位大佬有用过xxx吗?” 的时候,是期待别人都回复一个 “我用过”? 省省吧~ 清醒一点。
如果你把问题描述清楚了,那么可能会有人,刚好看到了,那么可能就回复你了。
即便有时你私信了他/她,也不一定会有回复的。毕竟大家都很忙,又不是非帮你不可。帮你又没什么好处,对吧?
不是所有人,都有耐心去帮助别人的。
即便你把问题描述了很清楚了,又或者有截图也很清晰有礼貌的情况,也不一定会有回复的。
对于码仔来说可能都很忙,不可能随时随地的关注着交流群的。
你能做的,是把你的问题描述清楚,捋一捋思路然后去自行探索解决方法。
不是所有人,都有耐心去帮助别人的。
在我沟通群/或者私聊我的可能知道,我算是个有耐心的人😊。
所以,不要有过多的期待,要学会自己去探索,寻求真相,解决问题
3.如何 搜索🔍到想要的内容?
平时遇到BUG、疑惑的时候,我们找的最多的可能就是某度了吧。但是呢,某度有时有些广告,这里先推荐一个浏览器(Edge/Chrome)插件 AdBlock 我们在搜索浏览的时候,就会自动去掉某些不必要的广告啦~ 如下图:
如上图,已经累计拦截了4790项广告了。
有了它,不仅页面清爽了,也更容易找到我们想要的内容了。
请继续往下↓阅读。
3.1 学着自己定位 “问题”
我可以很确信的说,大家遇到最多的问题,可能就是null、undefined、NullPointerException这类空指针问题了吧。 这类大概都是因为对象不存在/已销毁/已设置为Null等等情况导致的。
举个例子🌰(Vue项目,JavaScript语言),如下图:
很明显的第一行
// 错误原因
TypeError: Cannot read properties of null (reading 'editingPanel')
// 翻译一下:
1. TypeError:类型错误
2. Cannot read properties of null:无法读取空的属性
3. reading 'editingPanel':括号内是提示,读取 'editingPanel'
// 解释一下:
1. 类型错误:大说就是说这个错误的是哪一类
2. 无法读取空的属性: 这一类错误的原因, 说无法读取(空 null)的属性
相当于什么呢,在 js 中我们读取对象属性是 这样的:
let a = {name:"属性内容"};
// 读取 name :
a.name; // 得到 “属性内容”
3. 提示 读取的是 ‘editingPanel’,
也就是说执行的代码是这样的:
null.editingPanel;
// 相信看到这里,你恍然大悟了。
事实证明,英语还是需要补一补的,至少一些关键词你知道大概是什么意思吧。
继续分析看看具体报错代码,一定一定一定不要排斥,也不能排斥它。这是必经之路,不要看着就头大。且看下图👇
如图所示,有很多vue.runtime.esm.js?字样,翻译一下,大概是 Vue、运行时、esm、js;也就是说这是vue框架运行时需要的js文件;其中esm是(ECMAScript Modules)简写,又需要你自己去科普一下了。那么很明显,目前我们不用考虑点它看详情(排除法);
进入正题,如我标注的①②③点,③:VueComponent.handleClick、②:VueComponent.preView以及①:VueComponent.show。可以看出,分别是,组件点击事件,组件preView,组件show。
我们先点击这个①,会跳转到对应代码位置:如下图
很明显这里的hiprintTemplate是null的,而这个hiprintTemplate是show方法传过来的。由此可知,我们应该点击去看看② VueComponent.preView, 如下图:
结合你自己写的代码,定位到在这里传的hiprintTemplate,我们就应该在这个文件里面去排查,是什么原因导致了 hiprintTemplate 变成了 null (这里是我故意设置的null)。 毕竟代码逻辑需要你自己捋清楚的。
至于第③:VueComponent.handleClick,如图:
其实就是一个Button组件,把 click 事件 emit 出来了而已。
通过这个例子,代码执行的顺序,分析的还算是很清晰的。 一步一步的分析,排查问题,排除问题。
没有读不懂的代码,只是你没深入去探索而已
3.2 学会调整 “思路/关键字”
有时候报错的内容比较多,无法一眼看出实际问题出在哪里,这个时候,只有根据自身经验去需求答案/帮助了。比如刚刚的问题,我们直接搜索会是这个样子:
不用猜,这些肯定不是我们想要的答案。 那么这个时候,就需要我们去调整一下思路了,比如想一想关键字,特定的语言/框架等等。如3.1小节中分析的一样,试着先逐字翻译一下,当然如果本来就清楚一些关键词的意思那就能够更快理解了。
比如说某些关键字:unable to access、warning、Timed out、remove等等。
翻译过来一看,便能知个大概。
另外我们可以根据思路来排查问题。
比如:
npm i的时候的报错点击某个按钮的时候报错新增某个依赖的过后报错
诸如此类的情况很多,有了大致思路,至少可以排除一些可能吧。
又或者我们根据环境来排查问题。
比如:
Win平台问题NodeJs版本问题Webpack版本问题Vite版本问题
问题有很多,试着切换一下你排查思路,或许答案离你越来越近。
无论是排查问题,还是编写代码,有一个清晰的思路很重要
3.3 学着不要仅看 “中文”网站
或许你英语过了四六级,但或许你英文看着就头大。但是这关你必须得过呀!就好比玩游戏,不升级可能根本进不了下一关,解锁不了新大陆。
有时我们用到的第三方库,或者语言,官网是只有英文版的,虽然我们可以去搜索查找中文社区,也可以借助浏览器翻译转成中文。但是难道我们不应该鼓起勇气,试着看看原版么?
毕竟有时,中文翻译是有出入的,或许就是某一个词,某一句话。
比如:import 翻译成 进口,但很明显,这只是一些语言的一个关键词而已。
又比如我们在逛Github的时候,很多READEME.md都是只有英文的介绍;它的star有很多,且目前找不到中文社区,这个时候你该怎么办?
又或者我们在使用 IDEA/VSCode 的时候,看到个插件,全是引文,不知道怎么用怎么办?
试着慢慢翻阅英文文档吧,哪怕开始你只能读懂几个单词而已。
所以我推荐了划词翻译软件,目的就是想让大家学会试着去逐词翻译,翻阅英文文档。
这次你划词翻译学到的几个单词,没准下次你遇到它就不需要借助翻译了呢。
3.4 IT人网站分享
分享一些还可以的网站吧,虽然可能你已经知道了。
基础学习网站:
- 菜鸟教程 www.runoob.com/
- 编程宝库 www.codebaoku.com/
- Quick Reference bbs.laoleng.vip/reference/i…
一些基础知识,可以在这里科普科普
视频大杂烩网站:
- 慕课网 www.imooc.com/
- 腾讯课堂 ke.qq.com/
- 哔哩哔哩 www.bilibili.com/
视频网站太多了,至于哪个平台的质量好,就需要各位自行探索了。技术分类/语言太多了。
开源社区网站:
- Github github.com/
- Gitee gitee.com/explore
至于其他社区,大家各种摸索吧;像每种语言可能都有自己的一个社区网站
依赖仓库网站:
- NPM www.npmjs.com/
Nodejs、前端Vue、React等等依赖包
- crates.io crates.io/
Rust依赖包
- Pub.dev pub.flutter-io.cn/
Flutter、Dart依赖包
- PyPI pypi.org/
Python依赖包
由此可见,每个语言,都是有自己的社区的。
再推荐一个前端/NodeJs受欢迎依赖库的排行网站吧,我们在选择的时候,也好有一个参考;如图:
在这个网站,你可以看到一些受欢迎库的,下载量以及它的star量。
学习的资源有很多,关键是你愿意花多少时间去学习
如果你还有什么宝藏学习网站还请不要吝啬分享一波😁
4.如何 上手🌈新项目/语言?
当你入职的时候,如果运气好,有大佬带你,有详细的文档。那么恭喜你,且行切珍惜吧。记得我说的,如何正确有效的去提问。 至少显得你没那么...白。
假设你接手的是Vue前端项目,如果可以,运行起来先看看(我想都是先干的事儿吧)。 如果可以正常运行,可以试着,测试一下,顺带看看和分析用了哪些技术。那么接下来,大致步骤可以是:
- 查看
package.json文件;以分析用到了哪些技术(dependencies和devDependencies);有哪些scripts脚本;如果有你不知道的,那么请在NPM网站去搜索,了解一下。 - 分析查看
目录结构,并找到入口文件(涉及到前端工程化的一些知识了,比如Webpack或者Vite等相关配置,一般可以去官网能够找到答案);毕竟很多配置,可能都是在入库文件中处理的。 - 有了前面的
分析,就可以开始着手看看实际的代码了,比如组件、网络请求、业务逻辑等等。
关于前端工程化,可以去看看这本【从0到1落地前端工程化】小册:juejin.cn/book/703468… (这不是我写的)当然,你也可以自行去网上去探索学习。
4.1 一定要 “敲写” 起来
如果你现在想要学习一门新语言。那么在你查看基础学习网站(菜鸟教程、编程宝库等等)的时候,请动手,疯狂的敲起来吧!俗话说:好记性不如烂笔头,写代码也差不多吧,没有什么比实践更重要了。
VScode这个编辑器,它支持很多语言呀。插件一装,上手写起来。写的过程中,可以写写自己的理解和注释,就又是一遍记忆了。没准哪天,你也开启了你自己的总结输出道路。
就比如说,新语言可能需要搭建环境吧;那么你把搭建的过程,记录一下,踩过的坑也记录一些。哪天你换电脑了,重新搭建环境的时候是不是就可以不踩这个坑呢?
记肯定是记不过来的,反正我是记住那么多内容的😂。
4.2 一定要 “多看“ 官方文档
如果说哪里的文档好,权威,那我估计就是官方文档了。就好比,你自己写的代码,是不是你自己最清楚呢?
比如Vite的官方中文文档:
指引你一步一步的文档,不应该静下心好好去看一看吗?不仅有指引,还有疑难解答,这些都应该事先看看吧。
虽然有些文档写的不是很友好,但是如果这个文档是开源的,如果你发现了错误或者不足的地方,你去贡献一下,岂不美哉?
我知道这不容易,但是如果人人都能积极参与进去,我相信这个文档会越来越好,你也可能会结识一些大佬,学到更多的东西。
开始都是艰难的,勇敢迈出去第一步,你会发现,其实也没什么难的。
4.3 不妨先 逛逛 “社区/生态”
为什么要先去逛逛 “社区/生态”呢?
举个例子🌰:假如你去买手机,你会关注什么呢?它的性能、使用反馈、XX游戏卡不卡、XX软件支持不支持等等对吧?
其中使用反馈、XX游戏卡不卡这些都需要实实在在的使用者你才能知道吧。而这些“使用者”、分享使用反馈的人就是“社区/生态”。这大概就是“社区/生态”的重要性。
实例:笔者在学习开发Flutter跨平台App的时候,会使用到地图功能,我本身是学Android的,但是IOS不熟悉呀,不可能立即去学IOS开发,然后弄个Flutter插件吧,毕竟时间紧任务重。当时(2019年的样子)像百度地图、高德地图都还没有提供自家的Flutter插件。这就很头大了呀,怎么办呢? 当然是逛“社区”了呀,幸好我在pub.dev官方的软件包存储库中找到了amap_base插件,由yohom大佬开发。现在大佬是OpenFlutter社区成员之一,也是Fluttify社区元老。
说这么多,就是想告诉各位码友,在学习/确定新语言的时候,先去看看“社区/生态”。
社区都是需要各位码友一起去构建的,或许你的一点点贡献,能让这个社区更有活力。
4.4 试着 “分析” 与 “关注”
去分析这门语言/库/框架是否适合做这个项目,或者目前这个语言/库/框架的学习的视频/教程够不够丰富,有没有当前暂未处理的BUG,或者这个项目可能需要哪些底层的支持。
比如笔者之前开源的electron-hiprint(跳过浏览器打印窗口,直接打印的客户端);如果想用Tauri(跨平台GUI开发框架)去实现一遍,能不能够做到?
这个时候我们就需要去翻阅官方文档,去探索分析它的API,去查看它的社区/生态。去社区/开源社区搜索相关的功能是否支持或有类似的依赖库。
你可能一时间是发现不了什么的。那怎么办?就彻底放弃么?所以我们需要去关注这个圈子,无论是去加入一下交流群,还是偶尔再去它的官网文档。当前如果这是个开源的语言/库/框架,我们可以通过开源社区(Github/Gitee等)去订阅/watch这个项目。(见下下一节)
大多时候,社区都是需要更多的码友去支持/贡献的,所以保持关注,用的人多了。社区才会更加的活跃。
5.如何 逛👀“开源社区” (Github/Gitee等)
如果你还没有开源社区Github/Gitee等等的账号,那么请赶紧去注册一个吧!
如下面两张图,分别是 Github 的探索/发现页面和 Gitee的推荐/发现页面:
无论是哪个开源社区,都会有很多好玩,实用的项目等待着你去探索/发现。
根据你自身情况,去选择对应的分类/语言,推荐和排行或许能更快让你知晓某个项目。
如何关注开源项目的动态呢?那就是订阅/watch这个项目,如下图:
可自定义watch的情况,比如全部通知、有新ISSUSE时、有PR时等等情况。
你也可以去follow任何一位开源作者。这样,它的一些动态(比如创建新仓库、提交了ISSUSE等等),这样你也可以收到通知。
当然你也可以下载对应的手机App,以便你即使不在电脑面前,也能去逛一逛Github/Gitee。
Github手机App链接:github.com/mobile
至于Gitee的手机App,我相信你可以探索找到。
逛==>学习==>关注。我现在是喜欢习惯性逛Github/Gitee了😄,当然还有稀土掘金和微信公众号
5.1 不要 “吝啬” 你的 “star”
前面讲到Github/Gitee有探索/发现页面,那它的这个是根据什么来推荐的呢? 我大概能想到的就是 star 和 访问量 这些了。
所以请不要吝啬你的star,你的star是对开发者的鼓励,也是对开源社区的一点点贡献。或许你的一个star能让这个项目进入推荐列表,进入推荐列表就能让更多的码友看到。
所以请记得随手的一个star,不要对开源项目那么吝啬,当然也不要随便乱来。毕竟那些连README都有没有的项目,可能只是个测试。大多实际的开源项目肯定会有示例或者文档之类的。
你的一颗小小的star,或许可以点燃千万码友心中的那颗澎湃的心。
5.2 记住 “awesome” 这个词
有时我们想快速找到某些语言/框架优秀的开源项目,或者想看看有哪些成功的案例。那么请记住awesome这个单词。是令人惊叹的、很棒的的意思。
比如我们想看看哪些awesome的Vue项目;那么我们可以在Github这样搜索:
我们将得到一个超级多star的仓库awesome-vue,而且还是最近更新的仓库。内容有很多分类 如图:
圈红的应该能明白什么意思吧。不明白也没关系,动动手,翻译一下就好了。
如果Github访问不了,访问慢,那么请搜索如何科学上网,或者私聊我。
当然你也可以直接搜索awesome,你将看到如下图:
不仅可以查看awesome这个话题(topic),还可以根据语言进行筛选。
Awesome、awesome、AWESOME
请记住这个awesome,记住它,通过它你会发现更多丰富的内容。
5.3 学会 “分析” 开源项目
和上手/接手一个项目一样,肯定需要先分析了解一下技术架构呀,能体验就先体验,其次是研究它用了哪些技术。
比如Vue项目,我们可以先去看看package.json,看一下dependencies和devDependencies中有哪些你没见过的依赖。就拿我的开源项目 vue-plugin-hiprint来举例吧。链接:github.com/CcSimple/vu…
如上图圈红的dependencies、devDependencies分别是运行时依赖,和开发时依赖。scripts 则是有哪些脚本,通过 npm run 脚本名称 运行的脚本。 圈绿的是你熟悉的jQuery,那么可想而知,这个项目是可以使用 jQuery相关功能的。
假设圈蓝的,你没有见过,那么就需要去科普探索了。既然是前端项目,我们知道NPM网站,那就去瞅瞅。如图:
就是这么简单,我相信当你分析了几个开源项目过后,你会有很大的收获。当然更深入的分析肯定需要认认真真的去读项目的代码呀。
当然React、Svelte或者其他项目也是如此。分析也是一种成长。如果你是其他语言如Flutter、Sprint Boot项目也类似,只不过是把package.json换成该语言的项目构建管理工具(Maven、Gradle等等又该科普了)的入口就好了。
试着多去逛一逛,去分析分析你已了解的开源项目吧~
6.如何 不断提升🚀自己?
我觉得写代码这件事,重在积累吧。水滴石穿大家都知道吧,日积月累的学习,就是在不断提升自己。不仅仅是你写代码的时间,也包括你平时阅读文章/代码。当然还可以去参与一些开源项目。
现在技术划分的越来越多/细,新的思想/架构也在不断演进。相信你听到过吐槽说学不动了之类的话吧。 没错呀,新的技术再不断输出,有新就得去学习探索,就如我开篇就说的 IT人就是要 “不停折腾”。
想想我前面提到一下内容:
- “多看“ 官方文档
- 逛逛“社区/生态”
- “分析” 与 “关注”
我想,如果是新的技术来了,你可以通过这几点,入门新技术。或许能分析出它现在对你来说,是否值得学习。
如果说哪天当你看到某个软件/网站有什么功能/效果的时候,你是想着去分析它是怎么实现的,或者去实现那么一个功能/效果。我想你的那个经验值已经在不断往上↑涨了。
要想不断提升自己,那就必须需要花时间精力去探索研究
通过这些小节,我相信你可以找到一个不断提升自己的道路。
6.1 学着 “记录” 和 “总结”
很多时候,我们可能会重复开发一些技术/功能/架构/效果等等,虽然可以翻阅以前的代码能够再次实现想要的功能/效果。但是如果你可以花点时间去记录这些实现的步骤,实现的槽点,那么或许对于这个技术点你是不是会更加牢固呢?
每当你去搜索xxxBUG的时候,为什么会有这些大佬会去记录或者分享这些坑点呢?不可能就是为了你去写一篇这个xxxBUG总结吧。记录你的实现过程,实现过程中的踩坑槽点,不仅可以锻炼你的语言表述能力,还可以巩固你的这个知识点,而且还能为后来码友的道路指引方向或者解决问题。何乐不为呢?当然这肯定会花费一些时间。
记录和总结其实是一个道理,在记录的过程中,对自己偶尔总结一下,也算是一种成长。毕竟长路漫漫,唯剑作伴。当你某天回过头翻阅你自己当时对某事、某技术的总结,我想那也是一番风味吧。
当然作为一名码仔,我们也需要使用码仔们专用的记录方式,来记录/总结自己的历程。那就是 Markdown 语法。也就是我们在GitHub/Gitee等开源社区常常看到的文档说明README.md。
Markdown编辑器有很多,我想也没必要推荐了吧。我相信你可以很快探索到你喜欢的编辑器,当然常用的 IDEA/VSCode 也是可以编辑记录的。
无论是技术论坛、开源社区、自己的博客等等都可以是你记录分享的地方。
行动起来,点滴积累吧!
6.2 不要停留在 “使用” 阶段
这个毋庸置疑,大多都是从使用者开始的。笔者也是一个三方库依赖者。有想要的实现的功能,就会先去开源社区找一找有没有现成的轮子。可以毫不夸张的说,现在几乎都是这样的。
但是,如果哪一天公司项目需要某个功能,现有的轮子效果不理想需要你自己去二次开发,或者说完全不能用的时候你该怎么办? 那就只有去探索、去研究,然后二次开发,或者造轮子了。
当你更深入了解了怎么去逛Github/Gitee的时候,应该知道Fork的意义了吧。就是分叉、分支的意思,当需要二次开发,或者做贡献的时候,这是非常有必要且有意义的事情。
那么如果你有使用一些开源项目,并且在使用过程中发现了BUG。如果你可以修复这个BUG,那么请不要停留在 “使用” 阶段开始Fork这个开源项目然后修复BUG并提交PR吧。这或许就是跨出"使用者"的第一步。对开源社区也是一个贡献。
指不定哪天,会有其他码仔遇到这个BUG,而你正是这个BUG的修复者。
或许你的贡献微乎其微,但是参与者和使用者还是有所区别的;虽然第一步都是不容易,但如果你多尝试几次参与,兴许会发现这也不是那么困难的事情。
6.3 试着 “贡献” 自己😁
试着“贡献”自己,其实就是不要停留在使用阶段的升级。去尝试参与开源项目。例如:贡献开源文档、提交ISSUE、提交PR、参与讨论等等。
如上图,我们都是从①Code查看代码开始的。那么就开始去参与②、③、④吧!
比如②Issues,就是开源项目的一些使用问题。我们不仅在分析这个项目的时候去翻阅,也可以试着去帮助回复这些问题。
假如刚刚有个ISSUSE是你知道/处理过的,那么你就可以去“贡献”自己呀,帮助码友解决问题,或者提供一些思路。
赠人玫瑰手留余香,码仔的世界就是需要码仔们相互贡献。
总结
IT人就是要不断折腾!学习新的工具、语言、框架等等;提问是门艺术,更要学会自行探索答案;定位问题、分析问题、调整思路是必经之路;仔细看文档、尝试看英文文档、看社区/生态;要实践、要实践、要实践;- 参与
社区,把贡献自己; - 着手
记录/总结平时遇到的问题,尽可能的分享给码友们;
希望这篇万字长文对你的成长之路有所帮助!也欢迎各位码友转发分享和留言反馈。转载请注明一下出处😊
觉得不错就点个赞再走吧!