<tangent>
This last week I’ve been talking with my brother Brack, who to say the least, absolutely abhors his job. Well, maybe abhor is a little strong, but he is extremely frustrated and unsatisfied. He works at a air force base in the human resource department and he basically helps provide statistical data for departments on who, what, and where to hire new help. Since he is a “wiz” at solving problems, computers, and making this more efficient, he has streamlined his work process with several nifty Excel spreadsheets and Java programs. He can now take a weeks worth of work and do it in one morning.
Needless to say, he is now doing all sorts weird things that aren’t in his job description. Worse, if he isn’t “staying busy” he gets reprimanded by his superiors, since he needs to be “working.” Even though he has done triple the amount of work that his job really entails. His immediate boss and co-workers really enjoy his work, because he helps them out a lot and they see all that he does. Its those hirer than that who don’t both about quality or quantity of work, and just see “if you don’t look busy, you must be slacking off.”
Anyway, he has been exploring other options of employment, and he has decided to experiment with Web Development to see if he would enjoy that line of work. So we’ve been talking about possibilities of teaching him how to do web development, in the hopes that he will pick up on it quickly, and we could soon throw some basic work his way.
</tangent>
So over the last days I’ve been thinking about advice to give aspiring web developers, or those who are looking to improve on their skills. Here is my list of advice (or at least just a few items) to help you out.
Prepare to be a “Self Learner”
If the concept of “learning stuff on your own” doesn’t sound appealing, I’d like to share one crucial piece of information: The majority of your learning will be on your own, doing your own research. Yes, there are classes that can help you learn. Yes, you can get help from other developers. However, 90% of the stuff I’ve learned has been through my own research, study, and experimentation with technologies. The other 10% has been working with others to improve on my 90% I’ve already done. No one is going to take your hand and walk you through each and every lesson you need to learn. No one is going to spoon feed you your answers. You have to be willing to “figure stuff out on your own.”
If this doesn’t sound appealing, I’d highly recommend you re-evaluate your future as a web developer. Its not because you wouldn’t necessarily be good at it, but that the shear volume of new information, techniques and technologies is so vastly great that it would be impossible to have someone else teach you everything.
Web Development is Creativity & Problem Solving
Weh development requires a LOT more problem solving and creativity than people think. The best way to describe it is for most people think web developers are like construction workers. People hand you instructions, and you use your skill set to accomplish the task. Also, many people think each website is basically he same, and so it is like building houses. While they all might look different, the challenges they provide are all the same.
Web development is nothing like that. The best description is it is more like you are the architect, contractor, and construction worker all together. Unless you work for a giant firm, most of the time you’ll be planning how to execute just as must as you do the actual building. If you don’t enjoy this concept, once again you might want to re-evaluate. However, if you love challenges, then web development is for you. It seems every new site has something to bring to the table to make your brain really work.
Don’t Overdose On Information
There is a lot of information out there on web development. While I was explaining it to my brother, I realized that the average LAMP developer had to deal with a lot of technology. Linux, Apache, PHP, MySQL, HTML, CSS, JavaScript, Ajax, and many other things. Each one could give you hours upon hours of information to study. You’d never be done.
Start small and worry about just one topic at a time. If you rush to learn it all, you’ll be overcome with the vast amounts of knowledge you can learn, get overwhelmed, and lose all desire to learn more.
Be Aware Of Many Technologies, Focus On A Few
This can go hand in hand with the previous idea, but learning about a technology is much different than learning how to use one. An example would be Memcached for me. While for years I’ve known about it, I haven’t had a real need to implement it. However, I knew exactly what it was used for: lightening load on databases and improving website performance. So when the time came when I needed what Memcached provided, I knew where to look.
There are many other technologies like this that I haven’t used yet (Comet, Advanced MySQL Replication, Amazon Web Services, etc) but I know of. That way, when I do need them, I know where to look.
Find People, Groups, and Communities to Ask Questions
Find someone you know who can help you answer questions you will have. It is important to have this resource of experience the benefit from, but not abuse. Do your homework and research so you can go to these people with well defined questions, not “I don’t get this, show me.” There isn’t a quicker way to lose the attention of others than wanting them to do your homework for you. While many web developers are willing to share knowledge, we’re not willing to do your research for you.
I recommend finding a local user group, like the Utah PHP Usergroup that you can find people who can help answer questions. There are also national and international groups of people who can help you out. Just remember, be nice and kind to these people. You won’t get anywhere if you’re a jerk.
Don’t Get Discouraged
It can seem like there is a lot of information out there. There always will seem like there are things you should know, but don’t. Keep at it. If you find that you really do enjoy it, keep working hard at it. If you honestly try, and put for hard work, you will get better.
Always Think: How Can I Do This Better?
I think this is severly overlooked by many web developers, and yet it is crucial to their growth as skillful developers. There are always ways to improve, and if you actively seek them, you’re work will get better. Why is this so bloody important? You will spend 80-90% of your time maintaining code and projects rather than writing new code and websites. So if you can write a website that is easy to maintain and has very few bugs, you’ll be loving life. If you continuously spew out garbage, and don’t activately seek more efficient ways to code, you’ll be miserable.
Good Luck
Web development is awesome. I love it, and I believe it can offer a very rewarding career for people who enjoy challenges and use their creative side. I don’t want to discourage anyone from following their dreams, I just believe it is important to have realistic expectations going into it. The last thing you want to do is spend five years learning how to be a web developer, only to find out you do not have a passion for it.
If you ever have any questions, please feel free to leave a comment or contact me. While I don’t know everything, hopefully I can point you in the right direction.
Programming is a lot like playing Zelda. A lot of time is spent being frustrated with a single problem, but the reward for figuring it out is usually well worth it. So, if you’re planning on being a web developer and you don’t like Zelda, you might be in some trouble.
I’ve also found that there are a few people out there that want to get into software development because it’s a monetarily lucrative field. Like you said, this job is about passion. If you don’t actually like this work, you probably won’t get very far. I know this seems like a no-brainer, but it’s pretty common. It sounds like your brother has the right attitude, though.
LikeLike