I had been putting off messing around with image manipulation in Python/Django because I thought it would be difficult or annoying to figure out and gain a full understanding of. I'm not talking about complex image processing or anything, just thumbnail creation, watermarks, rotating, that sort of thing. Turns pretty much as simple as "import PIL". Throw in a bunch of really awesome libraries like sorl and it's almost literally a no brainer. Now I'm kicking myself for not just diving in months ago so I could have used more image handling in my other projects.
I also put off getting started with writing automated unit tests for my Django projects, for pretty much the same reason, I thought it would be difficult and I wanted to start with the easy stuff. Again, it turns out that it is both easy to get started with and it would have made learning some of those easier things a little easier still, if I'd just taken the time to read a little bit about Django's unit testing capabilities and tried it out.
So why did I wait? What caused me to think that these things would be so difficult? I think a big part of it comes from my background as an
ASP.NET developer.
ASP.NET is great for a lot of things, and it helped me get my start in software development, and for that it will always hold a special place in my heart. But image manipulation and unit testing in .NET both require a fair amount of effort to get started with, at least for me, because I learn by example and by trial and error. Unit testing is especially difficult to do with
ASP.NET due to the strong bindings between the Page object and the web server, it's hard to get those split up, especially if you're working with legacy code, which I was back in the day.
But it would be too easy to blame my fear of just getting started on the technology, when in reality it is in human nature to fear the unknown. There's a saying that goes something like "It's not fear of darkness that quickens our steps in the night, it's our own imagination's ability to fill that darkness with horrors." I subconsciously made these new skills seem overly difficult to learn and understand by adding my own made up complexities and roadblocks. Don't do this.
Now you might say "Mark, how do I get over these subconscious fears if I don't even really know that they're there, holding me back?" And my answer is: I don't know, but I can tell you the pattern that I've seen in myself. I have to have a reason to do it, I can't just decide "You know what would be cool, automatic image thumbnail generation and caching in Django, I bet that would be fun to try out!" I need a project that I can get excited about that requires that I figure that stuff out, than it's easy to be motivated to do it.
So if there's something that you've been meaning to try, or something that you know you should know about but haven't found the motivation to do it, find something that you want that doing this thing is a requirement for, than you won't have any choice but to just do it.