I’ve hardly had any real world experience with, well let’s face it, as a freshman, practically anything at all. But I have had more experience than I’m willing to admit with failure and disappointing myself, and at some point I think I balls’d up enough things to form a coherent life philosophy and world view around it – and I haven’t fallen off the deep end yet, so it’s a good sign that some of this stuff I’m saying might actually help (wishful thinking on my part). These are just some pieces of advice I’m trying to live my life by.
Empty before you fill. You can’t learn anything if you already know everything.
For me, I didn’t empty before I filled when I started learning new languages beyond the couple I already knew, and so I missed many of the small features and nuances of the new languages, just because it was easy for me to relate something in one language to an analogue in another.
Don’t be afraid to scrap it all. If it isn’t working, throw it away and go back to square one. Don’t let the “it could’ve been” keep you from moving forward.
I always become too attached to my code, and so when it stops working or I encounter bugs that require huge reworks of the code, I often just give up instead of starting over. Building it back up from scratch is not as a momentous task as you think, and you’ll thank yourself later when you don’t have to restart because of a program breaking design bug.
Stop feeling bad for yourself. Your work does not define you. Life goes on.
I always dwell on things too long, wasting my own time and draining my work ethic. It doesn’t matter that the last thing you wrote sucked – the next thing will suck marginally less, and towards perfection you will go.
Also, the whole work does not define you thing – Edmund McMillen, (one of) the artist/programmer behind Binding of Isaac/Super Meat Boy has cut out lines tattooed around his left arm to remind himself that even if he were to lose his left arm and his ability to draw, to create and to program, he would still be a whole person. It’s a beautiful reminder that we are not our work, but people.
Take baby steps. Plan. You can’t accomplish big picture goals in one go. Breaking it down can make things seem a lot less helpless and give you a sense of real progress.
This one is simple. Write out a list of tasks. Draw some goddamn diagrams of your program and all the conditions it has to check. It will help so much.
Just do it. Ignore diminishing marginal utility. You get what you put in. Don’t reinvent the wheel, just complete what’s at hand, and forget about the law of marginal utility – that the more you put into something, the less you get out of it. If you don’t put everything into something you won’t get everything out of it.
I am a half-asser, so this one is huge for me. Don’t think of the work as some abstract pile or wall stopping you from proceeding. Break it down and just do it.
Anyway, I hope I have luck implementing these things into my life. Here’s to a better 2013.
Oh, and Start a project. Hopefully one that will engage all of your interest and effort, one with a friend, one that will grow to define you.