
不简说
2023/04/10阅读:56主题:自定义主题1
万字长文!献给码友们!
❝很高兴你能点进来看看这篇文章,也希望我的这篇文章对你有所触动。助你开启一段奇妙的 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
)
官网中文链接: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
,插件自由
了喔~ 还能登录账号跨设备同步书签,访问记录
等等。
-
命令行
一切的一切都是为了提高效率
,为了更趁手
。虽然各个平台都有自己默认的命令行
工具,但是作为一个码仔,要与时俱进
,有新鲜事物/好用的东西
,得去把玩把玩。笔者之前把玩过Zsh
及Oh My Zsh
,插件是丰富,功能强大。但是呢,就是感觉有点臃肿,需要去配置,有点麻烦。所以这里推荐fish
。
Fish
是“the friendly interactive shell”的简称,fish
最大的特点就是功能强大
,智能并且用户友好。Fish支持语法高亮,自动建议,标签完成等,而且配置十分简单。
而且还有web配置中心
。

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

当然,更多宝藏待你去发掘。没有最好
,只有你自己用着趁手,那就是好
。
-
轻量级的编辑器
Win
用户:Notepad++

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

链接:http://coteditor.com 笔者目前在用的一款编辑器。
但是对于经常在Win、Mac、Linux系统切换
的开发者来说,可能更喜欢VS Code(Visual Studio Code)
吧~。(虽然它不算轻量) 笔者也经常用😄。所以说,没有最好
也没有最轻量
的编辑器,「适合你自己,用起来舒服,那就是好的编辑器」
跨平台:Visual Studio Code

链接:https://code.visualstudio.com
-
软件包管理工具
Mac
用户:Homebrew
相信大多Mac
用户都对Homebrew
比较熟悉了吧。通过它可以快速安装你需要的各种软件
。
由于网络问题
,有时候需要各位亲自折腾
一下了。因为国内是有镜像源的
,配置好了就很方便了。虽然我有
方便安装的shell脚本
,但是我希望各位
去折腾一下子
。(我相信你可以探索到
get 它的正确方式
)

链接:https://brew.sh/index_zh-cn
Win
用户:Scoop
对于一个码仔
来说,能用一行代码搞定的事情
,就不会去想搜索软件,找到官网,打开官网,点击下载链接这么繁琐的事情了。有了Scoop
。
scoop install nodejs
即可开始安装nodejs
。

探索的道路很长,途中你可能看到鲜花💐,也可能踩个坑~
「当然这肯定不是所有必备软件」,日常中我们可能还会使用项目管理
、DevOps
、远程控制
等等。这就需要我们根据实际情况
,自行去探索
了。
如果你有
什么宝藏软件
还请
不要吝啬分享一波
😁
1.3 探索更多 “好用工具”
-
uTools 工具箱
除了必备软件,笔者平时打交道最多的就是这个超级工具箱
了。里面涵盖了很多很多实用的工具
,有了它就不用那么麻烦在想用某个小工具(如颜色助手
、加密
、二维码
、剪切板
等等)的时候,去搜索去找收藏夹了。
它可以自由组合插件
应用,打造专属你个人的趁手工具集
;同时可以自定义全局快捷键
,自己开发一些小脚本
。更多功能,需要各位自行去探索
啦~

-
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人网站分享
分享一些
还可以的网站
吧,虽然可能你已经知道了。
基础学习
网站:
-
「菜鸟教程」 https://www.runoob.com/ -
「编程宝库」 http://www.codebaoku.com/ -
「Quick Reference」 http://bbs.laoleng.vip/reference/index.html
一些基础知识,可以在这里科普科普
视频大杂烩
网站:
-
「慕课网」 https://www.imooc.com/ -
「腾讯课堂」 https://ke.qq.com/ -
「哔哩哔哩」 https://www.bilibili.com/
视频网站太多了,至于哪个平台的质量好,就需要各位自行探索了。技术分类/语言太多了。
开源社区
网站:
-
「Github」 https://github.com/ -
「Gitee」 https://gitee.com/explore
至于其他社区,大家各种摸索吧;像每种语言可能都有自己的一个社区网站
依赖仓库
网站:
-
「NPM」 https://www.npmjs.com/ -
Nodejs
、前端Vue、React等等
依赖包
-
-
「crates.io」 https://crates.io/ -
Rust
依赖包
-
-
「Pub.dev」 https://pub.flutter-io.cn/ -
Flutter
、Dart
依赖包
-
-
「PyPI」 https://pypi.org/ -
Python
依赖包
-
由此可见,每个语言,都是有自己的社区的。
再推荐一个前端/NodeJs
受欢迎依赖库
的排行
网站吧,我们在选择的时候,也好有一个参考;如图:

在这个网站,你可以看到一些受欢迎库
的,下载量
以及它的star
量。
「学习的资源有很多,关键是你愿意花多少时间去学习」
如果你还有
什么宝藏学习网站
还请
不要吝啬分享一波
😁
4.如何 上手🌈新项目/语言?
当你入职的时候
,如果运气好,有大佬带你
,有详细的文档
。那么恭喜你,且行切珍惜
吧。记得我说的,如何正确有效的去提问
。 至少显得你没那么...白。
假设
你接手
的是Vue前端项目
,如果可以,运行起来先看看(我想都是先干的事儿吧)。 如果可以正常运行
,可以试着,测试
一下,顺带看看和分析用了哪些技术
。那么接下来,大致步骤
可以是:
-
查看 package.json
文件;以分析
用到了哪些技术
(dependencies
和devDependencies
);有哪些scripts
脚本;如果有你不知道的,那么请在NPM
网站去搜索
,了解一下
。 -
分析查看 目录结构
,并找到入口文件
(涉及到前端工程化
的一些知识了,比如Webpack
或者Vite
等相关配置,一般可以去官网
能够找到答案
);毕竟很多配置
,可能都是在入库文件中处理
的。 -
有了前面的 分析
,就可以开始
着手看看实际的代码
了,比如组件、网络请求、业务逻辑等等。
关于前端工程化
,可以去看看这本【从0到1落地前端工程化】
小册:https://juejin.cn/book/7034689774719860739?suid=1662117311414462 (这不是我写的
)当然,你也可以
自行去网上
去探索
学习。
4.1 一定要 “敲写” 起来
如果你现在想要学习
一门新语言
。那么在你查看基础学习
网站(菜鸟教程
、编程宝库
等等)的时候,请动手
,疯狂
的敲
起来吧!俗话说:好记性不如烂笔头
,写代码也差不多吧,没有什么比实践更重要
了。
VScode
这个编辑器
,它支持很多语言
呀。插件一装,上手写起来。写的过程中
,可以写写自己的理解和注释
,就又是
一遍记忆
了。没准哪天,你也开启了你自己的总结输出
道路。
就比如说,新语言
可能需要搭建环境
吧;那么你把搭建的过程
,记录
一下,踩过的坑
也记录一些。哪天你换电脑了,重新搭建环境
的时候是不是就可以不踩这个坑
呢?
「记肯定是记不过来的,反正我是记住那么多内容的😂。」
4.2 一定要 “多看“ 官方文档
如果说哪里的文档好
,权威
,那我估计就是官方文档
了。就好比,你自己写的代码,是不是你自己最清楚呢?
比如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
的推荐/发现
页面:


无论是哪个开源社区
,都会有很多好玩
,实用
的项目
等待着你去探索/发现
。
根据
你自身情况
,去选择
对应的分类/语言
,推荐和排行
或许能更快
让你知晓
某个项目
。
如何关注开源项目
的动态呢?那就是订阅/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
这个单词。是令人惊叹的
、很棒的
的意思。
比如我们想看看哪些awesome
的Vue
项目;那么我们可以在Github
这样搜索:


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

圈红
的应该能明白
什么意思吧。不明白也没关系
,动动手
,翻译
一下就好了。
链接:https://github.com/vuejs/awesome-vue
如果Github
访问不了,访问慢
,那么请搜索
如何科学上网
,或者私聊我。
当然你也可以直接搜索awesome
,你将看到如下图:

不仅可以查看awesome
这个话题(topic)
,还可以根据语言
进行筛选。
「Awesome、awesome、AWESOME」
「请记住这个awesome
,记住它,通过它你会发现更多丰富的内容。」
5.3 学会 “分析” 开源项目
和上手/接手
一个项目
一样,肯定需要先分析
了解一下技术架构
呀,能体验就先体验
,其次是研究
它用了哪些技术
。
比如Vue
项目,我们可以先去看看package.json
,看一下dependencies
和devDependencies
中有哪些你没见过
的依赖
。就拿我的开源项目
vue-plugin-hiprint来举例吧。链接:https://github.com/CcSimple/vue-plugin-hiprint


如上图圈红
的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人就是要不断折腾
!学习新的工具、语言、框架等等; -
提问
是门艺术,更要学会自行探索答案
; -
定位问题
、分析问题
、调整思路
是必经之路; -
仔细看文档
、尝试看英文文档
、看社区/生态
; -
要实践
、要实践
、要实践
; -
参与 社区
,把贡献自己
; -
着手 记录/总结
平时遇到的问题
,尽可能的分享
给码友们
;
❝❞
希望这篇万字长文
对你的成长之路
有所帮助
!也欢迎各位码友转发分享
和留言反馈
。转载请注明一下出处😊
觉得不错
就点个赞
再走吧!
作者介绍
