Always striving for perfection...sounds like a good thing...right? There may be times when the struggle to achieve perfection is good, but I find that most of the time it is a hindrance in my career. Most agree that you often learn the most from your mistakes, but the very nature of a perfectionist is that they fear making mistakes. Don't get me wrong, I make plenty of mistakes, but I find it hard to willingly go down a path that I am not sure is the correct one. I must make concerted efforts to not get stuck in endless loops of planning, designing and gold plating my software. My biggest struggle on a new project is getting out of the starting gate. My perfectionist nature wants to have every aspect of the app defined and understood to the nth degree. I don't want to start on something because I know as soon as I do, I will see the problems and have to re-work my beautiful code over and over until it is a mass of unintelligible spaghetti code that makes me want to cry. The easiest way for me to get past this is to convince myself that I am first going to write a prototype that I will throw away when I understand what is needed. Even though I know that there is a very slim chance that I will ever just toss aside the code and start from scratch, it is a metal release that gives me the freedom to make the mistakes I need and to start cranking out code without the mental handcuffs of perfectionism. Following this pattern has forced me to learn to refactor intelligently and taught me the things that are difficult to refactor and should be considered before jumping in. Cleanly refactoring is a separate skill set and will take time to learn to do well, but it is a valuable one and well worth the time spent. Don't let a desire for perfection stop you from trying, for an imperfect thing is almost always better than a perfect nothing.
I am always surprised at how many attendees at a conference go to the sessions and then head off to their rooms and wait for the next day. They are missing out on all the extra curricular activities that the event organizer spent so much time planning. Not only are they not getting the most out of their money, but they are missing out on meeting some great people. My first few conferences I was guilty of this behavior, but through dumb luck I ended up going to dinner with most of the speakers of the conference and realized what a fun group of people they were. Because of the friendships forged from that conference I was inspired to become a speaker share my experiences with the community. I know being social is not always easy for us developers, and it can be uncomfortable at first, but it is like a muscle in that the more you use it, the easier it gets. Step outside your comfort zone and forge some new friendships.
My 10 year old daughter loves to write and is a creative and imaginative story teller. I want her to be able to share her stories with others and luckily we live in a time and age where that is a simple matter. Her typing skills are the main thing that is keeping her from being able to share her stories, so I have decided that I would try to teach her to type. I have found that there are quite a few free websites dedicated to learning to type and they seem to wok well. The only issue that I have found is that most of the sites use Flash for the training, so learning on my Surface RT is out. I guess it is time to either find a good typing program for Windows RT, or maybe this is an opportunity for making an app. Let me know if you have any suggestions for good typing programs for kids.
I stopped by the local Microsoft store today at lunch and tried out the Surface Pro and I must say that it was quite a nice piece of hardware. I already have the Surface RT and have been happy with the purchase overall. My wife on the other hand has been less impressed because she keeps running into things that the Surface either can’t do, or doesn’t do well. One, she keeps finding websites that don’t play nice with touch screen only interactions, (hover menus, sliders, etc.), and two, she uses sites that need to be able to run flash. She had all these complaints on her previous iPad, but I was hoping the Surface RT would fix some of this. But alas, there are still too many sites that don’t play nice with tablets. My wife keeps insisting that a laptop is what she needs because it is a real computer and won’t have the same limitations, and while I agree that it should fix those issues, it feels like a poor fit for someone who mostly consumes information. So the $64,000 question is, does a Surface Pro tablet fix the issues, or will she still see it as just a tablet?