3 answers
Updated
Nicole’s Answer
Hi Myo Min! Thanks for this great question!
Being a good programmer comes with many layers of understanding. Do your best to learn different programming languages and give yourself time to practice, make errors and learn from your mistakes. There is no shortage of websites, books, youtube videos and other resources that can help you learn the technical parts of being a programmer.
In my opinion, the BEST programmers are also excellent listeners. This may sound a little weird...but I have found this to be true. When a programmer who understands not only the programming language and platform that is needed to complete a task or project...when a programmer understands those fundamental things AND what the task is for, who it is for, why it matters...when a programmer takes the time to ask these types of questions and incorporates those answers into their design and logic...these, in my view, are what makes not just a good but a GREAT programmer.
People that programmers work with or work for will appreciate output that is customized to the needs of the project and/or task. More often than not, in order for a programmer to design this way, the programmer needs to ask and then listen to why the project is needed, what problem is the project and/or task intended to solve. And then design something that can contribute to successful results.
As I mentioned above, do your best to learn as many programming languages as you can because this will only serve to build your toolkit of knowledge. But be sure to build good listening skills as well.
I hope you find this answer helpful. Best of luck to you!
Being a good programmer comes with many layers of understanding. Do your best to learn different programming languages and give yourself time to practice, make errors and learn from your mistakes. There is no shortage of websites, books, youtube videos and other resources that can help you learn the technical parts of being a programmer.
In my opinion, the BEST programmers are also excellent listeners. This may sound a little weird...but I have found this to be true. When a programmer who understands not only the programming language and platform that is needed to complete a task or project...when a programmer understands those fundamental things AND what the task is for, who it is for, why it matters...when a programmer takes the time to ask these types of questions and incorporates those answers into their design and logic...these, in my view, are what makes not just a good but a GREAT programmer.
People that programmers work with or work for will appreciate output that is customized to the needs of the project and/or task. More often than not, in order for a programmer to design this way, the programmer needs to ask and then listen to why the project is needed, what problem is the project and/or task intended to solve. And then design something that can contribute to successful results.
As I mentioned above, do your best to learn as many programming languages as you can because this will only serve to build your toolkit of knowledge. But be sure to build good listening skills as well.
I hope you find this answer helpful. Best of luck to you!
Updated
Joshua’s Answer
Hi Miyo,
I'm very glad to see that you're interested in becoming good at programming. Good programmers shine, so you have a great goal to start.
I recommend practicing, following GitHub projects, being creative, and establishing connections with the community.
Understand the history of programming. Begin to be able to read a wide number of languages, even if you couldn't sit down and write code.
There's the "wisdom of the ancients". Know who they are and how they've shaped and continue to shape the field. Good examples are Martin Fowler and the "Gang of Four". If you're interested in DevOps, that's Gene Kim and Jez Humble. Know who Dennis Ritchie, Ken Thompson, and Brian Kernighan are. Know Bjarne Stroustrup and Anders Hejlsberg.
Understand Lisp and how it relates to other things such as Lua.
Understand Open source concepts such as code repositories and how to review them.
Understand and utilize branching and source code management.
Understand CI/CD and how it relates to the developer's processes.
I'm very glad to see that you're interested in becoming good at programming. Good programmers shine, so you have a great goal to start.
I recommend practicing, following GitHub projects, being creative, and establishing connections with the community.
Understand the history of programming. Begin to be able to read a wide number of languages, even if you couldn't sit down and write code.
There's the "wisdom of the ancients". Know who they are and how they've shaped and continue to shape the field. Good examples are Martin Fowler and the "Gang of Four". If you're interested in DevOps, that's Gene Kim and Jez Humble. Know who Dennis Ritchie, Ken Thompson, and Brian Kernighan are. Know Bjarne Stroustrup and Anders Hejlsberg.
Understand Lisp and how it relates to other things such as Lua.
Understand Open source concepts such as code repositories and how to review them.
Understand and utilize branching and source code management.
Understand CI/CD and how it relates to the developer's processes.
Updated
Tony’s Answer
“We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.”
-- Larry Wall
Why is this such a great quote? Let's break it down.
Lazy programmers are better because they do the minimum needed, taking advantage of available AI and automation to help get it done. If you haven't checked out the AI capabilities to generate text or code, try Microsoft Bing or Google Bard. Bad programmers go the extra distance, what we call "Boiling the ocean", often completely unnecessary and causes delays in getting things done. Bad programmers are perfectionists, never happy with what they have done so far, and feel they can spend more time to make it slightly better. Perfectionists don't last long at many companies.
Impatient programmers are better for similar reasons. If there is a quick way to do something, it is better than a slower way to do it.
Hubris refers to programmers with a sense of their own importance or abilities. Bad programmers doubt their work, doubt their testing, doubt their design, doubt their documentation, and doubt their approach. I had one co-worker that doubter her work so much that she asked other people to look over her shoulder while she typed, so that we could correct her on-the-spot. Finally, I told the manager that this "oversight" was causing everyone else to work 2-3 hours overtime every day, and she was let go.
Check out AI capabilities of Microsoft Bing and/or Google Bard
Take the Myers-Briggs personality test. Some personalities are better fit to be good programmers.
-- Larry Wall
Why is this such a great quote? Let's break it down.
Lazy programmers are better because they do the minimum needed, taking advantage of available AI and automation to help get it done. If you haven't checked out the AI capabilities to generate text or code, try Microsoft Bing or Google Bard. Bad programmers go the extra distance, what we call "Boiling the ocean", often completely unnecessary and causes delays in getting things done. Bad programmers are perfectionists, never happy with what they have done so far, and feel they can spend more time to make it slightly better. Perfectionists don't last long at many companies.
Impatient programmers are better for similar reasons. If there is a quick way to do something, it is better than a slower way to do it.
Hubris refers to programmers with a sense of their own importance or abilities. Bad programmers doubt their work, doubt their testing, doubt their design, doubt their documentation, and doubt their approach. I had one co-worker that doubter her work so much that she asked other people to look over her shoulder while she typed, so that we could correct her on-the-spot. Finally, I told the manager that this "oversight" was causing everyone else to work 2-3 hours overtime every day, and she was let go.
Tony recommends the following next steps: