Hacker News new | ask | show | jobs
by xealgo 3342 days ago
I for one will often (and usually naturally) befriend the most talented developers I work with. Talking code often and bouncing ideas off of them will really help you see where you're lacking or where you can improve.

Learning new languages and different paradigms can also play a huge role in how you approach future problems. Go to glot.io and play around with a handful of languages you've never touched.

Read up on various best practices and style guides. Read blogs on architecture, design patterns, etc. I read probably 5-10 hacker news articles daily, but I also watch many videos on youtube such as pretty much anything by Martin Fowler, Rob Pike or any of the other greats.

Code stuff outside of your comfort zone. If you're a web developer, try writing some games. If you're a game developer, write a web server or a blazing fast load balancer that handles TCP/UDP sockets and HTTP. I code random shit all of the time just to gain some exposure even if I'm never likely to do related work in the future. I probably have a few dozen Go programs I've developed just because I was curious how something worked.

I've been programming for over 17 years starting with C++ when I was 13. Over the years, I've developed stuff in C/C++, Python, Ruby, Lua, C#, Java, JS, TypeScript, SQL, Dart and Go for the past 3 years. Each language has given me new insights in how to tackle problems that knowing say just C++ alone would not have lead me to.

TLDR: Exposure!!, Books, Blogs and LOTS of bouncing ideas off of other developers.

2 comments

I'm not sure that this is the way. It's much easier to get a small amount of knowledge about a lot of topics. If you want to be a generalist then that's great, otherwise, I think it's important to keep asking yourself "How can I drill deeper?"

This is specifically regarding the third point; I agree with the first two!

The OP mentioned architecture - it helps to be a bit of a generalist to learn architecture, as you need to understand different kinds of problems.
I agree -- Being curious is a great way to improve yourself. Can you please recommend to me blogs on architecture and design patterns?