Programming. How do you learn it?
Monday, February 20th, 2012Here is something I got asked by somebody called Keith in a recent comment:
Thanks for making this code available. I am interested in taking a look for hobby purposes. I also have an engineering background, and when I was at University studying mechanical engineering most of the people in my class could not program to save themselves; I found I had a knack for it and now develop engineering software for a living. Where did you learn your programming skills if not in your current line of study?
I initially thought to reply in a private e-mail, but then I thought I’d post here, because I could think of somebody else asking the same thing. Here goes:
I have been programming a lot as a hobby, and for a bit professionally, since being 13 years old or something… and less since basically forever. I wrote a few lines of BASIC at the age of 9 or so I guess. At the age of 12 I made websites. They were ridiculous by (almost) any standards, but I learned a lot. Also I was having fun with CoolBasic shortly after.
Nobody really taught me, but there was a humble C++ course in secondary school and my family didn’t view the hobby as too bad a thing. More importantly I found some programming related communities and some programmer friends on the internet at that time.
Similarly I learned electronics. Found people and friends on IRC who are interested in that stuff and then designed and made stuff together.
- “You think this’d be awesome?”
- “Not sure if we’d be able to pull that off… but sure, let’s try it!”
That. Repeated so many times. Minetest isn’t much of an exception.
And I can program pretty much anything on any platform, unless the problem involves very complex math. Most things don’t.
Making Minetest really isn’t /hugely/ a matter of pure coding skill though; it’s mostly a matter of determination, and now as being largely a community project, it’s much about managing other people’s doings. Also a difficult thing is to take pauses in development of the correct length to not become bored while still keeping other people interested.
// c55