Ask HN: Any advice for success you would give to a Software Developer intern?
I just started a developer internship a while ago. I am doing fine. My colleagues and mentor and manager all say that I am doing good and that I am meeting expectations fairly well.
However, I would like to go above and beyond and aspire to become a rockstar intern that they will remember fondly of as a contributor.
Any advice towards that end?
I'd go straight to the team that you are interested to work in but can't because of skill issues, and ask to work in, ofc if your manager agrees.
Read books. Like, a lot of them.
Start with Make It Stick (Brown et al.). Apply what this book teaches you to every one afterwards.
Next, read and work through Exercises for Programmers (Hogan) and A Common Sense Guide to Data Structures and Algorithms (Wengrow).
After you finish those two, read The Missing README (Riccomini et al.) and Extreme Programming Explained (Beck et al.). These two books provide very different viewpoints into the stuff that isn’t coding in a programming job.
Assuming you’re using an OO language, follow that up with Object-Oriented Analysis and Design with Applications (Booch et al.) and Object Thinking. They contrast each other quite a bit; having both perspectives is handy.
Once you’re through all those, I recommend Tidy First (Beck), Implementation Patterns (Beck), and Test-Driven Development By Example (Beck). These three books of his provide an incredibly accessible view into better ways to code.
If you’re anything like me you get bored reading one book for too long. I’ve found that having a second book going that I can switch to is great for that. A parallel track with The Pattern On the Stone (Hillis), The Pragmatic Programmer (Thomas & Hunt), The Mythical Man-Month (Brooks), and How Computers Really Work (Justice) provides a reprieve and some technical and cultural context.
Why start with Make it Stick? What makes it worth being at the top of your stack? I’m curious, thanks for the great comment.
It teaches you specific, actionable tactics for learning. If you put them into practice, you’ll learn better and remember more from every other book.
Look to your peers as the ultimate litmus test of capability and velocity. Shitty peers mean you are in a line of work that has little or no future for technical growth.
Here is a checklist of things to look for:
* cannot differentiate their products needs or priorities from their personal needs
* cannot measure things
* fears writing original software
* cannot write documentation
* cannot write emails
* cannot do work outside of a highly specific tech stack
Whatever you do, always do it on a branch!
Talk to your mentor.
Talk to your coworkers.
Relationships are the key difference between rockstars and bar bands.
meeting expectations fairly well
The “fairly well” is probably a good place to start listening.
Good luck.
Don't try to be a rockstar. You don't know what you're doing, so just ask questions and don't act smarter than you are.
How do you reflect on how smart you are though? I am trying to strike a balance between not overestimating vs not underestimating myself. I find that if I do the latter, I pass on opportunities.(Like asking if I can volunteer for some task)
It just doesn't really matter. Ask questions, and get your work done. If you're getting your work done well, and quickly then ask what else you can do.