This question popped up in my Twitter feed earlier, courtesy of @PipingHotData
I did answer in a tweet, but I want to expand on that, so here goes..
Why would you follow someone on GitHub?
I suppose the obvious one, at least for me, is that you like someone’s work - if I see someone has built 2 or 3 packages that I think are useful or interesting, or they have perhaps done some really striking visualisations, I’ll follow them, because chances are, they are going to do more cool work in the future.
Thinking back to when I first started on GitHub, I think the first person I followed, was a ‘return of favour’ to the first person who followed me:) They sent me a nice email after my first blog post got published on R-Bloggers, and it was a nice gesture. (I am quite quiet in real life, so actually putting metaphorical pen to paper and putting anything into the public, is really not my style. I have blogged about that in the past)
Why else would you follow someone? For me, it’s mutual follows of NHS analysts / Twitter friends and various other people (not always R related) that I have interacted with since I started this blog in 2016. There is my NHS-R Community peeps and some folk in the Scottish NHS who occasionally show some interest in what I do. It’s handy to see what they’re up to, so you don’t end up reinventing the wheel, especially in the NHS, where a lot of us are facing similar challenges.
I have a couple of GitHub apps for my phone, one is an official version, and one called ‘FastHub’, which I really like. When you follow someone, their activity pops up in the news feed in the app. So if someone stars a repo, I’ll go and have a look, and see what it does, and if it’s interesting. In which case, I’ll star it too. I have 2 or 3 mutual followers who I seem to play ‘GitHub-star-tag’ with - they star one, I copy them, I star one, they do it too later on - that kind of thing. I don’t even know if they are aware of it, but it’s quite amusing.
But this is another important point - you discover lots of cool stuff, because someone else has found it for you.
What’s the big deal with that? Well, I think my most annoying trait, among many, is that whenever a problem crops up at work, my stock response is “there’s an R package that could help with that”.
Of course there is! But a lot of these I am only aware of because I’ve got into the habit, over the years, of watching what’s going on.
I don’t necessarily follow RStudio stuff, simply because there is no way I’m not going to find out about it. I still do follow some of the big guns, and some who are on their way to the top (and way in advance of me already)
To be honest, I don’t know why anyone follows me on there, (or on Twitter for that matter) but it’s nice that they do.
Why star a repo?
Well, why wouldn’t you? If you’ve found it helpful - star it. If it looks interesting - star it, it’ll be easier to find later on - I have 1000s of Twitter bookmarks I have no idea what to do about it. I have starred over 800 repos/ gists on GitHub - I know where to look (although it is still a bit of a pain to trawl through - sort it out, GitHub!)
I think I may have prompted a few folk to star a particular repo recently. I chanced upon Oli Hawkins tabbycat package:
So I had a look, and I’ll be honest, didn’t star it myself at that point. But I went back to Twitter, saw that Oli’s post was well received, went back to GitHub, and saw the repo had 6 stars, and around 50 Twitter ‘likes’.
That didn’t stack up to me - here’s a useful package, that will save you typing the same code over and over again. Over time, it could have a big impact. So I starred it, and let Twitter know:
I was pleased to see the number of stars rose quite a lot overnight. Coincidence? Probably? Did I influence anyone to go and star it? No idea - but it’s possible, and if I did, then I’m glad.
(NB the Twitter screenshots on this blog post are courtesy of Garrick Aden-Buie’s ‘tweetrmd’ package , which I discovered from following Garrick on GitHub -it’s not on CRAN)
I don’t get paid for writing R packages, so why do I bother to do it? Why don’t I just read a book in my spare time, watch telly, do some exercise, you know, normal things? Well, I build tools to solve problems that crop up at work. I figure if I need it, someone else might need it. And, as a public sector worker, one way I can contribute is by being efficient, and helping others.
Also, it seems I actually like building packages:
It’s quite nice to be creating / building, but it’s even better when other people find it useful.
How do I know if people find it useful - well they have to tell me. Likes / shares on social media provide some sort of dopamine hit, but it doesn’t last, and they can’t be exchanged for goods or services. Neither can GitHub stars, but they last longer, for one thing - I can look at my repo and see the number - it’s always there, unlike today’s Twitter feed.
At last year’s NHS-R Community conference, I did a lightning talk on 3 packages that I’d been working on. Someone mentioned that they’d used a particular package, and found it really helpful, and this was brand new info to me, because they had never interacted in any way. I had no idea they even knew about it, and yet they were using it in their job.
Starring something is so quick, easy and is free - yet for the person working away on a package, it could make the difference between soldiering through R-CMD-Checks and unit tests, or giving up altogether. There’s been plenty times when I’ve thought I’ve been wasting my time altogether ( and that’s just this blog!). Then someone I don’t know, on the other side of the world, pops up and stars a repo, and you get the motivation again.
Of course, it would be niave to think that all those who star a repo, actually use it. Maybe they are just bookmarking for later. That’s fine, just showing interest is good enough.
Making a difference
Today on Twitter I’ve an old piece of work retweeted. It’s probably the best thing I’ve done - in what was my 5th blog post at the time:
My original blog post for this plot is here
Now, when I first started blogging, I was convinced I was wasting my time. R was starting to break through a little bit in the NHS, but it certainly wasn’t common place. I didn’t even want to have a blog, or social media, because introvert, and I just thought I’d call it a day.
Two things happened that gave me a boost.
- my blog got accepted onto R-Bloggers.
- Julia Silge starred my heatmap code gist. Now that’s a big fricking deal. (I’m 99% certain Julia’s never given it a second thought / glance, but it happened, and you can still see it on the gist today). Maybe I wasn’t so crazy. Maybe, I am quite good at this. Maybe, I’m not wasting my time. That one simple act kept me going. Now that might not be a good thing as far as the rest of the world is concerned, and maybe they are right, but I wouldn’t be sitting here typing this now otherwise.
It takes guts to put your code out in the open. If you’ve put the effort in to create a package, and it does something useful, (other than posting dog or cat gifs) then yeah, you should get some feedback. I try and keep up with what my NHS-R buddies are getting up to, because I don’t think any of them should have a repo that doesn’t have at least one star. In this case, starring is a gesture of encouragement and support. Am I going to use every package I star? Not always, no. Some work is being done that has no relevance to my job, so I’m unlikely to need it, but it doesn’t mean that I can’t say ‘good on you - keep going!’
It’s up to you whether to follow people or not, I can’t imagine using GitHub and not doing it now - it would seem awfully sterile. But each to their own.
In terms of whether you should star repos I think it’s a lot more clear cut. Just do it. It doesn’t cost you anything. It might help you make a connection with someone. You might make the difference between someone persevering with something difficult, but worthy, or just giving up.
Building a package takes time, planning, perseverance, and results in something of utility. Sure, it’s easier to get attention and likes by mucking about on TikTok or whatever, but building packages, (especially for those of us who are not in the top tier of R developers, but who have a go anyway) is possibly more worthy?
Am I just saying all this so you will go and star my package repos?
Actually, no, I don’t care, really. It’s nice, but I don’t need loads of stars. I have got a couple of packages onto CRAN, I might push through with some others, who knows?
But I do think people need to spread the love around - ggplot2 doesn’t need more stars - but the person building tools to help ICU staff probably deserves some appreciation
There are loads of folk quietly doing good work all over the #rstats world, and starring a repo is the simplest, tiniest way you can show support.
And it’s easy.
So if you don’t do it, maybe give it some thought?