I really do enjoy coding and talk about coding, but on IRC I was sometimes seen as an irascible troll amazed by the lack of experience and knowledge especially where you expect it the less.
I was sometimes quite shocked at poor software solutions given by teachers that were themselves giving advanced python lessons to the elite of the nation.
So sometimes, and even at work I have a temptation for elitism. I think a coding langage is like a natural langage (probably my Perl past) and that there is no excuses for not learning the new idiomatism. Python core team is nice enough to provide the PEP that helps us know how the langage evolves. Thus I often think to myself there are no excuses for coding python in 2013 like one would have coded in 2003. (Imagine a world without array context, generator, with statements....).
But then I go and (try to) play bass.
Lost myself in the difficulty of not being able to have the decent level I wish, I work. But my level improves so slowly each few day I practice (since 4 years). And I don't seem to be any better.
But I love that. Because I want to be a good bass player, maybe, one day. I know I do shit, and sometimes I realize that I can understand the "noobs". In fact, it brings back memories.
I am pretty much considered against my will as a gifted programming expert. It may be true for them, I know how totally wrong this is.
I had my first computer when I was 12. I first played (like a game) with it. Like with my bass I was using it quite scarcely in a serious way. It was not motivation, it was because of discouragement. I liked the computers, but I was discouraged at how slow my progress where. I played with some in memory ASM debuger with my cousin when we were cheating, and this guy was the genius. By watching him I learnt a lot and had fun.
I had a PC in the early 90s, I would copy games and animated GIF's with Pr0n on it on 1.4MB floppies. Nothing serious.
I have learnt linux in 1993 with friends at university. I was just installing linux and compiling kernel cluelessly. Let's say I was not a genius. We had our first C lessons and I was not really good. I learnt C, fortran, sh, matlab, VHDL.
Truth is : I had a computer since I was 12, I was in my 20's and still quite sucking in average but I began to have strikes of inspiration. And that is for this light memories that I held on. Like when I play bass and a good inspiration comes.
99% of the time on my computer was dedicated to inefficient wandering and stupid mistakes due to the arrogance I felt from the 1% remaining times.
Let's wrap it fast. I consider beginning to really code in 2001/2003. I was in my late 20's and still fighting my way. When I look back at my code: it suxed.
I began being serious 2 years ago and now more often then never the code I write is exactly the code I wish to write, I can foresee the path for delivering a result that will match 90% of the specifications. And sometimes people oppose my views on software engineering based on obvious faulty conception, and when I read their code I recognize you know what?
A naïve mistake I myself did most of the time. And since learning is better achieved by failing and that they did not failed yet, thus we could get quite an argument. At the end I often wished that such under-skilled developers were out of my way and wondering how they couldn't understand the mistakes, since I overcame it.
But you know what?
I am the same as them: when I look my older code, even sometimes from the last week I also see mistakes in my code and I am pissed at still being that bad at coding and still having misconceptions.
And then I play bass. And I reach enlightenment: what matters is to «play», that is the root of improvement. It is all about having an earnest incentive for improvement: it is only about having fun.
I never was gifted or good in software development, I just worked, failed, worked, and sometimes improved. And since I still do improve I am just still a noob. But a special noob; one that constantly improves.
I now dream of another form of elitism where we would select a team not only with the goal of shipping stuff, but also on the goal of maximising the fun of everybody. Happy people improve faster.
(Brain is very good at delivering high quality natural drugs in your brains when you are happy, call it Dr FeelGood).
Now, maybe because Quebec is making me write weird things I intend to remember that coding should be considered fun, and help people having fun when coding. And since trolling is part of the fun I still intend to troll the other coders :)
PS: I do insist I think people being are too suspiciously nice and happy in Montréal. They might put prozzac in the tap water and it is getting to me.