分享 一个生物实验汪的编程学习经历和开源项目总结

查看 16|回复 0
作者:kuingsmile   
首先介绍下背景,op 主业是搞癌症诊疗的,实验方向,之前只在本科的时候学过一点最基础的 C 语言。我的一些个人地址如下:
博客: https://www.horosama.com
Github: https://github.com/Kuingsmile
知乎: https://www.zhihu.com/people/kuingcry
编程学习经历
去年的时候,公司项目需要接触了一些数据分析和机器学习的东西,感觉编程还挺有意思,就从 python 开始学习起了 coding 。这一年半多点的时间,学习过的语言有 Python 、R 、shell 脚本、js/ts 、Go 、Dart ,正在学习 C++。
截止目前的 github 活跃度如下~~

一开始的时候,我是看菜鸟教程这类的网站,但这些教程里每节都是独立的例子,而且日常的工作中也没有应用场景,学习效率很低。业余时间看了一个月,Python 水平还是处在知识点都见过,想写个小脚本就无从下手的程度。当时还去刷了刷 leetcode 之类的,但感觉也没啥进展。
后来感觉学习方式有问题,我又不靠编程吃饭,学这些科班应试的东西干啥,于是决定从实际需求和项目上手,正好这时公司有个项目中需要做机器学习和建模,有大量的数据可用,于是就基于这些数据,直接上手自己去做数据清洗,特征工程,建模和验证的整个过程。虽然当时基础的 Python 语法都记不住,但边写边查,Pandas 、numpy 、scikit-learn 、matplotlib 等库直接用起来,不到半个月的时间,Python 的各种语法就已经搞的比较明白了。而且这个过程中还简单学了下各种机器学习、深度学习的底层原理。
到了去年 9 月,第一次接触了云的概念,在腾讯云上买了自己的第一个轻量服务器和域名,然后学着搭建了自己的个人博客萌萌哒赫萝的小站 - 爱生活 爱分享,后续学习使用 nginx ,mysql 和 docker 等都是在这台服务器上,可以说是花的最值的一笔钱。
后面学习其它语言的时候,也都是采用直接上手写项目的方式,边学边写,所以这部分经历就合并到下面的开源项目总结里了。
开源项目总结
目前,我在 github 上的自己写的几个比较主要的开源项目如下:
[td]项目名[/td]
[td]github 地址[/td]
[td]开始时间[/td]
[td]star 数[/td]
[td]简介[/td]
PicList
https://github.com/Kuingsmile/PicList
2023 年 2 月
996
pc 图床工具
PicHoro
https://github.com/Kuingsmile/PicHoro
2022 年 10 月
483
手机图床工具
word-GPT-Plus
https://github.com/Kuingsmile/word-gpt-plus
2023 年 4 月
357
word 中的 GPT 插件
在开源项目的参与上,目前我给多个项目都提过 PR 并被接受,比如 Alist 、pot 等,Alist 的 epub 预览功能最早也是我给出的解决方案~贡献者列表里有我的项目如下:
  • GitHub - alist-org/alist: 🗂️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / 一个支持多存储的文件列表/WebDAV 程序,使用 Gin 和 Solidjs 。
  • GitHub - alist-org/docs: 📄 Documentation for alist v3: http://github.com/alist-org/alist
  • GitHub - pot-app/pot-desktop: 🌈一个跨平台的划词翻译和 OCR 软件 | A cross-platform software for text translation and recognize.
  • GitHub - renmu123/obsidian-image-auto-upload-plugin: auto upload image with picgo
  • GitHub - wayjam/picgo-plugin-s3: PicGo S3 插件
  • GitHub - PicGo/Awesome-PicGo: A collection of awesome projects using PicGo.
  • GitHub - Homebrew/homebrew-cask: 🍻 A CLI workflow for the administration of macOS applications distributed as binaries

    PicHoro
    PicHoro 是我的第一个开源项目,起初是去年十一的时候,想满足自己从手机端快速拍照上传到自建兰空图床上的需求,于是零背景开始现学了 Flutter 和 Dart ,光是 set up 一个开发环境就花了一上午,最终在十一假期里写出了 1.0.0 版本并发布,现在回头看第一板,十分的简陋,但学到了非常多的东西,算是开发的起点。后续这个项目慢慢的扩充功能,现在已经支持了十几种不同类型图床的上传,而且还能直接管理这些图床。下图是第一板和当前版本的界面对比,可以看到差距巨大~

    PicList
    PicList 项目是我投入时间最多和学到的东西最多的项目,这个项目起初来自于我在用 PicGo 的时候,发现有时候会有删除远程图片和直接管理对象存储的需要,但 PicGo 除了少数几个插件外并不支持,而且作者也不打算添加类似的功能,于是就动了自己魔改的念头。于是春节放假的时候,我从零开始学了 js/ts ,node ,html+css 和 electron 平台相关的知识,同时完整的分析了一遍 PicGo+PicGo-core 的源代码,最终在 2 月中旬的时候发布了第一个版本。
    从这个项目开始,我才算是了解了前后端、REST API 等概念,也知道了自己当时写 PicHoro 的时候有多幼稚。比如我在 PicHoro 的早期版本里,设计了用户登录系统,但在客户端里是通过直接发送 sql 命令的方式来操作数据库的。。完全没意识到要后端设计一个 API 系统,导致后面很难做版本兼容和改动。另外,还学习了解了 git 的一些基本用法,比如 pr 、action 、分支切换和 merge 等。
    到写这篇文章为止,PicList 已经有了 996 个 star ,还差 28 个 star 就满 1k 了,而且目前 Typora 1.6 以上的版本也内置了对 PicList 的支持,Obsidian 的上传插件也支持了 PicList 的删除功能,可以说是已经超出我写这个项目之前的预期了~
    以 PicList 为核心,我还学习写了第一个 vscode 的插件 vs-PicList ,第一个 npm 包 piclist-core ,整个过程中自己的代码水平算是有了一个比较大的进步。
    word GPT Plus
    word GPT Plus 这个项目,是趁着 GPT 的热度开发的,当时 Microsoft 365 copilot 还没有上线,但手头有需要投稿的文章要修改,于是就写了一各插件来调用 GPT 的接口在 word 内修改文章,由于 word 插件是基于 web 技术的,所以这个项目就直接用 Vue 进行了开发,大概几天就写好了,没啥难度。
    其它项目
    除了上面几个主要项目之外,还用 php 写了一个简单的随机图片接口网站,用 docify 做了 PicHoro 的文档网站,用 Vitepress 做了 PicList 的官网,更重要的是为老婆做了我们结婚的请柬网站,老婆非常满意,哈哈哈~
    总结
    编程对我来说其实就像是一个大的开放世界游戏,总会遇到新的好玩的东西,也会遇到奇奇怪怪的问题,整个过程非常有乐趣。后面应该也会随着自己遇到的实际问题和需求去学习,最近可能打算多学习些 Bioinformatics 的东西来辅助自己的工作,然后学些计算机底层的知识。学,学无止境,哈哈哈~
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部