In this project I think I did a few things that caused me to spend too much time, become very frustrated and learn a lot of hard lessons. I want to go into detail on some things I think I could have done to prevent this cycle.
1. Make Sure You *Really * Understand Naming Conventions
In my modeling I had a join table for a many to many relationship for Game and Team. I spent a lot of time making sure I understood the modeling but less time making sure I understood the Rails naming conventions for the multiple files, and other activerecord association methods. Because I didn’t name files correctly my association didn’t work and it was a headache to debug because I panicked.
Which leads me into my next hard lesson…
2. Don’t Panic
I don’t know about you but when I panic in coding I start changing everything not because I know or even think I have a good idea about what the problem is but because I want to fix the broken code ASAP. This leads to a lot of throwing syntatical mud at the wall. Which is a terrible way code. Stay calm, take a deep breath and read the error message. Then try back tracking to see if you can find the error. Some of my most frustrating mistakes were simple spelling errors. If I had just simply reread my code instead of assuming I was just a terrible web developer I would have saved myself a lot of time.
3. Ask For Help Instead Of Taking A Punch
Don’t beat yourself up. You have not gotten all the way to the Rails Portfolio Project because you don’t know how to code. You do. Really, trust me, as someone who sat on her bathroom floor wondering the exact same thing. If you’ve gotten this far in the program you know how to code. You might be a little fuzzy on some things, you might need a little extra help but you know what, that’s why programmers google. So google it, ask your section lead for help, ask a Slack Channel for help. Every time I didn’t have the answer, as soon as I went to put a question in slack, I saw the problem, or the solution came to me, or someone else asked the same question earlier, or my section lead helped me out.
Beating up on yourself is not going to get you the answer. It’s going to make the whole process seem more difficult.
4. Take a Break
Go on a walk, do some yoga, mediate, hit the weights, read something completely different, take a nap, watch a movie, call a friend, take a hike, play a video game, grab a drink, get a cookie, knit a scarf, play in your garden, go to a sports game, have a night on the town…
I could go on, the point is it’s ok to walk away from your project even though it’s not where you wanted it to be. In fact it will probabaly help. That because when learning new things you need good, diffuse learning time. Diffuse learning happens naturally when you’re asleep but can also be activated during other activities where your mind isn’t using a lot of focused attention like walking, meditating etc. While you’re not actively enagaing in thinking your brain is still working on the problem you couldn’t figure out or are trying to understand. So take a break and come back. And if you don’t believe me here is a link to a coursera class Nuroscientist Dr. Terrance Sejnowski is an istructor for aptly named Learning How To Learn.
Lastly learn how to plan a coding project effectively and how to update your outline. Getting a big picture idea about your project and then breaking it down into smaller chunks makes the process much easier. Some of those chunks may make sense for you to check out new branches from your master on github. After you have the smaller piecies of your project create a schedule for when each item should be finished. It will help to keep you on track and accountable for your progress. It’s easier to procrastinate when there is no timetable than when there is one. If you need help sticking to your timetable get a friend to agree to check in about your progress every few days or so, make sure they have a copy of your schedule so their asks are specififc and not just “did you code today?”
I hope these five lessons help to keep you from falling behind on your projects. Time management and productivity are always hard skills to improve but improving these skills can keep coding fun.