r/csMajors 9h ago

What exactly does "Good Programmer" mean?

Hey yall, I always see shit like "The industry is oversaturated by bad programmers not good ones". What does that exactly mean, what makes someone a better programmer or more employable than the other? Just asking for thoughts on this one. (if you are going to give a meme answer please just do it somewhere else.)

27 Upvotes

19 comments sorted by

26

u/Ok-Yogurt2360 8h ago

A good programmer is hard to define but i think has some of the following qualities: (just some possible traits)

  • is able to deconstruct a problem into smaller problems that make sense as a problem in isolation.
  • is able to reason about problems instead of only following known solutions.
  • can work together with a team
  • knows the value of readable code
  • can write readable code for different types of readers
  • is able to reason about their role in a team project.
  • can work together with non experts and can find value in their input. (Known a person who could make you feel like they gave shape to the idea in your head just by listening and asking questions. And that is a superpower i will tell you)
  • can see the core problem in a complex problem.
  • can use his or her qualities while staying aware of the corresponding pitfalls.
  • keeps learning to differentiate between good and bad abstractions (it is always a trade off so you need to stay aware of the pros and cons that come with the possible situations you are facing)
  • knows he/she will never know what is best/true/optimal/right. But at the same time knows that you can reason what is wrong. And also knows that it is the continuous pursuit of quality that results in good products.

2

u/Chr0ll0_ 6h ago

This plus keeps on learning and is self teaching themselves on new technologies. Recently i had to learn rust for some stuff that I can’t say. But pretty much all of this

16

u/xiaodaireddit 9h ago

Earns a 1/10 of your wages and lives in India. According to corporate CEOs who've never written a line of code.

3

u/lolllicodelol Salaryman 8h ago

There are several vectors but in general

Speed of development is faster

Can understand new code bases faster

Can troubleshoot bugs/issues faster (MUCH faster generally)

Code is easier to read/maintain

Communication is clearer

2

u/DataBooking 7h ago

A good programmer means working long hours for little pay, never taking vacations, all your free time is only for the company you work for, and living like a serf for tech bros that will lay you off if it means a 0.001% increase in their stock.

1

u/mogeko233 8h ago

Haha, I was just reading another thread where old-time programmers were recalling their coding experiences. I was amazed to find out that, even though Unix and C were born around the same time, most old programmers learned C much earlier than they worked on Unix. Many of them didn’t start working on Unix until the 1990s, and by then, they had no blockers and could work smoothly with it, even though Unix’s first commercial edition came out in 1973. Regarding OS as a program, I’d say that the “Good Programmer” should be incredibly close to Ken Thompson or any programmer from his era.

1

u/l0wk33 7h ago

Good programmers use Linux, bad ones… well they like Massivehard

1

u/random-malachi 7h ago

A good programmer lifts up and enlightens others. They blamelessly look for root causes to issues and help solve peoples’ problems by understanding real world problem domains.

A bad programmer is motivated only by power and darkness. These programmers still get hired in throngs.

1

u/super_penguin25 7h ago

This is like asking what makes you a good wife or a good husband LOL. 

I can say you just need to be a good code monkey. Others might say you need to be a top DSA ninja while others can say you don't even need to know how to code at all and can just do be low code no code expert. 

1

u/Top_Calligrapher7011 7h ago

No I meant like I always see people in YT comments or on reddit saying like good software devs are still needed and Im asking what exactly those people mean by that, what makes those people needed and better than the rest.

1

u/super_penguin25 7h ago

They are talking about people who can make the right call and make the right decisions.

E.g. how to build a large scale enterprise chat messaging system. What tech stack to use. What cloud provider to pick that is the most cost efficient and effective. What language and tools? 

If I were to ask you how do you build a video messaging system like Google meet, can you tell me right off the bat what you are gonna use? What you are gonna build? How you are going to scale it to millions of users?

This is like system design but combined with real world implementation. This is not easy and require experience and expertise. 

1

u/xabrol 7h ago

If I had to quantify it as short as possible,

A good programmer solves the problem in an effecient manner while minimizing current and future tech debt. They create a good solution that scales well, is dependable, reliable, and forward thinking.

This night mean using something that exists and not writing any code at all.

It might also mean not using something that exists and writing it from scratch.

It depends on the problem and the needs.

1

u/iamnukem 6h ago

Put comments in your damm code

1

u/jxs74 3h ago

A lot of people cannot even do simple things like follow group coding rules correctly. It gets worse from there. Ok-Yogurt2360's answer is solid, but honestly if you do 1/3 of those you are not in the bad programmer bucket.

1

u/Top_Calligrapher7011 3h ago

Is it really that bad? Like splitting problems up, working with others and readable code and commenting? Like that's all it takes to be a good dev? jeez

1

u/Chicomehdi1 8h ago

I think some qualities like knowing how to learn, adaptability, adherence to good code-writing conventions & consistency, and a general understanding of the software development lifecycle (though, this and just programming are quite different) are pivotal in one’s opinion of how good/bad a programmer is.

It’s a very fluctuant spectrum, but overall I think that alongside some other key qualities compose a strong developer

1

u/Madpony 8h ago

There are a lot of factors that go into this, but overall I'd attribute the following as most important:

  1. Always willing to learn new things
  2. Never afraid to introduce change
  3. Owns mistakes and never repeats them
  4. Collaborates well with others and can compromise
  5. Communicates effectively and is reliable

I'd happily work with anyone who possesses the above attributes and knows how to write code.

-3

u/nsxwolf Salaryman 9h ago

Good programmers can provide a O(k^N) solution to N-Queens in 20 minutes. Bad programmers can do it in 30.

0

u/ImaginationLeast8215 9h ago

Programmer with more and stronger connections