2015 -> 2016
C was interesting, because I didn’t really have any interest in learning it before I started. I wanted to go through Harvard’s CS50 (Computer Science) edX course and C was the language of choice after Scratch. One of the main problems I struggled with in C was the fact that there is no real concept of a string. It really made development difficult, but that challenge was something I enjoyed. Also, it was nice to be programming in a language that was so close to the machine. My usual languages have been abstracted pretty far away from the machine, but I felt quite powerful as I programmed in C. Similar to my Java experience, I didn’t move too far past the basics of C.
Ruby is a language that I already had a little experience in. At the beginning of the year I created multiple Ruby web applications and small pieces of software. I really love Ruby and how its syntax is almost like writing normal sentences. I learned a lot about the actual language near the beginning of the year, but sadly I think I’ve lost some of that intermediate knowledge due to lack of practice. Don’t get me wrong; I can definitely see myself jumping back into the core Ruby language, but for now most of my Ruby usage is directed at the Ruby on Rails framework.
Python is another one of those languages that I learned a lot in, but that knowledge has probably faded away. I also really like Python, but it just wasn’t what I was looking for. Django and Flask are great frameworks, I’m just not interested in them. This year I only really used Python to make small terminal based applications and I dabbled with GUI creation with TKinter. I liked building GUIs and I’ll definitely be back to Python for that in the future.
Rails is a framework that I’ve used a lot this year. My personal website is written in Rails, along with some of my other personal projects and projects that I worked on with some friends of mine. I’ve gotten fairly comfortable building web applications in Rails and I even found myself contributing a little code to Faker; a Rails gem for inputting large amounts of fake data in an application while in development. One of the main reasons I got so comfortable with Rails was Mackenzie Child’s YouTube channel. That helped me immensely. I’ve also learned a lot from when I add new features to my web apps. Having to make the new code work well with the existing code has really helped me understand the process of maintaining code and picking to right moments to push to production.
I’ve learned quite a bit about Angular.js. I can put together a basic Angular application fairly easily. Mid-year I started dedicating large chunks of time to learning Angular, but then I kind of let that fall off. This mostly had to do with the fact that Angular 2 will be coming out and it is extremely different from the original Angular. For a while I thought it would be a waste of time to continue learning it so I stopped. Recently, I picked Angular back up and I’ve started to get comfortable with it again. There’s still a lot to learn, but I’m making progress. I’m actually starting to implement Angular into my website for Easify.js.
This year, I learned a lot more than what I’ve written about. I learned a lot about GitHub, CSS, OOP, MySQL, NoSQL, etc. I also added to my soft skills by reading books like Start with Why (x2), Make it Stick, How to Win Friends & Influence People, The Power of Habit, The 7 Habits of Highly Effective People, and tons more. This was a great year of learning for me and I plan on 2016 being even better.