DEV Community

[Comment from a deleted post]
Collapse
 
autoferrit profile image
Shawn McElroy

In my experience, there a few things all good programmers do, or have done:

  • Always allocate time to learn something new.
  • Don't reinvent the wheel. If you want to make a deep impact, build on the shoulders of Giants before you and improve things. New and unique ideas are rare and don't always succeed.
  • Try new and unique ideas. They will likely not come to fruition, but it's more of a learning experience than anything else.
  • Soft skills.probably one of the most important things to pick up. Learn how to communicate ideas like people are 5 to fellow programmers, designers, or sales. Learn to write well and convey ideas. Learn the difference between different software design patterns. Why we change over time. Waterfall vs agile is a good example.
  • Community. Whether working on open or closed source, invest in you local and online community. Go to local meetups or events. Network. Join online communities where you can learn from others, and teach.
  • Teach. Learn to teach what you learn along the way. A great way to do this is to blog about it. Take what you have learned, and package it up as a small tutorial or article. It will help many skills tondo so and you will learn much more. The more you learn, the less you know.

As for learning languages. Just learn ones that look interesting. Over time you will learn what kind of languages and what styles you like. Find one, and learn it well. Build something in it that you can use in day to day life. A tool or something. Post it on GitHub or gitlab. Share it. Make something else. The more things you make the better you will get. Learn to hone your skills and be a master. Once you master it, you will start enjoying it more and be recognized for your abilities. Which helps when you network.

The point is to just pick one and learn it and go.

At some point I would also suggest learning a low level language. A long time ago I learned C# while at work and I had a far better understanding on how things work. Currently my favorite is Rust. I loved erlang too. I've also used node, python, php, and a couple others.

This article also has great advice on skill mastery, happiness, and more.