Live data from Hacker News

What does it take to be a good programmer?

dimitrov2k.wordpress.com

41–50 of 116 posts

Re: What does it take to be a good programmer?

#41

My personal advice would be to follow the Ira Glass quote: > Nobody tells this to people who are beginners, I wish someone told me. All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still kil…

> And, while doing so, pay attention to how you feel.

Absolutely. Excellent point.

Re: What does it take to be a good programmer?

#42
Personally I think the most important thing is a thirst for knowledge. There are plenty of people I finished school with that were much better engineers than me out of school, but they don't learn in their free time and they've stagnated. If you love to learn and you put your time into it, you will continually improve. With time you will run laps around those who don't.

Re: What does it take to be a good programmer?

#43

My personal advice would be to follow the Ira Glass quote: > Nobody tells this to people who are beginners, I wish someone told me. All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still kil…

The source is "Ira Glass on Storytelling".

https://www.youtube.com/watch?v=X2wLP0izeJE

Re: What does it take to be a good programmer?

#44

> I divide and conquer and get things done. I had the same insight after many years like the author - that every problem you do can be broken down into smaller problems, which can be worked independently and tested independently. Why it wasn't obvious to me early-on I have no idea. I guess I never developed the intuition to see the efficiency of the method. Did anyone else among you had the same experience?

I agree, but I have an alternate intuition. Humans are only able to understand anything through decomposition to smaller problems, working out those problems, then recomposing to a whole again. This is evident not just in software development, but in everything.

At some point you have to ask yourself: If this "decomposition" hammer is the only tool we have to use in the world, it's no surprise that everything looks like a nail.

Re: What does it take to be a good programmer?

#45
I'm training my nephew, he's living with me while going to college in the philadelphia. He's been getting really frustrated hearing platitudes like this from his professors.

I've basically been mentoring him and having him read https://github.com/braydie/HowToBeAProgrammer , Comp Science with Python, and a couple books on linux and C to help with some lower level stuff.

He's been struggling a lot with C and Linux concepts. I've been there to help, and now I have strong opinion C and Linux would make a lot of programmers have a better understanding of their programs and computers.

Re: What does it take to be a good programmer?

#46

My personal advice would be to follow the Ira Glass quote: > Nobody tells this to people who are beginners, I wish someone told me. All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still kil…

[deleted]

Re: What does it take to be a good programmer?

#47
post #11

"Write unit tests, they could prove to be invaluable, especially when you introduce changes to your codebase." I always read this... What exactly is a unit test? What parts of my software should be tested? What are some examples of good unit tests and the code that is tested?

It is just an automated test of a piece of code, normally of a function. Personally I prefer to write automated systems test. i.e. Tests that test the entire system. For example: A test that plays every single level of your game.

Re: What does it take to be a good programmer?

#48
post #22

Earlier quoted context omitted.

No, abc_lisper is describing decomposition of the problem. That may or may not be implemented in a TDD environment; it may not even involve tests at all.

abc_lisper specifically said: "every problem you do can be broken down into smaller problems, which can be worked independently and tested independently". Unless you delete or ignore "and tested" from that post, abc_lisper 's approach definitely involves tests.

Testing does not automatically imply automated tests.

I do break down problems and follow the same kind of process, yet my goal is less automated testing than it is raw flexibility, ability to recombine pieces of code at will and move fast.

Chasing automated tests, even if it supposedly yields this kind of composite constructs is in my opinion taking an interesting side-effect of good craft for an end in itself.

Then of course, saying the code can be tested in isolation doesn't imply coding is driven by tests.

TDD, in my opinion, like all idols in the history of cults is, as an end, the dawn of critical thinking and progress.

Re: What does it take to be a good programmer?

#49
post #4

Earlier quoted context omitted.

You are essentially describing 'test driven development', and many of us have either been taught the methodology, or stumbled on to it.[1] [1] https://en.wikipedia.org/wiki/Test-driven_development

No, abc_lisper is describing decomposition of the problem. That may or may not be implemented in a TDD environment; it may not even involve tests at all.

I agree decomposing and testing go hand-in-hand, but it wasn't even apparent to me decomposition is the way to go. I guess I didn't know it is possible to design solutions to problems while breaking them down. Btw, I discovered (He hee) testing of modules independently very shortly after I found out about decomposing.

Re: What does it take to be a good programmer?

#50

> I divide and conquer and get things done. I had the same insight after many years like the author - that every problem you do can be broken down into smaller problems, which can be worked independently and tested independently. Why it wasn't obvious to me early-on I have no idea. I guess I never developed the intuition to see the efficiency of the method. Did anyone else among you had the same experience?

I remember early on in my programming education having subroutines pounded into my head. I learned them grudgingly, because nothing that I'd written so far was complex enough to need them. It was always simpler to just write my Things got more complex. Named subroutines started seeming logical to encapsulate certain behaviors. Eventually, it became natural to think "I wish this part of the program were separated out and implemented elsewhere, so that I could treat it as a solved problem." That's about the point where a divide-and-conquer approach started occurring to me, at least in a limited context. That context expanded over time.
Post reply on HN