When I reflect on my past experience as a web programmer, there are many things that I know now that I didn’t know ten years ago. The learning process was valuable, but I could have been at a different spot today as a PHP web programmer if I knew these things earlier. Sometimes you don’t have the info when it would benefit you the most, but my hope is that this list will give you something to reflect on.
These items are not listed in order of importance. They are all valuable and I would suggest reflecting on your own career (even if you are not a web programmer, with some of them).
#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.
Refuse to estimate on anything that you cannot get at least 50-75% comfortable with (in other words, you should have a good idea on what you are estimating on). 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. Having a maintained website is great to have if you were ever to lose your job (it adds value to your resume and skill set).
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 can create a blog of your own or even help with the development of an ecommerce web design.
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.
Save more time and in website design by getting these 20 really useful cheatsheets for free.
There is always room for improvement, regardless on where you are at in life. Don’t lose sight of this.
Do you agree or disagree with this list? Is there anything you would like to share that you’ve learned through experience?