I’m studying towards a Degree in Computing with the Open University and have just finished a nine month Visual Basic course. Because I have to combine my studies with a full-time job and a family, sometimes its not until I have finished a course that I can stop, take stock and assess the experience.

With that in mind, I thought I’d write a short post about the courses I’ve done so far because it might encourage others to study with the Open Uni or help them choose a suitable course.

Comparing the Open University to ‘real’ universities

I already have a 2:1 degree in Digital Art & Technology, previously called MediaLab Arts, from the University of Plymouth so I’m well placed to compare the Open Uni experience with a "real " university.

Studying with the Open University is much the same as any other university: courses are assessed by coursework and a final examination. The main difference is that much of the studying is done on your own and over the internet through the OU’s online forums. Each student is assigned a tutor who you can contact by email or phone and they are generally very responsive and knowledgeable.

During a course, there will normally be four or so regional tutorials on a Saturday where students can meet up with their tutor. These are similar to the kind of tutorials you would get at a bricks and mortar university. They are not compulsory but students do tend to do better if they attend the tutorials. I haven’t attended every tutorial (mainly because I don’t want to devote all my time to work and study!) but have found them beneficial. I think they aid motivation as much as anything because of the physical interaction with other students and staff.

Studying with the OU is certainly not an easier option than studying with a "real university". The courses have to adhere to the same standards as any other university and I would say the quality and depth of course materials is just as high, if not better. Employers generally view Open Uni degrees as being extremely valuable and I would agree with this. They are excellent academically but if you have completed a degree whilst working full-time then you have also demonstrated character, determination and a great ability to learn and these are traits that I feel are valuable to any employer.

In comparison to my time at Plymouth University, I’m older and more experienced technically, professionally and emotionally, which makes a difference in terms of time management and motivation. I’m not sure I could have completed an Open University course when I was twenty because you do need to be quite strict with yourself. Apparently most Open Uni students that drop out are under thirty and the reason given for this fact is that they lack the life experience they need to manage their motivation and time.

All courses are either level one, two or three and this corresponds to the type of course you would do in your first, second or third year at a bricks and mortar university i.e. a level three course is most difficult. Here is a brief assessment of the courses I have completed so far:

Designing applications with Visual Basic (MT264)

This course teaches how to write applications in Visual Basic using Object Oriented programming and is the most recent course I completed. I don’t expect to use VB professionally but the concepts here are applicable to other languages. I didn’t enjoy this one as much as the Java courses, partly due to the way the course teaches a simplified design language for the concepts and VB for the practical exercises. I found this unnecessary because the VB syntax isn’t complicated enough to warrant using a simplified design language to explain the basics.

However, this course has given me more programming experience and from a software perspective as opposed to the web development work I do professionally.

Relational databases: theory and practice (M359)

This was the first level three course I had done and was by far the most difficult. I’m fairly experienced with databases (I’m MySQL certified, have been a database admin for Microsoft SQL Server DBMS and developed sites with PHP and MySQL) but I found elements of this course hard going. It is heavy on the theory and that made some of the learning materials quite dry. I prefer a lot of practical work in the OU courses because that has a direct benefit to my professional work.

It was very thorough and in-depth though. I certainly finished the course with a better understanding of advanced SQL topics.

Putting Java to work (M257) &
Object-oriented programming with Java (M255)

I’ve grouped these two Java courses together because they follow on from each other. I really enjoyed both courses and they were very well run. A few years earlier, I had taught myself PHP and covered Object Oriented Programming in the Zend PHP exam so I was familiar with a lot of the concepts but these courses made it all a lot clearer.

I have found that much of what was taught in these courses relevant to PHP programming and the syntax is very similar.

Microsoft server technologies (TM128)

I start this course in October and it is a bit different to the others I have taken because it isn’t a programming course. I do have a fair amount of Microsoft Windows Server experience having managed NT, 2000, 20003 and 2008 servers but the syllabus is close to the Microsoft Server Certification so I aim to pass this course and get Microsoft certified.

It is also a level one course and with a new baby due in July I hope it won’t be too challenging…

Certificate in Web Applications Development

Before I started my Open Uni degree, I completed this qualification. It is an Open University course that covers the web application development process, including PHP programming, database design and open source development and versioning tools.

It took two years to complete and was a lot of work considering it is not a diploma or a degree. It was an excellent course, packed full of great practical experience combined with strong theory. It consisted of:

Web applications: design, development and management

An introduction to web application design and development. The practical side covered usability, HTML and CSS.

The client-side of application development

Designing and developing client-based applications using JavaScript. That’s real, proper JavaScript, none of that jQuery stuff!

The server-side of application development

Exploring the role of the server in web applications and using ASP to create dynamic Web pages.

Databases within website design

This covered database design using entity-relationship diagrams and SQL. The practical work used MySQL and Cold Fusion. I’d heard of Cold Fusion years earlier so it was interesting to finally get my hands on it.

Open source development tools

The origins and aims of open source software, and its principles of software development and distribution. The course provides practical experience of CVS, PHP, MySQL and Apache.

Web server management, performance and tuning

The role of server administration and its contribution to planning, deployment, and management of a web application. It introduces tools and techniques to assist with capacity planning, monitoring of workloads, identification of performance bottlenecks, and security failures.

One of the big benefits I have gained from my Open University studies is improving my time management and self motivation. These skills will continue to benefit me long after I have finished my studies and they have been really useful in my work too.

In a web development or IT role, emphasis is often placed on the individual’s technical skills. However, in my career I have found that effective time management, motivation and the ability to learn new skills are just as vital.

Dividing my time between studying for an Open University degree, a full time job and parenthood isn’t easy but I find its a lot simpler with the right approach. Here are some tips that help me during my studies and can also be applied to your work life.

Enjoy it

No matter what you are doing, its easier if you are genuinely interested in it. You will put more effort in and will get better results. If you don’t enjoy what you are doing then it is difficult to do it well over a long period.

Break it up

If I focused on the end goal of achieving an Open University degree then I would have become disillusioned because it is not something that can be achieved quickly. Instead I focus on individual modules and achieving a good mark in the next assignment. This breaks the big task into smaller chunks that I can achieve within a couple of months.

The same approach can be used for large projects. It can be daunting if you focus on the end product but manageable if you divide it into sub tasks.

Reward yourself

When you achieve a target it is important to reward yourself. I find its good to celebrate the little achievements as well as reaching big milestones. The rewards don’t have to be very much. Sometimes the reward might just be watching a film or a night off but it gives me something to work towards and another incentive to do well and get the work done.

Life is more rewarding when you have something to aim for.

Remind yourself why

It can be easy to get bogged down with deadlines and piles of work and you forget why you are doing something in the first place. Reminding yourself what your ambitions are or why you originally wanted to do something can help you get back on track.

Sometimes it is possible to turn frustration or failure into positive motivation. For example, you can use a difficult time at work to drive yourself on so you do well outside of work. That is much more productive than moaning or letting yourself feel frustrated.

Stay organised

Achieving any long term goal can be difficult so why make it even more difficult for yourself by being disorganised?

Some people appear to thrive on panic and pressure and use that to motivate themselves. Personally I find this counter productive and a waste of energy. It can be disruptive in a team environment too where not everyone works in the same way. I’d rather be organised, plan what needs to be done and work an extra half an hour a day than spend the weekend rushing to meet a deadline.

Make lists

I make a lot of lists to help me. I prefer to have them written down on a pad of paper, rather than in digital form. Having a visible reminder of my tasks or targets focuses my mind on what needs to be done and makes it easy to change my To Do list as my priorities change.

I start with a short list for today and I put anything that I know I won’t get done today on the next page. I amend the list as I complete tasks or new tasks arise. That way I know how much I have to get done and I can set myself a target for what I want to achieve before the end of each day.

At the end of the day, I review the list and update tomorrow’s list on the next page. Then I’m able to start the following day organised and feel in control of my work.

This works well for my studies too. I only have a limited amount of time each evening so it is important to spend that time productively. I set a target for what I want to achieve in each study session and that prevents me spending too much time on Facebook or Twitter! Its only a target though so I try not to get frustrated if an evening’s study goal turns out to be impossible, for example if an exercise is more difficult than I predicted or I’m feeling tired.

Get ahead and stay ahead

I aim to start each Open University module a week early and get ahead of schedule at the start when the course content is generally easier. This means I am not playing catch up and gives me time to spare in case I struggle, get ill or something unexpected crops up.

Assignments are usually available long before they need to be completed so I complete them as I go along rather than leaving it until a week or two before the deadline. If an assignment tests your knowledge of four units then you can normally complete the first couple of questions before the end of the fourth unit.

Whether its study or work, don’t leave it too late to meet your deadlines and don’t underestimate how long something will take. I have seen so many people say something will be easy and not take into account the extra time required if a problem occurs.

Find what works for you

These approaches work for me but they might not work for you. I find that short amounts of regular study in the evening suits me but someone else might prefer to spend 8 hours studying at the weekend instead.

Having a routine makes studying easier because subconsciously I know that I will be sitting down to work at the end of the day.

A quiet environment is a must for me, whether I’m studying or at work. Having music playing or the TV on in the background means my attention will wander.

A clean work area also helps me. My workspace starts tidy and then over a couple of weeks its gets more and more cluttered. Stopping to tidy up and organise my desk makes me feel less distracted and more in control.

Whatever your approach, review your progress regularly. Ask yourself whether your approach is working and if not, change it.

Be positive, not stressed

Think positive and don’t worry about failing. Recognise that you can’t do it all and it is inevitable that you will be disappointed with your results at some point.

Personally I don’t find my Open Uni studies stressful. It really doesn’t matter if I don’t do well. I already have a degree and a job and my studies are separate to my work. Maybe if my employer were paying towards it then I would feel under pressure to pass or do well but they are not so I see my degree as a welcome distraction rather than another thing to get done.

Find positive people

Surround yourself with positive people, particularly when you are finding it difficult to motivate yourself. Their positive demeanour will rub off on you and you can use this to motivate yourself.

If you have a vision of what you want to achieve then that helps too. If you picture yourself failing or a project not being a success then the chances are you won’t succeed.

Take a break

If you have a young child, the amount of sleep you get will inevitably be reduced! Combine that with a job and study and it can be easy to not realise just how tired you are. This can really affect the quality of your work. You become less effective because it is difficult to retain new information when you are tired.

Sleep is really important to staying sharp and feeling positive. Its amazing how much of a difference a few early nights can make to your mood.

I find that if I really lose motivation then spending a few days doing something completely different and catching up on sleep helps me regain it. After a couple of days I normally get impatient and restless, I start getting new ideas and want to get back to whatever I was doing. That is a sign that I’ve got my energy and motivation back.

I find it important to have some quiet time at the end of the day too. If I’m working on the computer and then go straight to bed, I find it difficult to switch off and sleep. Because of this, I have a rule to not work beyond 10pm. But rules are made to be broken of course, particularly if I’m in the zone and making really good progress!

Prioritise

If you are a perfectionist then it can be difficult to recognise that you can’t do everything as well as you want every time. You will have to learn to prioritise and accept that not everything has equal importance. Its OK to put off some tasks or partly complete them if it means a more important job is done well.

Keep an open mind

Be open to new ideas and ways of working. Maybe you work in a certain way because that is how you have worked in the past. Perhaps you have ideas that would change how I work and study?

And remember, life is more rewarding when you have something to aim for.

It’s well known that people are much more likely to tell their friends about a bad customer experience than a good one and two contrasting experiences highlighted this to me recently.

According to this report, British customers are three times more likely to tell friends about bad service than they are about good service. 97.7% would simply take their business elsewhere.

The good

A BenQ monitor stopped working within a year of purchase so I raised a returns query online with the manufacturer. A prompt email response provided me with instructions on how to return the monitor and when it would be picked up. There would be no charge to me (unless it was found to be fault-free), a replacement would be shipped once tests were complete and I was told pick-up would be the next day. I didn’t have to provide any proof of purchase or go through any mind numbing troubleshooting steps. The process so far was smooth, automated and hassle free.

The next day a courier arrived with a padded box for the faulty monitor to go in. Great, I didn’t have to worry about packing it properly. But then the surprise…the padded box contained my replacement monitor! The courier dropped off my replacement and packed up the faulty monitor without BenQ running tests to prove the fault. A quick turnaround in 24 hours.

You could argue the monitor shouldn’t have needed replacing within a year, or that the email reply didn’t make it clear a replacement would be delivered or packaging would be provided but these were minor points that didn’t matter to me. My expectations were exceeded and I couldn’t have asked for more.

Before my monitor experience, I would have described BenQ as a low cost, budget IT manufacturer. But as a result of great service, my opinion of them changed favourably.

But interestingly I hardly told anyone about the experience.

The bad

The same week I spent half a day waiting at home for a visit from Virgin Media, a company I had previously thought good of, to install a TiVo box. No-one turned up and there was no phone call, text or email. So I called Virgin to find out what was going on, only to be told their records showed the appointment was for two weeks time.

I cancelled the upgrade, unhappy at having wasted half a day and unwilling to spend another half day waiting in, particularly as I had to pay for the engineer visit. As a result they lost an upgrade customer and I lost out on something I wanted.

The mistake was entirely mine. I booked the upgrade online with a provisional date and somehow failed to notice that the date in the confirmation email was different. But by the time I realised this it was too late. I had already re-told the story to family and friends and felt hard done by that Virgin hadn’t done more to appease me.

Responding to complaints

I sent a message via Twitter to Virgin Media, not expecting a reply. Promptly they responded, asking if a reason was given for the mix-up. This small response made me feel that perhaps they did care, maybe just a tiny bit. Then I realised the error was mine. But how many people did I tell? One, maybe two. And I didn’t post a follow up on Twitter. By that time my focus was elsewhere and it just didn’t seem important.

Using social media to improve customer relations

This highlighted something else to me. Yes, people are far more likely to tell friends about a bad experience but it can be possible to turn this experience around if the response exceeds the customer’s expectations.

By responding to my tweet, Virgin made me feel more valued than I had done previously. They could have followed this up further, perhaps by investigating (which of course would have shown me to be at fault!) or by offering me a discount. They would then have provided me with more than I expected. I would have been far more likely to tweet about that, post on Facebook or tell my friends. This would have largely undone the negativity spread by me re-telling the original experience.

The final lesson here is check your emails. It might just be your fault. Sorry Virgin…

Every now and then I like to re-develop this site as a way of improving my skills or to use some new techniques and technologies. Its a great way of having complete freedom over what you produce and lets you experiment a bit more than you might be able to when developing a site for someone else. This time I decided to use Yii to run my site.

What is Yii?

Yii is a PHP framework – a library of functions and classes that help you get your web site up and running faster than if you had to write everything yourself. There are a few established PHP frameworks out there such as Zend, CodeIgniter and Symfony, and perhaps Yii isn’t quite as well known as these yet but it appears to be gaining popularity. Yii’s developers named it from the answer to commonly asked questions when choosing a framework: Is it fast? Is it secure? Is it professional? Is it right for my next project? ‘Yes It Is!’

Like many other frameworks, Yii provides the basis of your web site or application by taking care of the CRUD functions (create, read, update and delete database records). This leaves you free to focus on your application’s unique requirements.

The reasons for using any framework instead of writing the entire site or application in house are generally the same:

  • Save time. As mentioned, if a framework provides you with a skeleton of your site then that should reduce the development time
  • Re-use of code in future projects, saving more time and preventing having to re-invent the wheel
  • Quality code. Frameworks should provide comprehensively tested and secure code, giving you a good platform to build from
  • Separation of code. Many frameworks, including Yii, implement the MVC pattern (model, view, controller). This keeps the code used to display the pages separate from the database back-end and the logic of your application. This promotes cleaner code and encourages code re-use
  • A large number of extensions to the framework that provide added functionality without too much development work

Yii is open source and uses the MVC and ActiveRecord Object Oriented Programming patterns to deliver what its developers claim is faster loading speeds than other frameworks.

The right choice?

If I was selecting a solution to build this site with based purely on what would be the quickest and easiest approach then I wouldn’t have chosen Yii. I probably wouldn’t even have chosen any framework and would have gone for a Content Management System like Drupal instead. This site is pretty small: a few static pages, a blog and a secure area for authenticated users. Yii can be used for projects of any size but it has been developed with large scale applications in mind.

However my objective was to use this version of the site as an opportunity to improve my Yii and Object Oriented PHP knowledge. Yii appealed to me from research I had done for other projects. In particular, I felt Yii had:

  • Excellent CRUD support
  • A good automatic code generator using a GUI web interface called Gii that would produce the database interaction and application ‘rules’
  • Fast performance with its lazy loading approach to classes so it only loads what it needs
  • Good integration with the likes of jQuery
  • And it looked pretty fun to use compared with some other frameworks. Not many people seemed to have many strong criticisms of it. Unsurprisingly I found that people tended to have a bias towards whatever framework they were most familiar with

If you were developing an application that would be around for a long time and go through many different versions that maybe Zend would be a better choice. As the framework from the core contributors to PHP, you can be pretty sure Zend is here to stay but from my brief use of it, I found it a bit OTT for what I needed to do and that it had a steeper learning curve than Yii.

Disadvantages of Yii

Many of the disadvantages I found of using Yii could probably be levelled at any framework:

  • There is a learning curve to climb and how steep and difficult that is will depend on your previous programming experience and whether you have used other frameworks
  • Despite the promise that frameworks will reduce development time, it can seem at times that you are being slowed down by a framework. The simpler the project, the more true this is likely to be. After all, most people with PHP experience could knock up a simple site that reads and writes to a database without having to learn a framework
  • You are forced into doing things in a certain way by the MVC approach. And if something appears impossible then you are probably doing to the wrong way!
  • There is a degree of bloat with the code. If you are used to writing sites yourself, from HTML and CSS to PHP classes, then you may find yourself wondering why Yii needs all these other files. The same could be argue about some CMS but Yii’s lazy loading should ensure it only loads what it needs

But I did like it!

What I did find with Yii is that generally I could find the answers to my questions in the forums already, without having to post new questions. There were some extensions I could take advantage of fairly easily. There were not too many books on the subject but hopefully this will change. The best I found was Agile Web Application Development with Yii1.1 and PHP5.

When choosing a framework, at some point you have to bit the bullet and pick one. As far as Yii is concerned, I haven’t seen anything that would make me discourage its use but I have seen plenty to recommend it.