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

Like everyone else here? I hate to burst your bubble but the vast majority of the programmers here are not nearly even close to as good as you think they are. Mostly they're good at talking like they are and memorizing obscure facts about computer science. The reality is that everyone who codes pretty much sucks at it or they get lucky a couple times and do something significant.

The same goes for painters, musicians, poets, writers, anyone that you think is "good" is actually just someone who found their thing and hammered the hell out of it until they squeezed out a handful of really good works if they're lucky. What you don't see is the massive pile of absolute garbage most of these people produce and keep from the public's eye. I think the defining characteristic of someone who's actually good at a creative activity is whether they can admit this and get past it as just part of creating.

So, instead of saying how can you be like all of these guys, how about how can you just improve your own skills? Since everyone sucks at this to some degree or another, all that really matters is how you improve what you do and get better at it. Ultimately, that just takes hard work, study, and trying to find any tricks and hacks that are being kept from you.

As an example, I'm teaching myself to paint and I suck at it, but I don't give a shit if I suck at it, I enjoy it. So for the last almost month I have been painting the walls of a box over and over again until I learn how to do it right. It's fun, I like it, and I don't care if other people are better at it than me because I'm finding my thing and I keep improving because I keep working at it and failing until I get it right.



This surely depends on your own personal definition of good.

It's useful to have a definition of good that allows people to feel confident about their experience and good about themselves because feeling this way helps to engage them further in the practice.

What you actually just did was entered a group conversation to tell almost everybody there that they are bad programmers before doing a humility display for everybody to see.

When I think of the steady progression from apprentice to journeyman to master, I feel that what is good is the progression, and what is bad is anything that stops the progression: lack of confidence, over-confidence, or the kind of severe lack of ability that causes people to be rejected from a market before they are ready to compete in it.

I've gotten the feeling that you are quite confident so while it's great that you are dialling back any arrogance and concentrating on continuing to learn I wouldn't say that it's necessarily healthy for everybody in tech to raise what they consider "good" to be top-1% of Google R&D as this could just serve to stop them from even trying.


"What you actually just did was entered a group conversation to tell almost everybody there that they are bad programmers before doing a humility display for everybody to see."

No, I was talking to the person who asked the question, not you, so I didn't "enter a group conversation". Yes, I did say most programmers are bad programmers because that's definitely the case, and that's the case in every single creative or technical discipline humans do. To say otherwise is nothing but pandering to the people posting here and does nothing to improve the education of people trying to learn.

What does improve their education is to show the reality of programming, which is that it's hard and most everyone sucks at it, but that you can improve, and that's why it's also fun to do. This is only a demoralizing belief if you're arrogant enough to think that you're better than everyone else. Real practitioners admit that they're barely capable most of the time and accept that they have to work hard to achieve their goals.


> No, I was talking to the person who asked the question, not you, so I didn't "enter a group conversation".

I am not a group actually so I certainly didn't just imply you were talking to me.

Additionally, this a threaded discussion board in which you are involved in a group conversation. There was already a group conversation when you joined so I think arguing that your post should be perceived as a one-to-one communication on a many-to-many platform is a bit rich.

> Yes, I did say most programmers are bad programmers because that's definitely the case, and that's the case in every single creative or technical discipline humans do.

The terms good and bad are subjective and we attach our own values to them when we use them. It is not definitely the case that almost everybody has been bad at technical disciplines unless you believe that your understanding of the boundaries between good and bad is better than everybody else's and subscribe to the utilitarian belief that there is more upside to using the term 'bad' to negatively reinforce bad work and lower people's self-esteem than to use the term good to raise people's self-esteem and positively reinforce their good work.

> To say otherwise is nothing but pandering to the people posting here and does nothing to improve the education of people trying to learn.

How certain of this are you? Have you heard of the terms "fixed mindset" and "growth mindset", did you read and disagree with the studies which show that many people exit from domains that they believe they are bad in (STEM, etc.)? Does your philosophy deny the benefits that come from the tendency towards competitive behaviour that confidence gives people?

> This is only a demoralizing belief if you're arrogant enough to think that you're better than everyone else. Real practitioners admit that they're barely capable most of the time and accept that they have to work hard to achieve their goals.

I thought it was common wisdom was that it was demoralising for most to feel that you they are bad at something.

Your description of "real practitioner" as an exclusive category of "realness" with membership rules set by yourself that by a strange coincidence also contains yourself is really funny by the way.

In reality, there are good engineers that consider themselves bad [0], average engineers that are poor, bad engineers that consider themselves average, etc. There are people that strive harder the worse they feel, there are people that strive harder the more their ego is stroked. There are great engineers that think they're barely capable of the work they do, and there are great engineers that think they are god's gift to technology. There are people that are attracted to work in which they are out-of-their-depth, as well as people that are driven away by the fear of failure.

It's really hard to say anything with certainty but I know I've met most of these people and I don't feel there's any piece of advice that works for everybody - my intuition was just that the guy at the top seemed like he needed his self-esteem raised not lowered to help with his learning. (For the record, I only responded to you directly because I felt you were contemptuous towards the arrogance of other engineers while also having decided you would be the sole objective judge of what it means to be a "real practitioner.")

[0] There are engineers working in extremely competitive work environments that contain only the top-10% of their domain and they will often forget this when they evaluate themselves. Valuing your status locally is easy, globally it is hard! Best view for me has just been: I am good at learning, I like that I try hard, I have mixed abilities but as long as I'm able to positively contribute I do not need to worry.


I'd add that blogging about programming experiences can help a lot. Because you have to formulate your thoughts and you need to do some background check before writing, the concepts are better represented in your mind than if you'd only read about it.

Writing is a very different process than reading. You start making connection between ideas and concepts when you write about them. And that's a process that makes you absorb more knowledge than you would normally absorb by only reading.


In this sense - continuously be building things. Repetition and practice are what lead to progress and mastery. However, it is not a plateau - progress requires slow growth.


I think this is the biggest thing beginners try to avoid. Especially if they're ambitious and want to be capable now.

I'm currently at the theory of becoming capable is a mixture of study, practice, and hacks. You study the things necessary, then you practice them producing results to evaluate, and then you find hacks that amplify your efforts. But, I have zero research to back this and it's just what I try to do.


i've been playing guitar for 25 years and I still am not SRV, but i do have a few good chops. I've been coding for about 8 years, and if I compared it to guitar playing, it's like playing an arpeggio, so many ways and so easy to fuck up.. but fun as hell to play!


simple answer, a lot of heroin.




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

Search: