I feel like I’ve learned about thirteen different programming languages since I arrived here six and a half weeks ago.
We’ve started with straight Ruby… Then we got to use Sinatra and Rails, two frameworks that are built with Ruby.
Somewhere in there we took a small detour and looked into HTML and CSS. We’ve also used ERB, HAML, Bootstrap, Foundation, SCSS, LESS and SLIM, variations on or preprocessors or frameworks for HTML and CSS.
Well, this week we’ve been introduced to a few more things. Namely JavaScript and AJAX.
If a person were to allow it to, this kind of thing could be somewhat overwhelming. Don’t ask me how I know. 🙂
Will I Use Them All the Time?
One of the questions that I’ve asked myself as I’ve learned each of these new things is how useful all these “little” pieces of the puzzle will actually be.
Consistently this answer has come back to me… I may not use all of these things on a daily basis, but having the confidence to dip into them when I need to, that is where the value lies.
I won’t be writing straight SCSS every day. (At least most likely) But I will most likely work on projects where SCSS is being used. At least half of my hesitation in trying something new with code is because I have never seen it before. Since we have touched so many different things I feel pretty confident that I can figure out how to at least do basic things in each of those things I mentioned.
I won’t use all of these things every day.
They Are Tools
A valuable lesson that I learned in some of my forays into photography, is that just because you have a tool doesn’t mean that you have to (or should) use it. However there are times when that tool and only that tool is required to complete a specific task. If you know how to use that tool… you can complete the level and move on to whatever is next.
I may be wrong, but I believe that a lot of these things I’ve been learning thus far are like tools in a tool bag. The foundation for all of these things is Ruby, (at least in Rails) more specifically Ruby on Rails. The things around that foundation are all tools that make up the tool set that I need to be able to use to extend Ruby on Rails and do various specific things.
There is NO Right Way
There are some things that can be done one way and one way only.
In programming though there are literally hundreds of ways to do the same (or a very similar) thing. If all I know is how to perform form validation with a page reload… I can definitely do it that way. If I know some basic jQuery stuff, I can perform that validation and make it look a bit better.
The result may be the same, but you’ve got to think of the user… Make their lives easier, even if it is only in perceived page speed.
Wrapping it all Up
At the end of the day learning to think like a programmer is difficult. There are a lot of tools that go into the process of taking an app from conception to deployed. Being a “wizard” in each part of the process would be really nice, but having a basic understanding of how things work is essential.
Wizards, I believe, are few and far between. They definitely exist, but there are way more “hackers” like me…
If you can hack your way through a project and get the result you need, you are way ahead of like 95% of the world’s population. At least as far as programming goes.