新手该如何使用 GitHub?

临江月

共 3358字,需浏览 7分钟

 · 2022-02-09

咦,这题我会,毕竟名字带 GitHub。



不多 BB,直接上干货!当初学了三个月就找到后台开发的工作,我练手的项目都来自这里!!


GitHub 标星 1.6w+,这个神级宝藏项目,作为编程新手有福了!!


以下是正文:


虽然我很早就知道 GitHub,但是学会逛 GitHub 的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞 ACM,没有做一些工程类的项目,所以想当然的以为和 GitHub 也没什么关系(当然这种想法是错误的)。

后来自己花了一个星期看完了 Python 的基础知识,就想着找点项目看一看,学一学,练一练,这个时候我才真正的去了解 GitHub,开始了在 GitHub 的瞎逛之旅,在开始之初,随之而来的问题是我不知道哪些项目当时还是新手的我,哪些项目是好项目,哪些项目好玩有价值。

虽然现在我已经在 GitHub 上逛的相当流畅,但我还是想如果有一个东西可以收集这些对新手友好的东西,那么我当时可以少走更多的弯路,节省更多的时间吧。

那么有这么一个东西么?

有的,而且已经做了三年多,这就是HelloGitHub,一个分享 GitHub 上有趣,入门级的开源项目。


GitHub 网址:github.com/521xueweihan

在项目中,内容每月 28 号以月刊的形式更新发布,主要是面向编程新手、热爱编程、对开源社区感兴趣人群的项目。更新的内容主要包括:各种语言的流行项目、入门级项目、让生活变得更美好的工具、书籍、学习心得笔记、企业级项目等。


这些项目都有一些共同的特征,那就是很酷,非常容易上手的项目,编程的魅力和便捷体验起来就是这么简单。


再次给出 GitHub 地址: github.com/521xueweihan
下面我们就来看看,这个项目具体包括啥,我们以最新的月刊(43 期)为例。


0x00 简介


0x01 目录


0x02 内容

每个类型的项目我们挑一个来看。

C 项目

tmux:一个终端复用工具,可极大的提高工作效率。

  • 提供了强劲的、易于使用的命令行界面;
  • 可横向和纵向分割窗口;
  • 窗格可以自由移动和调整大小,或直接利用四个预设布局之一;
  • 可在多个缓冲区进行复制和粘贴;
  • 可通过交互式菜单来选择窗口、会话及客户端;
  • 等等。



C# 项目

BenchmarkDotNet:功能强大的用于基准测试 .NET 库。


C++ 项目

dbg-macro:打日志是 C++ 开发中必不可少的一种 debug 方式,dbg-macro 受 rust-lang 中 的 dbg 启发,提供比 printf 和 std::cout 更好的宏函数。主要有如下特点:

  • 美观的彩色输出(当输出不是交互式终端时,颜色将自动禁用);
  • 兼容 C++11,并且是 header-only;
  • 支持基础类型和 STL 容器类型的输出;
  • 除了基本信息外,还输出变量名和类型;
  • 启用 DBG_MACRO_DISABLE 生成 release 版。


#include #include // You can use "dbg(..)" in expressions: int factorial(int n) { if (dbg(n <= 1)) { return dbg(1); } else { return dbg(n * factorial(n - 1)); } } int main() { std::string message = "hello"; dbg(message); // [example.cpp:15 (main)] message = "hello" (std::string) const int a = 2; const int b = dbg(3 * a) + 1; // [example.cpp:18 (main)] 3 * a = 6 (int) std::vector numbers{b, 13, 42}; dbg(numbers); // [example.cpp:21 (main)] numbers = {7, 13, 42} (size: 3) (std::vector) dbg("this line is executed"); // [example.cpp:23 (main)] this line is executed factorial(4); return 0; }


Go 项目

go-admin:基于 Golang 语言的数据可视化与管理平台。特性如下:

  • 高生产效率:10 分钟内做一个好看的管理后台;
  • 主题:默认为 adminlte,更多好看的主题正在制作中,欢迎给我们留言;
  • 插件化:提供插件使用,真正实现一个插件解决不了问题,那就两个;
  • ✅认证:开箱即用的 rbac 认证系统;
  • ⚙️框架支持:支持大部分框架接入,让你更容易去上手和扩展。



Java 项目

eladmin:基于 Spring Boot 2.1.0、Vue 的前后端分离的后台管理系统,支持数据字典与数据权限管理、一键生成前后端代码、前端菜单动态路由等。基于 Spring Boot2.1.0 框架,涉及的技术栈:非关系数据库 redis、接口测试工具 swagger、druid 数据源驱动、邮件依赖(javax.mail)、三方支付和云存储 SDK、页面模板引擎 freemarker。技术栈丰富,初学者可以作为实战项目学习和使用。


JavaScript
chart-race-react:一个简单易用的 Bar Chart Race(长条图赛跑动画) React 组件。示例代码:

import ReactDOM from 'react-dom'; import BarChart from 'chart-race-react'; ReactDOM.render(, document.getElementById('root'));


Python 项目

TagUI-Python:一个 Python 自动化操作的库。比如:自动打开网页并截图,示例代码:

t.init() t.url('google.com') t.type('q', 'decentralization[enter]') t.snap('page', 'results.png') t.close()

Ruby 项目

shift:一个 Ruby 语言写的在线 MySQL 数据库迁移工具。



Swift 项目

Percent:让 Swift 语言支持百分比类型,消除精度缺失的烦恼。示例代码:

import Percent 10% + 5.5% //=> 15.5% -10% / 2 //=> -5%

其他

cascadia-code:微软开源的一套等宽字体,有趣的是可以组合字符创建新的字形。组合效果如下:


开源书籍

python_ebook:Python 编程相关的电子书资源集合项目。

book:(英文)《Cosmic Python》讲述如何管理复杂性的 Pythonic 应用程序结构的书籍。

教程

BigData-Notes:大数据入门教程,该教程介绍了大数据常用技术栈的基础和核心知识。内容涵盖:Hadoop、Spark、Storm、HBase、Hive、ZooKeeper、Kafka 等。

机器学习

dimensionality_reduction_alo_codes:该项目使用 Python 实现了 11 种经典的数据抽取(数据降维)算法。同时附有相关资料、展示效果,适用于机器学习初学者和刚刚入坑数据挖掘的小伙伴。


0x03 写在之后

以上,就是今天分享的内容,希望更多的人能够知道 HelloGitHub 这个项目,内容已经在这了,万事俱备,差的就是你学习的驱动力和对作者 Star 的支持了。

作者:Rocky0429
链接:zhihu.com/question/2161

分享两个 GitHub 上的优秀开源干货:

一、LeetCode-Go

截至 2020 年 11 月,该开源项目配套的网站已经有一百二十万的访问量,在 GitHub 上收获了 8500 颗小星星。

这个开源项目是@halfrost(中文名一缕殇流化隐半边冰,简称霜神)去年刷算法题时整理出的 520 题,每道题都写了解题思路,全部都是 GO 实现的,并且每题都 runtime beats 100% 了。


至于为什么要求每题都 runtime beats 100%。 霜神是这样回复的:优化到 beats 100% 才算是把这题做出感觉了。有好几道 Hard 题,可以用暴力解法 AC 了,但只 beats 了 5%,这题就如同没做一样;而且面试中如果给了这样的答案,面试官也不会满意,“还有没有更优解?”。如果通过自己的思考能给出更优解,面试官会更满意一些。 如果你把这些题解都摸透,相信在面试环节你可以从容的回答“还有没有更优解”。

作者介绍:霜神是前阿里巴巴资深后端工程师,业余时间酷爱写博客,目前他的博客已经有 300W+ 的浏览量,是 iOS 开发届的大佬级别人物,霜神为人谦和,上周六我说能不能提供一份离线电子书,方便读者阅读,他立马熬夜研究,修改了好几个版本。

离线版笔记下载地址(已获授权)链接: pan.baidu.com/s/1prMLkr 密码: gjht

--来自百度网盘超级会员V3的分享

离线版笔记下载地址(已获授权): LeetCode - Go 电子书下载


二、leetcode_101

高畅现在是谷歌无人车部门(Waymo)的工程师,从事计算机视觉和机器学习方向。

他在美国卡内基梅隆大学攻读硕士学位时,为了准备实习秋招,他从夏天开始整理某 code 上的题目,几个月的时间,刷了几百道题目。

凭借着扎实的基础和长期的勤奋,他很快找到了如愿的工作。

入职前,闲暇的时候,他突然想到,自己刷了那么多题,而且对很多题目的解法有着总结,为何不把这些题目归纳总结一些,做成一个便于后来者阅读学习的电子书呢?

有了想法,作为行动派的他说干就干,于是这样一本制作精美且免费开源的书籍出现在大家面前。

引用他的话来说:

本书分为算法和数据结构两大部分,又细分了十五个章节,详细讲解了刷题时常用的技巧。我把题目精简到了101道,一是呼应了本书的标题,二是不想让读者阅读和练习时间过长。 这么做不太好的一点是,如果只练习这101道题,读者可能对算法和数据结构的掌握不够扎实。因此在每一章节的末尾,我都加上了一些推荐的练习题,并给出了一些解法提示,希望读者在理解每一章节后把练习题也完成。


整本书,我仔细看了一遍,并对书中的一些解题思路和代码进行校验。

来源:向谷歌工作的师兄偷师学艺 作者:公子龙

从我的直观感受来说,这是一本用心的数据结构算法类书籍,全书总共 143 页篇幅,详细讲解算法的内容有十五个章节。

每个章节都是一些重要的知识点,伴有基础讲解和例题介绍,当然,也有一些推荐的练习题。

话不多说,让我们来看一下书的目录:

第二章是讲解贪心算法的,我们摘取一些内容查看,发现对知识点的讲解介绍是细致入微的。



GitHub 地址:github.com/changgyhub/l

为了方便读者,我已经将开源电子书下载后上传到百度云盘:

链接: pan.baidu.com/s/1OeRbS-

密码: guhb

浏览 2
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报