10 Signs That You Are An Awesome Web Developer
So you know how to make a website or two. But are you worthy enough to be called an awesome web developer? Here are 10 positive signs that you are.
1. You use a framework
Even if you are a rockstar programmer, a web development framework makes a lot of sense. It gives you a collection of good practices and libraries that let you concentrate on your web app, instead of reinventing the wheel. As a bonus, you get things like templating, pretty URLs, session management, ORM, testing facilities and more for free. A framework leads to easier to manage code and minimizes the chances for security issues to arise, so you probably should use one. See a huge list of frameworks here.
2. You use version control
Version control systems allow you to keep track of every change that you've made to your code, to compare, branch and work collaboratively without stepping on your team members' toes. Git is the most popular system with web developers today and it is easy to get started with - you can turn your project folder into a repository with a single init command. Experienced web developers make full use of git's advanced abilities, but so can you - every IDE offers integration with it these days, so even if you don't know the commands there is a lot that you can do with git.
3. You reuse code
Reinventing the wheel and the NIH syndrome are big issues for programmers. You might have spent a day coding, feeling incredibly productive, only to discover that a 30 second Google search would have revealed a library that does exactly what you need. A positive trait of awesome developers is that they use their language's package managers to search for libraries that they can use before solving the problems themselves. Every language has an online repository that makes things easy to find - PHP's Packagist, Node's NPM, Ruby's Gems and more. The same issues apply to reusing one's own code. Extracting common functionality as libraries can save you time in the long run.
4. You write tests
You should never trust that your code is bug free only because everything works when you refresh the browser tab. Things can break in subtle and unforeseen ways. Awesome web developers know that automated testing is the only way to be certain that their apps work and continue to work after every code change. Testing takes many complimentary forms. Your framework likely has built-in facilities for constructing and running tests. There are also tools like seleinum which you can use to simulate how a user would interact with your site.
5. You take security seriously
CSRF, SQL injection attacks, XSS, session fixation, MITM attacks are only some of the hot topics that a security minded developer should be aware of. Luckily, your framework's authors have to worry about these issues, but it is important that you know what the threats are and how to mitigate them. Here is a video tutorial series to get you started.
6. You document your code
Experienced developers know that code is written once, but read many times. This is why they try to make their code as easy as possible to understand by naming their variables and functions descriptively, and by leaving plenty of comments. Every language has conventions for writing doc blocks - descriptions that appear before every class or method. They describe the parameters expected by the method, and can be picked up by an IDE and shown contextually, or by a program that turns these comments into HTML documentation.
Other developers even take the time and write down the architecture of their apps and the technical decisions behind it in a wiki or another document. Such documentation is very valuable in a team setting, where new developers can join at any time. Even if you don't go all the way and write documentation, making it a habit to leave comments in your code will still win you the awesome badge.
7. You can set up a web server from scratch
Basic administration skills can go a long way if you are a web developer. After all, every site that you create needs to be run on a properly configured web server. Knowing how things work will help you debug problems, set up your development environment, and to save on hosting bills by running your own server. Another place where such skills can be handy is in setting up a deployment strategy. Uploading stuff via ftp is prone to error as well as insecure. Here is a nice collection of guides to get you started with system administration.
8. You keep track of new libraries and tools
9. You manage your time efficiently
Everybody knows what it is like to waste hours in front of your computer, doing everything except working on the things you are supposed to. Awesome web developers don't have this problem. They are able to plan a week in advance, break down large tasks into smaller ones, and start working first thing in the morning. They start with the easy things and move on to harder problems while picking up speed. They know where they work best - some are more productive from home, others from the office, and third from coffee shops or other public places. Here are some time management tips.
10. You know how to stay healthy
Although it is in the lifestyle category, staying healthy has everything to do with your productivity as a programmer. We spend most of our days sitting and staring at computer screens half a meter away. This can lead to everything from chronic back and neck pain, eye problems, weight gain and more. It is not difficult to prevent these problems - taking breaks, going for a midday walk, doing the 7 minute workout in the evenings and getting plenty of sleep can have a good energizing effect on your mind.
That's 10! What's your sign for an awesome developer?