

Ask HN: What specific techniques do you use to improve as a programmer? - willthefirst

How do you all make an effort to learn and avoid repeating coding errors? I'm thinking about starting a running document where I will catalogue things that I get stuck on and how I overcome them, in an effort to crystallize new knowledge and logical thinking.<p>How do you get better?
======
eranation
As beobab said, code, debug, feedback, rinse and repeat

Other resources that were helpful for me as well

Books:

    
    
      - SICP (http://mitpress.mit.edu/sicp/full-text/book/book.html)
      - The Pragmatic Programmer: From Journeyman to Master
    

Courses:

    
    
      - Almost all udacity CS classes 
      - SaaS courses at edx.org
      - Scala course and most CS courses in coursera
    

Open source:

    
    
      - browse most popular OS projects on GH, and try to contribute
      - create your own open source project, and get feedback / pull requests
    

Q&A sites:

    
    
      - Stackoverflow
      - http://codereview.stackexchange.com
    

and of course most coding related articles here on HN

edit: SICP has an online course at MIT OCW:

[http://ocw.mit.edu/courses/electrical-engineering-and-
comput...](http://ocw.mit.edu/courses/electrical-engineering-and-computer-
science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/)

it might cover a lot of things you know, but I think it's a must have for
every developer out there.

------
fidanov
There is no shortcut to get better. You have to write software. Write, write
and write again.

Take part in different kind of apps. Small web apps, big and complex web apps,
simple mobile apps or more complex mobile apps. Each of these will teach you
on how to think and organize your work. Try learning different programming
languages for example Clojure, python, ruby, javascript, C#, java and haskell.
You don't need become an expert but each language will teach you a different
way to tackle problems. Another thing that I've found useful is looking at
other people's code. Github and the thousands open source projects there, make
this super easy. Learn what you should do and what you should not.

------
anujkk
1\. Sharpen your saw. Keep learning new technologies and programming
methodologies.

2\. Make an effort to use what you have learned from past experiences to write
better code in terms of usability, efficiency, readability, maintainability,
etc.

3\. Read Code(good ones). Sometimes, looking at other people's code allows you
to have a fresh perspective about coding style.

4\. Contribute to open source. It will help you immensely in understanding
what it takes to write code that others can read and maintain.

5\. Help others on sites like stackexchange.

------
feralmoan
Learn a new (people) language to shore up your propositional calculus skills.
If you're a native Germanic (English) language speaker, learn an Altaic one
(like Japanese for example) and vice versa. It has certainly helped me write
elegant code. Code isn't just code, its a mindset and approach with a lot of
room for creativity.

------
beobab
Practice, feedback, practice, feedback, ..repeat..

------
staunch
1\. Learn more languages and technologies.

2\. Create new projects as often as possible.

