I got an email the other day from an up and coming front-end developer asking for advice on how to expand their skill set and really learn to master their craft as well as how I stay current on new technologies and trends. Below is an except of my response which I thought might be interesting to some of you.
How to expand your skill set
The easy answer to this is to just do more work. Take on as many projects as you can. The more work you do, the more you’ll learn as you arrive at different problems and challenges with each project. How you solve those problems is how you build your skill set. To be a great front-end dev, you need to be a master of the fundamentals. I consider the fundamentals to be layout, specifically the ‘position’ property and the ‘float’ property. I wrote a few 101 articles on those a while back that you can find here: (CSS Positioning 101 · An A List Apart Article and CSS Floats 101 · An A List Apart Article) I truly believe that if you UNDERSTAND how these work, you can mark up any design thrown your way.
If you feel like you have these concepts mastered, I would start to think about how you can mark up a site with a little elements as possible. For example, would it be possible to reduce this “module” of content from 3 divs down to 2? Things like that. I always like to think optimally when I’m marking up a site. It can be so easy to add more elements to the markup when we get stuck, but I would challenge you to try to keep it as minimal as possible. If you use a framework like Bootstrap, these sometimes have extra markup to accommodate a more flexible approach, but I would recommend staying away from frameworks until you really have a grasp on what you are doing. Learn it on your own before you rely on someone else’s code to do your work for you.
If you don’t have a lot of work coming your way, I would try to replicate designs/layouts that you see online. I used to find a site that looked like a challenge and then try to build it myself. Not copying the design per se, but just using div’s with a background color to try to nail the layout. That kind of stuff really helped to expand my skill set as well.
Lastly, I would try to set some goals to learn new languages. As an example, set the goal that you want to learn and master jQuery and how it can be used in front-end development. Whether it’s AJAX or traversing the DOM, learn some of the basics and progress from there.
How do you stay current on new technologies and trends?
This is a good question. My answer is, I don’t. I simply don’t have time to stay up on all the new tech and trends when I’m busy building sites with the tech that we have right now. I usually give trends a year before I start to embrace them and check them out. This does a couple of things: ensures that a trend is not simply a trend, but an emerging “best practice” — responsive web design for instance, and it also spares me a rough learning curve as by the time I look into it several articles/blog posts/github repositories have been published to help deal with edge cases/issues that always occur with new tech/trends. Because I’m self taught, learning them isn’t the challenge as much as deciding if I should learn them.
Any other advice I would offer?
- Strive to do good work. Don’t settle for hacks if you can’t get a particular layout to work. Step back and rethink it. Good work gets noticed and that’s how you grow your “brand”, if you will.
- Find a stellar designer to work with and offer to markup their designs at a reduced rate. It’s always rewarding to be working on a project that looks fantastic. It also doesn’t hurt when prospective clients review your portfolio.
- Go to conferences and start meeting peers. People are more likely to hire someone they’ve met face to face than a stranger off the internet.