Hacker News new | ask | show | jobs
by MikeMacMan 5393 days ago
I started programming when I was 24 (11 years ago) and working at my first job. A coworker was my mentor early on, and we pair programmed frequently for a couple of months. I read a couple of Wrox Java books and just learned by writing a lot of code and reading as much as I could.

Luckily, I was tasked with developing a whole bunch of forms for a client-server application, which the IDE helped me out with a lot with its WYSIWYG editor, and the programming work was relatively easy (no I/O, no DB access, etc).

The keys for me were:

1. Having a mentor early on

2. Flattening the learning curve with an IDE.

3. Choosing the right project

2 comments

IDEs all the way! I started with Matlab, which was a super gentle way to start. Then I moved to Java+ Eclipse. Now I mostly use geany (linux TextMate). I'm not quite at vi level yet :).
Can you define #3? Meaning going from easy to difficult? Or starting with a difficult task and trying to solve it (at the beginning everything seems difficult, but yeah :).
I meant choosing a project that is not too difficult, but is interesting. Solve a real problem, even if it's small. One advantage you have is that instead of being a programmer, you have expertise in something else. Are their any problems in your own field that you can solve with software?
I implemented a lot of statistics functions to learn how to program in a language. Some of the things I've learned on include:

  * moving averages
  * linear regression
  * matrix operations
  * matrix lu factorization
  * polynomial interpolation.
  * multiple linear regression
  * cubic spline interpolation
  * variance, covariance, correlation
  * gamma function
  * t-test, t-value calculations
One limitation of the above is that it doesn't explore all of a language's features. The above are mostly interested in array processing. There aren't any classes or generic types or what-have-you.