I had a dream!
This dream was to write an article with a title beginning by "10 tips to...". I don't normally like them so much (yes, they are often pure clickbait) but let's face it, humans like lists. That's why we have the
ul tag in HTML.
When I finished to write this article and I counted how many parts I had, I was so full of joy and love! I had 10! The Saint Grail for an article-list!
So here we are.
You have a dream as well? You want to be a great web developer?
This article can help you.
Let's break the stereotypes
The development field is full of cliche which are misleading for beginner web developers. Many people think that a web developer should be one (or all) of those stereotypes to be a good one.
Through my seven years of development I encountered many of them. Here the most three common one.
If you know more recurrent cliche, don't hesitate to add them in a comment.
Do you need to be smart to be a web developer?
R2 try to read to look smart
This question deserve an article by itself. I will try to be as short as possible on the subject.
For a lot of people, being one of those geek spending their life behind a computer imply that they need to be smart (and full of spots and without friends).
The first question I ask myself when somebody bring the subject is: what the hell does "smart" mean?
If you try to look in a dictionary, it's a bit confusing. If you look at the Collins definition, "You can describe someone who is clever as smart".
This definition doesn't explain anything. What does clever mean? According to the same dictionary, "someone who is clever is intelligent and able to understand things easily or plan things well".
What is "Understanding things easily"?
Is it understanding in a good amount of time? In what conditions? When you run against a lion who tries to have a good lunch out of your person?
Do somebody clever understand everything easily? Like the nuclear fusion or how to write an opera?
"Plan things well" is pretty confusing too. What plan? Does it mean that clever persons always have successful plan? How do we measure that?
Obviously there is another important word in this definition: "intelligent". What does the Collin have to say about that?
"A person or animal that is intelligent has the ability to think, understand, and learn things quickly and well."
So intelligent people learn easily (without effort) and quickly (in a good amount of time).
Does it mean that intelligent people can do that with every bit of knowledge? In every conditions or mood? Are some people only plugged to web development and are only intelligent in this area?
Being intelligent is a fleeting state or a constant quality?
Is it something we are born with or something we can learn?
Intelligence is pretty well understood by a lot of people. At least they think they understand it well. To me, everybody has his own definition, which is pretty annoying when we try to understand each other on the subject.
Even more important, since it's difficult to define it's difficult to assess and to measure.
I have a big new for you: we are all humans. Therefore we have all the same capacities ; what really matters is how we use them.
In a nutshell: no, you don't need to have something as abstract as "intelligence" to be a web developer. You can learn to become a good one. This is a good new, and I have an even better one: you will never finish to learn it.
Do you need to be good in math?
Another cliche I heard quite a lot.
Let be short on this one: web development has very little to do with mathematics. If you know how to add, multiply, subtract and divide, you can be a web developer. Basic stuffs.
Obviously if you work on the next online super tool for mathematicians, your work will be related to mathematics. Nonetheless the craft itself, how to code, has nothing to do with numbers.
What you will need for web development is what I call "general logic".
I sometimes define development as a lot of gear interacting with each others. You need to be able to place those gears in a logical and efficient way to create business value on one side and simple, easily maintainable and reusable code on the other. In short: you should be able to rearrange those gears without too much effort and time and without breaking anything.
Do you need to know a lot of stuff?
You will need to have some knowledge to be a web developer, for sure.
Nevertheless, your capacity to create simple solutions out of complex problems is much more valuable. It will give you the opportunity to always adapt in the domain you work with and the technology you use.
The only way to improve this skill is by coding. You need experience. You need to code and to learn from others how to code better. If you need more details, that's great because I wrote an article about learning as a web developer.
Knowledge will come while coding. Acquiring knowledge via development books is as well advised.
How to become a better web developer?
Here we are. The list I promised you!
So you are a web developer and you want to improve. Improvement is something you should have in mind as much as you can since it will make your work much more enjoyable for you and for your boss / clients.
You want to enjoy what you are doing, I'm sure. So keep reading!
1. A good developer should be interested
I can't picture a good web developer without a minimum amount of interest about web development. It's primordial on the long run: interest will keep you learning and not get bored.
Boredom means efficiency and curiosity going down. Plus you won't enjoy the 8 hours a day you spend at work. So, what the point? If you don't like web development, find something else which please you.
2. A good developer should be curious
If you feel that you like web development and you want to know more about it, congratulation! You are a curious web developer.
Interest and curiosity goes together. Curiosity is a good way to assess if you are interested enough to code all day long.
Obviously web developers are not interested and curious all the time. When I am tired or when I spent my day on difficult bugs, I am not very curious anymore.
It is a general state. If you are mostly curious and think about development often, if you want to improve and be good in your craft, if you spot yourself thinking at some bugs you have in some dark application randomly through the day, you have the most important qualities a web developer should have: interest and curiosity.
This is the necessary foundation to be a happy and good web developer.
3. A good developer should be willing to learn
With curiosity and interest will come a will to learn about web development. Simply because you will try to be good at coding, you will try to learn how to improve your code.
Therefore you should try to learn from books and from other developers. You will need some discipline and commitment to be effective and productive in your learning process.
4. A good developer should be implicated
I have a question for you: what's a good web developer's main goal?
The answer seems easy. A web developer have to produce efficient code. When the code works, your boss is happy and everything is fine. You can be proud of your salary at the end of the month.
Not that fast! I have a bad new. Making your code working is the minimum a web developer should do. For a good web developer, the minimum is not enough. If you want to be appreciated by your boss or by your clients (and becoming rich and famous) you need more. You need to create business value.
A web developer is a problem solver. First, You should be able to solve technical problems with your skills (develop new functionalities, fix bugs).
Second, you should go beyond the task assigned to you. You should propose better technical solutions and always be critique towards any specifications.
Third, you need to think beyond the code. With experience you will be able to spot bad culture in a company or you will see some possible organizational improvements.
At that point, don't be shy. Search for a solution and help your company (or clients). You don't need to solve problems only in your code. If you can give precious advice on basically anything, your value will grow and grow.
This is what I mean by implication: it's your ability to bring more. When people ask you to do something, do more. Bring as much as you can on the table depending on your experience and capacities.
Remember: you are a problem solver. The kind of problem you solve should be very broad.
5. A good developer should always try to improve his code
Coding is meant to create functionalities which work, for sure. It means as well communicate to other developers what the code is doing.
Look at Albert, a good web developer. Albert knows that in three months he won't remember his code. He knows that a lot of other developers will implement new features on his application. He knows that when he will quit his company to have a crazy career in Google, other web developers will have to understand his code. He won't be there anymore to explain it.
Albert is a smart, clever, intelligent and beautiful web developer. He tries as well to make his architecture more solid, his code less prone to bugs.
In practice: good naming, good organization and good unit tests are three ways you can dig in order to improve your code. Follow the good practices from the best (and read their books).
Your code needs to be as future proof as possible: clear, simple, easy to extend.
The task is not easy, but that's why we love so much developing. For the challenge!
6. A good developer should embrace challenges
Rope climbing is definitely a challenge for mini R2
Challenges. This simple word rise some contradictory feelings in my little heart.
Obviously during interviews with big bosses I want to work for, I will prone challenges. You want me to kill a lion with my own hands while an elephant charge me and one of my leg is eaten by piranhas? What a challenge sir! No problem, I can make it!
Everyone is afraid by challenges. Simply because it's difficult. What happen if you fail? Will your colleagues mock you till the end of time? Will they begin to create meme with your face? Maybe the whole Internet will define stupidity with your name?
Here a great tip: you have to work on yourself to accept that failures are opportunities to learn. It is a chance for your personal growing.
I can reassure you: everyone is afraid by challenges.
However they should have an attractive power as well. Plainly because you will learn a lot from them. You will grow a lot from them. Boredom will become an idea, not a reality anymore.
If you want to be good, you need challenges, much more than anything else.
So go beyond your fear and bring back some vanquished challenges!
7. A good developer should be humble
I had to work with a developer who simply didn't want to learn. He was saying it himself. Let's call him Dylan.
Dylan was sure everything he was doing was good. No matter what argument or even books you would reference, the discussions was always going on and on. He had a great imagination to create arguments to prove himself (and the others) he was right.
Don't be like Dylan. As my dear friend Socrate said: "I know that I know nothing".
Learning in the web development field is a process which doesn't end. More you learn, more you will discover that you can learn much more to improve your work
In order to learn you need to be open to the idea of learning. If you know everything, if everything you do is good, what the point in learning?
Obviously even if Bill Gates himself tells you that your code is wrong and you have solid arguments against his arguments, you should discuss with him. The key word is solid here. Arguments are meant to prove a point for the good health of your work, not to prove your are right to the face of the world.
Just try to listen to the other developers. It's an easy concept sometimes difficult to follow.
When somebody point your weaknesses and failures it's easy to feel attacked. Still, if you consider and eventually accept those failures, you will grow faster and stronger.
You will become an even better developer.
Don't be too prompt to judge other developers neither. After Dylan's story I am sure you can see me yelling at the moon: "Dylan is the worst developer ever! He should be burn on the village square!".
I am trying not to. Sometimes web developer produce bad code because of time pressures, bad company organization, personal problems and whatnot. Sometimes they are not very confident, that's why they don't like to be wrong. We have all our weaknesses and we all produce bad code. Don't judge too hardly or you will be hardly judged as well. Empathy and patience or keys here.
The goal is not to qualify developers with every name you can think of (from "good" to "worst disgusting slug") but to help them.
Try to communicate your knowledge, try to make developers grow like little flowers. Teaching is highly beneficial for your growth as well. Maybe your nemesis web developer will teach you a lot in return!
In short: don't blame developer or the code or whatever, try to solve the problems you have with them.
8. A good developer should have discipline and commitment
Having self discipline is important if you want to go deeper and deeper into your craft.
Simply put, I think hard workers are always rewarded.
That said, hard work is not always something synonym to torture, sweat and blood. It can be very enjoyable.
It is true as well that because you like web development you will be able to work hard for it every minute of your life. Procrastination can hit when you expect it the less.
That's why discipline is important: if you create work habits, if you have a good organization, it will be way easier to be productive and to increase your skills.
Being productive doesn't mean working a lot but working efficiently. To do so, you need to manage your time and you need to know yourself pretty well to achieve the best you can do.
Create a habit structure around web development, plan your work, use organizational and time management techniques (like Pomodoro) can help you to procrastinate less and to improve the way you work.
Take this blog for example: I enjoy writing but I didn't do it in a consistent way for years. Now my organization plan allow me to write 25 minutes each mornings and I achieve a lot more! The simple power of habits.
You need as well to be focused on your tasks. Close Facebook and everything throwing you notifications. Do one thing at a time. Nowadays focus become more and more scarce, you can make a big difference by being concentrated on your work.
Again, my article on learning as a web developer can give you some tips on the matter.
Keep in mind that it is not easy to create commitment and discipline. Don't be hard on yourself, go step by step and don't give up!
9. A good developer should have creativity and imagination
Web development is not a cold area where only pure knowledge and logic is rewarded. It is a creative place as well where ideas are more than welcome.
Many web developer, like Roger, comes to work at 9 o'clock and code, code, code till it's the end of the day. The day after is the same. And it's starting again, and again, and again.
Roger doesn't really create anything ; he is applying good old development recipe, whether they work or not. It doesn't matter, Roger feels he is doing his job. It is not necessarily good, but he feels like it is. He was busy all day, so his work should be good.
Only writing the last couple of sentences bored me as hell. Even if I like coding I like trying to improve things around me. As stated before, don't be only a coder, be a problem solver. In order to solve problem efficiently, having imagination and creativity to find good and sustainable solutions are necessary.
The code is just a tool. You need to use it to bring as much as you can to your clients or company you work in.
Trust me, it is more fun that way. Having good and solid knowledge about web development is mandatory, but don't stop at this point.
Create your own solutions. Experiment. Try to find better and more efficient way of coding, fix your mistakes and try again.
You will become more valuable to the development community because you will have new and fresh ideas. Communicate your conclusion, discuss them with other web developer. Try to bring business value to the whole web development field.
You can write blog articles if you have ideas, speak about your conclusion on x or y technology for example.
Contribute on github and try to bring your own creativiy. Give advice and discuss with other web developer about them.
By being creative and imaginative, you will for sure become better and better with a deeper understanding of web development.
10. A good developer should rely on facts
To improve yourself or to point problems in your company or for your client, you need facts. You will never convince anybody with your feelings. "I feel that the application is not well coded, let's rewrite it!" doesn't sound convincing for people holding a business. They invest money in you, and you don't invest in feelings.
Instead, bring data. The application you work on is too slow, you want to improve the performances? In that case measure those performances, spot the problems, do some research why your application should be fast.
Bring all those information to the people you need to convince, on the business side or on the development side. If you need to convince Albert the team leader, it is always good to quote famous and well known developer. Their words have more weight than yours.
You need to create business value, so you need to prove what you want to bring some. More you have arguments and data, better it is. It is sometimes not easy to convince but with factual information, it is easier.
A great developer is valuable
I hope this article gave you some keys to become even better and more valuable.
Increasing your value in the web development field should be highly motivational. Having value means the opportunity to choose better projects, better jobs, better clients, better everything.
It brings as well value in your life. You will enjoy web development even more!
Don't be too hard on yourself: nobody is a perfect web developer. You need to value yourself as realistically as you can. Nobody is the worst, but nobody is the best neither. We are all in between, and we all have doubt about ourselves.
Don't let yourself or the other judge you to hardly: try always to get something out of each challenge and try to grow even more.
A last point: if I could define a good web developer in a short sentence, I would say that he should be able to transform complex problems into simple solutions.
Now go, web developer, make the web development field even better!
R2 is on the way to make some big changes in the web development world!