Live data from Hacker News

My personal struggles with learning how to program

vutran.me

31–40 of 50 posts

Re: My personal struggles with learning how to program

#31
post #15

When I was in high school I was always fascinated by the stories I'd hear about hackers, I was just a lowly gamer back then. I always told myself something along the lines of "these people have been doing this since they were kids, it's too late for me, I could never be good at that stuff." A little over a decade later after finishing my time in the military I made a conscious decision to study and get into informati…

The benefit of technology is that if you have the energy to learn, history doesn't matter much. All this shit is obsolete in 10 years. Experience gets you knowledge of patterns and methods, but the content changes so often that you can catch up relatively quickly (at least in the context of a career).

Security, unlike many things, can be freelanced in your spare time: many companies offer bounties. So just go in and figure out how things work, and try to break them. If you find something, submit a bug report, and who knows, you may pick up a few grand on a security bounty. Land a few of those, and getting an interview for a full time job should be relatively easy.

Re: My personal struggles with learning how to program

#32
post #3

I learned how to program when I was 30. I actually found it really natural and easy. Now (one year later) I work fulltime as the programmer for a small games company. So age is certainly no barrier.

Me too! Picked it up at 30 and spent about 8 years doing professional software development. Then I went back to school, got a degree, started an entirely new career and have kept moonlighting in software ever since. It's so gratifying picking up new things as you get older, and having options in employment is really valuable.

Re: My personal struggles with learning how to program

#33

honestly, I felt this way in elementary school, all the way back to 3rd grade. It seems stupid, there were probably only a couple other kids around who knew anything about programming. One knew C++ and I thought 'damn, I only know Visual Basic'. I remember programming for independent research projects and thinking 'Of course I'll get an easy grade because the teacher doesn't know how to program and can't see how simp…

I think we'd be discouraged less if we didn't habitually overestimate the abilities of our peers. With hindsight I'm sure we can agree that the idea of a 3rd grader really knowing C++ is ridiculous -- heck, adults who use it every day are usually missing huge swaths of knowledge about various parts of it -- but at the time I'm sure that idea could have been discouraging.

Re: My personal struggles with learning how to program

#34
I'm in the process of teaching one of my friends how to program. He's starting off with almost no knowledge, but he's a smart guy, so hopefully it won't be too painful.

The #1 thing I told him to do is start by programming small, useless programs and work up to more and more substantial programs. The more you program, the more you learn, and you build on that wealth of knowledge. And more importantly, you learn how to avoid the mistakes that you made from your previous programs. I'm in the process of learning Scala on my own, and this is the tract that I'm taking as well, and I've been programming for years now.

And in the process, the key thing you learn is perseverance. If you don't have perseverance, there is no way you can be a programmer, because that is the life of a programmer. You hit roadblock after roadblock, and you need to figure out how to get around those problems by yourself. You have to try 100 times to fix a problem, so that the next time it might only take 97 times, etc, etc.

Re: My personal struggles with learning how to program

#35
post #19

I think I can empathize with the author to an extent — I switched into computer science after freshman year, and encountered many students that had been programming since a young age, or at least since high school. I think the most important thing for me was finding a mentor. I was fortunate enough to get an internship at a startup with little programming experience (possibly out of a sheer determination to learn). T…

Can you share what some of those "roadblock questions" for you were?

For me, the language wasn't the difficult part (like how the author mentions semicolons, etc.) I was able to pick that up from reading books. I remember having a Python book that walked through some simple programs which I ran on my computer. After, I was able to write loops and do math with scripts, but I had no idea how that translated into actual software used by companies.

That's where the mentorship helped. Before, I only had a vague idea of how a non-static website worked. After, I had an okay understanding of the entire system, from the databases to the front-end, and how it was built. I learned about stuff like MVC, and got to the point where I could build a website on my own.

Possibly the most helpful thing was looking at segments of code, trying to work out what they were for, and then having people to talk to if I didn't understand.

Re: My personal struggles with learning how to program

#36
post #19

I think I can empathize with the author to an extent — I switched into computer science after freshman year, and encountered many students that had been programming since a young age, or at least since high school. I think the most important thing for me was finding a mentor. I was fortunate enough to get an internship at a startup with little programming experience (possibly out of a sheer determination to learn). T…

Can you share what some of those "roadblock questions" for you were?

For me OO was a roadblock for years thanks to really bad early chapters in introductory Java and C++ books that made it sound magical and used awful "sally tells tommy that she wants to buy some flowers"-type examples. From those I figured it was something really complicated (nope) and advanced (unh-uh) so I didn't seek help when I needed it (if I can't learn it from the intro book I must not be able to, right? Hahaha).

It probably didn't help that Perl was my first language. With a solid grounding in C I might have made the "this is just a struct with functions and some sugar on top? Why the hell didn't they say so!?" leap much sooner—as it is, I eventually made that leap from associative arrays instead of the closer analog of structs—again, I learned on Perl.

Someone to say, "look, you pretty much already know this, it's..." would have saved me tons of time and accelerated my learning substantially.

I hope for the sake of people learning now that all these online tutorials and interactive exercises have made that sort of thing largely a thing of the past.

[EDIT] grammar

Re: My personal struggles with learning how to program

#37

I'm in the process of teaching one of my friends how to program. He's starting off with almost no knowledge, but he's a smart guy, so hopefully it won't be too painful. The #1 thing I told him to do is start by programming small, useless programs and work up to more and more substantial programs. The more you program, the more you learn, and you build on that wealth of knowledge. And more importantly, you learn how t…

> The #1 thing I told him to do is start by programming small, useless programs

I couldn't disagree more. Seeing useful results on day 1 is a major motivator. Doing purely theoretical tasks for the sake of understanding is mind-numbingly boring. You only need to get into the details after you see the way to just get it working. I think this is why weakly typed, high-level scripting languages are so good at starting out with. Learning pointer arithmetic in C as a first exercise never made anyone want to program more.

Re: My personal struggles with learning how to program

#38
No discussion about the authors history as a bio major? Lets just limit the game to analogies that might be helpful for a bio major programmer.

Easy analogies: DNA GATC vs binary encoding. The amino acid coding for proteins vs machine/assembly op codes, even down to non-byte aligned access issues and invalid opcode interrupts. The concept of an algo like a biochemical cycle, someone who sits thru the Krebs cycle has the concept of an algo or at least a flowchart down. Depending on how much neuro there will be at least a conceptual discussion of many simple voltage operated nerve cells in a peculiar arrangement much like a pile of little cmos transistors in a peculiar arrangement, both are made out of simple parts in a complex system. The blood / hormone homeostasis system kinda like calling a function and getting a response. The cell wall as an object oriented paradigm, there's public and private data in a cell and there's getters and setters and methods. I guess the concept of cell division is very good analogy to threading whereas process spawning is more like giving birth? There are a couple blood and organ control loop systems that are vaguely "while loop" and "if then" like. Tree structures and FIFOs and maybe LIFOs are intuitively obvious to a bio major.

I wonder, given the nature of organic chemistry, if something like teaching assembly language could ever "swap into" the medical doctor weed out process. Its more similar than you'd think, building things out of smaller things, certain peculiar interactions, path finding from here to there, a mix of simple analysis and intuition, plenty of memorization. Assembly language would make a perfectly good medical doctor weed out course replacement for o-chem.

Analogies that probably exist but I'm missing the details: Something like pointers "must" exist in genetics, right, otherwise how would the cells know where to find a protein to synthesize along a strand? Cells don't really "run" every protein off the entire DNA strand, do they, surely they have some kind of filesystem however crude? Something like variable types probably doesn't have a good biological analogy. I suspect the existence of more sort algos than the bogo sort or at most a radix are probably confusing to bio majors. Stranger data structures may or may not exist in bio, are there plant tree branches that spawn like our weirdest tree structures? Some database concepts "probably" fit into some enzyme scheme I don't know about WRT transactions and durability and atomicity, but what exactly I donno.

Re: My personal struggles with learning how to program

#39

I'm in the process of teaching one of my friends how to program. He's starting off with almost no knowledge, but he's a smart guy, so hopefully it won't be too painful. The #1 thing I told him to do is start by programming small, useless programs and work up to more and more substantial programs. The more you program, the more you learn, and you build on that wealth of knowledge. And more importantly, you learn how t…

> The #1 thing I told him to do is start by programming small, useless programs I couldn't disagree more. Seeing useful results on day 1 is a major motivator. Doing purely theoretical tasks for the sake of understanding is mind-numbingly boring. You only need to get into the details after you see the way to just get it working. I think this is why weakly typed, high-level scripting languages are so good at starting o…

That is the point I'm making: start small, make useless programs and see results quickly. If you start from scratch, trying to tackle something big will only frustrate you because there's too many things you need to learn before you can get a complex program up and running.

No one needs a program that outputs the listing of a directory, but if you can get that working, then that's a huge accomplishment, especially for someone that hasn't taken formal programming classes.

Post reply on HN