DEV Community

Vicki Langer
Vicki Langer

Posted on • Updated on

Making Newbie Friendly Open Source

Jump To

Hacktoberfest 2019

As Hacktoberfest 2019 approached, I wasn't convinced I had anything to contribute. For real, what was a code newbie going to add to the world of open source?

striped cat giving skeptical look. text says "Skeptical Cat is skeptical"

Anyway, I was determined to make some sort of worthwhile contribution. I dug through all the sites like firsttimersonly, upforgrabs, and others. What I found was all these sites were not for beginners. Even if the issues were labeled good for beginners it didn't really mean that they were good for beginners.

I have since come to realize, good for beginners is a label given when someone thinks a task should be easy. Yet, these are often tasks that are not really for beginners. As a code newbie, you're not just new to code but new to version control, editors, cli, and everything.

It's really less important what your first contribution is and more important that you go through the motions and understand how to use version control. Though, I didn't know that at the time, so it was quite frustrating finding something to contribute.

Somehow, I came across this goofy translation site, It was in a language I didn't (and still don't unless I have to) use. Contributing wasn't going to help the world or really anything. Even without the grandiose potential impact, I decided to add some little things to this site. It was set up well to be able to just follow the current syntax.

Doing these goofy contributions didn't feel awesome, but it did me my first ever pull request and helped me begin to understand the purpose of version control and how to use git.

While my first Hacktoberfest amounted to some goofiness, I did learn things. Version control is important and making contributions as a code newbie was way too hard.

Post - Hacktoberfest 2019

As Hacktoberfest was winding down, I was also taking a night class at a local college and learning more things. I decided I was going to try to make my first project.

A 'Simple' Retweet Bot

I was on Twitter and already saw there were retweet bots for all sorts of coding hashtags. So, I decided to make one for veterans. That's when #VetsWhoCode Retweet Bot was born by mashing together some tutorials, Tweepy docs, and caffeine,

This bot, at the time, was hard to make. I was still a newbie and had never worked with APIs or anything. Though it was hard at first, it's really a short program and rather "simple".

A More Complex Bot

Given that I had already made a bot, I decided I wanted to make another one, but make it something code newbies could contribute to.

I was still learning to code as many others on twitter are. I had a fleeting idea and posted a twitter poll asking "A twitter bot that asks daily coding questions. Thoughts?" People liked the idea, so I made it.

I thought it would be cool to bring people together to learn from each other and meet new people. This bot was also hard to make. It was new to me. I hadn't previously done anything that complex. This time, I mashed together Tweepy docs, Python docs, caffeine, and ideas from another bot's repo until Code Questions Twitter Bot was born.

Once it was working, I started setting it up so it could be a community built thing. I built it with newbie contributors in mind. I left notes about syntax and comments making sure it was as easy as possible to add questions to the bot. Though all are welcome to contribute, the goal was to make things smooth for code newbies.

Help Others Contribute

After setting up that bot, I threw together a dev post on what how to contribute to open source as a newbie. (don't hate on me. it's basically a shameless plug with some useful info)

Yet Another Twitter Bot

If you haven't previously seen @BiUpdateBot or @GenderOfTheDay, my explanation of the newest installation in my portfolio may be a bit confusing.

Seeing those bots on Twitter really inspired me to make a bot that covered more than those bots do. I had thought about this a few times, but decided to do so in Septemember. I was doing it riiiiight before Hacktoberfest. I knew I wanted it to also be super newbie-friendly. So, building it contributor-friendly from the beginning was top-priority.

I set to work setting up a madlib style bot to make the standard tweets sent by the bot. Each file has detailed notes, reminders, and syntax. Every possible thing to work has a well thought out issue written up. (Not saying it's perfect, but I really really tried. I'm open to all input and ideas) I made sure to add a Code of Conduct and all the things that make a repo welcoming safe.

Little did I know, this repo would get A LOT of attention. The scope of the bot grew some during Hacktoberfest 2020 too. It now has images, queer history of the day, and remembrance/awareness days.

Hacktoberfest 2020

As you can tell, I'd been preparing for Hacktoberfest 2020. Though, as a maintainer, I had no clue what to expect.


Pull requests rolled in real quick.

Like I said, I didn't know what to expect. I really never expected to have so many people contribute so much. There were so many people.

I had to learn a lot real fast. I'd never seen merge conflicts before and had to figure out what was messed up with each one. A lot of the learning was in watching mistakes people made and adjusting my notes and issues to help alleviate these things.

I tried to get people to use the pull request template to help catch things, but a whole 2 people used them. Though, it wasn't all bad.

In total, LGBTQ of the Day has 235 closed pull requests from 119 GitHub contributors. Code Questions Bot only has 30 closed pull requests from 18 GitHub contributors.

Some goofiness

Some people changed things that were on purpose. I later added them back with comments saying they were accepted as is.

I had lots of fun explaining the importance of commas & quotes and why they are so important.

I also had to deal with some not so fun stuff. Someone copied a whole game from a tutorial and submitted it and yeah, it got marked invalid.

There was also a PR where I had to invoke part of the code of conduct. That wasn't fun to deal with, but there weren't any arguments.

There was some feel good stuff too. :D

Co-conspirators in Crime

There were so so many contributors, here are a 2 that really stood out.

@bobsany16 is the first official collaborator on the LGBTQ of the Day repo. They added the historical tweet feature as well as the linter checks.

@audthecodewitch made tons and tons of contributions and some suggestions the led to the newest feature on posting remembrance and awareness days.

Oh, and this adorableness helped merge some requests and made sure I took breaks.

Open Source Contributor Summit

During Hacktoberfest, I spoke at @bdougieyo's event about how contributing as a code newbie was too hard.


Contributing to open source as a #CodeNewbie is too hard. Newbies are just learning code things and contributing to open source adds in having to figure out version control. The focus should be on learning version control and not substantial code things.

Newbies need incredibly easy contributions to allow them to get familiar with version control. That does not mean easy to you, that means so easy you'd give it to a non-coder who can follow direct rules.

Wanna contribute? There's plenty of open issues.

GitHub logo VickiLanger / code-questions-bot

A Twitter bot who tweets code questions and trivia

GitHub logo VickiLanger / LGBTQ-of-the-day-bot

Twitter bot tweeting fun goofy lgbtq things and queer history of the day

Top comments (6)

aaronmccollum profile image
Aaron McCollum

Love this! I'm motivated to create a history bot on Twitter for D.C. United. That'd be fun! This post got me excited about that and attempting it, and opening it up to others to contribute as well down the line (once it's working). Thanks for writing this for real Vicki!

vickilanger profile image
Vicki Langer

That sounds like a great idea! Good luck. I'm happy to help if you get stuck

aaronmccollum profile image
Aaron McCollum

Thanks! Looking up Twitter API stuff today. Looks like I'll need to install Rails if I want to make it with Ruby.

Thread Thread
vickilanger profile image
Vicki Langer

Yay! First step is done. Maybe you need rails. I’m not sure. I don’t know enough to be sure, but I feel like Ruby should be able to do it without an extra framework

yechielk profile image
Yechiel Kalmenson

This has by far become one of my favorite bots!

Every single time one of its tweets comes across my timeline it never fails to put a smile on my face!

vickilanger profile image
Vicki Langer

Mine too! I learn new things at least daily. If it's not one of the labels, it's some new-to-me animal or food.