Complete IT Professional Helping Software Developers Get Ahead In Their Careers Mon, 22 Dec 2014 11:30:49 +0000 en-US hourly 1 What To Do If You Know You’re Going To Miss A Project Deadline Mon, 22 Dec 2014 11:30:49 +0000 Continue reading …]]> What To Do If You Know You're Going To Miss A Project DeadlineProject deadlines are very common for software developers. We are often working on projects, writing code to make an application from scratch, or to improve an existing application. As part of this project, deadlines have been set. And sometimes we miss them. Find out what you can do if you miss a project deadline in this article.

Tell Your Project Manager You’re Going To Miss A Project Deadline As Soon As You Can

If you’re working on a project and you think you’re going to miss the deadline that has been set for you, you should tell someone. That someone should be the project manager.

The PM is responsible for making sure that the people working on the project get things done by the specified date, and doing what they can to help them, or to work on alternatives if they can’t make it happen.

So, as a programmer, you should tell the project manager as soon as you can. When I say “as soon as you can”, I don’t mean as soon as the deadline is over. Ideally you should be telling them at the first signs of the task going over. It could be a few days before, or a few weeks, depending on the timeline of the task.

If you have even the slightest feeling that the deadline for your task might go over and miss a project deadline, say something. Mention it to the project manager, just to let them know. Even if it’s a small risk, it’s better that they know early than late. They can then do something about it, such as assigning more resources, extending the deadline, speaking to other people, and trying to fix problems. The earlier that they know about it, the better.


Decide If You’re Willing To Put In The Extra Hours

Some tasks that we work on as developers can take a long time. If they go over the deadline that we’ve set or that the project team has set, this can be a problem. A way to get around it and to get the task back on track is to put in some overtime.

This will depend on the type of task that you’re working on and if others are involved in it as well, but sometimes doing some extra hours can get the job done and get it back on to the original timeframe.

This only works with some tasks though, not others. If you need to get the development of a module completed, and it’s all assigned to you, then that might be possible. If you need to work with someone to get some code reviewed or a section tested, then it might need more than one person and might not be improved with you putting in overtime.

If overtime will help get it back on track and prevent you from missing a project deadline, you’ll need to decide if you’re willing to put in the extra hours. I am an advocate of putting in the extra time, but only when it’s needed. This may be one of those situations where the extra time is needed, so if you’re able to work extra hours, to get it done, you should do it. This would be a choice you would make though.


Try To Think Of Other Ways To Get Back On Schedule

Other than working overtime, there might be some other ways that you can bring the task back to the original schedule.

Depending on the task, there may be some things you can do:

  • Reduce the scope of the work required. Depending on the work, you might be able to do less of it and still have it completed.
  • Work through your lunch break to catch up, if this is possible.
  • Ask the project manager if other tasks can be re-organised so that you don’t hold up the project.
  • Think of some ways that parts of your task can be automated, with some kind of script or Excel formula
  • Ask other team members for help, if they are free and capable of doing the work.

You don’t have to come up with all of the ideas yourself. However, I think it’s a good place to start. Also, I believe coming up with a solution when you present a problem to someone is a good idea. So, if you’re able to have a couple of solutions in mind when you mention the delay to the project manager, it can go down better. Saying something like “The work on module 6 may not get completed by the end of the week because one part took longer than normal. I’ll ask Steve for help and also work back a bit tonight to see if I can make up for lost time, and let you know tomorrow” can be a good way to approach it.


Work Out a Realistic Time to Completion

Once you’ve mentioned the delay to the project manager, and have come up with some options, you might need to work out a new date and time that it can be done by. This is, of course, assuming you can’t get it done by the original due date.

From the project manager’s perspective, they want to have an accurate completion date, so they can plan around it and inform the rest of the team. So, when you calculate a new date, it should be accurate. They don’t want to miss a project deadline again!

Work out how long you think the task will take you, in hours or days, whatever the most appropriate measurement is. Then add in some time for delays, such as meetings, issues that may come up, and other work that you or the other people involved have to do. Then, give this final date or time to the project manager.

For example, finishing the “coding for module 6″ might take you an extra 10 hours. Add in some time for meetings and any issues that may come up, so maybe it would be 16 hours (which is about 2 days). To be safe, you might add on an extra day as you have a couple of other things to do, and you’re not sure about the workload of the others, so the final figure you give back to the project manager is 3 days.

The aim of this is to give you enough of a buffer to get the work done, and to give an accurate but conservative number to the project manager.


Get It Done

The most important part of all this is now to actually get it done. You need to focus on the task that needs to be done, and complete it. Whether you’ve promised a new deadline or are working extra to make the original deadline, sticking to this date is important. It looks bad on you, the project manager, and the team, if you’re not able to make the date again.

Depending on the task that you’re working on and the time remaining, this could be a lot of work. Sometimes I’ve had to have late nights to get work done that was running behind, and it can be hard to stay motivated. However, it’s only a short-term problem. Getting the work done that I said I would is something that motivates me, and because it’s only for a little while, I can return to the normal way of working once it’s done

There’s no point procrastinating and trying to put it off any further. It’s time to smash through the work and get back on track!


I hope this article has given you some advice if you’re going to miss a project deadline. Have you ever had to miss a deadline? What did you do in the past/ Share your thoughts in the section below.

Career Action Tip: Think about the work you’re doing now, and if you think that any of it is a chance to go over the deadline, speak to your project manager.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of iosphere /

]]> 0
5 Things To Ask Your Boss to Improve Your Work Mon, 15 Dec 2014 11:30:50 +0000 Continue reading …]]> 5 Things To Ask Your Boss to Improve Your WorkWhen we are looking to improve our work and get better at what we do, there are many things we can do. Training, speaking to team members and doing research are just some of them. How about speaking to your manager? This is a good way to get better at what you do, and I’ve listed five things you can ask to improve the way you work.

Ask Your Boss Is There Anything I Can Improve On?

This is quite a direct question but it’s a good one to ask.

Asking your boss if there’s anything you can improve on will hopefully give you a pretty good idea of what can be done. The aim is to get a response from your boss that highlights some areas that you might need to improve.

The best part about this approach is that they will often suggest areas that you may have never noticed. This is because they see things from a different perspective. They are a step back from the work that you do, and can actually observe you doing it.


Is There Anything That The Team Needs Help With?

This question aims to address some of the problems that the team is having. A big part of a team leader’s role is work allocation – ensuring that each of their team members has enough work and is also not over allocated.

Sometimes, though, it turns out that you might have the time to do more work, and other people might be pretty busy. In this case, ask your manager if there’s anything that the team needs help with.

They might know right away what you can do. This could be testing someone else’s code, performing a code review, writing or reviewing some documentation, organising something for the team, or any number of tasks that need to be done.

If they don’t know, they might ask the team to suggest a few things. This way, you can get ideas directly from the people in your team.

Anything you can do to help the team is a good thing, and it can also improve the way you work.


What Would Be Helpful For The Team Or For Me To Learn?

This is a great question for your team leader, as it helps to look to the future. Learning new skills or technologies is a good way to improve your career, and the abilities of your team.

Ask your boss this question and see what they say. Perhaps there is a skill that needs to be learnt by someone to help with certain tasks, such as writing the occasional Unix script. If someone knows this it can help when the team needs this task done.

Or maybe it would be helpful to learn the latest version of a piece of software or how to use a specific tool that helps the team. If you’re able to learn this, you can be the go to person for your team for this.

It can also benefit as you can teach the rest of the team how to use it.

Another benefit of learning a new skill or technology is that it can go on your resume as something else you’ve learnt. It can help you with pay rises in the future and keeps you up to date in the industry, which are all good things!


What Is The Most Painful Thing That The Team Has To Do?

A great way to improve your work, and the team, is to ask your boss this question.

They might not be able to answer right away, but they probably have a few ideas of things that are painful or a big hassle for them to do.

This could be things like:

  • Weekly reporting
  • Tracking team members’ time
  • Clearing their inbox
  • Keeping track of what they need to do
  • Using a particular program like Excel or PowerPoint

Ask them what they or the team struggles with, and then see if you can solve that problem.

Maybe you can create an Excel template or write some code to help solve this problem or make it less painful. The effort and time it could save will be a big benefit to your team.


Is There Anything You Need Help With Or Are Struggling With?

This is similar to an earlier question and may get a similar result, but this is more directed at your manager themselves.

Ask them if there is anything they are struggling with. This may get responses specific to their work. If you can find out a way to help them with it, it can benefit their work, and in turn it will help the team.

Depending on how technical your manager is, it could be a range of things. It could be help with some software, setting up an environment or hardware, or just other things that they haven’t gotten around to yet. See if you can help them with what they suggest.


There’s a list of a few questions you can ask your manager to improve your work. Try them out. Ask your manager and see what comes of it.

Is there anything else that you like to ask your manager? Share it in the comments below!


Image courtesy of Stuart Miles /

]]> 0
8 Tips for How To Improve Your Motivation for Programming Mon, 08 Dec 2014 11:30:13 +0000 Continue reading …]]> 8 Tips for How To Improve Your Motivation for ProgrammingDo you struggle for motivation for your programming career sometimes? I know the feeling. I’ve listed a few ways on how to improve your motivation for programming in this article.

Sometimes it can be hard to get motivated to program. Going to a job and doing the same thing over and over again, while feeling the pressure from your boss and others in the company, being told to do things that don’t make sense.

How do we become more motivated to write code? Let’s have a look at a few things we can remember that may improve our motivation.


Remember You Are Creating Something From Nothing

An important point to remember is that when you write code, you are creating something from nothing. You’re typing instructions into a computer, which then causes the computer to do something. This could be any number of things, depending on what you’re writing code for:

  • Displaying a web page
  • Reading or writing some data to a database
  • Communicating with other systems

These actions, and many others, are a result of the work that you do, and it comes from nowhere.

My first exposure to programming was back in high school. My friend had discovered how to write programs in Visual Basic, and he had written a program that displays biographies of TV characters, and pictures, on the program, depending on what button you pressed. Sure, it was a simple program (and was actually pretty badly written when I look back on it), but it actually blew my mind. The fact that we could write some code, to make a program, to do whatever we wanted, was incredible to me.

I learnt the basics (no pun intended) of this language from him, and then looked up how to learn it myself (this was in the late 90s so there were limited web-based tutorials, and it was even before Google became mainstream). Ever since then, I was writing code for all kinds of things.

The point of this story is to realise that what you’re writing is created from nothing, and the result is actually something that works and does a task. This, I found, was quite incredible.


Think About What It’s Going To Do To Help

Applications and web sites that companies build are all about helping people to do one task or another. A web page may be built to help sales, educate customers, provide information, or capture input. Applications for companies may be built to process transactions, help with data entry, or direct traffic from other systems.

When I get low on motivation, I take a moment and think about what I’m doing and how it’s going to help people. This can help me get motivated to continue developing the code. Some ways that programming helps people are:

  • Websites that educate customers about products, services, or advice in general
  • Web pages that capture data and update it in the back-end system, which saves time for the user and reduces the need for manual work by a company
  • Applications that process transactions faster or more efficiently, ensuring customers get feedback quicker
  • Applications that improve the interfaces between systems, to ensure that data integrity is improved and the process is faster

I can’t actually think of any projects that I’ve done that don’t help people in one way or another. Even if you’re doing maintenance and bug fixing on a middleware system, there is a way that it helps users, even if it is indirectly.


Remember Why You Started Programming In The First Place

Sometimes it can help to cast your mind back and remember why you started programming in the first place.

Was it a hobby you enjoyed in school or college? Did you have fun writing programs when you were younger? Did you find that you spent a lot of time learning and writing code?

For me, it was the ability to help users get things done more effectively. I didn’t like doing manual data entry and thought that software was a way to get around that. Writing software to help other people from doing less manual work was the main reason I got into programming. We get to improve the way people interact with computers, and their lives, by writing software. This gives me the motivation to continue to code. I actually wanted to be a lawyer up until the time I discovered programming, and looking back, I’m glad I found programming and that I’m not a lawyer!

Why did you get started in programming? What was the reason you started it?


Think Of How Good A Well Designed Program Is

Surely, working in the IT industry as a programmer has meant you’ve seen some poorly-designed programs. Programs where the code is a mess, it’s not commented, variables are confusing, the logic is all over the place, and it’s just inefficient.

I’ve seen plenty of these. My first role in IT was doing application support on a database, and as my major in university was Oracle SQL, I was doing development in that. I could not understand why the code was so inefficient and why the database was not normalise. I could not get my head around how bad some parts of it were.

But this just gave me the motivation to improve it. Every time I was tasked with fixing a bug or making an improvement, I would investigate the code and make that small part the best it could be.

The thought of a well-designed program gave me the motivation to get it done.

How about you? Surely you have seen, or written, some code that was so well-designed and well-written that it just amazed you. It got the job done in a spectacular way, it was scalable, easy to read, and efficient. I’m sure these kinds of programs are a dream to work with!


Take a Holiday

These next few tips are a little different from the tips above.

A holiday is a great way to recharge and find the motivation again to continue to work as a programmer and to prevent getting burnt out. If you’re really exhausted and lacking motivation, then a holiday is a great way to feel more refreshed.

At the end of every year, all of the clients I’ve worked with encourage us to take a few weeks over Christmas to relax, unwind and enjoy the time. This means we’re more refreshed when we return to the office in early January.

Taking a holiday or some time away is a great way to improve your motivation. You can take a long weekend, a few days out of town with family or friends. This can be enough of a break sometimes to feel better.

If that won’t do it, then you can take a longer trip. A few weeks away can often help. I’ve done this a few times in my life and I’ve felt better about returning to work at the end of it.


Change Projects

Another way to improve your motivation for programming is to try a different project. Sometimes if you’re on the same project for some time, it can be quite boring. It can be easy to lose motivation if you’re doing the same thing day in day out.

A good way to resolve this is to try to move to a different project. Different projects will have different people, different requirements, and maybe different systems. This can be enough of a change to improve your motivation for programming.

If this is something you’re interested in, speak to your team leader and let them know how you feel. Ask if there are any projects you would be suitable on. Ideally you’ll be able to stay in the same desk and just work with a new project, but it may require a move to a different desk. This would depend on how your projects are run in your company.

Working on a different project can give you some more interesting work, enhance your knowledge of the business and the systems related to it, and ideally give you more motivation.


Move Teams

A bigger step to improve your motivation for programming is to actually move teams. Changing to a different team within your company will mean you will get to work on different projects, work with different people, and maybe even have a different desk and location.

You will probably need to learn more about the systems and projects that they are doing, as you might not have worked on them before. You’ll be working with different people, even if you know them, you’ll now be in their team so it’s from a different perspective.

Making a move to a different team like this can really help with the motivation. It can give you some fresh work to do, and if it’s an area you don’t know much about, you’ll need to learn from the start again, which can be a great way to make things interesting again.

Often a lack of motivation comes from the fact we’re doing the same work all the time. Moving teams is a good way to change this.


Move Companies

The final, and most extreme tip from this list, is to actually move companies.

Yes, if you’re lacking the motivation for programming, a way to improve it is to find a job somewhere else.

You could be sick of the industry, sick of the company, the people there, the work you’re doing, or the systems you’re on. To get away from this, you can change companies.

This is a big move in itself and more than I can cover in this post, but if you’re interested in making a move, it can help with your motivation. Having a completely new environment to work in, new projects, new team members, a new way of working and new software to work with can all help to improve motivation.

It’s more extreme because it takes longer and is a bigger career move, so can’t be done every time you lose motivation, but it’s something to consider every now and then. Start by deciding what kind of work you are able to do, find some job roles, update your resume (Related: my course to create or update your IT resume), apply for the jobs, get the interview, and hopefully get the job!


Well, hopefully these tips have helped you consider ways to improve your motivation. How do you handle times when your motivation for programming is low? Share your thoughts in the comments below.

Career Action Tip: Think about the tips in this article when you’re low on motivation. Save this article as a favourite and refer to it when you have times of low motivation!

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of imagerymajestic /

]]> 0
6 Ways To Improve Your Development Team Meetings Mon, 01 Dec 2014 11:30:10 +0000 Continue reading …]]> 6 Ways To Improve Your Development Team MeetingsDo you regularly go to meetings with your software development team? Do you feel like they could be better? Learn some tips on how to make them better in this article.

1 – Set An Agenda

Probably the easiest way to make a development team meetings better is to set an agenda. I’ve mentioned this in other articles on meetings as I think it’s important.

An agenda is a pre-determined list of points that will be discussed at the meeting. It’s usually set by the team leader or the person who organises the meeting. Depending on the type of meeting and the projects you’re working on, the agenda will be different, but having one is still a good idea.

If you’re in an Agile environment, then a typical daily standup even has an agenda:

  • What did you work on yesterday?
  • What are you working on today?
  • What blockers did you have?

A similar agenda could be put in place for weekly development team meetings. There could even be a “news” item, to discuss anything that the team would need to know.

Having an agenda keeps the meeting on course, and doesn’t waste people’s time with things that don’t need to be discussed. If you’ve found that you’ve discussed everything on the agenda and the allocated time isn’t over, then you can finish early. People can get time in their day back!


2 – Don’t Have It Too Often

Another way to improve your development team meetings is not having them too often.

Having a meeting too often means that it isn’t as relevant, and more time gets wasted in meetings than what should be spent doing actual code.

I’ve seen two setups that work really well:

  • Daily, for 15 minutes – If you’re in an Agile team, then having a daily standup meeting is common. However, goes for 15 minutes at the most.
  • Weekly, for 30 minutes – Many development teams have a weekly team meeting. This should not go for longer than 30 minutes and should not be more frequent than once per week.

There is no need to have meetings any more frequent than that. If you follow the stand-up method then daily is OK, otherwise have a meeting weekly.

Think of how much time is being wasted by having more regular meetings. An extra 30-60 minutes per week, for each person in the meeting, is a lot of time that could be spent doing something productive.


3 – Choose an Appropriate Time

Another good way to improve your development team meetings is to choose an appropriate time of the day. There are two things to consider when choosing the time of your meeting:

  • The working times of your team
  • Other events in the team, such as code drops or other meetings

Depending on the company you work for, the work environment and the times of work may be different. I’ve been in teams where the developers and other team members arrive about 9:30 or even 10 in the morning, and other teams I’ve seen arrive about 8:30 in the morning. Having a 9AM meeting for a team that arrives closer to 10AM is not something that will work very well. So, you’ll need to consider the hours that the team works when deciding what time of day the meeting should be.

Also, another thing to consider is other events that may happen. Suppose there is a broader team meeting that happens every week, and your meeting may need to come after it. Or, there is a code refresh or system change that goes in every day or every week at a certain time. Your team might need to be at their desks at this time in case something goes wrong or if they have some work to do on it. This should also be considered when deciding what time to have your development team meeting.

Also, try to avoid the hours from 12 to 2. This is the standard lunch break period. People won’t have a full 2 hour lunch, but most of the time, lunch is taken in that two hour period for an hour or so.


4 – Set a Shorter Duration

As well as setting the length and time of day for your development team meetings, the duration also needs to be considered. Nobody wants to sit in meetings that go on for too long.

I mentioned earlier that there should only be two lengths of meetings – a 15 minute daily standup or a 30 minute team meeting. Any longer than this is too long. What could possibly be discussed that can’t be done in 30 minutes each week?

I’ve been in teams and seen other teams have meetings that go for an hour, or an hour and a half. An hour and a half! That’s way too long for a team meeting. Getting everyone in a room each week for an hour and a half is a big waste of time. Even an hour is pushing it… but I have seen this done quite often.

The less time you spend in meetings, the more work gets done. It’s not just “and extra half hour”, it’s an extra half hour for everyone in the room. If the meeting has 10 people in it, that’s 5 hours of work that is lost. That’s almost a full day.

If you find you can’t get through the meeting in 30 minutes, either make the agenda smaller or make each discussion point smaller.


5 – Get Everyone To Contribute

Alright, enough about the times of a meeting. Another great way to improve your development team meetings is to get people to contribute.

The team meeting involves the team for a reason. Meetings are much better when the team members have things they can say, rather than the team leader just sitting there and speaking for the whole time.

How do you get the team members to contribute? Well, if you’re having a daily standup, it’s normal for each team member to say something. If not, then there are a few things the team can mention:

  • What they have been working on
  • If they have any questions for anyone else in the team, or about the company in general
  • What issues they have, that they can mention in the team meeting
  • Share any tips or tricks or things they have learnt
  • A win for the week

My favourite thing to mention when I’m in a development team is a win for the week. This is a good way to open the meeting and can get people excited and in a good mood. It’s a way to mention a problem you’ve solved or something good you’ve done on your project.

Getting people to contribute will make the meeting more valuable for everyone.


6 – Set and Follow Up on Actions

Arguably the most important part of the meeting is the actions.

The actions are the things in the meeting that people are asked to do outside the meeting. These can be requested from the team leader, or from other team members. They can be anything from sending an email, talking to someone, getting some data, fixing a problem, and so on.

The actions should be written down by whoever is running the meeting. For example, if someone in the team named Russell needs to speak to John from the testing team about a particular issue, then the action would be “Russell to speak to John about form defect by Thursday”.

When you write actions, they should also have a deadline. This way, there is a certain timeframe that they need to get completed in. If they don’t have a deadline, the actions may not get done.

Make the actions clear and make sure the people who have the action assigned to them know about them. There is a common joke in the industry about assigning all actions to the one person who didn’t show up to the meeting, but that’s just the team messing around!

Also, once the action is set, it’s important to follow up on it. Make sure the person who has been assigned the action (the person who is going do to it) is checked up on and provides an update. This can either be between development team meetings, or at the next meeting. If you don’t follow up, it can get forgotten.


Well, there’s my list of things that we can do to improve development team meetings. What has your experience been like? How have you improved your team meetings? Share your points in the section below!

Career Action Tip: Ensure your development team meeting has an agenda, and goes for less than 30 minutes. If it doesn’t, change the meeting to ensure it does.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!


]]> 0
11 Ways to Save Time as a Programmer Wed, 26 Nov 2014 11:30:46 +0000 Continue reading …]]> 11 Ways to Save Time as a ProgrammerIs your day as a programmer always busy? Do you find that you never have enough time for things at work? There are a few things that you can do to save time as a programmer.

Use the Windows Startup Folder

One of the most helpful things that I’ve done to get more time in my day is to use the start up folder in Windows.

If you’ve never heard of it, let me explain. It’s a folder on the start menu called Startup. You can add shortcuts into this folder, and every time your computer starts up, they automatically run.

I’ve found this to be a big time saver, especially in the morning. There are programs that I run every day, and now I use this folder, I don’t need to wait for my computer to start and click the icons or browse for them every day.

Some things you can add are:

  • Email client (e.g. Outlook) – this is open for me all day, and used heavily where I work.
  • Evernote – my note taking app of choice (learn how to use Evernote to transform your programming career).
  • Web browser  (e.g. Chrome) – I have Chrome start up every day so I can read a few websites while I drink my coffee.
  • IDE – whatever IDE you use, you can add it to this folder.

It doesn’t need to be restricted to programs. You can add any shortcut to this folder.

  • Links to websites
  • Links to specific documents
  • Links to scripts to run

Because these are being run on startup, you don’t need to wait and run them manually. You can go and do something else while you’re waiting – get a coffee, read email on your phone, get some water, talk to your team members.

Once you start using it, you will probably come up with even more ideas for shortcuts.


Write Scripts for Common Tasks to Save Time as a Programmer

Another way to save time as a programmer is to use your programming skills.

There are probably some tasks in your day that you need to do quite often. It could be a once a day backup, an email clean out a few times a day or a weekly summary report.

You can save a lot of time on these tasks by writing some kind of script to automate them. Depending on the task, you can use a variety of scripts.

Do you need to copy certain files? Write a batch script to do this. Set it up as a shortcut that you can access easily. Or, to go one step further,  add it to the task scheduler to run automatically at a certain time.

Do you have to sort through emails every week? Write a saved query or a macro to do this for you.

Do you send a similar looking email to people? Write a template or a script in your client to automatically create the email for you. You might not be able to automatically send it, but you can get the script to do a lot for you.

Basically, if there is any task that is going to be done more than once, ask yourself “how can I automate this?”. You’ll be surprised at what you can come up with. It’s better to put in the time up front to create something and save time later.


Use Excel For Common Calculations

Microsoft Excel is a great program, and has a variety of uses. One of the ways you can use it to save time as a software developer is for any common calculations that you do.

Once again, creating a template is a good way to do this. Have a template that has all of your common functions and calculations it it, create a shortcut, and your life is easier.

So what kind of calculations and I talking about?

  • Time estimates – Converting between hours and days is a common one, especially if you have to provide estimates. If you need to provide an estimate in days, you can convert it to hours or weeks using some simple formulas in excel. This can really save time as a programmer, as we do this often.
  • Salary planning – you can use excel to work out what any increase in salary will have on your take home pay. I do this every year when my annual review comes around. I put down my gross salary, and then remove the deductions to get to the net. Of course, it might not be exact, and will vary for countries, but it can help to see how it might impact you.
  • Percentages – often we need to work out or perform percentage calculations. Use an excel formula for this.
  • Conversions – sometimes when converting units or resizing things, Excel can help. Converting between time zones, units of measurement, and even keeping the same ratio when increasing or decreasing sizes of images can be easily calculated.


Create a Timesheet Template

One of the most annoying things about working in IT is preparing a timesheet. Most companies that I’ve worked for need developers to log the time that they have spent against the projects they are working on. In concept, I think this is a good idea, as it helps to get accurate reporting of the costs of a project, to see where time is being spent, and to help with checking estimations when everything is completed. However, it means that developers need to spend time every week thinking about where they spend their time.

As I’ve been a software consultant for almost eight years, I’ve had to fill out not one but TWO timesheets. One for my consulting company, which is used to bill the client, and one for the client, which is used for project tracking. This can be quite time consuming as it needs to be done every week. What I’ve done, and what I recommend, is creating a template.

A template can be created for your timesheets in a spreadsheet program, like Excel. Put in your projects (or the areas you need to charge your time to) on the left down the column, and dates across the top. At the end of each day, put the number of hours you worked on each against each item. The granularity will depend on how much detail is needed for the project, but I recommend doing it in half hour blocks.

Now that you have a template, that you fill out daily, you can use it at the end of the timesheet period to enter into whatever system is being used. This can help save a lot of time. (Related: how to get the best projects to work on)

Also, you’ll probably get requests from project managers about your hours. Questions like “how many hours did you spend on Project X in June?” You’ll be able to tell them in seconds, by looking up the template, rather than giving some kind of estimate or looking back through your system.

Big time saver.


Get a List of Shortcuts For Your IDE

A big way to save time is using shortcuts. Keyboard shortcuts are helpful as they take a fraction of a second to perform an action that would normally be done using the mouse. Adding these up can save a lot of time.

If you’re a developer, you would spend a lot of time in an IDE writing code. There are probably a lot of shortcuts available in this IDE. Do a Google search to find a list of shortcuts for the application that you can use to make your life easier. Save it to an easily accessible format and location. Perhaps you PDF it and save it to your computer, or bookmark the website. It’s up to you.

Refer to this list whenever you need to do something – compiling code, starting the debugger, opening the options menu, searching for text, and so on. Rather than opening up the menu for this, look up the keyboard shortcut. Over time, you’ll start remembering the ones you use often, and you’ll save a lot of time.

You can also discover shortcuts for things you didn’t even know. I have used Microsoft OneNote in the past to take notes, and I liked to add a heading style and the date and time at several points in the note. I used to select the heading, format it, then type the date and time manually. This would take about 10 seconds. I discovered the shortcuts to do this, and then all I had to do was press CTRL + ALT +2 for Heading 2, then ALT+SHIFT+F for the date and time, which took about 1 second. Another big time way to save time as a programmer here.


Create Your Own Shortcuts

Another way to save time is to create your own shortcuts. This also applies to your IDE, or really any application that allows you to add your own shortcuts.

Many IDEs allow you to add shortcuts for common commands or scripts. Doing this will allow you to save time in a similar way to the previous point. You can add a shortcut for a commonly used feature, and use the shortcut every time.

Years ago I was using a tool for writing SQL code, and there was no shortcut for formatting the SQL code to make it consistent with the rest of the application. I added the shortcut (which was something like CTRL+ALT+F) into the programs shortcut settings, and whenever I pressed that, it would format the code. This would save me several mouse clicks every time I formatted it.

Shortcuts also impress other co-workers, as they see you press a few keys and something happens, often resulting in “Wow, how did you do that?”


Use the Favourites Section in Windows Explorer

When I upgraded from Windows XP to Windows 7 (yes, I skipped Vista), one of the only things I missed was having the Favourites toolbar in Windows Explorer. I had a few folders on there, where I could click them to take me right to the folder location on the computer. This was how I navigated around to common folders.

I then discovered that Windows 7 had a similar favourites feature, but it was in the tree structure on the left. You can add folders and other things to that Favourites section, which operates in the same way. This is a great time saver.

For any directories that you visit frequently, put them here. You can access them in one click, rather than browsing through the full structure each time.

You can update them as you like, so as you change projects for example. It’s easier to click on the link to go to the “source” folder for one of your projects than to go through the full path of “D:\Projects\Project X\Development\version 0.18\source”, for example.


Get Lunch Outside The Busy Period

If you like to go out to get lunch, you might notice that some places (or all places) get quite busy during the lunch hour. This is obvious – everyone goes out to lunch at roughly the same time. This can result in you waiting a while to be served, then waiting to get your food, then finding a table or going back to your office. All of these are a big use of time.

Something that I’ve found is that if you go for lunch outside of this busy period, it can save you time. The shops near most places I work have a busy period from about 12:30 to 2:00. If I’m going out go get lunch, I try to go just after 12. This way I can avoid the crowds and get in and out faster. I can spend my time doing valuable tasks like work or speaking to other colleagues over lunch, rather than waiting in line for your order to be ready.

While this is not specifically a way to save time as a programmer, it applies to working in an office in general, and it can still save time.


Create an Easier Directory Structure

The way we store our files on our computer has a big impact on how much time we spend looking for them. If we’re looking for a specific file, we need to think about where it’s stored, then browse to that location, maybe work out which file is the right one, and open in. This can be quite painful if our directories are not structured very well.

I suggest creating a directory structure that makes sense for the work you’re doing. This could be a directory for each project, and subdirectories each for code, documentation, images, diagrams, and so on. This way, if you’re looking for the design diagram for a particular project, you know where it most likely is.

If it’s not something you do already, it might take some time to set it up. But, it’s well worth it. Moving from a messy directory structure, or one that’s “kind of alright”, to something that’s fully organised, might take some up-front time, but the rewards are well worth it. You’ll be saving heaps of time in the future.


Create Shortcuts to Common Files

This tip is an obvious one, and you might have heard it before. A good way to save time as a programmer is to create shortcuts to the files you use most often.

Rather then browsing through your hard drive to find a file, create a shortcut. The shortcut can be placed wherever you like that you can access easily. I recommend placing it on the task bar of Windows 7 (I believe these are called “pinned lists”). This way, you can access it from wherever you are and whatever you’re doing on your computer. The time saved from looking for the file will add up.

I wouldn’t suggest putting the shortcut on your desktop. This can be good if you only have a couple of shortcuts, but if there are a lot, it can make things worse as your desktop gets messy. The only thing I have on my desktop is the recycle bin – everything else is in pinned lists.

What kind of things do I create shortcuts for? Currently I have shortcuts set up for:

  • My timesheet and project template file (as mentioned above)
  • A couple of diagrams for projects I’m working on
  • Documentation for a couple of projects
  • PDF file with some keyboard shortcuts


Use Bookmarks for Common Sites

The last tip that I have may also be one that you’ve heard before, but I’m adding it as it’s a good way for developers to save time.

Use the bookmarks section of your favourite Web browser, and use it heavily. Save sites to this section that you use a lot. They can then be accessed with a couple of clicks, rather than searching for them or looking in your history.

The bookmarks can be set up in two ways. You can have your bookmarks toolbar on the browser which has a list of links there, accessible with one click. These can be for the sites you access every day or on a regular basis.

The other way you can store bookmarks is within subfolders. You can have the subfolders on the bookmarks toolbar, which act as menus, and inside those are the sites to visit. These are best suited for those that aren’t visited every day, or if you have a lot of them.

I’ve got a few folders of bookmarks set up on my browser for links to internal resources, some definition sites for programming, and documentation. My bookmarks toolbar has links directly to sites I use frequently such as Gmail, Google Calendar, and my work webmail. This is a big time saver.

Are there web sites that you access frequently? Add them to your bookmarks section. This could be a development environment, a server, or a list of functions for the language you’re working with. It can be a big time saver.


Well, there’s my list of 11 ways you can save time as a programmer. Do you have any other ways to save time during your day? Share them in the section below.

Career Action Tip: Choose one tip from this list that you’re not using (such as the startup folder) and decide how you can use it for your work right now.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of imagerymajestic /

]]> 0
4 Ways To Improve Your PHP Developer Salary Mon, 17 Nov 2014 11:30:49 +0000 Continue reading …]]> 4 Ways To Improve Your PHP Developer SalaryIf you’re a PHP developer, then this article will be useful to you. I’ve researched the average PHP developer salary and included a few tips for you to earn more than the average.

What is the Average PHP Developer Salary?

This article is a part of my salary improvement series, which has covered a few roles already. I’ve gotten some of the data from Payscale and performed my own analysis on it, giving you some actionable advice on how you can improve it.

So, let’s start with the figures.

The average PHP developer salary in the US as of November 2014 is $57,042.

Let’s have a look at how this compares to related roles:

Junior Software Engineer52,000
Lead Software Engineer103,000
Python Developer92,000
C# Developer91,000
Junior Net Developer59,000
Lead Net Developer102,000
Senior Net Developer97,000


As you can see in the table above, there are several related roles and there is quite a range in salary too:

  • Junior Software Engineer/Lead Software Engineer: These roles are more advanced and generally have more responsibility than a PHP developer, as they include the design of the software and some architecture components. Software engineers can make some good money.
  • Python Developer: Python seems to be quite popular at the moment, and has a much higher salary than a PHP developer as well. There may be other factors that cause this, however.
  • C# Developer: This role has a similar salary to the Python developer, which is also much higher than the PHP developer
  • Junior .NET Developer/Senior .NET Developer/Lead .NET Developer: This range of roles covers .NET development and the advancement that comes with experience. The Junior level is similar to the PHP Developer salary, but moves up from there.

Alright, so we’ve seen some comparable roles and how they relate salary-wise to PHP developers. It seems that compared to other developers, PHP developers are paid quite a bit less.


Why Are PHP Developers Paid Less Than Other Roles?

There are a few reasons why the average PHP developer is paid less than developers in other roles. Some of these reasons are:

  • More developers. There seems to be a lot more PHP developers in the industry than other technologies, such as Java and .NET
  • Low barrier to entry. To get started as a PHP developer is pretty easy and does not cost anything. You need to pay to develop in .NET and both .NET and Java are a little harder to learn.
  • Self-taught. Many PHP developers are self taught, younger, and may not realise the value of themselves and feel the need to reduce their salary to compete with other developers in other languages.

Now that we’ve covered some of these reasons, let’s have a look into the positives. How can we earn more as a PHP developer?


1 – Learn All of the Related Skills

PHP is a web development language, as it is used to create pages and scripts for web sites. As a result, there are many related languages and technologies that can be learnt and used along with it. If you can learn these, you can demand a higher PHP developer salary.

Some of these skills are:

  • Linux – Learning the Linux operating system and associated technologies can help your salary by approximately 25%, according to
  • SQL (Structured Query Language) – The database querying language can be helpful, and is almost essential, for PHP developers. It has a 14% impact on salaries according to Payscale.
  • jQuery - This JavaScript library is popular with PHP developers and can also impact your salary in a good way.
  • CSS (Cascading Style Sheets) – Learning CSS is almost essential for web developers.
  • JavaScript – Like CSS, learning JavaScript is a good idea for web developers.
  • WordPress - A popular (link) content management system that runs a lot of news websites, blogs, and similar sites.

The concern with WordPress that I’ll mention is that it is a popular skill that is outsourced. It runs on many sites and blogs, and is often outsourced by these business owners to other countries. That being said, it’s probably the case for many web development skills. Learning WordPress can help your PHP developer salary, but according to Payscale, not by much.


2 – Showcase Your Experience

Due to the low barrier of entry for PHP developers, there are lot of developers out there with minimal training and experience. It’s easy to read a tutorial, as there are so many low quality PHP tutorials on the Internet (there are some good ones too, though). This means there are many PHP developers out there who know the language, can write web pages in PHP, but don’t have the experience doing so for other companies.

This is where you come in. If you have the experience writing PHP for other companies and getting paid for it, you should highlight it. Mention it to your HR manager when going for a raise to your current PHP developer salary, or when finding a new job. Mention that you have actual, commercial experience, rather than just writing it at home for your own studies.

I actually learnt PHP myself many years ago as well. I learnt it before I went into university, and I think I learnt it using an online tutorial. I wrote up a few web pages for myself over the years and linked the pages to a database. However, I have no actual client experience. I’ve never done any web pages for a client and gotten paid for it. If I went for a job as a PHP developer, I doubt I would get one, and if I did, it would not pay very well. This is because I have no commercial experience, and I actually haven’t done PHP development for some time.

My point is, if you, as someone with experience, was competing with me for the same job, you would get the job every time. Even if we both know PHP to the same level, experience really helps.


3 – Get A Full Time Position

If you’re a freelancer or contractor, you may be able to earn a high salary by moving into a full time position. Due to the popularity of PHP as a language, and the number of PHP developers, there are a lot of freelance PHP developers. These freelancers would charge and hourly rate and be on shorter term contracts. If you’re one of these, moving to full time can help.

Have a look on your favourite job website (Dice, Monster, Indeed, for example) to find some PHP developer jobs. Look at those that have a salary listed and see if it is better than what you’re getting now. Even if the salary isn’t better at an hourly rate than what you’re getting as a freelancer, you may be able to earn more in the long run due to promotions and the fact that it would include full-time benefits.


4 – Improve Your Non-Development Skills

As there are a lot of PHP developers, you need to stand out from the crowd somehow. Another way to do this is to improve your non-development skills. These could include skills such as:

  • Communication (both written and verbal)
  • Negotiation
  • Software testing
  • Requirements analysis
  • Project management

Getting some knowledge in these areas can help your job and help you be more efficient. It will show your employer that you’re better than the average PHP developer, and therefore should be paid more than the average!


Well, there are a few ways to improve your PHP developer salary. What do you think improves a salary as a PHP developer? Share your thoughts in the section below!

Career Action Tip: Choose one skill from the list of related skills above that you don’t know, and start learning that skill.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of Stuart Miles /

]]> 0
6 Steps For How to Become a Software Architect Mon, 10 Nov 2014 11:30:07 +0000 Continue reading …]]> 6 Steps For How to Become a Software ArchitectAre you interested in becoming a software architect? It might seem like it’s a long way off, but I’ve listed out the steps in this article.

What Is A Software Architect?

First of all, let’s start with the definition of a software architect. In other posts that I’ve written which are similar to this, I’ve found it useful to start off with the definition.

According to Wikipedia:

A software architect is a computer programmer or expert who makes high-level design choices and dictates technical standards, including software coding standards, tools, and platforms.

So, as part of this role, you need to make design choices. You also need to be pretty knowledgeable about computer programming. Let’s have a look at some of the steps you need to take to become a software architect.


Start With A Computer Science Degree

The first step on how to become a software architect is to get a degree in Computer Science. Yeah, it’s a big step. It might be enough to put some people off this career choice. However, as it’s a programming-related role, and a high level, it usually requires a degree.

Many programming roles require or prefer a degree in computer science (or a related field) before you can start work. A software architect is no different.

If you have a computer science degree already, that’s a good start. You can follow the rest of the steps in this article to learn how to become a software architect.

If you don’t have a computer science degree, then I suggest you look into getting one. If you’re interested in a programming career, including software architecture, it’s recommended. Have a look at some nearby colleges or universities to see what is available. I won’t go into the details of getting a computer science degree in this article, other than to say it’s good to have one.


Get Some Experience with Programming

Software architects need to know how to program. They need to be able to understand syntax in different languages, and be able to write code. This doesn’t necessarily mean that they code while they are at work every day. They just need to understand how code works. The best way to learn this is to have some experience as a programmer.

The good thing is that once you have a computer science degree, the next step in most cases is to get a job as a programmer or software developer. If you’ve just gotten a computer science degree, then this would be your next step. Have a look around for some jobs as a developer. Look on your favourite job websites (such as Dice, Monster, Seek), have a look on LinkedIn and speak to some people you may know in the industry.

It doesn’t really matter what language you have experience in when you get to a software architect role. It could be Java, .Net, C, or many other languages. The main point of the experience is to get to know how programming is done in the real world and how it integrates with other systems. Working on a university project and working on code for a company are two different things.


Learn to Work in a Development Team

The next step on how to become a software architect is to get some experience working in a team. This can be done as part of the previous point of “getting experience with programming”, but I’ve decided to list it separately as it teaches you different things.

A software architect needs to consider many things when doing their job, more than just the programming part of it. To be a good software architect, it helps to have the kind of experience you get working in a development team.

Working on a development team, or a team of developers, will teach you many things:

  • How to work on projects with multiple developers
  • How to work towards deadlines for projects or releases
  • How to interact with people in different roles of the SDLC, such as testers and business analysts
  • How your decisions and work on one project will impact your work on future projects

This kind of experience will help you do your job better as a software architect. It will help you consider the design of the system and how it impacts future development, as you have experience actually doing the development. It also helps to get agreement from the developers and teams working on it, as you have the experience to back up your decisions.


Expand Your Knowledge of Other Roles

Becoming a software architect means you need to consider the long term vision of the system and the company. You also need to know how it impacts other roles and other teams doing the work. I mentioned this in an earlier paragraph, but I’d like to expand on it here.

The other roles in the SDLC need to be considered when doing your role. Testing, implementation, requirements gathering, design, and maintenance are all areas that you need to know about to become a software architect.

The best way to learn more about these areas is to get some experience. However, this can be challenge. Assuming you’re a software developer now, working in a software team, it can be hard to move around into all these different roles to get some experience. This would depend on the way that your teams and company are set up. It could take years to get a good level of experience in each of these roles, if they have dedicated teams.

Another way of improving your knowledge is to work with these particular roles. For example, let’s say you want to get some more experience in testing. Rather than move into the testing team permanently, you could work with them to find out more about what they do. Learn how they write test cases, how they run tests, how they report defects, how they prepare and analyse the test data and work out what is needed. This might be easier and take less time than moving into a dedicated role.

Getting similar experience for the other related roles can help you become a software architect.


Learn About Software Design Patterns and Architecture

The main component of a software architect’s role is to apply architectural styles, or patterns, to software. A pattern is a way of designing software or an interface in a certain way to ensure it is efficient, future-proof and correct. To become a software architect, you need to learn about these architectural styles and how you can apply them to your job.

There are many ways to learn these:

  • Books. You can read some books on the topic. There are many books out there which teach you the basics of software architecture.
  • Online courses. A great way to learn about software architecture is to take an online course. There are many of them available on a range of topics. I personally really like online courses!
  • Other software architects. Arguably the best way to learn about software architecture is from others who have done it before, or who are doing it now. They can teach you all kinds of information, including patterns, as well as other tips on moving into this kind of role.

Once you have learnt about software architecture and what it involves, think about how you can apply it to your own job. Read some documents and designs that other architects have prepared, and see why they have made certain decisions and what their alternatives are. Learn how it all fits in to the long-term view of the application.


Apply for a Software Architect Job

Alright, now most of the work is done. You have your degree, your experience as a software developer, knowledge about architecture and other roles in the industry. The next step? Finding a software architecture job!

You can do this in two ways. You can either look inside your own company for a job, or apply for a job outside your company. Personally, I think looking inside your own company is easier.

Looking for an architecture job inside your own company can be easier, because the company already knows you. They know how you work, they know the quality of what you do, and you already know the systems and people in the company.

If you’d like to do it this way, then find some current software architects and speak to them. Find out how you can get into this role, and what the process is for moving into the team from within the company. The downside of taking this approach is there may not be a need for an architect. As in, they may have enough already.

If you’d like to look outside your company, this may be harder as you need to go through the interview process with a company that doesn’t know you. The advantage is that they are in need of this role, as they are advertising for it, so they will be hiring someone. Why can’t that someone be you?

Have a look on some job sites for software architect positions, speak to some other architects or other people you know in the industry, and see what is available. Refresh and improve your resume – this is an important step as it needs to be the best it can be. If you’d like to know how to turn your resume into an effective, high quality document that gets you more interviews, check out my IT Resume Results course.


How To Become a Software Architect – Summary

So, to summarise becoming a software architect:

  1. Start with a Computer Science degree
  2. Get some experience with programming
  3. Learn to work in a development team
  4. Expand your knowledge of other roles
  5. Learn about software design patterns and architecture
  6. Apply for a software architect job


I hope this has helped you understand what is involved in how to become a software architect. There is a lot involved, and it can take some time, but it’s a high paying job and can be very rewarding. What other questions do you have about software architecture? Share them in the comments section below.

Career Action Tip: Determine what steps above you have completed. Look at the next step in the process above and work out the next single action you need to take to make progress on it.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!


Image courtesy of hywards /

]]> 0
The Complete Guide to the Oracle Database SQL Expert Certification Mon, 03 Nov 2014 11:30:34 +0000 Continue reading …]]> The Complete Guide to the Oracle Database SQL Expert CertificationThis article explains all you need to know about the Oracle Database SQL Expert certification, which is also referred to as 1Z0-147.

What Is The Oracle Database SQL Expert Certification?

This certification is a popular SQL certification offered by Oracle and widely recognised by the IT industry. Learning SQL and being highly skilled with it is a great advantage for a software developer, as it adds another valuable skill to the list of things that you’re capable of doing. Knowledge of SQL allows you to run queries and understand the queries that others have written.

The Oracle Database SQL Expert certification is an advanced level certification, as the name suggests. However, there isn’t any prerequisites for this one. There is no “Oracle Database SQL Beginner” or an Advanced level that you need to do first before this one.


What Other Names Is This Certification Known As?

Certifications can often have more than one name, often abbreviated versions or just referred to by the exam number. This certification can also be known as:

  • Oracle Database SQL Certified Expert
  • Oracle SQL Expert
  • Oracle Certified Expert
  • OCE
  • 1Z0-047 (the exam code)


What Exams and Exam Codes are Used For This Certification?

This certification only features one exam, and the exam code for this is 1Z0-047: Oracle Database SQL Expert. Note that this exam code starts with the number one, and it has zeroes, not the letter O (one Z zero, zero four seven).

The exam goes for 120 minutes (2 hours). It contains 75 multiple-choice questions, and the pass mark is 66%. This means you need to get 50 questions or more correct (66% of 75 is 49.5, rounded up to 50).

Exam Code1Z0-047
Exam Time120 minutes (2 hours)
Question FormatMultiple choice
Pass Mark66% (50/75)
Cost$245 USD

How Much Does The Oracle Database SQL Expert Certification Cost?

At the time of writing, this certification can be attempted for $245 USD. Many certifications require you to pay for each exam, but as there is only one exam for this, you only need to pay once.


What Topics Are Included In This Certification?

The topics for the 1Z0-047 exam are shown below.

Retrieving Data Using the SQL SELECT Statement

  • List the capabilities of SQL SELECT statements
  • Execute a basic SELECT statement
  • Describe how schema objects work

Restricting and Sorting Data

  • Limit the rows that are retrieved by a query
  • Sort the rows that are retrieved by a query
  • Use the SQL row limiting clause*
  • Create queries using the PIVOT and UNPIVOT clause*
  • Use pattern matching to recognize patterns across multiple rows in a table*

Using Single-Row Functions to Customize Output

  • Describe various types of functions that are available in SQL
  • Use character, number, and date and analytical (PERCENTILE_CONT, STDDEV, LAG, LEAD) functions in SELECT statements*
  • Describe the use of conversion functions

Reporting Aggregated Data Using the Group Functions

  • Identify the available group functions
  • Describe the use of group functions
  • Group data by using the GROUP BY clause
  • Include or exclude grouped rows by using the HAVING clause

Displaying Data from Multiple Tables

  • Write SELECT statements to access data from more than one table using equijoins and nonequijoins
  • Join a table to itself by using a self-join
  • View data that generally does not meet a join condition by using outer joins
  • Generate a Cartesian product of all rows from two or more tables
  • Use the cross_outer_apply_clause*

Using Subqueries to Solve Queries

  • Define subqueries*
  • Describe the types of problems that subqueries can solve
  • Use subqueries*
  • List the types of subqueries
  • Write single-row and multiple-row subqueries
  • Create a lateral inline view in a query*

Using the Set Operators

  • Describe set operators
  • Use a set operator to combine multiple queries into a single query
  • Control the order of rows returned

Manipulating Data

  • Describe each data manipulation language (DML) statement
  • Insert rows into a table
  • Update rows in a table
  • Delete rows from a table
  • Control transactions

Using DDL Statements to Create and Manage Tables

  • Categorize the main database objects
  • Review the table structure
  • List the data types that are available for columns
  • Create a simple table
  • Explain how constraints are created at the time of table creation
  • Truncate tables, and recursively truncate child tables*
  • Use 12c enhancements to the DEFAULT clause, invisible columns, virtual columns and identity columns in table creation/alteration*

Creating Other Schema Objects

  • Create simple and complex views with visible/invisible columns*
  • Retrieve data from views
  • Create, maintain, and use sequences
  • Create and maintain indexes
  • Create private and public synonyms

Managing Objects with Data Dictionary Views

  • Use the data dictionary views to research data on your objects
  • Query various data dictionary views

Controlling User Access

  • Differentiate system privileges from object privileges
  • Grant privileges on tables and on a user*
  • View privileges in the data dictionary
  • Grant roles
  • Distinguish between privileges and roles

Managing Schema Objects

  • Add constraints
  • Create and maintain indexes including invisible indexes and multiple indexes on the same columns*
  • Create indexes using the CREATE TABLE statement
  • Creating function-based indexes
  • Drop columns and set column UNUSED
  • Perform FLASHBACK operations
  • Create and use external tables

Manipulating Large Data Sets

  • Manipulate data using subqueries
  • Describe the features of multitable INSERTs
  • Use the following types of multitable INSERTs (Unconditional, Conditional and Pivot)
  • Merge rows in a table
  • Track the changes to data over a period of time
  • Use explicit default values in INSERT and UPDATE statements*

Generating Reports by Grouping Related Data

  • Use the ROLLUP operation to produce subtotal values
  • Use the CUBE operation to produce crosstabulation values
  • Use the GROUPING function to identify the row values created by ROLLUP or CUBE
  • Use GROUPING SETS to produce a single result set

Managing Data in Different Time Zones

  • Use Various datetime functions

Retrieving Data Using Subqueries

  • Write a multiple-column subquery
  • Use scalar subqueries in SQL
  • Solve problems with correlated subqueries
  • Update and delete rows using correlated subqueries
  • Use the EXISTS and NOT EXISTS operators
  • Use the WITH clause

Hierarchical Retrieval

  • Interpret the concept of a hierarchical query
  • Create a tree-structured report
  • Format hierarchical data
  • Exclude branches from the tree structure

Regular Expression Support

  • Use Meta Characters
  • Regular Expression Functions
  • Use Replacing Patterns
  • Use Regular Expressions and Check Constraints


These topics were refreshed on 15 Sep 2014, which meant that some topics were removed, added, or updated on this date. The items marked as * above were added or updated on this date, and the ones with a strikethrough were removed on this date.


What Are The Prerequisites For The Oracle Database SQL Expert Certification?

There are no prerequisites for this certification or the 1Z0-047 exam. It is recommended that you have some experience with SQL, though, as this is not an entry-level certification.


What Is This Exam’s Retake Policy? What If I Fail The 1Z0-047 Exam?

Oracle has stated that if you fail this exam, you need to wait 14 days before retaking this exam. You can’t retake this exam if you have passed it.


How Long Is The Certification Valid For? When Does This Certification Expire?

Oracle certifications don’t have an expiration date, unlike other certifications. You are certified for life, unless Oracle changes its policy at some point in the future.


What Job Roles Is This Certification Targeted To?

This certification is ideal for the following roles in the IT industry:

  • PL/SQL Developers
  • Database Administrators
  • Application Developers
  • BI/Business Intelligence Developers
  • ETL Developers


What Level of Experience Is The Oracle Database SQL Expert Certification Aimed At?

I believe this exam is aimed at those with an advanced level of Oracle knowledge. You need to know more than just the basics of writing an SQL query to be able to pass this exam. It can be quite hard if you haven’t had this experience.


Where Can I Take The 1Z0-047 Exam?

You can take this exam at any PearsonVUE centre. You can find your nearest one on the PearsonVUE website here.


How Popular Is The  Oracle Database SQL Expert Certification?

At the time of writing, I could not find any actual data on how many people have this certification, although Oracle states there are over 1.5 million certified Oracle professionals (which is for all certifications).

However, reports are that it is a popular certification among SQL practitioners who work on Oracle. It’s also the first certification that I earned, as my employer noticed that this certification was useful and assisted us in gaining it.


Where Has This Certification Appeared In Top Lists?

This certification has appeared in several lists of certifications:


What Does The Community Say About This Certification?

Many websites, blogs, and forums mention this exam, and the feedback on it is:

  • It can be quite a hard and challenging exam. Knowing your topics is important
  • It’s not for SQL beginners or those with minimal Oracle SQL experience
  • The time allocated is enough, but you shouldn’t waste a lot of time on each question
  • Some of the more difficult areas included regular expressions, operator precedence, nested Group BY functions, NOT IN with NULL rows, NEXTVAL and CURRVAL behaviour


What Impact Will Getting This Certification Have on My Salary?

It’s hard to tell what the impact this will have on your salary. According to a white paper prepared by Oracle in 2013, 77% of certified IT professionals believe that certifications have impacted their salary. As I’ve mentioned in a recent article on improving your salary as a database administrator, certifications are a great way to do this.

It may also have an indirect improvement, as you’ll be more knowledgeable about Oracle SQL, and likely be more experienced, both of which have a good impact on your salary.


What Resources Are Available For This Certification?

I’ve created a course that covers introductory topics for Oracle SQL, which you can find here. Note that while this course is excellent, it doesn’t cover all of the topics in this exam, as it’s focused on beginners and intermediate users of Oracle SQL. It is a great starting point, though.

Oracle offers several exam preparations for this exam:

There are also some Amazon books on this exam which have proven useful.


What Other Certifications or Exams Are Related to This One?

Oracle offers another certification, the Oracle Database SQL Fundamentals. The exam code for the 11g version is 1Z0-051. This exam uses a lot of the same material and topics, and is a more beginner-level exam. So, if you’re looking for a starting point, you may want to begin with that certification.


What Do You Get When You Pass The Exam or Complete the Certification?

When you complete the exam and pass the certification, you get the following things:

  • A membership card
  • A printed certificate on hard paper
  • A welcome letter to the Oracle Certified Professional community and instructions on how to download the logo and open an account for certified members


I hope you get a lot of value from this article. Do you have any other questions on the Oracle Database SQL Expert certification, or the 1Z0-047 exam? Ask them in the section below.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

]]> 0
5 Ways To Improve Your Software Developer Salary Mon, 27 Oct 2014 19:33:56 +0000 Continue reading …]]> 5 Ways To Improve Your Software Developer SalarySoftware development is a popular career choice for those in the IT industry. If you’re a software developer, learn a few ways on how you can improve your salary in this article.

This article is a part of my salary improvement series, which has covered a few roles already. I’ve gotten some of the data from Payscale and performed my own analysis on it, giving you some actionable advice on how you can improve it.


What Is The Average Software Developer Salary?

So, let’s start with the figures.

The average software developer salary in the US as of October 2014 is $65,669.

Let’s have a look at how this compares to related roles:


.NET Software Developer64,000
IT Consultant73,000
Junior Software Engineer52,000
Senior Software Engineer102,000
Java Software Developer67,000


As you can see, there is quite a large range of salaries for these roles.

  • .Net Software Developer/Java Software Developer. These developers focus on a specific technology (Java or .Net) and have similar salaries to each other, as well as the generic software developer salary.
  • Junior Software Engineer. A software engineer with minimal experience earns about $52k. This is a little less than the software developer salary, but as you’ll see in the salary article I wrote on software engineers, it can increase quickly.
  • Senior Software Engineer. This role has more experience and is a software engineer rather than a developer, and has an increased salary to go with it
  • IT Consultant. Alternatively, some choose to go with an IT Consulting role rather than a software developer, which has a slightly higher average salary.

So there’s the salary data. How can we use this to improve our own software developer salary?


Learn More Skills

If you earn more skills related to software development, there’s a good chance it will improve your salary. This is for several reasons:

  • You can do more tasks you weren’t able to do before
  • You can save the employer time and money as they may not need to hire or train someone else to do some work
  • You can add more value to the employer

According to Payscale, software developers who have Oracle database skills earn a 8% higher salary. Knowing UNIX will increase your salary by 6%, Linux by 4% and PL/SQL by 3%.

The best part is, with the increase in online education, you don’t even need to go to college to learn these. You can take an online course and learn in your own time.


Start Consulting

As shown in the table above, an IT Consultant has an average salary which is about $8k more than a Software Developer. In another article, I’ve explained what a software consultant is. Basically they are hired by one company to provide services to another company, rather than work for the company directly.

So, for example, you work for a consulting company as an IT consultant. Let’s use Accenture as an example. Accenture would have an agreement to provide software development services to other companies. Accenture would send you out to work at one of these companies. You’d be doing work for the other company but get paid by Accenture. Accenture gets paid by the other company. Everybody wins!

To get started as an IT consultant, you can look for a job in a consulting company. It’s pretty similar to finding a regular job, but the jobs would mention that it’s a consulting role, so if you’re looking for one of these, you can filter on those.


Get Certified

I’ve mentioned in most of my salary improvement posts that certificaiton is a great way to improve your salary, and I’ll mention it here again as well.

Getting a certification is a great way to improve your software developer salary. Certifications are offered by many vendors for a lot of technologies. If you’re interested in getting certified, have a look at what certifications are available to you.

If you’re a Java developer, Oracle offers a few certifications for Java. Microsoft has several certifications for .Net developers. There are many others to choose from, depending on the language you’re proficient in.


Move Companies

Another common way to improve your software developer salary is to move companies. This is a riskier choice, as you may not end up with a better role and could be out of a job for a while. It also involves a bit of work and some planning.

You could start looking for roles while you’re currently employed, and try to find one that pays better. However, getting paid more isn’t the only thing you should consider when moving companies. You should look at the kind of role that it is, what you’ll be doing, where the role is based, and any other benefits you may get.

If you’re not happy in your current role, then I suggest speaking to your manager or someone in HR to resolve it first. If you don’t get anywhere with that, then moving companies is a way to both improve your happiness and your salary.


Get More Experience

Experience is often mentioned in salary surveys as it is a good indicator of someone’s knowledge in the industry. Getting more experience as a software developer is a great way to improve your career. However, just letting time pass and hoping your salary goes up is not a very actionable tip, is it? And I’d like to give you something actionable, something you can do, rather than just wait a few years.

Getting more experience also involves working on different projects or in different teams. You can learn different ways of doing things, get involved in different systems, and work with people you’ve never worked with before. This kind of experience will make you more valuable to the company, and in turn, hopefully improve your salary.

You can get more of this kind of experience by asking for a transfer, or asking to be put on to different kinds of projects. Depending on what your company and team does, this could give you a wide range of different projects to work on.

Once you have more experience, you can use it as a positive point when it comes to your annual review, and ask for an increase in salary.


Well, there’s five ways you can improve your software developer salary. If you have any questions on being a software developer, share them in the section below.

Career Action Tip: Choose one of the methods above for improving your salary, and decide on the next step. For example, choose a certification that you can take to improve your career.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

]]> 0
4 Ways To Improve Your Database Administrator Salary Thu, 23 Oct 2014 11:30:25 +0000 Continue reading …]]> 4 Ways To Improve Your Database Administrator SalaryAre you a database administrator? Do you want to know how to improve your salary? Read this article for some information and advice on how to improve your database administrator salary.

What Is The Average Database Administrator Salary?

I’ve done some research on salary information in the US, and based on the information provided by Payscale and have found:

The average salary for a Database Administrator (DBA) in the US as of October 2014 is $68,000.

This includes all levels of experience of database administrators, as well as technologies. Let’s have a look at some related roles to find out more:

Database Administrator68,000
Database Administration Manager104,000
Oracle Database Administrator85,000
Senior Database Administrator97,000
SQL Developer66,000


What Does This Information Tell Us?

We can have a look at this information about salaries to find out:

  • Database Administration Manager: This is the team leader or manager role for DBAs. The salary here is higher than other roles, which is to be expected.
  • Oracle Database Administrator: This role is focused on Oracle databases. Interestingly, there was no data for the other major database, Microsoft SQL Server, but I imagine it to be quite similar. Other sources quote Oracle as about 8% higher (
  • Senior Database Administrator: These are the more experienced roles, where companies hire based on the expectation that the DBA has much more experience.
  • SQL Developer: This is not a database administrator role, but it’s a role that DBA’s often start in, so the lower salary reflects that.

Alright, so we’ve seen some of the salaries and roles related to a database administrator. Now, let’s take a look at what you can do to improve your database administrator salary.


Learn or Improve Your Unix Skills

The best way to improve your salary as a DBA is to learn Unix, or improve your existing Unix skills.

As many databases in large companies are run on Unix servers, this should not be a surprise. The database administrator does need to spend some time outside of the environment of the database, and this means they would spend some time accessing the Unix operating system.

Learning skills such as writing scripts, running commands, and reading log files is a great way to improve your salary as a DBA. This is because it will make you more effective, and improve your efficiency on the job, which is something that all employers like.


Learn the Procedural Language of the Database

Both of the major database vendors, Oracle and Microsoft, both offer a procedural language that works with their versions of SQL. For Oracle, this is PL/SQL (Procedural Language SQL), and for Microsoft this is T-SQL (Transact-SQL).

Learning either of these skills will likely increase your salary as a database administrator, as you’re able to write code in these languages, find issues in scripts, and perform advanced tasks.

As most database administrators are usually focused on Oracle or Microsoft, it’s not often that you see a DBA who is knowledgeable in both. The best way to earn a high salary in the IT industry is to specialise, so I would suggest choosing one or the other. Don’t just base this decision on the pay (Oracle DBAs tend to pay a little more), as there are other factors involved and this may change. However, if you’re already a database administrator, you would have already learnt your specific database technology, so this procedural language step would be an obvious one.


Get Certified

A common way to improve your database administrator salary is to get certified. I’ve mentioned this in many of my salary posts, as it’s a good suggestion and is relevant to many roles.

There are two main companies to get certifications from, which are based on the two main database systems – Oracle and Microsoft.

Oracle offers certifications in many database versions. Their latest version is 12c, while 11g is one of the more popular ones I’ve seen.

  • Oracle Database 12c Administrator Certified Associate
  • Oracle Database 12c Administrator Certified Professional
  • Oracle Database 11g Administrator Certified Associate
  • Oracle Database 11g Administrator Certified Professional
  • Oracle Database 11g Administrator Certified Master

The certification path for Oracle DBA certifications goes from Associate to Professional to Master. At the moment, the 12c database doesn’t have a Master certification.

Microsoft offers two main certifications for their SQL Server database. They also list an SQL Server 2008 version, but I haven’t included it here.

  • Microsoft Certified Solutions Associate (MCSA): SQL Server 2012
  • Microsoft Certified Solutions Expert (MCSE): Data Platform

I wrote a post some time ago on getting an SQL certification, which you can read here

Also, as with many roles in the IT industry, the more experience you have, the better your salary will be. I haven’t included a tip here specific for this, as there isn’t really any actionable steps you can take to “get more experience”. It’s just something that comes with time.


Look For Ways to Help the Company Save Money

This kind of skill isn’t something that is mentioned on skills lists on websites, but it’s a useful tip anyway.

While the main role of a database administrator is to monitor a company’s database, companies are always looking to save money. If you can think of a way to save money, or save time, as a database administrator, then this could be a good way to improve your salary.

Some ways to reduce costs and time could be:

  • Identify bottlenecks and issues with any systems that use the databases
  • Discover ways to improve the efficiency of existing queries and jobs
  • Improve the way that you or your team does something, which saves time
  • Investigate any solutions or software that may solve a problem that saves time and cost, even though it requires some money to purchase

If you’re able to achieve a cost saving or time saving for the company, it looks good on your end of year review, and can certainly help in getting a pay rise and improving your database administrator salary.


Well, there are a few ways to improve your salary as a database administrator. I hope you can take one of these ideas and use it in your job to get paid even more.

Career Action Tip: Choose one method from this list and either learn the skill or look up the requirements for the certification.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

]]> 0