I decided recently to branch out a bit, and see if I could start using a new medium to talk about the web development craft. I am starting a new stream at twitch.tv/bettercalldoll on Tuesdays (and another random night of the week) to answer questions that new or experienced web developers might have. The first stream went well, and so far the feedback has been great! Follow the Twitch channel or watch for posts from @bettercalldoll to find out more information.
Consistency is something I have lacked this last month. I want to blame it on a busy work schedule and spending time out of town visiting family over the holidays. However, part of it has just been my own fault as well. Trying to write a post weekly turns out to be a little more difficult than I thought. But, I have been getting some great hands on exposure to things I have been wanting to dig deeper into over these last few weeks like Jade and Gulp. With new years coming this week, I figured I would revise my resolution to writing blog posts on technology: Write as often as possible, and accept that life may get in the way a bit.
Up next will be some thoughts on Jade, and how we are using it on a project at work. It is a valid tool, but I am still struggling with adding one more layer to a build process. More to come, hopefully later this week!
A few weeks ago, I was going to focus on one specific technology per week, and then try to write up something about it. In practice, this does work great. However, given my schedule, it's harder to dig into working code when I get the free time. As you can tell by my posts, I am already behind one week...
It did come to me that I should not restrict my one-post-per-week rule to a technology or library that I need to develop in. Rather, since I mentor other developers at my job, I should also hit on subjects outside of the nuts and bolts of coding. It's other skills besides coding with a specific framework that has helped me to succeed in the last several years, and others might benefit from the things I have learned. One of them, is how I learned to level up my career.
Leveling up is a common term used in video games when your character gains enough experience to learn a new skill or skills. For example, by leveling up in a game you can use a more advanced weapon, or gain entry into specific sections of the game that you couldn't access before. If you are trying to increase your characters skills rapidly, you need to focus on leveling up. There are two main ways you can achieve this:
- You can gain a bunch of experience in a short amount of time by fighting a few tougher foes, with the risk of losing the battles due to the tougher challenge. The risk is worth the reward.
- You can gain a bunch of experience spending a lot of time defeating smaller foes. The lower risk is worth the lengthier time to gain the experience. You can almost do this type of leveling up passively in the game while doing something else.
If you want to be a better developer, you need to level up your career. I think the video game analogy options above fit perfectly in a developer's career as they are trying to progress. Now, granted, you can still gain skills as a developer over time just by doing your normal development tasks at your job. You will have tasks that are sometimes challenging, and other times not. Depending on the type of development or projects assigned to you, you could gain a massive amount of experience in a short amount of time. For those feeling that their day-to-day tasks are not leveling them up very fast, this post is for you.
Higher Risk Leveling Up
Everyone wants to learn the most they can, at the quickest rate possible. For a web developer, there is no way faster to learn a technology than being dropped into project and having to learn that technology on the fly with a tight deadline. Congratulations, you now have 100% focus on that technology whether you like it or not! This is a super high risk situation since there is little room for failure. You will learn, but given the project, you might learn the wrong way to implement the technology or not have enough time to refactor and deliver a product with too much technical debt.
However, some developers thrive in this type of situation. Their learning habits and personal lives' schedule may be able to adapt to this, and they will be able to make great strides in their expertise. They embrace these challenges, and find that "trial by fire" makes them a better developer. I tend to learn this way, due to my job at a fast paced marketing agency.
Lower Risk Leveling Up
As I mentioned earlier in the post, my schedule definitely can work against my goals of learning new things. However, I have learned over the last year that I can still learn a ton of information passively while I do everyday tasks such as commuting, or mowing the lawn. Podcasts are huge in my leveling up strategy, and they should be in yours as well. There are great podcasts out there that cover a variety of topics that will help your career, and all of them are free. I look forward to the boring car drives and time on the treadmill at the gym because I can knock out a few podcasts covering new technology while not even adjusting my schedule.
Reading books is an obvious choice, but does take a little more time out of your schedule and can cost some money. However, your career will flourish if you can read one nonfiction book per month focusing on a skill you want to learn more of. It really doesn't take that much time, especially if you follow my next advice...
Cancel your TV cable subscription. Seriously. I know this might sound like sacrilege to some of you, but there is no bigger time vacuum than the TV. The average american watches more than 5 hours of TV per day!. If you have a show you love, consider buying the season of it on iTunes or Amazon, and watch it...and only it. You can stay caught up, and still save a ton of money. By cutting out cable from my schedule, I have more time to spend with my family and find opportunities to better my career. It's probably the toughest thing in this post to do, but it is well worth it.
Take on a side project for a friend or relative. Try to find something that would allow you to experiment with a new technology, and allow you to adjust the schedule of completion. This way, you can take your time learning the information, and provide a quality product. Just be careful that you don't sign yourself up for too much work.
How do you level up?
I am always learning new things, and I know you are to. Leave a comment below and let others know some easy (and maybe hard ways) to boost their web developer experience.
Web development can be a pretty intimidating sometimes, especially with the sheer amount of technologies and libraries available to use. I get the to "talk the talk" in my everyday job, but that often doesn't lead much time for me to "walk the walk" when it comes to implementing some of the newest methods. Over the next several weeks, I am going to focus on one technology/library per week being used in the client-side development process and try to implement/experiment it in a way I haven't before. For some of those libraries, the new way will be the first time I have implemented it in anyway at all!
This first week's challenge will be Sass, and working on different versions of the runtime. Most likely it will be focusing on the Ruby version, and implementing BEM for a simple site.