I wish I had learned HTML and CSS before learning anything else. You can reach the largest group of people and quickly and visually express yourself the easiest by building a web site. And a lot of the projects you work on with other languages will eventually lead you to building a web site to showcase those projects. It’s available on every operating system as well, so you can reach everybody.
Regular expressions have let me do massive renaming projects. I’ve experimented with a few different file naming schemes over the last year, and using Regexes made it easy to match patterns and change file names to new patterns in a few seconds. Also, using grep and Ruby’s Regex support, it’s improved my searching on the hard drive and finding patterns in my programs. If you’re a programmer, you have to learn Regex if you want to be as effective as you possibly can be.
You can declare constructor variables like this:
Now, you’ve created a
Person class and you don’t have to even do the Ruby thing of
@name = name or
The Unix shell was actually the second language I learned. I’m not even sure it’s a language. It’s a collection of awesome small programs that glue together in the most amazing ways though. It seems like every day, I find some Unix program I never knew about. The day I discovered
at was great. I wrote up a bunch of timer scripts for myself that I now use on a daily basis. The shell is also the hardest language to wrap your head around. A lot of it was written a long time ago and the documentation is spotty at times. The “community” surrounding Unix and shell scripting isn’t as welcoming as say Ruby’s is. They’re not also eager to help and often the discussions they’re having are over a beginner’s head. It would behoove every Mac user who wants total control over OS X to learn to utilize Unix’s power.
Ruby was the third language I learned and probably my favorite (although CoffeeScript is giving it a run for its money). It’s very powerful and yet flexible in its abilities and acceptable syntax. It’s easy to invoke system commands so you can leverage the power of Unix in your Ruby programs too. The Ruby community is a sprawling and friendly one.
And then there’s AppleScript. It was the first language I learned. While many dismiss it as not a real language and some say that its day in the sun has past, AppleScript was the most immediately useful language to me. I wanted to script OmniFocus and a few other OS X apps. The only way to do that was to learn AppleScript. I learned not only how to script through AppleScript but I also picked up the general theories driving computer programming. Maybe Ruby or Python would’ve been better to start out with, but I had a goal, scripting OmniFocus, and because of that goal, I probably was driven to stick with it.
I’ll admit it’s not a great general purpose programming language. It’s only useful on Macs, there’s no built-in Regex support, problems often arise when manipulating files, and you can’t do much with applications if they don’t support AppleScript in the first place.
I know I’m still a novice, but I’m getting better every day. I hope I just didn’t wait too long to start being a programmer to do something with it.