1. Have fun (AKA If you aren’t having fun you’re probably doing it wrong)
- Figure out what you’re passionate about
- Ask yourself, “What problem am I trying to solve?”
- Build things for fun [and show other people!]
- Domain vs Technical knowledge: you can apply tech knowledge to any domain you’re interested in
- It’s ok if you change your mind
2. Ignore the haters
- Don’t be too hard on yourself
- Appreciate supportive people around you: classmates, teachers, friendly Internet strangers on stack-overflow
- People who know more than you are not necessarily smarter than you
- Be supportive of others (aka don’t be a hater)
- Teach, blog, explain hard things to other people, speak at events. BTW describing technology is a way to solidify concepts and also great interview practice
3. Accept that you’ll never know everything (even if you think you do)
- Good developers keep learning
- Programming doesn’t happen in a vacuum. Eventually, you’re going to need more to make whatever you’re working on —like Git, SQL, Javascript, etc… And the tools will keep on changing
- The more advanced you get, the more you’ll need to learn—like, if you’re interested in mobile development, you’ll probably need to learn Swift or Java; or if you’re interested in embedded systems, you’ll need to do a bit of C programming
- Grades are important in school, but not as important as what you learned or knowing where you can improve; after you get your first job outside of college, nobody asks about your grades anymore
- Practice — it’s the only way to get better at anything
4. Learn where to find answers
- There are tons of resources online: courses, tech blogs, forums, Github
- IRL help: having a mentor really helps
- Go to Meetups, conferences, hackathons, attend talks at your school/university
- Reach out to developers you admire, even if you’re intimidated or you think they might be too busy to give you advice
- When you’re stuck, as for help
5. Challenge yourself
- Outside your comfort-zone is the learning-zone
- Take interesting hard classes
- Appreciate that knowing any programming at all means that you already know more than most, don’t take for granted what you have learned
- Surround yourself with people who are better programmers than you
- There are going to be a lot of really tough, frustrating moments as you learn to code
- When something seems hard at first, break it down
- Nothing is actually too hard, it’s just a lot of easy stuff you don’t know yet, in a large messy pile