Hacker News new | ask | show | jobs
ASK HN: How can an okay developer become a great developer?
9 points by neversorry 3380 days ago
Hi, I used to be a developer until a few years ago when I moved into a DevOps role. This new role required me to learn multiple technologies, cloud platforms, automation, etc. Slowly it led me to an engineering manager role.

Though I have been doing very well as a lead/manager and as the devops guy who wears many hats, I realize that I was never a great developer. I can get things done but the solutions I build are not very elegant.

This was fine until now. Due to the monotonous nature of the work and some issues at the workplace, I decided to look for a change. I interviewed at two places and both gave me a take-home challenge. I did both and also did some troubleshooting stuff pretty quickly. However, I got rejected. I feel that this was due to the lack of elegance in my solution.

I would like to be a developer again and I want to be very good at it. With all my DevOps, cloud platforms, DBs like Hadoop, Kafka, Cassandra, MongoDB etc., I believe I can be a very good addition to a team if only I could code better.

Can you suggest how I can bring my programming skills to the next level? I can look at code and understand things. I have the basics in line. I understand OOM and functional programming. I can code small assignments in multiple languages. What I need is to be able to write awesome code myself. How should I go about it? How can I work on it in a way that it comes naturally to me?

Thanks for your inputs.

4 comments

Write more code. Scratch your own itches. Make small projects that you throw-away or rewrite every so often just for fun. When you get stuck, really try learn why that stack overflow answer works instead of just copy pasting it in. Experiment with different languages and approaches to solving problems.
I disagree. Writing more code without direction is like exercising with bad form - it only further reinforces bad form.

My advice: pick up a design patterns book and work your way through it. Pick a problem (i.e. how to design Slack) and go through the various design approaches and identify the pros and cons of each.

Maybe your assumption about why you got rejected is wrong. 2 places is very few.

I don't think anybody ever feels great about their code. One way you can bypass that is to work on fundamental/hard stuff where getting the thing done is going to make you proud of yourself.

Read code, write code, have a mentor, have a lot of users. Big programs, small programs, lots of data, high level, low level. It'll only take about 20 years and you'll still think you have a lot to learn.
The Robert C. Martin work is a very good start. videos here: https://cleancoders.com/ and you can look for books too.
Thanks.