I Know Nothing

I realize now, that although I can do some things, I can make some things happen, I can solve some problems, what I truly want to understand I do not know. And bizarrely enough, I just now realized the reason I don’t know is that I never learned.

So often as I’ve gone through attempting to learn how to program, how to be a programmer, I’ve encountered tutorials and guides. Learn Python. Learn Ruby. Learn Javascript. Learn to Program with X! But, none of them teach programming. None of them teach design. Patterns. Paradigms. Functions.

What is frequently shared between these tutorials is an understanding that they aren’t teaching those paradigms or they don’t know how to teach them in relation to also teaching a language, so they inform the student to copy things directly. If you copy it a bunch, you’ll just intuitively understand. And, maybe they’re right.

It makes me curious how many people try to pick up this skill later in life. I’ve often read about people who are still in my position, trying to learn, whose first introduction to programming is in their first college computer science course. However, that’s never the case for the tutorials I read. I’m sure they’re out there, but the number of people who have learned after being out of high school is dwarfed by those who learned while younger.

Nearly every tutorial I read mentions BASIC, or COBOL, or Lisp. These are the languages of their youth. They talk about starting to program when they were 8, 10, 12. Everyone was a child when they started. Does it mean I’m too late?

Is learning programming like learning a language? The earlier and more immersed a person is, the easier it is? My guess is yes. It seems obvious, but I wonder.

I would like to read more from someone who’s become an adept, capable programmer who started later in life. I’m sure they’re out there. I probably just need to search for them. I’ll writer again with my findings.

Advertisements

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.