It’s sometimes intimidating and often ridiculous how quickly this industry moves forward. Just when you think you’ve reached “front-end developer” status, you realize there’s so much you still don’t know, or else only know superficially.
Others have expressed their views about our industry and how frustrating it feels, and still others feel that too much is asked of front-end developers.
But we need to face facts: If you really want to be successful in this field, you have to go beyond just HTML, CSS, and JavaScript. I think I’ve gone beyond those to some extent, but I still feel deficient in certain areas.
So I thought I would summarize some skills/technologies/tools that I still think I need to work at. And most importantly, I’d like to hear everyone else’s views on what languages, tools, and technologies you’re planning to get a better handle on.
Speed / Performance
Can you believe I haven’t read either of Steve Souders’ books? High-performance websites are crucial in today’s industry, and although I’ve done research on various aspects of front-end performance, I really need to work on this area.
Browser Developer Tools
Although I use tools like Firebug to track variables and objects with console.log
messages, I think there’s too much I don’t know about the potential of these tools. I’m still not sure how to use breakpoints properly, and there are so many aspects of the various tools that are just foreign to me.
Mobile / Responsive Web Design
This one is still an industry infant, so I’m not entirely disappointed with myself for being a bit behind. I’m just about finished reading Ethan’s book and I’ve started using responsive techniques in all my new projects. But there’s still much to learn in terms of performance (yeah, that again), how to handle large images, and whether to take a mobile first approach (I’ll be reading that book next; I still haven’t unwrapped it).
CSS Preprocessors
I still can’t believe I’m so far behind in this area. I have zero experience or knowledge with SASS, Compass, Less, etc. These tools purport to improve the CSS workflow and allow for things like mixins, variables, and they even plug vendor prefixes for you. This is definitely one on the to-do list, but I just haven’t gotten around to it yet. What’s probably stopped me so far is that some of these tools require command-line knowledge and the fact that having to practically relearn CSS isn’t the most appealing prospect.
WAI-ARIA
Although I wrote the appendix in my book on this topic, and I have a good fundamental understanding of what it’s for, I still haven’t used it much at all. I echo the words of Paul Irish: “The fact that we seem to spend more time on div
vs article
vs. section
than on learning ARIA is a crime.”
Better PHP
All the sites I build myself are built in PHP. I know the language enough to build pretty much anything (even something that accesses a database!). But my PHP is awful. Ideally, I’d like to learn Ruby on Rails. But at this point, I just don’t think I have the time or the necessity. I would definitely like to spend more time learning PHP best practices, object-oriented PHP, and common security vulnerabilities.
HTML5 APIs
I’ve written about some of the new HTML5 APIs and I’ve used them to some degree. But stuff like Geolocation, Offline web apps, and Web storage are pretty new to me. These APIs are the future of web app development, and I’m lagging behind. At least one of them should be on my list of things to go deeper into.
Backbone.js / JavaScript MVC
I don’t even know how to begin describing this one (this might be a good intro), but it seems to be all the rage right now. Backbone.js is a framework built on this concept and, evidently, creating JavaScript-based applications in this Model-View-Controller format is super-powerful and much more maintainable.
What’s On Your List?
I could probably add another 10 topics to this list, but those are probably some of the more important ones, and I plan on grokking at least one of these in the months to come.
But what about you? What’s your short list of “things to learn” that you’ve fallen behind on, or just never got around to learning?
I would like to learn Ruby too just need to find time to do it.
Under JavascriptMVC I think you mean Model-View-Controller (not collection).
My list is very similar though I’m pretty comfortable with where I am on most of them, it’s just I feel my JS is could be much better (well local-storage and canvas are also things I know nothing about) and likewise I have the ALA book on mobile-first sitting on top of the pile to be read – currently reading pp’s seven-languages in seven weeks.
Regarding “MVC” — I was actually taking that from the Backbone.js page. I was under the impression that MVC was different in a JavaScript context (which it must be), so I was just repeating what it said there. Thanks, I’ll correct that, because after doing some quick research, I seemed to have been confused by the different explanations I’ve read on the subject. Some even refer to “Model-View-View”.
I want to learn node.js and Ruby on Rails. I don’t think that I’m going to do backend programming, but learning a new language helps getting better at the others. I want also to r-factor the code of a couple of personal projects to apply what I’ve been learning this lasts months.
Louis, you don’t need to use the command line with CSS preprocessors, there are apps to compile the files :)
On my list is to dive a little deeper into php programming, along with brushing up a bit more on my knowledge in other CMS platforms. Overall learning or rather applying what I’ve learned about CSS Preprocessors is big on my to do list.
Exactly what’s on my list,but i would reduce mine to better PHP understanding , and responsive “trickery” , i think the rest is way too much for doing at once.
But I find WebGL experiments very intriguing as well, three.js and similar, where we can actually push pixels to create a 3D environment in the browser
It’s indeed a struggle to keep up with all the new, which is why you need to make choices. Consider this: most of these new frameworks are never going to be big, so its pointless to invest time in it, unless you have lots of time to spare.
To aid in making the right choices, you need to look at what is actually used or will be used across our industry. Examples:
– Clearly, jQuery already is a major “standard”, a core library to master. A good time investment, better than some new exotic framework that is not yet proven.
– SASS and LESS are worthy to invest time in to optimize your flow, but they are not critical. You already know CSS. SASS and LESS are optimization, no more than that.
– Given the mobile revolution, responsive design and similar patterns are core skills to invest in, since it will be asked for almost every assignment.
Look at the markets, at job sites, check what is actually being used and demanded and forget everything else. You may be a master at node.js in combination with Ruby, but nobody in the real world uses it.
Ferdy took the words right out of my mouth.
Perhaps the web industry advances faster than other industries (many magazines, for example, still only accept printed manuscripts sent by snail mail), and certainly it requires that you learn new skills as what is possible expands…. but in every line of work, there will always be new skills to master. That’s a universal given.
The important thing is to always keep learning and don’t let yourself get overwhelmed.
What Ferdy recommended is a good idea: learn what is useful and in demand and make a choice to ignore the rest.
i want to learn marketing, selling, psycology, negotiation, time management & project management, so that i can produce more, have more clients, happier, sell more and earn more. that should be the goal, isn’t it?
Definetely Ruby and Rails. I became really fed up with PHP. It will be hard, because I am really comfortable in PHP (it annoys me, sure, but I know the language well and can do _a lot_ without even glancing at the manual), but I guess it’s worth it in the long run.
Second of all, JavaScript. I am one of those people for whom JavaScript is a synnonym for jQuery, and I’m not proud of it. Sure, so far I could do everything I wanted in JS (with a big help of google :P), but I have a lot to catch up with. Oh, and CoffeeScript. I hate JS’s syntax.
But these are not the most important for me. @devsmt is right. I love programming, but I’m more of a “builder” than _just_ a programmer. There are a lot of technologies/techniques I could learn (and benefit from), but I just don’t feel like I _really_ need them. I can do without them (at least for now). Awesome apps, UI-s, great UX is far more important than cool technology. And I’d like to become much more productive.
My 2¢…