Programming

It seems every time I begin a new job I go back to dreaming about something different. More interesting. More consistently challenging. So it is and so I’m back to trying to program.

I read an essay about some hackers from back in the day stuck at the airport after a conference. The group included Bill Gates, Steve Ballmer, and others. One of the group decided to introduce Petals Around the Rose to everyone. Most of the group got what was happening after a bit, but some didn’t. I understood the game at the explanation of the first roll. For a second I thought, “Hah! How brilliant I am!” Then, I recalled that I was introduced to the game about 11 years ago while in college.

It made me wonder about how we acquire and retain knowledge. Why some things stick in the brain and others don’t. And it got me back to wanting to program. The desire has been with me for so long, but I don’t put in the consistent effort to achieve results. The progress I make isn’t rewarding enough to keep me coming back. So, I take breaks. The latest break ended about a month ago as I had made some updates to my Dad’s website. It’s badly in need of a total overhaul. Hopefully I actually get to that at some point.

The essay concluded with an anecdote about Steve Ballmer. Apparently, that game stuck with him as whenever he encountered a new programming language that interested him, instead of doing a simple ‘Hello World!’ he programs a version of Petals Around the Rose. I decided to do that myself.

https://github.com/joehalvarson/Python-Petals-Rose.git

I was surprised that I had retained as much as I had. I haven’t touched Python in almost exactly a  year and hadn’t done much other than read. But, I put together something that works. It isn’t perfect, but it works. And for the most part I slapped it together myself (maybe that part is incredibly obvious!).

My biggest hurdle was in getting the dice to print to the screen. Stack Overflow helped me get through those. I’m still disappointed, though. I’m not really sure I could have figured that out myself. That’s something that’s still a big hangup for me. I can’t consider myself above a beginner level if I can’t figure out how to do some of this stuff myself. It’s fine if I don’t come up with the most efficient method, but I need to be able to figure out some workable way of accomplishing a task.

I started reading some more on design patterns in programming. That will hopefully help. One of my biggest knowledge gaps is in how to organize things. I also started reading other people’s code. That will be a great help and something I’ve not done enough of.

Advertisements

Starting Over Today

As is frequently the case as I pursue knowledge on my own time I park it for a while until I get the urge again. I’ve got the urge again. I want to learn. I want to get this stuff so I can create. I have the brain capacity for it, it’s just a matter of setting and achieving goals. Cramming that stuff into my brain parts so it can leap from idea to fingers to workable code.

My goal when I started this journey was a both too ambitious and too vague. Learn enough Python to be able to make a game. I technically achieved that as I made a simplistic game using Python. It was really more of a hacked version of a step-by-step guide on how to create a Battleship clone using PyGame. I added win loss tracking, although I wasn’t able to figure out how to sustain that across game sessions. Every time the game was closed the wins and losses went away and restarted at zero. I tried to figure out how to export those statistics on close and import them when the game was launched, but was unsuccessful.

Through Codecademy I completed the entire jQuery track, except for the final challenge, which was to make something. I did write a bunch of code and was trying to create a simple version of Pong. I made it pretty far and was proud of what I’d done, but it was never quite complete and working. It almost worked, except the ball had a tendency to get stuck to the paddles if it hit the top or bottom edge. I couldn’t figure out why that was happening, so never submitted it as completed. It had score tracking as well, but I couldn’t get the placement or display to work correctly. The score wouldn’t update even though I did verify that the variable itself was updating on scoring. Well, I verified that if 7 points were scored the Game Over/New Game screen would appear. So, I knew it was tracking it, but couldn’t figure out why it wasn’t displaying correctly.

Anyway, that’s stuff I did. I have a lot to learn and get better at. I haven’t touched this stuff in some time, unfortunately. I started playing Dwarf Fortress again after the .40 update and it made me want to get back into learning. I want to create. I want to troubleshoot and solve problems. Part of the reason I stopped was I got busy with other life stuff. Wedding, writing, improv. Improv takes a lot out of me. I love doing improv, but my mind reels when I do a show I felt wasn’t totally successful. I hold myself to high standards and if I don’t achieve them it’s difficult for me to excuse myself.

So, I’m starting over. I’m starting at the bottom. My goal is simple and attainable. Program for 2 hours everyday. Go through each Codecademy lesson. That is my goal. I will achieve this by November 1st. In November I plan to edit the novel I wrote for NaNoWriMo in 2012. Every time I start editing I get intimidated and put it down. I’ve been editing the first chapter for two years. I mean, I haven’t sunk a lot of time into editing, but it’s time to forge through that and really edit and hone and expand where needed. I have a lot of good stuff in there, but I need to sort it out, find the weak spots and improve it.

I’m excited to get back to learning. I want to program for a living. I know I’m capable. I need to set realistic goals and achieve. It starts over today.