Teaching myself math from the beginning

Awhile back I read a book called Innumeracy: Mathematical Illiteracy and its Consequences by John Allen Paulos where they argue that a lack of understanding of numbers is just as detrimental as being unable to read or write. If you were to tell someone that you are illiterate they would probably be shocked and feel sorry for you. They would wonder how you get through life and probably offer help to find you a way to learn those necessary skills. But, the same isn’t true if you tell someone you aren’t good at math. “I’m not a math person” or “I’m not a numbers person” or something similar is commonly uttered by people and no one bats an eye. People often nod in acceptance or openly agree claiming the same for themselves.

But, not being good with numbers can have serious consequences on how we see the world around us. Things that are seemingly magical or special can actually prove to be statistically likely when observed mathematically. AsI have been teaching myself to write code I have begun to see things much more formulaically and I have come to see just how much I don’t understand in mathematics. Growing up I was much more into writing and other creative forms of expression. I did just enough as far as math was concerned to get by in school, so that I could move on to the next grade.

It is funny how as I have gotten older and working in code how much more I enjoy mathematical processes over creative ones. I do still think of myself as a creative person, but my creativity will likely get expressed more often within my love of technology.

Writing code has shown me how with a better understanding of math I could be much better at writing code. In some lessons I have found that it was a mathematical concept that got in my way rather than the code I was trying to write. For example, I was going through some algorithm tests and needed to write a function to produce the factorial of a number. I spent more time on learning what a factorial was than on the code that made it happen.

So, I have decided to go back and teach myself mathematics. Doing a cursory search online I have decided to go with Khan Academy as it is free and looks to have a lot of content. I am starting with their Arithmetic Essentials course. Getting a good foundation / reminder of the basics seems like the best place to start. Then I can get into the fun stuff after I remind myself of how long division actually works. Doing these courses has been humbling and eye opening to how much I rely on a calculator.

If you are interested in learning math better I would suggest checking out this article on how one person taught themselves math as an adult. It was a great starting point for me. If you have done something similar or have other resources you think I should check out I would love to hear from you. Let me know in the comments below.

Now, I should get on with my next lesson.

Holy moly! I gave a talk about code I wrote!

As I have been teaching myself how to code I have been trying to go to various code meetups in the Seattle area. It is always fun to get into a room full of like minded individuals and hear people’s perspective on different web technologies. Most of them have talks of some kind where a couple people will present their idea on something in the realm of code. I have always wanted to give one and just recently got the opportunity to do it. I go to most of the BellevueJS meetups as they are usually pretty close to my work and are easy to get to after I leave the office.

A friend of mine, Matt, helps run it and after I put up my post regarding publishing my first package to NPM they asked me if I wanted to do a talk about that. I thought about it for a moment and said yes without really thinking about it. As I thought about it more the more it felt like a great idea. I have been wanting to do a talk about something and I could never really think of a topic. This would be a perfect subject for me to talk about as it is more about my getting over fears of putting code I wrote out into the world than the actual code itself.

So, I began preparing the presentation. I decided to keep it simple and had about five slides or so. Each one with a few talking points on them. I tried to keep it moving as I spoke and kept to the topics on the slides. I let the audience know that it was my first talk at the start which was more for me to get the nerves out than it was a disclaimer for them. It was a very receptive group and there was even a couple of questions for me afterwards. The group seemed to be mostly folks that are new to world of writing code, so it felt like a topic that resonated with them. At least it felt like it did to me.

I got some good feedback afterwards on the talk and on my package. Much like when I published the package it felt good to put myself out there. To be honest this was really more for myself than anything. Knowing that I could get up in front of a group of strangers and talk about code I wrote makes me feel really good about where I’m at as far as my learning in the field of web development. And also like the package, as simple as the presentation was, it felt great to get something out there. Now I can take what I’ve learned and use it for future things. I’m actually excited about the idea of speaking in front of people again. I plan on giving more talks about code and my views on it.

If you have ever wanted to give a talk about technology or really anything you feel passionate about I say do it. Take the leap and put yourself out there. It’s the only way to really know how it will make you feel.

Being a part of Open Source Software – Moving Awesome Band Names to Github

I’ve been thinking a lot lately about finding ways to be part of the software development community at large. This blog and writing about my journey in code is one of them and the next is to start contributing to the world of open source software. It makes me happy to see a community of individuals putting their work out into the world for everyone to benefit, not just a select few. As my journey of learning to code continues and I work towards more advanced topics and projects it feels very natural to start contributing the code I write for others to see and possibly use.

To get started I am moving my recently published project, Awesome Band Names, to Github. Now anyone can easily see how I built it and offer their thoughts, be them criticism or praise. To get it up on Github I removed the Google Ad and the tweet button as those are a little self-serving in their purpose. I really just want the functionality I wrote to be available and the focus of any conversation on the project.

So, if you are interested in seeing it you can find the project on Github at http://daveskull81.github.io/awesome-band-names/. I still have the JS file in place to update the bandnames.js file with new names from the sheet I have, but that is ignored by Github. There isn’t a need to have that file published.

Now that I have this project out there I can start work on some of my other ideas. I will implement some v2 ideas for this project afterwards. There has been some stuff I’ve been working on lately for work that sadly can’t be published publicly as they are for internal processes. But, I do have some other ideas for other projects to work on that I will be putting on Github. It seems fitting to make a weather app, so that will be one of them and then I will use my Github user page for a portfolio site of sorts.

I’m trying to keep my mind really open to new ideas for projects. I also have a couple of goals that I have set my eyes on for the future, one easily attainable and the other will take a little more work. Being a part of the open source software community not only means putting out my own code for the world to see, but it also means adding value to the existing projects out there. One of the aspects of the open source world I really like is the community development. So, I am looking around for an open source project to submit some changes to. If you have any suggestions on a good place to start let me know in the comments. Everyone I have talked to has been really encouraging and told me to just go for it, find a project that needs something simple like a typo in a README adjusted and submit it. There is this stigma around the first pull request one makes and the fear of people getting mad at you for not knowing what you are doing. I definitely feel this sometimes, but I try to remind myself that we were all new to something once and you have to start somewhere. Besides, if someone gets mad at me for trying to help them they’re a dick and I can easily ignore them.

My other, more lofty, goal is to write and publish a module to NPM. I have no idea what it will do yet, but I’m thinking that once I find myself doing something over and over again that maybe I should write code that does it for me. Not only will that help me be more efficient, but that is probably a good candidate for this idea. On the plus side, other people might also be doing the same thing often and it could help them get the task done. I’m not in any rush on this one, it is just in the back of my mind for the future. I do want to get it completed in 2016 though, so I’m not working too slowly on it.

This feels like a great starting point for now and that I am on an awesome start to new fun/exciting/scary because it’s hard stuff. Huzzah!