*/ ?>

Seven Tips To Turbocharge Your Web Development Career

Over the last few months, I've been thinking a lot about the parts of programming that aren't really in the textbooks. What is it that really separates out the people that are considered 'pro' and those that aren't? 

It's not what you would think. 

Keep reading to learn some simple skills that can take your career to the next level

Why are you floundering? 

It seems like a lot of independent developers are having problems finding work. And more so, keeping it. A lot of these are chasing the end customer. That's not the demographic that I'm talking to here.

I'm talking about the people who are looking to define themselves as professional to agencies. People trying to show themselves as above the competition when lookin for jobs or trying to be a subcontractor, or as an employee at one.

Learn Git (or another version control system)

Seriously, this is a huge one. There are a ton of benefits to using version control. Keeping from losing chages, easier deployment, the list could go on and on.

I know a lot of people don't think it's necessary, but if you don't know how to use one of these, you'll be missing out. People will look at you as a hack at the higher levels.

Even if you are a hack, you appear to be more knowledgeable if you know one.

Another benefit if you're using something like github to contribute to open source projects or host your own repositories, then people you might be trying to work with will be able to see your code, and also how you work with others.  

Communicate Effectively and Consistently

This is one that is often overlooked, and it's one that's difficult to quantify. The main thing to think about is what you are actually saying, and what they are asking. 

  • Take time to re-read things before you send them. Is everything that needs to be addressed accounted for? 
  • Are there misspellings? Are you using proper sentences? Punctuation? Present yourself professionally. Most browsers have spellcheck, chrome now will even alert you if you are using the wrong version of a word. 
  • Are you replying in time? Forgetting to get back to someone is a good way to say "I don't care about your business." You don't have to reply within minutes, but keep it in mind. If it's extremely urgent, put it at a higher priority. If you are busy, take the time to fire off a quick "I'll get back in touch with you soon" message.
A lot of developers I've talked to put this as one of the main things that keeps them in good graces with their clients. And puts them ahead of other developers. You have to show that you are aware of their needs, and that you aren't just blowing them off. 

Don’t Oversell Yourself

This is one that I've seen a lot of people do. You want to stand out from the crowd, so you put every single tool you've ever touched into your resume. By the time you're done, it's either nothing but a jumble of keywords, or it's so long it won't be read. Focus on what you can actually do not what you think the client wants to hear.

This applies to interviews as well. Recently, I was asked if I knew about Apache server administration. Technically, the answer there is yes. I can set it up, I can create new virtual hosts, adjust settings with PHP and htaccess... 

But did I say "Yeah, I'm an Apache expert! Whatever you need, I'm your man!"

Nope. I told them that I know the basics, and would feel comfortable running it on my own server or locally, but that I wouldn't feel comfortable doing any administration on a site of their magnitude. And also that it wasn't something I thought should be part of my skill set. I'm a PHP developer, I'm not a support tech. 

I'm not 100% sure that it's an issue. I can only speak to my own experience. It seems like people that want someone that can do everything are unrealistic and cheap. They want to get by hiring the least amount of staff for as little as possible.

That's not what you want in an employer or a client, is it? Don't you want someone that's going to value your skills for what they are, and not looking at you like something to be exploited?

Use a CSS Preprocessor

This is a lot more relevant if you are a front end developer, but there it will help you out a lot with how quickly you can do things.

Tools like LESS and SASS make it much easier to keep things consistent - you can incorporate variables and mixins, so that when you need to change the "primary-purple" color sitewide, you update in one spot. Or if you have a "grey-box" style, it can be incorporated into another class easily. The same with things like drop shadows and rounded corners. You can set up functions to take parameters that customize this as needed. So it's a single line of code, rather than 8 or 10. And if you need to change anything, again, it's chaged in one place.

It also helps with understanding of the structure of your HTML document. Selectors are nested, so you can keep things much simpler. You put your outer selector, then define what happens within it. So instead of ".something h1" and ".something h2"  it's more .something { h1 {} h2 {} } You have to think about what that means for your markup. Looking at it from the two different perspectives, you will almost automatically create better code.

It also makes for more semantic and cleaner code on the HTML side. When #main-content can also incorporate .span-12 without needing to put .span-12 into the class tag on the section or div, reading your code is much easier. And when people look at your source, it's much clearer. It also reduces the weight of the actual page, putting more emphasis onto the CSS. And that is cached. You often see css that's shortened down to almost nothing, where you can't read it, to reduce server load. It's totally the wrong way to go about things. You want the CSS to be defining the markup. But by using a preprocessor, you can actually write CSS that you can read.

That makes a huge difference in the amount of work it takes to figure out what needs to be updated in the future, and it's also much easier to bring on other developers. 

Learn the Command Line

It could be argued that this isn't really something that everyone needs. 

I'd say that's 100% wrong.

At least if you're developing on Linux or macOS, this can save you hours every week. Tools like rsync and command line mySQL are factors of 10-100 faster than FTP or phpMyAdmin. Being able to SSH into a server helps to. 

Take this for example:

I need to sync up the database with a client's site on a live server. It's 600 some megabytes. I ssh into the server and do something like this:

ssh user@server
cd /path/to/dump/
mysqldump -u someone -ppassword database > database_online_2014.02.04_a.sql

So now, I have a database backup with a timestamp and a version increment (I might do this several times a day, especially if a client is editing while I'm developing) to keep track of what's what. 

Then it's something like this on the local side:

rsync -vre ssh user@server.com:/path/to/dump/* ./
mysql -u localuser -plocalpass database < database_online_2014.02.04_a.sql

Obviously, this is pseudo code. But that's the basic process. And the thing is, these are much, much faster than using other options. The whole process might only take 45 seconds, depending on the connection speed you have. 

It might not help you with the clients, though they'll be happy for the lower billable hours because you're not spending 15 minutes over and over on things like this. But it will help with your own peice of mind. You won't be annoyed spending all that extra time.

There are a ton of other benefits, this is just one example. 

Contribute to Open Source Projects

This kind of goes along with the learning a version control system above. It helps legitimize you as a developer. It helps showcase your skills. It also shows you are interested in helping others, and improving things for everyone. And that you are capable of working with others.

Do you need it to have a good career? Maybe not. Can it hurt? Not at all. 

Spend Time Learning and Teaching

Again, this ties into several of the previous examples, but it's also REALLY important. It doesn't matter how good you are now, if you aren't progressing, then in a few years, you will be obsolete. 

The technical term for this is 'professional development.'

Set aside a few hours every week to read industry blogs. Comment on forums and StackOverflow. Talk to people in your specialty on IRC.

If you find a new feature or workaround, take some time to post it up on a website. Preferably your own site or blog, but a site dedicated to whatever that workaround applies to would work as well. Depending on how popular your site is, you might want to evaluate your focus. This is going to be kind of up to you as to where to publish, but publishing is key.

On the same token: If you understand something that's not widely known in your niche, you should 100% post that. If you can go in depth and provide code samples? That's gold. 

Conclusion? 

The main thing that you need to keep relevant. And keep growing. Become more efficient. 

This industry is not at ALL a place where you can be static. And it's also not somewhere that you can BS yourself to the top. People want results, and they want solid skills. 

I think that these are things that will take you to the next level, but they're by no means the only ones.

If you have more tips, please leave them in the comments!

blog comments powered by Disqus