Hindsight Is 20/20
Published: 2021-10-18 13:01:54

Are you just starting to learn how to code? How exciting! And intimidating! No matter how long we've been in this business, we're always learning something new. The Gnar team discussed what basic advice we'd offer a developer at the beginning of the journey. Here's what we came up with.

- It will probably take you two weeks to somewhat understand what you're being taught today. Don't freak out if you don't get it right away.


- Read code every day. Just put your eyeballs on it, even if you don't understand it.


- Error messages are your friend. They aren't shaming you, they are helping you target something to fix. Get comfortable reading error messages and don't be discouraged when you get them; be excited that there's a (hopefully helpful) starting point for your debugging.


- Ask all of your questions, all of the time. If the answer doesn't make sense, it doesn't mean you were wrong for asking; it might mean that the question you had needs to be examined a little bit. Take the time to compare what you THINK you need to know, what the code is telling you, and what you're certain about. There may be information available to you that can lead you in a better direction. This is a skill that coders practice all the time, because we all feel lost on occasion. The trick is to find ways to feel confident that you do (or don't!) know something. That lets you learn it.


- Use your tools. There are so many things that have been built to help you figure out what's going on in your code, and learning how to manipulate them will make it easier to learn new things and crack harder problems. Figure out how to use Inspector consoles, debugger statements, linters, editor features, terminal tricks, helper libraries, and (eventually) tests. Each language has a slightly different approach to these tools, but ultimately the goal's always the same: making the work you do easier and more enjoyable by creating ways around obstacles.


- Try to build stuff on your own even if you think you're not very good yet. Exploring and practicing are the essence of being a dev. I've made so many different variations of to-do list apps just to keep me asking productive questions.


- A large web framework essentially takes a string input and returns a different string output. Seeing a simplified example makes it easier to not be so overwhelmed by the entire framework.


- When you get right down to it, code is simple. No magic, no elves, no wizards. Things are being compared, and the result of that comparison is either True or False. Learning to code is really about learning the basics of implementing these abstract flows in your mind, and then learning how to write and read them in code, in that order. This is why it is confusing - you have to conceptualize the solution in abstract logic, then work backwards to translate it into code. You may not be able to conceptualize how to build a pyramid, but at the end of the day it's a bunch of dried mud. I bet you can conceptualize dried mud.


- YOU CAN UNDERSTAND THIS. Just give it time.


## Contributors

- [Alex Jarvis](https://github.com/orgs/TheGnarCo/people/alxjrvs)
- [Ben Olson](https://github.com/orgs/TheGnarCo/people/bikefighter)
- [Dan Frenette](https://github.com/orgs/TheGnarCo/people/danfrenette)
- [Ethan Fertsch](https://github.com/orgs/TheGnarCo/people/efertsch)
- [Nick Marshall](https://github.com/orgs/TheGnarCo/people/nialbima)
- [Tom Dyer](https://github.com/orgs/TheGnarCo/people/tdyer)
- [Will Mahoney](https://github.com/orgs/TheGnarCo/people/WMahoney09)


_Learn more about [The Gnar and our team](https://www.thegnar.com/about)._