When building new things you will face immense uncertainty. This uncertainty will be very uncomfortable both physically and mentally. However, as you gain confidence and faith in your skills, this discomfort will become manageable. The mindset of an engineer is a skill just like any other skill. It can be learned, practiced, and improved upon.
The Hell of Too Much Data
When first approaching the build, you will be faced with too much data for your brain to consume. If you think to yourself:
- "I should be able to do this"
- "If I can't figure this out I'm not a real engineer"
You have now engaged your ego in a war with the infinity of complexity. You will lose that war. Instead, step back, break the problem up into pieces that you can solve, and for those parts that you can't, search for solutions outside the ones you know.
Start with what works
When building, always start from what is working and build from there. When you are faced with a bug that you cannot figure out, focus less on what is not working, instead get your code to a state where at least something works the way you expect, and slowly add complexity from there. Each time you add something, you should be testing to make sure everything is working. Because there is an infinite number of ways that a program can be defective, focusing on what is wrong with your program is inefficient.