Live data from Hacker News

How I Learned to Code

viniciusvacanti.com

31–36 of 36 posts

Re: How I Learned to Code

#31

Doing "whatever it takes to make it work" creates profoundly different results as opposed to "learning how things work".

This is so true. I did an apprenticeship as software engineer (but already coded for 3 years before that). In my whole class at vocational school there was not a single person who was genuinely interested in e.g. the data structures they were using.

Most people used java.util.ArrayList all the time but they couldn't answer why nor did they want to know why a LinkedList, Map, Tree etc. would be better for a specific case. While it is nice to have all those high level types and classes available it's kind of sad that most people aren't interested in the inner workings.

Edit: The various Java collection implementations aren't really "low level" either, but you get the idea.

Re: How I Learned to Code

#32
post #6

All the good coders I've ever met had already taught themselves to code before the age of 10. (Most of them were so passionate about it they went on to do computer science degrees which polished their raw skills and taught them rigor.) The question isn't how to learn to code: if you have the innate ability you can't STOP yourself from coding the first time you encounter a computer. I'm all for people learning new ski…

Ridiculous just like doing anything else you don't have a passion for is ridiculous? Like paying bills? Accounting? He wanted to start a company. That implied, in his case, learning to code. Just like finishing my degree implied long days working to pay it (wasn't very passionate about cleaning barracks I can tell you ;-) (Btw, I'm one of those who started coding at age 12 by picking up the c64 manual.)

Coding is not in the same category of skills as other "things you must learn to start a business". It's a hundred times harder. I don't think, as a person who started coding at 12, that you have the perspective to appreciate that. It's a long, tortuous, winding road to building something reliable with code.

I started coding at an early age too, I didn't understand just how hard it was until I started rubbing elbows with a lot of business types and trying to show them technical stuff. The knowledge gap is so wide and gaping that yes, you need a long time immersed in technology before you can understand it enough to build with it. If you're really bright, motivated and lucky, you might manage something in 6mo to a year. And those months will be the hardest of your life.

Re: How I Learned to Code

#33
post #29
post #15

Earlier quoted context omitted.

That is an interesting expression. If it's very established, do you have a reference where I can read more about it? Google turns up nothing but a quote by Disraeli.

I heard it from an old colleague and mentor of mine who is now long dead, having lived well into his 90's. I've used it ever since. I'd never heard the Disraeli quote before. Good stuff.

Thanks for sharing that.

Re: How I Learned to Code

#34
[Insert obligatory gripe about title/writing style here].

Moving on...

I'm a software engineer. That is, it's not just my job, it's a very strong part of my identity. I learned to code before I was 10, and in some respects I still haven't finished. However, I've had the honor of teaching a handful of people to build software, and it's taught me a thing or two about how people tend to pick it up.

If you're grabbing a "Learn [language] in [X time]" book, or similar, you're not going to succeed. These books market themselves in the same way as fad diets. Your expectations should be similar. That is, you'll probably make some early progress, but without loads of discipline [1] it won't live up to your ideals.

If you're like me, you know this already. You probably have a few of these books on your bookshelf, but they're collecting dust as you devoured them years ago before quickly moving on to better materials.

But most people aren't like me. Most people don't look at code as a thing which holds intrinsic value. Most people don't feel an emotional response to a clever quine or well-thought architecture. Instead, most people (rightfully) view code as a tool. It's something that helps them achieve their end.

If you're like most people, you need a goal first. But not just any goal, a goal that you really care about. A master carpenter can show you you all of the ins-and-outs of joinery, but that will (almost) never help you write a book, mow your lawn, do your dishes, or achieve any other goal that doesn't involve sticking two pieces of wood together. The same is true in software. If you have no intrinsic motivation about the process (coding), and you have no intrinsic motivation about the outcome (the thing you're building and its purpose), then you won't succeed.

Extrinsic motivation isn't good enough. Writing code is really, really boring when you don't care about anything to do with what you're doing. Saying "this will somehow make me money someday" isn't going to get you there.

So to borrow another metaphor, if you don't care to swing a hammer and you don't want to drive nails, why would you ever go searching for nail-shaped problems when you don't even have a hammer anyway? Further, why would you bet your livelihood on them?

1: If you had loads of discipline, would these books be nearly as appealing to you?

Re: How I Learned to Code

#36

Doing "whatever it takes to make it work" creates profoundly different results as opposed to "learning how things work".

This is so true. I did an apprenticeship as software engineer (but already coded for 3 years before that). In my whole class at vocational school there was not a single person who was genuinely interested in e.g. the data structures they were using. Most people used java.util.ArrayList all the time but they couldn't answer why nor did they want to know why a LinkedList, Map, Tree etc. would be better for a specific c…

Pity they used ArrayList, it is kinda a shitty data type for a lot of use cases. I would say that something like the Lua "map" (essentially, a resizing associative array with some optimization to make array-like access efficient) is more optimal as a "use this for everything" data type, due to greater versatility.
Post reply on HN