Live data from Hacker News

Ask HN: How to become a better programmer?

news.ycombinator.com

11–20 of 63 posts

Re: Ask HN: How to become a better programmer?

#11
I was in your position not long ago. I'd recommend using Ruby on Rails, which will teach you a lot about OOP and the MVC framework. There are some similar frameworks for PHP (like CakePHP), but Rails' established community and abundant documentation make it a better starting place.

Javascript (http://www.w3schools.com/js) is an extremely important part of the web today, and jQuery (http://www.jquery.com) makes it more manageable than ever before. It's not difficult to learn -- you can make a lot of headway in a single day.

If at all possible, work alongside other people. You'll learn a lot from their habits and their code. And work on actual projects. Learning for the sake of learning is much more difficult than learning while you're building something.

Re: Ask HN: How to become a better programmer?

#12
post #2

It's important to differentiate between the technical ability to build web applications and the craft of programming. It seems you are interested in the former, in which case I would recommend learning a popular framework (Ruby on Rails or Django). While you are learning a framework you'll pick up the base language just fine. If you'd like to learn the more general craft of programming, Peter Norvig has some excellen…

Between starting with Ruby on Rails or Django with Python, is one better to start with than the other?

Re: Ask HN: How to become a better programmer?

#13
post #12
post #2

It's important to differentiate between the technical ability to build web applications and the craft of programming. It seems you are interested in the former, in which case I would recommend learning a popular framework (Ruby on Rails or Django). While you are learning a framework you'll pick up the base language just fine. If you'd like to learn the more general craft of programming, Peter Norvig has some excellen…

Between starting with Ruby on Rails or Django with Python, is one better to start with than the other?

I was in a similar situation to you earlier this year, in that I was trying to decide between Rails and Django. I ended up going with Django, but I don't think there will be much effective difference to you regardless of which one you choose. Both platforms are good for building web apps and both languages will help you learn new concepts. I went with Django because of the wealth of documentation abailable online and the fact that I have personal resources to tap on Python (although I've used mostly online documentation for that as well).

If you end up going with Django, feel free to email me with questions. I'm sure I can help with some of the "simple" and "stupid" things that can trip up newbs for disproportionate amounts of time.

Re: Ask HN: How to become a better programmer?

#14
post #12
post #2

It's important to differentiate between the technical ability to build web applications and the craft of programming. It seems you are interested in the former, in which case I would recommend learning a popular framework (Ruby on Rails or Django). While you are learning a framework you'll pick up the base language just fine. If you'd like to learn the more general craft of programming, Peter Norvig has some excellen…

Between starting with Ruby on Rails or Django with Python, is one better to start with than the other?

choose whichever your friends use, or whichever community you find friendliest, or whichever has the documentation you prefer. technically, either is fine.

Re: Ask HN: How to become a better programmer?

#17
I'd say focus on the basics - learn more about algorithms, operating system internals, data structures, concurrency, human-computer interaction, general OO/Functional/Procedural programming principles, etc. Languages are dime a dozen - once you're strong in fundamentals, picking up a new technology/language/framework becomes a lot more easier.

Re: Ask HN: How to become a better programmer?

#19
Before making any suggestions I would ask what is the definition of a better programmer? Since this can be a bit subjective I will suggest that you strive to become an 'expert programmer'. It is difficult to even define what an 'expert' is, but normally one would recognize an expert as someone that effortlessly accomplishes a task. Some characteristics of experts from psychological studies are:

1. Experts such as chess grandmasters rely on a vast store of knowledge of game positions. They tend to organize this information in chunks, which can easily be retrieved from long-term memory. The same is true for other experts from sports to mathematics.

2. They also typically engage in years of effortful study, continually tackling challenges that lie just beyond their competence

In my opinion you need to accumulate both, ie, expand your store of knowledge, as well as continually striving to handle situations where the task in hand is beyond your ability.

At this point in your experience my personal recommendation is to actually focus on number 2, for example refactor some PHP code into OOP, to give you another angle of programming as well as tackle JavaScript for the same reason.

The 10-year rule states that it takes approximately a decade of heavy labor to master any field. As one that has gone through a couple of 10 years:) the best advise I can give is 'learn to program' rather than learn 'to-days-popular-framework-or-language'. Think about it as similar to writing a book, knowing English will not turn you into an author. Practice will as well as motivation.

Post reply on HN