Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

March 15 2010

10 Things I Wish I Knew as a Web Programmer 10 Years Ago

Shared by Eddie Awad
Good advice even if you're not a web programmer

#1. Over Estimate Your Time

Unless you are 100% confident in what you are programming, you should always over estimate how long you think it is going to take you to complete a project or a task. This will give you more cushion room, but it will also make your time more valuable because you get projects done faster than your estimate.

If you are asked to give an estimate with something that you can’t get at least 50-75% comfortable with, than you shouldn’t estimate on it. If they will not give you the required time to look into it and make a more educated guess, and they force you to create a rough estimate, I would calculate what you think the worst case scenario would be, and times that by 1.5. This may not make upper management happy, but it does show your level of comfort with certain systems and this method is a safe approach to the unknown.

The flip side to this is that if you estimate a project and it takes you longer, this does not make you look good, and I suggest avoiding this as much as possible. As you gain experience with different systems and with the programming languages you work with, you should get a better idea in how long things take. If you get really good at this, you will always end up getting projects completed faster than estimated.

#2. Get Familiar with a Framework System

A framework system, such as CodeIgniter, will increase your productivity if you use it properly.

If you are working for a company that does not let you use a system like this, and doesn’t have their own framework, you should learn at least one anyway. These type of things are great for your resume and can get you jobs. I suggest spending some time researching which php framework you want to go with and then tackle it full force.

I would also suggest getting experience with WordPress, Drupal and/or Joomla.

#3. Don’t Assume that Where You are Working is the Best Opportunity

Will the company you work for be able to pay you what you want to make? What about in 5 years? Is the company growing and going anywhere? Are the people you work for happy? Are you constantly over worked? Do you feel under paid?

I’m not suggesting that you constantly apply for jobs. But it is healthy to have a good feeling for what else is out there. Talk to other programmers in your field that live in different areas (or the same area) and see how much they make. Get familiar with different companies where you live and possibly other companies elsewhere that would let you work out of your home office (like my current situation). If you open up your job market outside of your current city/state, there is a good chance you can increase your salary range greatly and have the opportunity to work for more progressive companies.

The point here is that if you want to see your career get progressively better, you should always be open to other opportunities. Don’t let your current employer make you feel guilty for going with this approach. Sometimes the best option is to quit working for your current employer and join a different team. Just make sure to keep your options open and don’t burn bridges.

#4. Don’t Get too Comfortable with GUI Systems

I learned PHP and how to work with MySQL by using systems such as phpMyAdmin and editors such as Dreamweaver and Eclipse. However, this is not something you want to box yourself into.

Don’t get me wrong, I love to use GUI programs when it makes sense to, but there are some web companies that don’t let you use GUI systems on your own computer. For example….you may need to edit a file or work with MySQL using the command prompt (SSH). You shouldn’t necessarily need to know how to be a server admin when your focus is on programming, but these are things to be aware of and prepared for.

And again, having this skill listed on your resume is a huge plus.

#5. Learn How to Use and Work with SVN

This is similar to #4, but is more specific to a program installed on a lot of servers. This has become a standard in most companies, and I suggest you start using it if you haven’t already. Overwriting a file or making an incorrect change is not a huge deal when using a source control system like SVN, because you can revert back to previous versions easily.

This also helps if you are managing other employees because you can see exactly what they changed in the code, and when it was changed. Over the last 5 years or so this has become a requirement for most of the top web companies, and it is something you will want to learn how to work with.

#6. Maintain a Website or Blog

This may seem obvious, but when you are “comfortable” in a job, you may forget the value in doing this. If you were to lose your job or wanted to get a different one, having a website that is up to date and maintained is invaluable.

Also, it makes sense for us who know how to build and work with websites to have one of our own. Having the writing skills and the how-to in making a website profitable will make you standout over other programmers. You will also learn other tools and systems with this valuable experience.

#7. Master Organization

Being unorganized will cause many problems. You will forget about meetings, issues with websites or other things that will make you look bad. If you take this seriously and create systems that keep you on track with what is important, this will make you look like a super hero.

In fact, this is an area that most programmers are not very good at. They may be very intelligent and can write awesome code, but when it comes to being reliable and dependable, they fall flat. This is your opportunity to shine!

#8. Learn Outside of Work

Often times we get so busy with what we need to get done throughout the work day that we do not have the time to learn anything new. Or maybe you work at a company that doesn’t give you time for learning new technologies. In any case, you should be spending some quality time outside of work either learning new systems, languages, techniques or just fine tuning what you know by working on your own website.

If you don’t do this, you run the risk of being outdated with what everyone else is using. This isn’t to say that you can never catch up, but this is not a place you want to be if you find yourself out of a job.

Some great questions you can ask yourself:

  • What could I learn in my field that would make me more valuable?
  • Are there any projects I did not get because I didn’t know a specific system or framework?
  • If I was to get fired today, what would be the most valuable thing to learn that could be added to my resume?
  • What do some programmers who make more than me know that I do not know?

#9. Learn How to Waste Less Time

Along with #7, this can be used in any field. Unless you have no work to do, you should not be checking personal email, facebook, twitter, etc… during work hours unless it is work related. On top of that, you want to be constantly thinking about how you can get more done in less time by implementing different coding techniques or improving the code you use (also see #2 above).

#10. Learn from and Own Your Mistakes

If you broke something, don’t blame someone else (even if you are only partially to blame). Own up to what you are responsible for with the mistake. This shows a level of maturity, but don’t think that it ends there. Go out of your way to make sure that you do not make the same mistake again.

As a manager in the past, this is what got under my skin with programmers on my team. They would end up making the same mistakes over and over again. If you don’t learn from your mistakes, you will look incompetent. If this is something that you spend a lot of time practicing, you will end up getting promotions and raises because this matters to employees and supervisors. And it guarantees that you will get better as time goes on.

There is always room for improvement, regardless on where you are at in life. Don’t lose sight of this.