《Methodology Camp:Pieces》
讲在前面
Methodology Camp:
那些你解过的题、你解题的思路、你的灵光一闪,都是你的方法,而方法论,便是这些方法的堆砌。只有你的方法足够多,经验足够丰富,才有了形成方法论的必要条件,但也是不充分的。
用面向对象来解释,Methodology很像复杂而抽象化的类,于我而言更像是一种感觉,一种能让你遇到问题不会说好难的感觉。
我相信,随着我不断的更新,这篇博客会给越来越多的新人带来启发和思考,甚至帮助到你的学习和生活。Pieces:
千万不要把写代码看做看做一件极其枯燥的事情,做一个程序员应当是一件相当有趣的事情。你可以好好利用你学过的知识和思维方式,不要只认为我之前谈到的Methodology认为只适用于你的工作。
举个例子:我在出租房内没有电视机,我还有个屏幕已经碎掉的苹果6和一个大屏高延迟没法打游戏的显示器,我想把烂手机利用上,结合我的显示器老当个电视机。很轻松的找到了一个解决方案:
在我的日常使用过程中,我发现要追的很多韩剧美剧在常规app中没有资源,怎么办?
嘿嘿,github上可不是只有工作相关的东西,程序员大众相较于解决工作中的问题,更善于动脑子解决生活中的问题,于是我找到了这个项目,资源更新的相当快:
那么问题又来了,当我手机进行网页浏览视频十分不方便,就把人搞的很不舒服一卡一卡的,怎么办呢?那么我去哪里找资源?然后下载下来呢?
这里得推荐一个用了很久的网站,剧集比较丰富,更新也比较准时——美剧小站,有百度网盘的分享。那么我怎么分文不花(虽然不是很喜欢百度这个公司,但是大家还是尽可能的花钱买会员,如果你经常性的使用的话,相比国外网盘价位,百度的优惠价还是比较良心的),就嫖到不限速呢?那就不得不提油猴脚本了,你也可以用谷歌去搜索,方法多的很。
于是我顺利免费不限速下载了我想看的剧集,但是手机必然不是一个用来存储的好地方,那么我会怎么做呢?
我在pc端使用Emby或者Kodi,将pc当做一个服务器,建一个文件夹存储视频文件,然后在手机端使用VLC播放器(如果有同学还在用国产播放器的话,我希望你尽早放弃)。那么我的电脑文件夹将会通过某种网络协议通过局域网分享给VLC播放器,播放器的网络共享选项里就会有你电脑分享的视频,而且只要你打开电脑,端口是默认打开的。但你出门在外想读取家里pc的视频呢?自己搭建一个vpn,然后随时随地读取家中pc的文件,是不是很方便。
至此,你便搭建了一个家庭影院,甚至可以实现和远方父母、朋友的共享。你搭建这个影院的成本,基本上全在废物利用,但你这种Methodology却能和小米、华为的家庭影院解决方案媲美,甚至拥有更大的自由度。
用这种思维方式,不仅能解决你工作中的问题,甚至能给别人一种错觉——wocao!大神!其实用的全是别人的开源项目,没有一行代码是自己的。
所以这篇文章我会收集生活、工作中出现的一些阻碍我生产力和人生体验的问题,并尝试解决。
问题一:工作时别人给我手机发消息,要不停看手机,我想在pc上操作我的手机,怎么办?
- 我的方案:scrcpy(仅支持Android)
- 实现流程:
- I. 进入上方项目地址,找到这个位置:

可以看到,pc端支持三种主流操作系统,windows用户直接下载.exe文件无脑安装即可。 - II. 在PC端安装好以后,打开你Android手机的开发者模式(如何开启自行谷歌),然后用数据线连接,上方项目中也有针对如何进行无线(wifi)连接,不过个人还没有尝试。
- III. 打开开发者模式之后,按照教程的引导就可以在pc上看到你的Android屏幕。
- I. 进入上方项目地址,找到这个位置:
- 另外:如果你是ios系统的话,在写博客时我找到了这个软件——虫洞。好像是支持 pc和ios、pc和Android、ios和ios、Android和Android、Android和ios之间交互的,有机会我试一下踩踩坑。
问题二:作为一个编程领域的新手,如何快速学习编程?如何解决debug或者解决知识性的问题?
我的理解:编程本身并不难,做图像算法的与其他java、C++的程序猿不同,大部分都会用python来建模,因为显然python是最简单也是最方便的语言。而对于深度学习来说,pytorch或者tensorflow的库已经相当友好,实现train和test的流程十分固定,会用python实现只能说你能用工具做实验做测试,而并不代表学会了python。
私以为,面向对象的编程一通百通,最关键的点,一是了解这门语言的基础,即数据类型、语法等等;二是了解其特性。
举例说明:类比python和golang

作为面向对象的强类型语言,可以看出python和go都具备其基础数据类型,和解决问题的路径,也就是循环和判断,这是所有语言共通的。但是在其特性方面,我们发现python的进阶如下图:
可以看到python似乎面向了各种各样的实际任务,有着最大的开发人群,其特性不在于语言能做多牛逼的事情,而在于由于使用它的人多,你便不用自己造轮子,只需要import一个库调用一下函数就行。
而go却内置了特别的元素,比如channel和interface,用来解决高并发的问题,也就是如何在短时间内处理多达上万甚至上百万的并发任务,比如高峰期美团外卖后台处理订单的问题。python也有多线程的解决方法,但是相较于go这种内置并发方式的语言而言,Python要慢50倍。
再者,go彻底简化了指针,既没有损失速度也具有便捷性,而python直接删掉指针也是它为什么那么慢的原因。我的方法:
- I:学习语言的方法:
假如之前从未接触过编程,我觉得应当从python入手,在了解基本数据类型及控制语句之后,找一个自己感兴趣的项目的教学视频,比如b站搜索python的Django网站开发或者爬虫,你当然会遇到很多不懂的问题,但是不要急于去查找这个问题的答案,因为在你不了解python的情况下,这样的搜索会让你觉得困难,也就会降低你的兴趣度。所以,你的目的是把这个视频当做兴趣视频来看,了解项目实现的思路和想法,同时,耐心的去码代码,跟着视频的作者一步步来。在你完成这个项目,能让它顺利运行完成之后。回过头来,去复习之前基础视频的知识点,同时看些进阶的视频,同时参考Python工具书(python100天)。
之前说过,Python的厉害之处在于它的库十分丰富和友好,这时候你肯定很想做深度学习的训练,随便拉取一个深度学习的项目,从论文开始倒着了解,比如我想学习yolov5,那么先把项目按照readme跑通,然后再通过回溯,了解yolov5之前的yolov3的之前的faster-rcnn之前的fast-rcnn,这是你会接受到许多的新的概念,把这些概念做些笔记,哪不明白就用回溯的方式去学,是我认为的比“先打基础再进阶”更好的学习方式。
加入你已经对一门语言比较了解,比如你了解python,那么其实你学起另一门应该是很快的,我这里的方法依然是回溯,先玩会项目,再深挖细节。 - II:解决问题的方法:
无论你是遇到环境问题还是编程问题,我的建议是,不要搜百度,很多人的解决思路是百度--->谷歌--->github/stackoverflow/forum,我的思路是看bug报错琢磨这是个什么样的error--->github/stackoverflow的官方库中点赞多的解决办法--->google(先搜英文再搜中文)--->实在没办法才百度,而环境问题,一定要优先查找官方的文档!
- I:学习语言的方法:
问题三:英文PTSD(创伤后遗症)患者的解决方案
我的建议:很多同学不喜欢看英文,所以遇到一些问题,不敢用英文解决,可能是因为英语基础差,所以一提英语就头疼,那么,我们举个例子先看看全中国最大的搜索引擎和全球最大的搜索引擎有多么大的差距:
如果我想知道怎样创建一个自己的网站,- 百度:

好家伙,这都是什么玩意??? - 谷歌:

搜索出来的结果甚至都把步骤写的一清二楚,所以我想你应该知道用什么搜索引擎了。
- 百度:
我的方法:有些同学基础不错浏览这些网页没什么问题,但是有些可能就比较恼火,所以这里给你推荐chrome的插件:
沙拉查词,包含有道、谷歌、牛津词典等很多个词典库,翻译句子和单词随意切换,还是比较方便。
另外,当前谷歌翻译的句子翻译水平已经几乎达到学术级别,相当准确,感谢谷歌NLP的算法工程师们。所以现在真的别畏惧翻译英文了,有谷歌翻译我感觉都英文被高考降分甚至剔除都是早晚的事。
问题四:如何用hugo的docsy主题?
- 关于hugo:之前我在国外网站上找到一个基站来构建网站,但是发现那个网站的风格很难看,作为一个没有接触过前端的人,觉得hugo这样的扁平化设计看起来更简介,所以想创建一个博客用来发布文章。
hugo是一个用go语言写的框架,支持通过这种框架构建自己的博客网站,网上相关的教程有很多,通过几个简单步骤构建了一个基本的博客框架。但是在成功构建之后,发现这个docsy的主题比较特殊,他不仅需要安装extension的版本,这个主题本身的构建页面的方法和其他的还不一样,所以现在我特别了解下这个主题怎么使用。
问题五:oneplus buds Z 音质差的离谱!
最近尝试了下这个耳机,作为一个1+粉,也在使用oneplus buds的自身音乐爱好者,这个bud Z的质量真的很垃圾,低音音效背景有滋滋声,兼职还不如十年前的带线30块耳机,要价299过分了。
但是buds的性价比还是相当可以的。
问题六:还在冲qq音乐的会员?免费的不香吗?
- spotify-downloader:github直接搜索关键词,这个库就是用来下载音乐的。