I only recently discovered the ALT.NET movement and the St. Louis ALT.NET user group. Right away the base philosophy seemed very appealing, although due to scheduling it took a while before I was able to make it to one of the meetings.
But first some back story. If you aren’t familiar with the Immutable Deprecation Reversal Pattern, well it is probably because I just made that up by semi-randomly combining words. It just seemed like the shortest title to use that describes the problem I found myself facing.
I have done development on a basic scale at various times in the past. In 1991 while in high school, I took an evening course in C through UMSL so I could make modifications to the BBS software I was running at the time. There was a long break after that period, then later I started using Slackware Linux (after finally saying a painful goodbye to OS/2) because I needed to set up a web server for a message board. I couldn’t afford a vBulletin license so I started learning PHP/MySQL and wrote a message board application with many of the same core features. It had some bugs, and I’m sure some gaping security issues by today’s standards, but it worked! My sense of accomplishment was soon diminished when I discovered phpBB. It seemed crazy to not switch to something being maintained by more skilled developers, so after a few database migration scripts to convert my data over to a phpBB installation, my mind starting going stale again.
A bit later I got a job starting out doing front end web development. I’m not the creative type, but I am very picky about usability, so it worked out well and was a stepping stone to a real server-side application project, fixing an existing online catalog and the backend administration tooling that went with it. It was written in ColdFusion, which may have had it uses back in those times (the whole “Rapid Application Development” marketing era), but I wanted to start fresh and migrate the data to a new platform. My excitement didn’t last long, there was concern by management that moving to another language would be too time consuming, and that the alternative platforms were also too obscure and unsupported compared to ColdFusion. If they needed to find anyone else work on the project, they were certain it would be easier to find more ColdFusion developers. Up until then I had never used ColdFusion, so I picked up a book and ended up doing a complete rewrite of the system using CF. I never did figure how the reasoning for sticking with CF made any sense.
“So what does this have to do with ALT.NET?” you ask? Well so far not much, but I’ll try to increase playback speed a bit: [read the rest in a high frequency chipmunk-like voice for best effect]
I found myself taking on more unrelated tasks, mostly sysadmin, always just enough to have to pick up a book or two to get a new system or process in place, and then move on to something else and repeat. I don’t mind learning new things, but over the years as far as development work goes, I had become deprecated. I had wanted to teach myself Java for years, but the time was never “right”. With family and long hours at work, I didn’t know how to change that.
I had reached a state of immutable deprecation.
[Ok, you can stop reading with a chipmunk voice now, the above sentence sounds cooler if you now switch to a monster-truck event announcer voice. Plus we just covered nearly a decade during the chipmunk accelerated portion of the post.]
About 8 months ago I started attending several local user groups. I knew I would be in over my head. But I learned a lot and enjoyed myself, quickly realizing that even for topics well beyond the scope of my knowledge things made sense. I couldn’t go and implement everything right away, but light bulbs were going off in my head (some more dim than others). Now a new dilemma became apparent: I can’t learn everything, where should my focus be for now? I had always wanted to learn Java, although now C# and asp.net MVC were looking very appealing as well.
(Hmm, finally, at least a reference to .NET … )
Through a stroke of luck I won a pass to attend NFJS (with many thanks to the STL Java User Group and screaming monkeys), and it was an excellent experience. It was then during one of the lunch breaks I found myself at the same table with some developers and speakers I had heard of but never met. While listening to the conversations I realized the full extent of what people mean when they talk about “surrounding themselves with people smarter than you”. It was that very thing that got me to this point, keeping my mind constantly challenged and engaged.
I still hadn’t figured out if I should focus on Java or .NET at this time, but with a side project that would benefit from either I had to figure something out soon. When I went to KCDC, my internal debate on where to focus my energy was getting tougher. But regardless of the core tools and frameworks, a lot of overlap was becoming more obvious to me. As KCDC was wrapping up Ted Neward gave the closing keynote. I didn’t know much about Ted up until this point, but I had previously heard him as a guest on SE Radio and DNR. During his talk the false dichotomy I had presented to myself became very clear. (Not due to any insight on my part, but due to a portion of the talk about Java and .NET that took some of my previous thoughts on the matter and turned them on their head.)
Shortly after I was finally able to make it to my first STL ALT.NET meeting, and instantly knew it is a good fit for me. It was nice to see a few familiar faces from other groups. Steve Bohlen’s AOP presentation was excellent, and the dialogue made it much more valuable. And the underlying ALT.NET philosophy helps eliminate the type of thinking that had me spending too much time worrying about which tools are right for the job, there is no right or wrong answer. (Well except for maybe CF).
And thus continues my journey. I still feel a bit deprecated, but no longer immutably so. A reversal from years of stagnation is just not possible, but actively happening. The bits of knowledge and wisdom I have gotten from the local community, as well as non-local speakers, keeps coming together more and more. I recently started some classes to have a more structured environment to accelerate the process. I have found that the classes do not have as much new information as I thought they would have. But instead the classes do provide the glue connecting many things together. Hopefully at some point I’ll be able to pass along useful knowledge to others in the same way the local developer community and STL ALT.NET has done for me.