Live data from Hacker News

The 2 Biggest Mistakes I Made When Learning to Code

suneelius.com

41–50 of 90 posts

Re: The 2 Biggest Mistakes I Made When Learning to Code

#41
I don't know that #1 was a mistake. When getting into any new field, it is very hard to tell what is important and what isn't, what is a solution to the problem and what isn't. If you are in school, sure they'll guide you, but if you are self-learning, there is no really good filter. So learn about everything. Take a breadth-first approach. Some of the specifics you learn will be wrong, useless, or otherwise inappropriate. However, getting an understanding as to why they aren't relevant is in fact learning the field.

The more information about a topic you have in your head, the more likely you are to see the connections between subfields, how various bits are important and unique or just ho-hum standard implementations.

I regularly see people in some niche area say "look we have found this amazing new way to handle the data-flood", only to tell them they have reinvented NoSQL or a message queue, or a technique for dealing with matrices that the image processing or simulation folks have been doing for years (and all of them poorly, making recognizable mistakes). A breadth-first overview has much advantage.

Re: The 2 Biggest Mistakes I Made When Learning to Code

#42
Well, you need to know what is out there, and what is possible. So at least skim over some of the technologies. You could waste a lot of time if you didn't know say, Sass, existed.

There's also a timing problem. If you invest now, and learn technology T, then when you are in the middle of developing a project, the marginal cost of using T is very low. But if you are up to your neck in a project, and then need to take a week off to learn T, you are not likely to do so.

Personally, when re-starting my tech career I wish I had learned Java (or any JVM language) over PHP, PostgreSQL over MySQL, and Dojo over JQuery.

Re: The 2 Biggest Mistakes I Made When Learning to Code

#43

I think the problem is a lot of people jump in, start coding and then never go back and learn about the nuances of a language. Case in point was myself when I was learning Javascript. Sure, I could get the JS to do what I wanted, but it was clunky, used a lot of memory and was slow. Fast forward a few years and I've gone back and read Crockford's books several times, and with more studying, I've gotten much better at…

This goes hand-in-hand with people writing lots of code (especially when first starting out) and not reading much.

There seems to be a huge lack of people simply reading code to learn from it, rather than poring through dozens of recommended "Learn to Program in X in 7 Days!". A novelist probably reads more than they write; the same is rarely the case for programers (at least in my experience, especially in the case of people who are less pedantic than others).

Re: The 2 Biggest Mistakes I Made When Learning to Code

#44

I think the problem is a lot of people jump in, start coding and then never go back and learn about the nuances of a language. Case in point was myself when I was learning Javascript. Sure, I could get the JS to do what I wanted, but it was clunky, used a lot of memory and was slow. Fast forward a few years and I've gone back and read Crockford's books several times, and with more studying, I've gotten much better at…

You make some valid points.

However, had you not taken the road you did, the material you read much later on probably wouldn't have made much sense and probably could have made you turn away from it all right at the start, right?

You get excited when you see results right away. Once you do enough things that begin to make you wonder, "Gee, there's gotta be a way to do this faster or more efficiently." When your curiosity drives you to search for answers is when you delve much deeper into the nuances and the grit of a language that becomes important for scale.

Re: The 2 Biggest Mistakes I Made When Learning to Code

#45
suneel, many people make this mistake. I went almost EXACTLY the same route you did. Although, I had already known HTML, CSS, and some Javascript, I was wildly unprepared for what I would encounter next just to learn how to get a working prototype. It basically took me 8 months before I got something running on Heroku. I went through four different Django books with some success here and there, including the Django Project's simple Poll tutorial three times without grasping it. Little to my understanding, all of it made sense once I used the book written by one of the creators of Django himself. I also used a lot of StackOverflow and the guys hanging out in #Python and #Django Freenode IRC channels were awesome!!!

The trial and error got me to learn a lot of things. In addition to the six things that you've listed, I forced myself to learn VIM as well. You probably use VirtualEnv, which you've forgotten to list.

Anyway, it's always good to see others going down the same road and sharing their experiences. Do you have some links to some of your early projects?

Re: The 2 Biggest Mistakes I Made When Learning to Code

#46
I disagree slightly, as I don't think that following that path of reading instead of jumping in is inherently worse.

Just jumping into writing code is great for motivational reasons because you'll have something tangible, something to be proud about and to help you get excited and keep learning. But you'll still lack insight in a lot of the surrounding environment, things that any programmer should know.

Attempting to do this the other way, reading as much as possible and as in depth as possible, will be good to give you some insight, but you'll have nothing to show for it until you start coding and it'll still take time for you to learn some stuff that can only really be understood with practice.

What I'm trying to get at is that it doesn't really matter how you start, as you are going to have to dedicate 10,000 hours to learn, polish and excel at any craft.

Re: The 2 Biggest Mistakes I Made When Learning to Code

#48

Yeah, away with all that crap, just use Django already! Good decision.

I'd be wary of recommending Django to a beginner, unless their project definitely required it. Flask is lightweight, simple, and you can understand most of it in a very short period of time. I'd say it taught you to code more, whereas Django teaches you to use Django.

Better yet, use Express and focus on mastering one single language for the client-side and the server-side: either JavaScript or CoffeeScript.

Re: The 2 Biggest Mistakes I Made When Learning to Code

#49
I've had a completely different experience. The first few times I tried to write code, I learned only what I needed to know for the specific app. I hated it. It seemed like I was just learning a bunch of random syntax and beating them into shape.

Later, I actually tried the textbook first approach, and this worked much better for me. By learning the framework and being able to observe the patterns, learning new commands was much easier and I could often guess at exactly what I'd need to do. I also remembered commands for much longer than I did with the first approach.

YMMV, but some people have more theory-centric learning styles and some have more application-centric. Test and figure out what works for you.

Re: The 2 Biggest Mistakes I Made When Learning to Code

#50
I wonder if the advent of web programming makes this process all the more confusing?

When I took basic Java and VB programming courses in college 10 years ago, we focused only on Java and VB. There was no HTML, CSS, JS, frameworks, etc. And you could have a complete, functioning program with GUI from the start.

Now, to create a web app, you have to learn all those other things in addition to Ruby, or Python, or PHP. As you advance in skills you'll likely move to either front-end or back-end, but when you start out creating everything from scratch, it feels like there's so much more.

(This coming from someone who did IT work for the 10 years following college, and is not trying to break into the web developing world).

Post reply on HN