Hacker News new | ask | show | jobs
by neilv 1690 days ago
SICP is great, and worth going through, for a better foundation in some ways. (You can use Racket for SICP exercises: https://pkgs.racket-lang.org/package/sicp )

But IMHO the highest-value things you can do to become a better software developer are to simply practice software development of various kinds. Work on software development in a company, contribute to open source projects, do little personal side projects (that ideally you polish up with quality and documentation, so that other people can use/extend them, or sometimes move on because opportunity cost), etc. Experiment with styles, technical approaches, etc.

When you can, work on things you want to work on, and let your needs and curiosity there guide what you spend time learning and practicing.

When you really have to grind Leetcode for interview theatre reasons, it's not entirely without learning value, but it has very little to do with real-world software development. So don't waste all your time on Leetcode. Pass the interviews you want to pass, but otherwise spend your time on more substantial and rewarding things. IMHO.

1 comments

> the highest-value things you can do to become a better software developer are to simply practice software development of various kinds. Work on software development in a company

As it stands, I just don't think I'm competent enough to get hired at a quality company. I've worked at a bad company in a different industry and quit because I was being taught to be a manager from hell, and it was beginning to take despite my contrary intentions.

I'm 30 and making a career change, so I'd like to start somewhere I'll pick up good methods. I'd also like to be able to recognize that kind of place. Both depend on a base-level of competence.

I am putting together a CRUD app for a purpose I'm excited about, but I just reeeally feel like I'm flying blind and keep getting stuck. Hence my pursuit of fundamentals.

I do have my eye on an open source project I'd like to contribute to once I have a little more confidence.

Working through SICP helped me a lot.

> I'd like to start somewhere I'll pick up good methods. I'd also like to be able to recognize that kind of place.

The Recurse Center is worth looking into. https://www.recurse.com/ When I studied SICP back in the 80s I had to do it on my own, but a community of fellow learners can make a real difference in what you get out of your studies and how much you keep at it.

The frameworks and tools around them tend to be mostly about learning other people's piles of bureaucracy, which might or might not be documented well.

Pretty much everyone gets overwhelmed with the bureaucracy, and people end up cargo-culting to various degrees. Don't get intimidated.

Once you find a good framework and coherent documentation for it, then one of the usual rules applies: getting good at something takes time, and it's important not to get discouraged.

If the framework community has a text chat that answers questions quickly, that can help.

Good luck, and have fun exploring.