|TLDR: My main question is, how do you start learning/working with 'modern' programming languages/practices/tools.|
I am in my late 20's and a developer for a few years. The problem is I'm a Coldfusion developer. I have these ideas that I want to create, but I don't want to write them in Coldfusion. I would like to use something like Ruby, Python, Go, or even Scala. I've taken Coursera courses on Ruby and Scala. I do understand them enough to go through the courses, but it's hard to grok the environment.
I've been a Windows guy, and just recently bought a Macbook, hoping it would push me into learning the environment. But in reality it's been a bit of culture shock. I get confused using all of these tools. I tried setting up my machine with Boxen, until I couldn't figure out the error it was throwing and got frustrated and reinstalled. I think this is the third time I've reinstalled OSX.
Homebrew, ZSH (and oh-my-zsh), Puppet/Chef, Vagrant, Rails, Gems, Rake, rvm, rbenv, Node, npm, Angular/Ember/Backbone, virtualenv, pip, etc, etc. Even things like git, setting up ssh/certificates, and just generally command-line things are intimidating.
I get that a lot of people just intuitively know these now, because they 'grew up' with them, so to speak. But to someone just trying to get into it's incredibly overwhelming.
Things like TDD are foreign to me too. I understand it at a high-level, but actually writing tests is hard for me.
I know things well enough to know that I should use it, but not enough to know how to use it.
I want to write software, but I don't want to write bad software. I definitely suffer from analysis-paralysis. If I don't know that I'm doing it right, I find it hard to start. One of my ideas is something related to bitcoin, so I know that it will be attempted to be hacked. That brings a whole new aspect in hardening servers, writing secure code, auditing, etc.
I'm just at my wit's end. Maybe you all could point me in the right direction.