Much of my programming experience has been gained through trial and error. For a teenager doing raw frontend development, this is not a totally terrible strategy. In fact, if you have the patience to nudge a box a few pixels over and over then eyeball it in different platforms and sizes to see what looks best, being a frontend dev might be for you.
However, for things that can't be eyeballed, and with a large framework like Ember, that kind of manual plugging takes forever. For a while, I was honestly just Googling my problems and trying everything that Stack Overflow was suggesting one by one. But if it's 3 a.m. and you barely have enough functioning brain cells to maintain your sanity, much less keep track of which things worked, you can't do this.
So what I've started to do is keep a dev diary.
Writing entries for a dev diary is like an extended version of writing explanations for a problem set answer, where you also include everything that went wrong. I write down:
- The desired goal, or the problem I want to solve
- A description of the trouble I'm running into (this might be the same as step 1)
- My theory on why I'm having trouble
- A course of action I'm going to try based on what I think is going wrong
- Whether that course of action worked
- (Repeat steps 3-5, with adjustments as necessary, until problem is solved or goal is achieved)
- A summary of what I did right in TL;DR form that I usually put at the beginning of the entry
Much like a real diary, this helps me organize my thoughts so I can sleep at night without trying to keep anything in my head, then return to the task in the morning without having forgotten what I've already done.
There's also the added bonus of having a beautiful written record of the knowledge I've gained, instead of a bunch of uninformative git commits called "Still broken", "Less broken", "Fixed this, now trying to fix this other thing", and "OMG WTF". I highly recommend it.