Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

To get better, you need to know what to build. You need the path to be laid out before you. That's what college is right? And endless string of projects with clearly defined specifications.

With your years of bugfixing experience, you intuitively know what makes working code, but probably feel lost when it comes to architecting a side project from scratch.

So, take what you know (your employer's product domain and engineering projects) and rewrite them on your own time. Of course, you probably can't release it due to your employment contract (if it's anything like the usual contract), but that's beside the point.

With architecture out of the way, and your super ability to write bug-free tested code, you're forced to focus on your weak area: architecture. It'll be fun. And stress free, since no one will ever see it.



> To get better, you need to know what to build. You need the path to be laid out before you. That's what college is right? And endless string of projects with clearly defined specifications.

College was pretty shity. The OS class was a bunch of slides. My compiler class was better, I actually built something that generated something but i don't think it was executable code or java byte code or whatever. No one cares about it anyways.

> With your years of bugfixing experience, you intuitively know what makes working code,

No, I don't. I've been at my place for a year or so and I'm just as lost as I was on the first day. I can't remember anything.

> but probably feel lost when it comes to architecting a side project from scratch.

sort of

> and your super ability to write bug-free tested code,

According to my boss, this really isn't true.


Luckily, there are ways to get better without actually coding.

1) Watch every confreaks video on youtube. You probably won't remember any of it (I don't). That's good. It's not being filed away in your memory, it's slowly changing the way you think. (Optionally) listen to these instead, preferably while playing a mindless video game. If that doesn't do it for you take up knitting.

2) Read the entire documentation for a language, front to back. And it's going to be ruby. First the core: www.ruby-doc.org/core-2.1.0/ Then the library: www.ruby-doc.org/stdlib-2.1.0/ It won't make any sense at first, so read it again. Repeat until you think you could create whatever you wanted, in Ruby, provided you had those references in hand.

3) Do not spend another second entertaining thoughts that your code sucks or something. If you have time to think about such things, you have time to read.

4) Don't create side projects until you're confident that you can complete them, since fear of failure is too great an obstacle. Instead, make it a priority to read programming blogs. Don't say they don't make sense, it's irrelevant. Again, this is changing the internal language of your brain and setting you up for sudden "aha" moments later (trust me).

5) Don't waste time considering the relative merits of languages/frameworks. I just gave you a language: Ruby. Use rails. Don't be persuaded otherwise until you are equipped to make a decision for yourself (I'm really not yet either). Ten other people would give you ten other starting recommendations, and all of them are grand. But someone has to make the call, so I'm making it.

6) Don't not program. If you have spare time, literally writing hello world over and over is better than not programming.

7) This is going to suck. Everything about it will suck. Your code... will suck. But you don't have the luxury to acknowledge that fact. Doing so means instant defeat. 90% of getting anywhere is convincing yourself that you are incapable of failure, like some kind of superhuman coding god. If you can shut out all mental opposition to your success, you will get there much faster.

Oh, and your boss can suck a bag of skittles. Don't listen to that jerk, (s)he wants to keep you from realizing your true potential and going elsewhere, because whatever kind of hellish whipping-boy type development role you've had the misfortune of getting stuck in is going to be hard to fill.


> 6) Don't not program. If you have spare time, literally writing hello world over and over is better than not programming.

I humbly disagree. If you're writing the same thing over and over, your mind is probably stuck in some pointless loop. Why not do something else like going for a jog until you cant think any more?


That's actually great advice. Exercise + changing your environment will help get creativity flowing. But that's all outlined in tons of confreaks videos.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: