Live data from Hacker News

Confessions of an Intermediate Programmer

michaelbromley.co.uk

11–20 of 118 posts

Re: Confessions of an Intermediate Programmer

#11
post #7
post #5

Earlier quoted context omitted.

It's funny, as a kid I can remember thinking: "Right, everything has to go in the main function unless absolutely necessary, it will just be easier to read that way." Nowadays, it's the exact opposite!

My code changed in a similar way, however I recently devolved. I've mostly worked with higher level languages, and recently delved back into C. I had forgotten what a complete pain in the ass it is to pass complex data structures around between functions. I'm a bit ashamed to admit my functions got pretty damn beefy real quick.

Don't worry, you can do this in C# or Python as well. Just structure your small, gradually growing proof-of-concept and soon-to-be-finished-product program correctly. No classes! Or at the very least a few monolithic ones, which cannot be instantiated. Use static methods whenever possible. I have never ever ever done this.

(I am getting ready to write an essay titled "Confessions of a Shitty Programmer").

Re: Confessions of an Intermediate Programmer

#12
I found this so striking in part because of recent events: Mark Karpeles's mother defending him as a genius, Karpeles not delegating coding to experienced developers and focusing on being a CEO, the leaked PHP MtGox code...

Re: Confessions of an Intermediate Programmer

#13
post #12

I found this so striking in part because of recent events: Mark Karpeles's mother defending him as a genius, Karpeles not delegating coding to experienced developers and focusing on being a CEO, the leaked PHP MtGox code...

The bit of leaked PHP code I saw seemed to be reasonably structured?

Now, I wouldn't necessarily use PHP for this sort of work, but...

Re: Confessions of an Intermediate Programmer

#14
For me the thing I had to learn was commenting more than anything else; working alone I never saw as much use for it. Then I worked with a guy that commented his code very well and suddenly I saw massive value in it.

I'm definitely still an intermediate programmer, but I think I was always fine admitting that to myself. It was getting over the fear of others reading and modifying my code that took me a while.

Re: Confessions of an Intermediate Programmer

#15
I agree with the other commenters here. This is part of your development. Yes, it could've possibly be avoided if you had a CS background or worked alongside other developers. But it's normal.

When I was still in high school I "invented" inheritance in PHP. I put one function per file, and used the include search path. When I discovered OO later I realized what I had done.

It happens :)

Re: Confessions of an Intermediate Programmer

#17

For me the thing I had to learn was commenting more than anything else; working alone I never saw as much use for it. Then I worked with a guy that commented his code very well and suddenly I saw massive value in it. I'm definitely still an intermediate programmer, but I think I was always fine admitting that to myself. It was getting over the fear of others reading and modifying my code that took me a while.

I totally agree. When I first started programming my comments largely echo'd the code, so I saw them as less valuable. Now I'm able to stand back from the code and write comments that reflect the "why", and let the code do the talking for the "what / how".

I see this a lot where the more experienced someone is the more they comment, but also where the comments are higher quality.

Re: Confessions of an Intermediate Programmer

#19

What are the best ways to get better?

Good question...

I've worked on enterprise software and people in the company thought of me as one of the better programmers there, but when I do open-source stuff I feel like an imbecile.

I quit my job and wanted to learn and get better, but I don't know how to start.

Re: Confessions of an Intermediate Programmer

#20
post #18

What are the best ways to get better?

write more code. regret it.

In addition to this, reading and being able to understand other people's code will provide great returns. You learn about styling, coding standards, architecture, patterns, etc that you might have never stumbled upon if you attempted to code everything yourself.
Post reply on HN