This Week in Dev #2 — First Open Source Contribution!
The preparation continues for Makers Academy and I’ve been working at it slowly but surely. I’ve been working on a couple of things this week so let’s get to it
Stand up (progress from last week)
In last week’s post, I set myself some goals to try and quick-start my learning. This is how I got on.
- Be more comfortable using Hashes and Arrays in Ruby
Still need to work on this stuff. I’ve started working on a Text Adventure game using Ruby which I will force me to work on these concepts. You can follow my progress on this GitHub repo if you want to see how I’m doing.
- Learn and be familiar with Git Merges.
I’m getting the hang on this shit! I’ve been forcing myself to do merges through the terminal rather than using GitHub’s desktop app. It took me a couple of goes to get the workflow just right, but I’m getting the hang of it (I even made my first pull request on GitHub!). In my next Git adventure, I might set up a practice repo and mess things up intentionally so I can get used to fixing commit and merge issues.
- Continue to work on typingclub
I’m slowly improving, but its still super weird for me to use all my fingers when typing. I’m used to just using my index fingers which allow me to type pretty fast, but I know that the only way I’ll get quicker is by using all the fingers
- Start work on the Well-Grounded Rubyist book.
Didn’t manage this. I focused on finishing the final chapters in Chris Pine’s book. I’ve already done chapters 1 to 8 in preparation for Makers, but I’m hoping to finish it off before I go a bit deeper into Ruby. I also want to dip into Ruby on Rails just so I have a bit of experience before I cover it more extensively at Makers.
- Have fun
Smashed this goal.
First Open Source Contribution
This was a bit of a milestone! I made my first contribution to an open source project! As part of my learning, I found a website called learnrubyonline.org which have tutorials covering the very basics of the Ruby language. It’s great if you want to learn a bit of code without actually downloading anything.
Looking over the Ruby material, I noticed that they were missing a tutorial on Methods. So I decided to put my skills to the test and contribute. Looking at the repository, all the tutorials are created using a markdown file and are structured to a particular format. This felt like a nice gentle introduction into contribution to a project. I forked the project and got to work!
Once I did my thing, I had to test it to make sure I didn’t fuck it up (Wanted to make sure that my open-source career got off to a good start!). This required me to run my first ever python flask server! This was suprisingly easy. I have run Nodejs servers before so this wasn’t the first ever time I’ve run a server, but it was a experience nonetheless.
After a quick localhost test, everything worked a hunky dory so I opened a pull request. This took me longer than it should have, as pull requests aren’t too hard to do. The owner of the project must have been at their computer because it got merged a few minutes later!
I have to be honest, it was a hell of an experience and I felt like I’d achieved something pretty big (Even though it’s just some markdown and some Ruby). I’m going to contribute some more to the project to get some more experience and improve my GitHub profile before venturing out to other projects.
This is the work that I did, I’ve got one pull request open at the moment but there will be more to come! If you want to get started working on Open-source, this is probably the easiest project to get started on. You can find the project here.
Dip into Java and Android
Just to spice things up a bit, I did some Java lessons on Codeacademy. I’ve been keeping a book that I write all my notes on how each language differs which has helped my understanding of how to implement general concepts in different scenarios and using different languages. Naturally, after going through the Java stuff pretty quickly, I started to look at some Android app tutorials. I didn’t spend a lot of time on these as I want to get my Ruby skills down before I do anything else.
Khan Academy Mathematics
As part of my goal to get better at Maths, I started to work on some tutorials on Khan Academy. Right now I’m focused on the Algebra sessions, which I hope will lay the foundations for me to expand into Machine Learning and AI algorithms. I’m currently working on Algebra 1 tutorials (I did say that I suck at Maths!) and I hope that before I start at Makers, I would have covered most of the Algebra content on there.
Goals for this Week
It was a pretty fun and busy week! These are the goals I’ve set myself for the upcoming week!
- Continue work on Hashes and Arrays in Ruby
- Continue work on typingclub
- Stay on top of my mad Git skills!
- Start work on the Well-Grounded Rubyist Book
- Start the Ruby on Rails course on Codeacademy
- Continue working on the Mathematics course on Khan Academy
- Continue to have fun :)
See ya next week! If you want to see how I’m doing dev wise, I’d love it if you followed my GitHub or even dropped a comment on this post with your thoughts or suggestions!