This is not your typical list of 'requirements' that make someone a good programmer. I tried to dig into human side of things and see what principles and codex rules should guide someone through coding life and relationships with others. Here are some of them I find really important and that are not valued enough.
Be considerate and down to earth
From the beginning of time, programmers have the reputation of being condescending and judgemental when it comes to their colleagues and customers. Instead of being encouraging and compliment them on the progress they made or ideas they have, we often tend to point out that one little line of code that is poorly written. And most of the time it's just a personal preference of how one should implement it.
Same goes for new technologies, frameworks and tools. Programmers judge each other based on what skills and technologies they know and use.
- Wow, you still use Angular? OMG, you should have switched to React already!
Or something along those lines.
This attitude is toxic and serves no one.
Except to feed your ego.
Be respectful towards other people's work and experience.
Help others as much as you can
Programmers should always be collaborative and help others in need. If you can't help or what they are asking is not in your area of expertise, point to someone who can help. Remember that you were once in that position.
And if you are the one who needs help, don't hesitate to ask your mentors and peers or type a question in the chat. Someone probably dealt with the same problem. Googleing and searching on stackoverflow is fine, but direct help can speed up your learning or troubleshooting process immensely.
So this kind of help is always well received. It shows you care about someone's work even though you might don't have direct benefit from it.
Realize it's ok if you don't know something
State of tools and technologies in front-end web development
There is a big misconception among programmers that, in order to be a good one, you have to know everything.
New tool comes out and everyone's all the sudden chasing this shiny object thinking it's necessary to learn it right away. The truth is, in most cases you can rely on the skills you already possess. Yes, you can absolutely still use Gulp even though Webpack is becoming 'next big thing'. It's ok if you don't implement test-driven development or use Docker for continuous deployment.
Get comfortable admitting you don't know something. Don't mind the people who will judge you. It's humanly impossible to know it all.
That doesn't mean you shouldn't strive to be on top of your game. But do it in a healthy way, because you're really interested in something, or you like the concept of the new framework. Not to please anyone or prove your worth.
No need to memorize everything
Instead of trying to memorize every little syntax rule out there learn how to find it quickly. For every library and framework there is probably a nice written documentation you can look into.
So allocate your resources wisely. Don't overload your brain supplies by remembering these unimportant things you can find in fifteen seconds by typing in Google. It's a waste of precious time and energy.
You don't have to write the perfect code all the time
Think of your editor as a playground. You can always try out stuff, tweak them, make it better, but don't dwell on it until it's 'perfect'. Since the possibility to break your whole system is minimal, you can always go back to your previous version and start again.
If programming history has ever thought us anything it's that you'll always look at the code you wrote six months or a year ago with a bit of shame or just laugh at it.
- "Did I actually wrote this?! Wow!!"
But that's the natural process. As you evolve and learn new tricks and how to implement smarter design patterns, so your code will look better and better.
Just don't get stuck writing a block of code for days or weeks trying to make it perfect.
Learn the debugging process
Just as writing code, it's equally important to know how to debug it. Troubleshooting annoying errors and becoming a problem solver can be tricky, especially if you are just starting out. You might be overwhelmed by all the technical details and steps.
Don't freak out. Debugging does get easier over time.
Share your code with others
Yes, some people will immediately judge you based on your code.
Let them.
Whether the responses are good or bad, don't take it too personally. Show your current skills and enjoy the process of collaboration. You'll get a lot of pleasure when someone finds your code useful for their project.
Get involved in open source.
Find interesting plugins and projects on Github and learn from them. Applaud the authors for the amazing work they've done.
You don't have to code all day every day
When a regular person imagines a programmer he's probably a shy, awkward nerd, sitting in his apartment all day and night, living and breathing code. I'll let you decide how accurate this assumption is, but let's just say this lifestyle can be tempting or even sounding normal.
Even though writing code is fun (it was never about the money, right?), don't narrow yourself only on your code. Have life, be interested in other industries. Have other hobbies. Take lessons you learned from these other areas of life and apply them to programming.
Use your interests to make something awesome and creative with your code, something that will benefit to thousands of people. That's the whole point after all. Writing all these pieces of code and combining them into the big puzzle. Like a poet or an artist, knowing that your product is tangible and of value to others.