不简说

V1

2023/04/10阅读:56主题:自定义主题1

万字长文!献给码友们!

很高兴你能点进来看看这篇文章,也希望我的这篇文章对你有所触动。助你开启一段奇妙的 IT 之旅。

本篇献给想要入行(或大学生)以及刚入行的小伙伴们;同时也是对我个人学习的一些经验和总结;就如我公众号介绍一样;虽不是资深码仔,乐于分享,皆只为他人少踩坑;如有不妥之处,也希望大佬们给予指正和建议;如果你有更好的学习方法或者思路👏🏻期待能与你一起交流学习,哪怕只是一条留言~

转载请注明一下出处~~

前言

本篇内容稍长,包含(职场经验) 提问❓技巧搜索🔍经验BUG🐛经验软件🛫分享网站💻分享编码✍️经验等等;由于我个人习惯问题太菜,有些内容可能写的啰嗦了点儿...😄;望多担待~ 也希望大家可以指正一下,大佬们带带弟弟😊!

列个目录,好让各位知道本文大概内容,也方便大佬们可以一览全局~
  1. 如何 打造自己的工作站💻?(软件分享)
  • IT人就是要 “不停折腾”
  • “必备” 软件分享
  • 探索更多 “好用工具”
  • “免费软件” 网站分享
  1. 如何 正确有效✅的提问?(提问技巧)
  • 不要问 “在吗?”
  • 不要连 “截图” 都没有
  • 不要愚蠢的 “反问/确认“
  • 不要过多 “期待”
  1. 如何 搜索🔍到想要的内容?(搜索经验)
  • 学着自己定位 “问题”
  • 学会调整 “思路/关键字”
  • 学着不要仅看 “中文”网站
  • IT人网站分享
  1. 如何 上手🌈新项目/语言?(编码经验)
  • 一定要 “敲写” 起来
  • 一定要 “多看“ 官方文档
  • 不妨先 逛逛 “社区/生态”
  • 试着 “分析” 与 “关注”
  1. 如何 逛👀“开源社区”(Github/Gitee等)
  • 不要 “吝啬” 你的 “star”
  • 记住 “awesome” 这个词
  • 学会 “分析” 开源项目
  1. 如何 不断提升🚀自己?(经验总结)
  • 学着 “记录” 和 “总结”
  • 不要停留在 “使用” 阶段
  • 试着 “贡献” 自己😁

1.如何打造自己的工作站💻?

俗话说:工欲善其事必先利其器,作为一名开发者,自己的电脑那肯定必须一定要把自己的电脑配置巴巴适适的(四川话:“很好”、“可以”、“舒服”、“安逸”、“超级爽”)才行呀~;就像搭建开发环境一样,没配置好容易掉链子...😂

1.1 IT人就是要 “不停折腾”

上学的时候,估计很多老师说过吧~ 入了这行,那就需要不断的学习才行。如果你是转行入的IT,那么恭喜你,前面有 N 个山需要你去翻阅,不说那么细,就说些实际的吧:

  • 折腾如何安装系统,且不仅仅只有Windows系统macOSLinux(而且区分很多版本,如:Ubuntu、UOS、deepin等等...)
  • 折腾环境、开发环境,部署环境(不同的语言、不同的版本、不同的架构
  • 折腾安装各种软件/工具开发软件(免费的、破解的),实用工具(解压缩、图片编辑浏览、文件上传、SSH、命令行、虚拟机、API文档等等...)

不要看到这么被吓到了😂,其实很多,都是可以直接安装使用的啦~~

只是想告诉各位,软件有很多,想要自己用着舒服,那就必须去探索,去折腾自己的电脑

下面👇🏻 有我常用一些软件分享给大家:

1.2 “必备” 软件分享

此时我在想应该先推荐个什么... 突然需要截个图😄,那么就从截图软件开始吧;日常工作中截图肯定是会常用吧,截一个好图,表明意图BUG报错原因都是迫切的需求

  • 截图软件 Snipaste (支持WinMac

官网中文链接:https://zh.snipaste.com

截图软件
截图软件
  • 浏览器软件 Microsoft Edge / Google Chrome

为什么推荐“浏览器”这种是必备软件呢? 别问,用它就对了(具有丰富的插件,写写脚本什么的)。另外当你遇到Bug时用浏览器查阅资料也是必须的吧。

Edge:https://www.microsoft.com/zh-cn/edge/download

Chrome: https://www.google.cn/chrome

不经常翻墙上网的小伙伴,可以选择Edge插件自由了喔~ 还能登录账号跨设备同步书签,访问记录等等。

  • 命令行

一切的一切都是为了提高效率,为了更趁手。虽然各个平台都有自己默认的命令行工具,但是作为一个码仔,要与时俱进有新鲜事物/好用的东西,得去把玩把玩。笔者之前把玩过ZshOh My Zsh,插件是丰富,功能强大。但是呢,就是感觉有点臃肿,需要去配置,有点麻烦。所以这里推荐fish

Fish 是“the friendly interactive shell”的简称,fish最大的特点就是功能强大,智能并且用户友好。Fish支持语法高亮,自动建议,标签完成等,而且配置十分简单。 而且还有web配置中心

Fish官网
Fish官网

终端输入fish_config,即可打开web配置中心,如图:

Fish配置中心
Fish配置中心

当然,更多宝藏待你去发掘。没有最好只有你自己用着趁手,那就是好

  • 轻量级的编辑器

Win用户:Notepad++

Notepad++
Notepad++

链接:https://notepad-plus-plus.org/downloads 虽然它之前闹的有点恶心,但是它确实是好用。

Mac用户:CotEditor

CotEditor
CotEditor

链接:http://coteditor.com 笔者目前在用的一款编辑器。

但是对于经常在Win、Mac、Linux系统切换的开发者来说,可能更喜欢VS Code(Visual Studio Code)吧~。(虽然它不算轻量) 笔者也经常用😄。所以说,没有最好没有最轻量的编辑器,适合你自己,用起来舒服,那就是好的编辑器

跨平台:Visual Studio Code

Visual Studio Code
Visual Studio Code

链接:https://code.visualstudio.com

  • 软件包管理工具

Mac用户:Homebrew

相信大多Mac用户都对Homebrew比较熟悉了吧。通过它可以快速安装你需要的各种软件

由于网络问题,有时候需要各位亲自折腾一下了。因为国内是有镜像源的,配置好了就很方便了。虽然我有方便安装的shell脚本,但是我希望各位折腾一下子。(我相信你可以探索到 get 它的正确方式)

Homebrew官网
Homebrew官网

链接:https://brew.sh/index_zh-cn

Win用户:Scoop

对于一个码仔来说,能用一行代码搞定的事情,就不会去想搜索软件,找到官网,打开官网,点击下载链接这么繁琐的事情了。有了Scoop

scoop install nodejs即可开始安装nodejs

Scoop官网
Scoop官网

链接:https://scoop.sh

探索的道路很长,途中你可能看到鲜花💐,也可能踩个坑~

当然这肯定不是所有必备软件,日常中我们可能还会使用项目管理DevOps远程控制等等。这就需要我们根据实际情况自行去探索了。

如果你有什么宝藏软件不要吝啬分享一波😁

1.3 探索更多 “好用工具”

  • uTools 工具箱

除了必备软件,笔者平时打交道最多的就是这个超级工具箱了。里面涵盖了很多很多实用的工具,有了它就不用那么麻烦在想用某个小工具(如颜色助手加密二维码剪切板等等)的时候,去搜索去找收藏夹了。

它可以自由组合插件应用,打造专属你个人的趁手工具集;同时可以自定义全局快捷键,自己开发一些小脚本。更多功能,需要各位自行去探索啦~

uTools
uTools

链接:https://www.u.tools

  • Bob 翻译/OCR文字识别
Bob
Bob

支持快捷键翻译选中文本,以及截图识别文本并翻译

链接:https://bobtranslate.com

很遗憾,Bob目前仅有Mac平台软件。笔者目前没有找Win平台下类似软件。

不过我推荐的uTools是跨平台的,它也有类似的功能。得益于它的插件市场,有着丰富的社区,目前已有很多翻译插件

uTools超级面板功能
uTools超级面板功能

如果你有什么宝藏软件不要吝啬分享一波😁

1.4 “免费软件” 网站分享

总是找不到好用的软件?或者说是好用的软件都收费想要用怎么办呢? 当你探索了很久你会发现,Win平台,那下载软件网站是正的五花八门Mac平台的App Store软件也少了一点儿的感觉...

Mac用户:

相信大多Mac用户都用过MacWk吧,很遗憾,现在它不复存在了。缅怀一下吧

这里推荐MacApp,虽然目前官网UI看着不是很漂亮,但是软件是很漂亮的。

MacApp
MacApp

链接:https://macapp.org.cn/

Win用户:

笔者暂未找到实用的网站,不过有个论坛是可以去逛一逛的。那就是吾爱破解论坛,不仅仅有免费软件,更有如何去自己制作各种技术分享等等。而且这是一个历史悠久的网站。

吾爱破解论坛
吾爱破解论坛

链接:https://www.52pojie.cn/

忠爱IDEA用户:

想用的IDEA更新就用不了了?不妨看看这个网站:

novx.org
novx.org

链接:https://novx.org/jetbrains

笔者突然发现一个还算不错的网站了😄,那就是黑域基地文章还没写完,既然发现了那我就加上。不仅包含MacWin平台的软件,还有AndroidTV软件呢。如图:

黑域基地
黑域基地

链接:https://www.hybase.com/

所以说探索是无止境的,指不定哪天突然就会发现一些宝藏呢。

如果你还有什么宝藏网站不要吝啬分享一波😁

2.如何 正确有效✅的提问?

日常工作中,难免会遇到各种各样的问题,无论是在开源项目沟通群里,或者询求老师、师兄之类的帮助,又或者是身边的同事同行的时候,一个清晰明了提问,显得尤为重要。无论是沟通、还是整理自己的思路捋一捋是很有必要的。

2.1 不要问 “在吗?”

身为一个码仔,你要知道,大家可能都很忙的。当你私信别人“在吗?” 的时候,我知道你可能是出于礼貌,但是这很没必要。

如果你觉得直接问问题不太礼貌,你可以把问题及礼貌语一起发送呀~,再说了,如今的通讯软件不是只能发 1 条信息等别人回复,才能继续发送啊!

例如:

Q:大佬您好,请教一下问题

Q:我在使用 XXX 的时候,遇到了这个 XXX 问题,请问这个该怎么处理,或者有什么思路么?

Q:望回复,感谢大佬!

至少这样,把你的意图,大概能让对方清楚吧。而不是等对方回复在,然后再问你什么事情

作为一个过来人,反正我更喜欢你直接发问题、或者问题截图尤其是在技术群里

2.2 不要连 “截图” 都没有

为什么最好带上截图呢? 因为每个人的表达能力和理解能力都不一样。当然也不能只发截图,描述都没有。

有时你觉得你描述的很清楚了,换个角度,别人就一定能理解清楚你说的是什么了吗

所以,我一开始就推荐了截图工具 Snipaste , 可能你的问题涉及几张图, 它有贴图功能,方便将问题融合在一起,也有标注功能,方便框选一下, 写点文字描述让别人看到重点

所以提问的时候尽可能的,表达清楚你遇到的问题带上截图或许是麻烦了一些,但是对于大多数码仔来说,有图,或许就有真相。我相信大多技术圈的码友看到BUG截图,还是会好奇点开看看的。

至少,我看到截图的时候,会想着点开看看这是个什么 BUG

2.3 不要愚蠢的 “反问/确认“

有时候确实“需要反问/确认”一下,比如你跟客户/老板沟通需求的时候,没太理解的时候。

但是我觉得这不适合在技术圈子里,当你反问的时候,你应该去实践操作一下,而不是在这里等着别人,回复没错,是的。至少在我看来,更喜欢看到回复好的,谢谢,我试试

“反问/确认”看着没毛病,实际好像感觉是别人没跟你讲清楚一样😂

当别人指出了问题,或者提出建议之后,动手实践去吧。

2.4 不要过多 “期待”

当你问 “哪位大佬有用过xxx吗?” 的时候,是期待别人都回复一个 “我用过”? 省省吧~ 清醒一点。

如果你把问题描述清楚了,那么可能会有人,刚好看到了,那么可能回复你了。

即便有时你私信了他/她,也不一定会有回复的。毕竟大家都很忙,又不是非帮你不可。帮你又没什么好处,对吧?

不是所有人,都有耐心去帮助别人的。

即便你把问题描述了很清楚了,又或者有截图也很清晰有礼貌的情况,也不一定会有回复的。

对于码仔来说可能都很忙不可能随时随地的关注着交流群的。

你能做的,是把你的问题描述清楚捋一捋思路然后去自行探索解决方法

不是所有人,都有耐心去帮助别人的。

在我沟通群/或者私聊我的可能知道,我算是个有耐心的人😊。

所以,不要有过多的期待,要学会自己去探索,寻求真相,解决问题

3.如何 搜索🔍到想要的内容?

平时遇到BUG疑惑的时候,我们找的最多的可能就是某度了吧。但是呢,某度有时有些广告,这里先推荐一个浏览器(Edge/Chrome)插件 AdBlock 我们在搜索浏览的时候,就会自动去掉某些不必要的广告啦~ 如下图:

AdBlock
AdBlock
AdBlock
AdBlock

如上图,已经累计拦截了4790项广告了。

有了它,不仅页面清爽了,也更容易找到我们想要的内容了。

请继续往下↓阅读。

3.1 学着自己定位 “问题”

我可以很确信的说,大家遇到最多的问题,可能就是nullundefinedNullPointerException这类空指针问题了吧。 这类大概都是因为对象不存在/已销毁/已设置为Null等等情况导致的。

举个例子🌰(Vue项目,JavaScript语言),如下图:

Vue项目报错例子
Vue项目报错例子

很明显的第一行

// 错误原因
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运行时esmjs;也就是说这是vue框架运行时需要的js文件;其中esm是(ECMAScript Modules)简写,又需要你自己去科普一下了。那么很明显,目前我们不用考虑点它看详情(排除法);

进入正题,如我标注的①②③点,③:VueComponent.handleClick②:VueComponent.preView以及①:VueComponent.show。可以看出,分别是,组件点击事件,组件preView,组件show

我们先点击这个,会跳转到对应代码位置:如下图

VueComponent.show
VueComponent.show

很明显这里的hiprintTemplatenull的,而这个hiprintTemplateshow方法传过来的。由此可知,我们应该点击去看看② VueComponent.preView, 如下图:

VueComponent.preView
VueComponent.preView

结合自己写的代码,定位到在这里传的hiprintTemplate,我们就应该在这个文件里面去排查,是什么原因导致hiprintTemplate 变成了 null (这里是我故意设置的null)。 毕竟代码逻辑需要你自己捋清楚的。

至于第③:VueComponent.handleClick,如图:

VueComponent.handleClick
VueComponent.handleClick

其实就是一个Button组件,把 click 事件 emit 出来了而已。

通过这个例子,代码执行的顺序分析的还算是很清晰的。 一步一步的分析排查问题,排除问题。

没有读不懂的代码,只是你没深入去探索而已

3.2 学会调整 “思路/关键字”

有时候报错的内容比较多,无法一眼看出实际问题出在哪里,这个时候,只有根据自身经验需求答案/帮助了。比如刚刚的问题,我们直接搜索会是这个样子:

直接搜索报错信息
直接搜索报错信息

不用猜,这些肯定不是我们想要的答案。 那么这个时候,就需要我们去调整一下思路了,比如想一想关键字特定的语言/框架等等。如3.1小节中分析的一样,试着先逐字翻译一下,当然如果本来就清楚一些关键词意思那就能够更快理解了。

比如说某些关键字unable to accesswarningTimed outremove等等。 翻译过来一看,便能知个大概。

另外我们可以根据思路排查问题

比如:

  • npm i的时候的报错
  • 点击某个按钮的时候报错
  • 新增某个依赖的过后报错

诸如此类的情况很多,大致思路至少可以排除一些可能吧。

又或者我们根据环境排查问题

比如:

  • Win平台问题
  • NodeJs版本问题
  • Webpack版本问题
  • Vite版本问题

问题有很多,试着切换一下你排查思路,或许答案离你越来越近

无论是排查问题,还是编写代码,有一个清晰的思路很重要

3.3 学着不要仅看 “中文”网站

或许你英语过了四六级,但或许你英文看着就头大。但是这关必须得过呀!就好比玩游戏不升级可能根本进不了下一关解锁不了新大陆

有时我们用到的第三方库,或者语言官网只有英文版的,虽然我们可以去搜索查找中文社区,也可以借助浏览器翻译转成中文。但是难道我们不应该鼓起勇气,试着看看原版么?

毕竟有时中文翻译有出入的,或许就是某一个词某一句话

比如:import 翻译成 进口,但很明显,这只是一些语言的一个关键词而已。

又比如我们在逛Github的时候,很多READEME.md都是只有英文介绍;它的star有很多,且目前找不到中文社区,这个时候你该怎么办?

又或者我们在使用 IDEA/VSCode 的时候,看到个插件,全是引文,不知道怎么用怎么办?

试着慢慢翻阅英文文档吧,哪怕开始你只能读懂几个单词而已。

所以我推荐划词翻译软件,目的就是想让大家学会试着逐词翻译,翻阅英文文档

这次你划词翻译学到的几个单词,没准下次你遇到它就不需要借助翻译了呢。

3.4 IT人网站分享

分享一些还可以的网站吧,虽然可能你已经知道了。

基础学习网站:

一些基础知识,可以在这里科普科普

视频大杂烩网站:

视频网站太多了,至于哪个平台的质量好,就需要各位自行探索了。技术分类/语言太多了。

开源社区网站:

至于其他社区,大家各种摸索吧;像每种语言可能都有自己的一个社区网站

依赖仓库网站:

由此可见,每个语言,都是有自己的社区的。

再推荐一个前端/NodeJs受欢迎依赖库排行网站吧,我们在选择的时候,也好有一个参考;如图:

npm.devtool.tech
npm.devtool.tech

链接:https://npm.devtool.tech/

在这个网站,你可以看到一些受欢迎库的,下载量以及它的star量。

学习的资源有很多,关键是你愿意花多少时间去学习

如果你还有什么宝藏学习网站不要吝啬分享一波😁

4.如何 上手🌈新项目/语言?

当你入职的时候,如果运气好,有大佬带你有详细的文档。那么恭喜你,且行切珍惜吧。记得我说的,如何正确有效的去提问。 至少显得你没那么...白。

假设接手的是Vue前端项目,如果可以,运行起来先看看(我想都是先干的事儿吧)。 如果可以正常运行,可以试着,测试一下,顺带看看和分析用了哪些技术。那么接下来,大致步骤可以是:

  1. 查看 package.json 文件;以分析用到了哪些技术(dependenciesdevDependencies);有哪些 scripts 脚本;如果有你不知道的,那么请在 NPM 网站去搜索了解一下
  2. 分析查看目录结构,并找到入口文件(涉及到前端工程化的一些知识了,比如Webpack或者Vite等相关配置,一般可以去官网能够找到答案);毕竟很多配置,可能都是在入库文件中处理的。
  3. 有了前面的分析,就可以开始着手看看实际的代码了,比如组件、网络请求、业务逻辑等等。

关于前端工程化,可以去看看这本【从0到1落地前端工程化】小册:https://juejin.cn/book/7034689774719860739?suid=1662117311414462这不是我写的)当然,你也可以自行去网上探索学习。

4.1 一定要 “敲写” 起来

如果你现在想要学习一门新语言。那么在你查看基础学习网站(菜鸟教程编程宝库等等)的时候,请动手疯狂起来吧!俗话说:好记性不如烂笔头,写代码也差不多吧,没有什么比实践更重要了。

VScode这个编辑器,它支持很多语言呀。插件一装,上手写起来。写的过程中,可以写写自己的理解和注释,就又是一遍记忆了。没准哪天,你也开启了你自己的总结输出道路。

就比如说,新语言可能需要搭建环境吧;那么你把搭建的过程记录一下,踩过的坑也记录一些。哪天你换电脑了,重新搭建环境的时候是不是就可以不踩这个坑呢?

记肯定是记不过来的,反正我是记住那么多内容的😂。

4.2 一定要 “多看“ 官方文档

如果说哪里的文档好权威,那我估计就是官方文档了。就好比,你自己写的代码,是不是你自己最清楚呢?

比如Vite官方中文文档:

Vite官方中文文档
Vite官方中文文档

链接:https://cn.vitejs.dev/guide/

指引一步一步的文档,不应该静下心好好去看一看吗?不仅有指引,还有疑难解答,这些都应该事先看看吧。

虽然有些文档写的不是很友好,但是如果这个文档是开源的,如果你发现了错误或者不足的地方,你去贡献一下岂不美哉

我知道这不容易,但是如果人人都能积极参与进去,我相信这个文档会越来越好,你也可能结识一些大佬学到更多的东西

开始都是艰难的,勇敢迈出去第一步,你会发现,其实也没什么难的。

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推荐/发现页面:

Github 探索/发现
Github 探索/发现
Gitee 探索/发现
Gitee 探索/发现

无论是哪个开源社区,都会有很多好玩实用项目等待着你去探索/发现

根据自身情况,去选择对应的分类/语言推荐和排行或许能更快让你知晓某个项目

如何关注开源项目的动态呢?那就是订阅/watch这个项目,如下图:

watch开源项目
watch开源项目

可自定义watch的情况,比如全部通知有新ISSUSE时有PR时等等情况。

你也可以去follow任何一位开源作者。这样,它的一些动态(比如创建新仓库提交了ISSUSE等等),这样你也可以收到通知

当然你也可以下载对应的手机App,以便你即使不在电脑面前也能去逛一逛Github/Gitee

Github手机App链接:https://github.com/mobile

至于Gitee手机App,我相信你可以探索找到

逛==>学习==>关注。我现在是喜欢习惯性逛Github/Gitee了😄,当然还有稀土掘金微信公众号

5.1 不要 “吝啬” 你的 “star”

前面讲到Github/Gitee探索/发现页面,那它的这个是根据什么来推荐的呢? 我大概能想到的就是 star访问量 这些了。

所以请不要吝啬你的star,你的star是对开发者鼓励,也是对开源社区一点点贡献。或许你的一个star能让这个项目进入推荐列表,进入推荐列表就能让更多码友看到。

所以记得随手的一个star,不要对开源项目那么吝啬,当然也不要随便乱来。毕竟那些连README都有没有的项目,可能只是个测试。大多实际的开源项目肯定会有示例或者文档之类的。

你的一颗小小的star,或许可以点燃千万码友心中的那颗澎湃的心。

5.2 记住 “awesome” 这个词

有时我们想快速找到某些语言/框架优秀的开源项目,或者想看看有哪些成功的案例。那么请记住awesome这个单词。是令人惊叹的很棒的的意思。

比如我们想看看哪些awesomeVue项目;那么我们可以在Github这样搜索:

awesome vue search
awesome vue search
awesome-vue
awesome-vue

我们将得到一个超级多star的仓库awesome-vue,而且还是最近更新的仓库。内容有很多分类 如图:

awesome-vue
awesome-vue

圈红的应该能明白什么意思吧。不明白也没关系动动手翻译一下就好了。

链接:https://github.com/vuejs/awesome-vue

如果Github访问不了,访问慢,那么请搜索如何科学上网,或者私聊我。

当然你也可以直接搜索awesome,你将看到如下图:

awesome
awesome

不仅可以查看awesome这个话题(topic),还可以根据语言进行筛选。

Awesome、awesome、AWESOME

请记住这个awesome,记住它,通过它你会发现更多丰富的内容。

5.3 学会 “分析” 开源项目

上手/接手一个项目一样,肯定需要先分析了解一下技术架构呀,能体验就先体验,其次是研究用了哪些技术

比如Vue项目,我们可以先去看看package.json,看一下dependenciesdevDependencies中有哪些你没见过依赖。就拿我的开源项目 vue-plugin-hiprint来举例吧。链接:https://github.com/CcSimple/vue-plugin-hiprint

vue-plugin-hiprint 目录结构
vue-plugin-hiprint 目录结构
package.json
package.json

如上图圈红dependenciesdevDependencies分别是运行时依赖,和开发时依赖。scripts 则是有哪些脚本,通过 npm run 脚本名称 运行的脚本。 圈绿的是你熟悉的jQuery,那么可想而知,这个项目是可以使用 jQuery相关功能的。

假设圈蓝的,你没有见过,那么就需要科普探索了。既然是前端项目,我们知道NPM网站,那就去瞅瞅。如图:

canvg依赖介绍
canvg依赖介绍

就是这么简单,我相信你分析了几个开源项目过后,你会有很大的收获。当然更深入分析肯定需要认认真真的去读项目的代码呀。

当然ReactSvelte或者其他项目也是如此分析也是一种成长。如果你是其他语言如FlutterSprint Boot项目也类似,只不过是把package.json换成该语言项目构建管理工具(Maven、Gradle等等又该科普了)的入口就好了。

试着多去逛一逛,去分析分析你已了解的开源项目吧~

6.如何 不断提升🚀自己?

我觉得写代码这件事,重在积累吧。水滴石穿大家都知道吧,日积月累的学习,就是在不断提升自己。不仅仅是你写代码的时间,也包括你平时阅读文章/代码。当然还可以去参与一些开源项目

现在技术划分越来越多/细,新的思想/架构也在不断演进。相信你听到过吐槽学不动了之类的话吧。 没错呀,新的技术不断输出,有就得去学习探索,就如我开篇就说的 IT人就是要 “不停折腾”

想想我前面提到一下内容

  1. “多看“ 官方文档
  2. 逛逛“社区/生态”
  3. “分析” 与 “关注”

我想,如果新的技术来了,你可以通过这几点,入门新技术。或许能分析出它现在对你来说,是否值得学习

如果说哪天当你看到某个软件/网站有什么功能/效果的时候,你是想着去分析它是怎么实现的,或者去实现那么一个功能/效果。我想你的那个经验值已经在不断往上↑涨了。

要想不断提升自己,那就必须需要花时间精力去探索研究

通过这些小节,我相信你可以找到一个不断提升自己的道路

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是你知道/处理过的,那么你就可以去“贡献”自己呀,帮助码友解决问题,或者提供一些思路

赠人玫瑰手留余香,码仔的世界就是需要码仔们相互贡献。

总结

  1. IT人就是要不断折腾!学习新的工具、语言、框架等等;
  2. 提问是门艺术,更要学会自行探索答案
  3. 定位问题分析问题调整思路是必经之路;
  4. 仔细看文档、尝试看英文文档、看社区/生态
  5. 要实践要实践要实践
  6. 参与社区,把贡献自己
  7. 着手记录/总结平时遇到的问题,尽可能的分享码友们

希望这篇万字长文对你的成长之路有所帮助!也欢迎各位码友转发分享留言反馈。转载请注明一下出处😊

觉得不错点个赞再走吧!

分类:

前端

标签:

前端

作者介绍

不简说
V1