Many months ago I wrote about my frustration in trying to learn JavaScript. It has been my difficulty and my secret for far too long. So for the holidays I took vacation time and the week between Christmas and New Years I studied JavaScript. I am loaded up with books and I am also using a few online resources. I have an idea for a project where I’m going to code a gauge that will pull information from a data warehouse that my husband built that to learn how to do that sort of thing (yes we are a geeky household). So with all that, I dug in to start learning. It is going very slowly, I mean really slowly. My poor mind just doesn’t work great with this stuff, but I am persevering and I have to say that I am learning. By the end of the week I was getting the problems and I was understanding what I was doing.
So in the next couple weeks I will be soldiering on and trying to get my project built out over the weekends. But I have to say, this is the farthest I’ve come and I have also figured out how I learn this stuff well, I need problems to solve and exercises to do and I’ve found tons. Thank you internets, you are the best for all you offer for free!
In case anyone is wondering, here’s my list of resources that I’m using:
The other thing I ran across today was this from Jeremy Keith and it just reinforced my decision to learn Vanilla JavaScript rather than jQuery – there may be many times where that is much more appropriate or easier.
I also want to thank the folks who have encouraged me, you know who you are, and it has kept me going. (Especially some help from down under!)
Many may think that this post is odd, but when you toil in a large, bureaucratic organization, starting and working on something new, from scratch is a treat. Recently I got to do it three times. Instead of maintaining a five year old code base and just fixing and updating it or adding on a feature here or there, I was given new mock-ups and told to go wild. I admit that at first I was so excited I hardly knew what to do. But then I started to think, really think about what type of standards I wanted to set for all the new sites and redesigns that will come in the future. The designer chose a 12 column grid, so I rolled my own small CSS framework for it, rather than use one that already exists and seemed quite bloated. Then I continued to think. I wanted the CSS to be as compact as possible and where have I heard that before? From Nicole, of course. Off to the OOCSS github I went and downloaded the code to see what would work for our situation. Thank you so much OOCSS for your margins and padding, you percentage splits to divide columns, you are a God send. Then it was time to start and I enjoyed every minute. The best part? This all happened about 8 months ago on the first of the three sites and because of the things I instituted then, the sites I’ve done since have been a breeze. I don’t think I’ll ever do another site again without incorporating some part of OOCSS, at the very least the margins and padding cause it is so wonderful to not write that over and over in your CSS. Not that anything is perfect, but anything that cuts down on how much you have to write over and over again, is wonderful.
What would I do differently? Well, once we can get LESS working on the server side, then that’s when I think the real fun will come. We hesitate to use it until it is on the servers so that folks with JavaScript disabled aren’t left out on the styles, but I’m so excited to see how much that will increase efficiency in writing the code.
I have a secret, it’s not a shocking one, don’t worry. And yes, it does have to do with front end web development. Well, here it is, I really dislike JavaScript. When I say that, I don’t mean that it’s just not my favorite thing to do in my job, I mean to say it is at the very bottom of the list. For years I have bought books, I have read articles, I scoured the web for blog posts, and yet when I am confronted with a JavaScript issue, I cringe. I put it off. I do everything else first. And usually, I ask a coworker for help. For some reason, JavaScript just doesn’t stick with me.
I have talked to all kinds of people about it, gotten advice from coworkers, other conference attendees, experts in the field, listened to talks, and yet I still struggle. Many have said to me, learn pure JavaScript first, that way you will understand what the library is doing for you. Others say to just go with jQuery, it will make life so much easier. I have tried both approaches and right now, I am again going back to just plain jane JavaScript. I’m reading up on Crockford, I’ve bought yet another huge book on the subject and am trying to tackle it in bits and pieces at a time.
For me, CSS is so easy, so elegant, so understandable. I know what’s happening with it, I can write it out quickly and even as it becomes more complicated with new modules, I seem to pick it up so much easier than JavaScript. But I see the future in many of the new things happening, I see where things are going with canvas, SVG, and more and it is only going to get more complicated. I feel the need to get my brain to think a bit more like a programmer. To do that I must finally tackle my nemesis of code.
So the goal? Learn JavaScript. Not jQuery, but JavaScript. Be able to sit down and write out some easy functions to get something to work. The hard part for me is always coming up with what I want to try and do. I need a solid project to work on to drill the skills home. After that, then I will start with jQuery, hopefully I will understand better what the library is doing for me, so that if it can’t get the job done, I am better equipped to find another way. My hope is that as the field of web development advances, this will help me keep up and still have the same fun I do with CSS. Still feel like it’s magic to write lines of code and then open a browser and see it work. I know there will be a lot of frustration along the way, but now is the time. I’m telling you all this, well, because I need some accountability and because I’m open for any suggestions you may have, so send me some tweets and let me know what you think. I hope in the coming months to follow this up with some of what I’m learning and doing.