- August 18th, 2010
- 100 Comments
At one time or another, we are all newbies. That’s right: you can deny it all you want, but not one of us got into this game with a full deck stacked in our favor. We entered as newbies, born fresh after the start screen loaded. However, unlike in a game, we are not immediately launched into a tutorial level to learn the ropes in this new world — what to avoid, how to progress, etc. And if we feel overwhelmed by our newbie status, we may not be able to find our way to the tutorials and guides that the community has put together to help us sort all of this out. So, feeling very alone in all this is easy.
Jumping in a new passion can be difficult and time-consuming at first. The support of the community can be extremely helpful in overcoming the learning curve and helping to find the right route for your career and your professional skills. Image credit1.
But this is the great thing about being part of the online development community — that you are never truly alone. Your experience may be unique in its details, but it’s not generally, which is great because the community is very open to sharing its experiences and offering guidance to help newbies navigate the twists and turns we are sure to face as we continue down the developer’s path. In most cases, all you have to do to get some helpful advice is to venture into the social media neighborhoods and ask the community at large. At times, the answers just pour in.
That is what we found when we went out on Twitter2 and on Facebook3 recently to poll our followers and fans. We asked “What is the single best tip from your experience that you would give to newbie developers?” This article is the result of all of the amazing responses we have received. Before we go any further, we would like to thank those who took the time to answer our query and who offered so much great advice to all the newbies out there in the development arena. As usual, the advice also serves as a nice refresher to all those seasoned veterans who have been in the game for a while.
Never Stop Learning
This answer, which we received repeatedly, is by far one of the best pieces of advice for newbies in the development field: never stop learning. This truly is one to keep in mind as you tread through this new world, because working in a field as dynamic and fluid as development, you can quickly fall behind if you do not actively strive to stay ahead of the curve. Without somewhat of a dedicated effort on your part, your progress could stall, and your skills and work could stagnate.
Once again, the online community and so many others have your back in this respect. So many wonderful books, blogs and other accessible resources are teeming with knowledge, just waiting to be absorbed and passed on. So, read. Implement and practice what you have learned. As noted in the replies below, trial and error is a fantastic method of self-teaching. You might even go so far as to schedule some kind of weekly assignment for yourself, to always keep your skill set growing.
- Start with examples and muddle around with them. Change every line of code to see what it does. Then learn why those things work.
- Be a sponge. Don’t let pride get in the way of learning from others.
- Never stop learning.
- Read. Oh god, read so many books on the subject that force you to practice things over and over again.
- Learn how to learn for yourself.
- Never think you’ve learned it all.
- Don’t pretend you know all. Blogs and forums are your best teacher.
- Read the docs. Don’t reinvent the wheel. Test. Learn.
- Don’t copy and paste. Learn.
- Always have a project on the go. It makes sure you keep learning.
- Learn by putting as much as possible into practice.
- Always learn more. You should never be 100% content, and always strive to constantly improve your skills.
- Never stop developing their skills.
Take Criticism Constructively
… No matter how it is given. This is another important piece of advice that is both vital to learn and extremely difficult for some to do — especially because the anonymity of the Internet seems to give so many license to forget one half of the constructive criticism coin; they instead berate and belittle through their comments and their assessments of the developer’s talent. But no matter how harshly they come at you, find a way to distill the essence of their statements to see if you can gain anything from them. If they have no merit, let them go.
One thing to always remember, as pointed out in the advice below: never take criticism of your work personally — especially given that in this field we are never supposed to stop learning. We should always welcome feedback from others in the community that helps us improve. It is simply a means of keeping our skills sharp. Inviting open criticism allows others to help open our eyes to new approaches and even problems we are entrenched in. Also, thinking of it as feedback and not as “criticism” might soften the blow for you. After all, who doesn’t love feedback.
- Be open to feedback as everything changes.
- Learn to love criticism.
- Test in every browser/OS config you can. And don’t take criticism of your work personally.
Here is another major tip to hold onto: be patient. If you can master this one, then you will have saved yourself many sleepless nights and hair-pulling-induced headaches along your journey to greatness as a developer. Remember that these skills do not develop overnight, no matter how much we wish they would. This journey is just that, a journey — not a direct flight to the final destination. Getting to where you want to be will take time.
Take your time. Don’t rush through the learning process too quickly, or you will likely burn out and get frustrated. Take the slow route, making sure you completely grasp one area before moving on to the next. If you hurry, chances are something important will slip past you. And as you work with others in the community, be patient with those both behind and ahead of you on the learning curve.
- Have patience… a lot of patience. And if you have to get IE6 to work, start a pot of tea or something to calm yourself. :P
- Have patience: with yourself, others and especially the code. :)
- Take all the time you need to learn the basics. They are fundamental.
- Prepare for frustration.
- No matter how stupid what your client just said was, think before you reply.
Comment Your Code
Another pearl we found in the plethora of replies is a wonderful coder’s mantra (or at least it should be): comment your code. Comments are a powerful aid to new developers for many reasons, the main one being that learning through repetition is a fantastic way to make information stick. If you constantly comment on why you used a particular bit of code or how another bit works, then each time you return to it, you will be further cementing it in your brain.
Also, comments can provide just as much benefit to others who will be interacting with your code. Remember, it is not always about you. Comments are a way for others to learn from your work, just as you have learned from the code of those who came before you (if in fact they did think to leave comments). If you work with other developers on a project, this is an easy way to keep each other informed on why someone coded their part the way they did. It demonstrates professionalism, too, so keep up the comments.
- Thoroughly comment your code! It will help infinitely in the long run.
- Always use detailed comments. At some point, someone else will look at your code. Do them a favor and comment like mad.
- When commenting: describe why not just how.
Be A Helpful Member Of The Community
This next bit of advice ranks quite high for many developers, not just because of its obvious benefits but because of the reward one feels from doing it: be a helpful member of the development community. It could prove to be an invaluable asset in your arsenal, not only because the lines of communication that you open will create great learning opportunities, but because you are building lasting relationships that you can call upon later when you find yourself in need of assistance.
Those of us who have gradually moved through the ranks have especially relied on these resourceful posts and helpful guidance to make the most of our skills and code. We should really stay active in the community and give back when and where we can. Paying it forward for all of those who have paved the way for us is not only an obligation; we really should want to help this community of ours thrive and grow. Reaching out through social media outlets, blogs, forums and more can really improve one’s skill set and viability.
- Get involved in the design and Web community as quickly as possible.
- Peer code reviews!
- Set aside time to help other developers. It could be in online forums. It really helps you reflect on what you know and don’t know.
Learn The Business
Learn all aspects of the business side of the industry, especially if you are freelancing. We got a few responses about this. And it makes sense. If you want any kind of sustainability in your career, then having a solid grasp of the business side of things is important.
Knowing how the business operates and what clients generally expect will prepare you well for a freelance career… and will also keep you from being taken advantage of. If you learn the general pay scale and expectations of players in the field (including those of clients and other developers), then you’ll be well prepared to set your own rates and expectations. It also teaches you how to handle paperwork, which can be cumbersome and potentially overwhelming if you are unfamiliar with this side of the business.
- You can only make so much money coding. Learn the business.
- Quadruple your hourly estimate.
- Make a careful and detailed estimate. Now triple it. You’re probably close to the truth.
- Your estimates will suck for a long time, so be as conservative as you can, and offer discounts on overage.
- IE6 is a bitch!
- Choose your clients wisely. Bad clients end up costing you time and money.
If You Don’t Love It, Leave It
Some other words of wisdom that were passed along can be summed up like this: if you don’t love it, then this is not the right work for you. Developing is more than a job; it is a career — beyond that, even a way of life. Coding changes the way you see and interact with the world around you. It challenges you every day with something new to conquer or sort out. The hours seem to keep piling up, and your brain becomes harder and harder to switch off, continuing to solve problems long after you have bidden it to rest.
This holds especially true for freelancer developers. As a freelancer, you are so much more than the person behind the code: you are the person behind it all. This is where your love of code comes into play ten-fold. Passion goes a long way in development. True passion for what you do comes only from loving it. You can’t fake it, either. A lack of passion not only will reflect in your work but will impede your progress.
- If it is just a job for you and you do not look forward to breaking nights, find another job.
- Love what you do, and remember those who taught you.
Make Time For Yourself
Another bit of advice to keep you sane as you grow is to make time for yourself. The best way to do this is to keep some sort of side project going. There are many reasons to do this, your sanity being the main one. Staring at code for hours on end takes its toll, especially if your code is failing and a solution escapes you. One way to fight off this madness is to have something to work on that lets you unplug.
A side project gives you an outlet to recharge and sustain your interest in the field you have devoted yourself to. Make no mistake: this is a time-consuming career path, and without a side project to keep you engaged, you will quickly burn out. The work that once enthralled you will lose its appeal, and the passion that got you to where you are will fade. A side project also ensures that you constantly learn. You can choose projects that challenge you in ways that you don’t find in work for clients.
- Keep sane with a side project of your own.
- Work on a real project every day, even just a personal one.
Believe In And Be Yourself
Another powerful bit of advice offered by the collective that we polled was to always believe in and be yourself. Given people’s tendency to aim for the throat when “critiquing,” these words of wisdom are especially potent. Allowing negative words and disparaging character assessments to lower your opinion of yourself and your abilities will deflate your momentum.
Always be true to your personal voice. Don’t compromise it while finding your way. You want to carve out a truly individual path, and that includes your voice, too. So, don’t try to imitate others who have found success. As noted below, never try to be someone else, because that never works the way you hope. Being inspired by others is fine, but don’t lose your identity and voice in the process.
- Believe in your qualities. Never try to be somebody else. Life is too short for that.
- Don’t quit! Hang on! Everything will work out fine.
A Few More Words Of Wisdom
Below are other responses that we couldn’t just leave hanging in the Twitterverse:
- Try everything yourself before asking someone else (trial and error to the max).
- Find your niche and focus on it until you are an expert.
- You could probably code it well, but there is a fair chance that there is a time-saving jQuery solution.
- Think of the visitor who is trying to find out something. They need to understand what’s going on, not just be impressed.
- Some bridges just have to be burned.
- Web developer? Practice sleeping less.
- Don’t scoff at new ways of doing things because you don’t initially get them, nor should you embrace them without honest evaluation.
- Stay informed about the direction of the Web. There’s a lot to learn, and along the way you’ll pick up skills.
- Google before you ask.
- Use source control. After that, comment your code.
- Never write anything but standards-compliant code: faster, more reliable, and you won’t have to fix it when new browsers come out.
- Regression test.
- Do not fall in love with the code you write.
- Put functionality first. Beauty comes in second place.
- Don’t be cocky.
- Focus on one subject at a time. Start with CSS.
- “Stay hungry, stay foolish.”
- Learn to write and format your own code cleanly and in as few characters as possible.
- Run away from clients with red flags.
- Take the most pride in your team’s code, not your own. Don’t complain when people edit your code. Enjoy how it improves.
- All the stuff you say about all the old code you read, someone will say about your code in 10 years. So, knock it off. :)
- Stay organized. It’s the key to success.
- It’s never a hardware problem.
- Logical, step-by-step thinking will solve any problem you encounter. No doubt about it.
- Find a good IDE (like Aptana4).
- Appreciate the design in front of you, and design in general.
- You don’t fully understand something until you can explain it succinctly to someone else. So, learn → do → teach.
Other Resources and Related Posts
Below are a few more articles and resources to help the newb start off on the right foot, armed and ready. If you have some time, we recommend checking them out.
- The ALA Primer: A Guide for New Readers5
- The ALA Primer Part Two: Resources For Beginners6
- What Is The Last Thing You Do Before You Launch A Website?7
- Dealing With Clients Who Refuse To Pay8
- How To Identify and Deal With Different Types Of Clients9
- How To Successfully Educate Your Clients On Web Development10
- 1 http://www.flickr.com/photos/drp/
- 2 http://twitter.com/smashingmag
- 3 http://www.facebook.com/smashmag
- 4 http://www.aptana.com/
- 5 http://www.alistapart.com/articles/ALAprimer
- 6 http://www.alistapart.com/articles/alaprimer2/
- 7 http://www.smashingmagazine.com/2010/07/13/what-is-the-last-thing-you-do-before-you-launch-a-website/
- 8 http://www.smashingmagazine.com/2010/04/09/dealing-with-clients-who-refuse-to-pay/
- 9 http://www.smashingmagazine.com/2009/10/15/identifying-and-dealing-with-different-types-of-clients/
- 10 http://www.smashingmagazine.com/2010/04/23/educating-your-client-on-web-development-successfully/