I was thinking about how hard it is to get into various aspects of programming, and wondering why. I decided to jot a few of my own perceptions & personal hang-ups because I’m curious if these are common.
Command Line Environments
I think of command-line as a necessary evil. Buy why? Breaking it down, I’m a programmer. I write code. In a sense, can’t you kind of think of what I do as a huge, compiled command-line environment (it’s a bit of a stretch, but bear with me for analogy sake)?
So why the aversion? I think I finally figured it out. Intellisense (or lack thereof). Ctrl-spacebar is my friend. It’s what I’ve grown to love. Typing /?—>enter—>up-arrow—>space—>command-I-really-need is a bit of a PITA. It feels like a clunky waste of time.
Maybe my problem is that the majority of my command line experience has happened in the start—>run—>cmd window, which has caused me to think of it as a necessary evil? Is there a better environment? I don’t know. I haven’t had to know.
Maybe my problem is that because I started as a web dev, I never had to embrace creating a “quick & dirty” console app to try stuff out because I always had some test page with c# code-behind available as a test bed? Creating an API magically made me MUCH more tolerant of consuming APIs. Maybe the same would happen if I had grown up using console apps as my test beds?
Maybe my problem is that I just don’t think the command-line way? Caleb Jenkins swears by SmartGit. Maybe our brains just work like that (preferring nice ux experiences over command line experiences). Is it a trained thing? Is it something you just get used to & start thinking that way after practice? I don’t know.
What I DO know is that I’m now realizing my aversion has affected my enthusiasm to expand my horizons in certain areas. I’ve never tried Git. I’ve never pulled from GitHub. This is something I’d be perfectly fine with (we don’t use anything command-line at work), if it weren’t for 2 things: 1. the unabashed enthusiasm for Git in the programmer community (especially around open source), and 2. my belief that learning different approaches / languages / implementations / tools expands comprehension.
Macs. That’s what I relate to Ruby. This is a HUGE barrier to entry for me because I don’t have a Mac, and I don’t see myself getting a Mac.
Don’t get me wrong – I have nothing against them. Macs are awesome. I came from a Mac. I bought a PowerMac when I started my graphics career in Photoshop WAY back in the day, but holy COW they’re expensive, and I have a family. I don’t see Mac ownership in my future, and my impression is that Ruby is written on a Mac.
“But surely you’ve HEARD that Ruby CAN run on Windows?”
Sure, I’ve heard that. But have you ever been around Ruby communities? I’ve seen a LOT of Ruby devs at Dallas Hack Club & CodeMash. Let me put that differently. I was one of the only devs in the room on a PC more than once. Macs. Everywhere. Barrier to entry in my mind.
From vim.org: “Vim is a highly configurable text editor built to enable efficient text editing.”
I LOVE what Visual Studio does for me to make me more efficient & resourceful without having to rtfm. It seems like 200 steps backward & zero steps forward to me, in terms of productivity potential.
Why in the world would I want to write code in notepad? That is all.
What is this ”Dallas Hack Club” you speak of?
In my experience, it’s the scariest room EVER to walk in to for the first time (especially when you’re not even familiar with testing because that’s not something supported by your place of employment) but also the most rewarding. Not only have I found it to be delightfully mind-expanding, but the guys who run it (Matt Florence & Amir Rajan, creators of NSpec) are unbelievably helpful, open-minded & brilliant. Here’s a good example of their attitudes (they’re both this awesome):
Tweets that Caused this Post
I’ll be honest. I ignored Amir’s first Tweet, thinking Amir mistakenly directed it at me, as I’m not a Ruby dev.
After the 2nd one, I sent him this private DM (because God forbid I admit my ignorance like that in public haha):
Ruby for windows will work just fine? I’ve never heard anyone say that. Aww crap. I’m comfortable with not knowing all technologies. I have enough to learn around my c#-centric web stack bubble. Sure I want to learn more. I live to learn more, but I have PLENTY to learn without taking an interest in this perceived mac-environment language.
“Embrace the Uncomfortable”
#3 from the “12 Resolutions for Programmers” that was going around Twitter this holiday season has really stuck with me. “Embrace the Uncomfortable.” I really, really like that one. There are so many barriers to entry in programming, that insecurities magnify to the nth degree. Every time I’ve thought of that line of advice during a crossroads, it has helped me to feel more empowered to make the harder decision, almost as if it’s a mission statement that gives me purpose for not retreating into competence.
I don’t really have a point (hence the weak section header), other than to expose some of my own perceptions & hope to be proven wrong =). I really enjoy stretching my mind around different paradigms. It helps my troubleshooting / problem solving skills & expands my tool belt.
Although I can definitively say I will not be choosing Ruby (or probably even coffeescript) to pair in at THIS Tuesday’s meeting, I can assure you I will be paying much more attention to, and asking more questions around “Why Ruby?”
And who knows, maybe one of my future posts will be on, “Why I chose Ruby to solve this business problem.” …or if nothing else, we might convince someone (Amir?) to submit a precompiler talk next year for Codemash entitled “A Ruby primer for C# Devs: Yes, you CAN do it on Windows.”