Oh hey, I missed this thread. I'm a fake programmer - physicist by training, but I've learned a fair amount of programming along the way to my degrees and my current job is approximately 2/3 coding to 1/3 math. I had to take a "programming for scientists" MATLAB course as an undergraduate. I found it pretty easy, but promptly forgot most of it. Then my third year of summer research came along. My advisor handed me the giant simulation of pulsar birth, evolution, and detectability that a previous student had written in completely undocumented and uncommented C++ and a list of changes he wanted made and left me to figure it out. Which I eventually did, with much caffeine and cursing. I learned Python and C in grad school - the Python by choice and the C for legacy code. I did a lot of work with the NumPy and SciPy modules. When I finally finished grad school, I went looking for work in data analysis type jobs and eventually ended up at a NASA contractor. My group mostly uses MATLAB, but I do the heavy data processing in C and I'm trying to give myself a crash course in IDL and learn enough SQL to get by. One of these days I'm going to have to learn Fortran to deal with somebody's old code and I'm not looking forward to that day. Can I be part of the programming cool kids' club even if I'm not a real developer?
You're not a real developer until you think evil thoughts towards a previous maintainer. I think you qualify.
I knew him from the year before when he was writing the thing and I was working on a different project. He was a perfectly nice guy. But I gave some serious thought to the logistics of mailing him a box of scorpions.
Sometimes that previous developer is me. I hate past-me as a coder sometimes. You lazy fuck, you could have done better, not written such shitty code without comments and been so damn impressed with your one-liner tersity. If that's a word.
I feel this one all the time. Actually hating on past me is the major contributor in me commenting my personal stuff. Really just imagine Karkat's self memo boards you have my code/comments.
Not a Homestuck so I only know what you mean from osmosis, but I'm guessing pretty incomprehensible mess. Sometimes I've just been way too impressed with my own cleverness. Sometimes I've just gone about it the wrong way and beaten it into working, kindasorta. Sometimes it's just that I've been under deadline and lacking sleep and stressed the fuck out ...
Hey programmer folks - what do you recommend as a starting point for someone whose coding background is "I squinted at HTML once through once through the window of a bus driving by"? Most of the stuff I've seen assumes you to have some kind of Computer Stuff background, at least knowledge of general terms, and I... don't.
Do you have much of a math background? Do you learn better when things have an immediate application or are you happy playing around in a sandbox? What kind of computer do you have? (Mac or Windows, most likely, and if you know what major version even better)
I got up to the beginnings of calculus, but that was years ago. Could handle it with a little review. My geometry background seems to be a little better than average, though I didn't go into full out trig. Immediate is better, but the biggest thing is that the "shows you how to do it wrong, then corrects it" style of teaching just makes me ASDFGHJKL. That's why I stopped the HTML series I was doing. And I run mostly windows (7) with a dash of android of the "can't be buggered to get on computer, does thing on phone" variety.
I pretty much start everyone with learncodethehardway.org. Partly because I teach people Python, but mostly because it's the best resource I've found for teaching code. They've now got a Ruby course which is the existing Learn Python the Hard Way book but with Ruby, and Learn C the hardway which expects you to know the stuff in LPTHW or LRTHW. As for my path, I used LPTHW and Making Games with Python and Pygame and somewhere around the end of both books I got bored and wrote my own game.
Python is probably one of the better languages to learn right now; it's simple, has a pretty logical design without too many gotchas, doesn't require too much bullshit, is available everywhere, and you can do useful things in it. (By the way, the "hard way" referred to in the names of those sites/courses is somewhat tongue-in-cheek; they're referring to learning-through-doing.) It's really hard to give good advice for this since I've been programming for something like 25 years and started the truly hard way; aside from a little messing around in BASIC, my first real programming was Motorola 68000 assembly. I'm not sure I'd recommend this path to people.
Although assembler is good for a certain mindset, because you're dealing with the lowest level and pretty simple operations on a fairly easy-to-understand device (though less so on a modern CPU if you're using all the features). The problem is that getting anything useful done is a lot of steps.
I've been teaching myself a little Haskell this weekend, because I figured it would be refreshing to do a language with a different approach to things. Liking it so far.
#latetotheparty but I've had multiple profs and docents tell us to comment our code, because maybe we understand what we were thinking when we're coding it, but a) they're the ones correcting it and they don't, and b) you won't either next week. I think I'm bored/procrastinating enough today to go play with Ruby again.
@Morven What are you using to learn Haskell? I kind of want to learn functional programming, mostly from hearing about it via type theory people in mathematical logic. If it matters, I am decent but rusty at Java and Python, and have enough mathematics. I am happy sandboxing.