Predictably, a lot has happened in the last 6 months. Just not a blog post. One thing that is both at the same time surprising, and not at all surprising, is that my job somehow found a way to get worse. I already didn’t enjoy it, as it never really had anything I could really engage with. But when the business completely changed and forced my job to become something I absolutely did not want to do, I realised it was time for a change. I was already looking to leave, and so didn’t see the point in trying to fight the change or try to move into another job role within the same company. I had already been looking for other jobs, but with each interview I would get rejected for not having enough experience. If it required any programming experience, while I could demonstrate some, I would be turned away because I had not got even 1 solid year of experience from my current job. If it wanted skills in electronics, the same thing.
Even though my job has given me experience in all the key areas I’m interested in, it has been few and far between. Once any potential employer found this out, they would send me packing. If they targeted you because there was something written on your CV, they expected it to be something you had at least 1 year of solid experience with. Not just a few projects scattered through the last 3 years. I started to see that the only way to change jobs was to start from scratch. To look at things from the point of view of not having a degree, or not having any professional experience, and go for junior or entry level positions. But I also started to think of alternatives. Going back to University was one of them.
This is something that has always been on my mind, ever since I was unsuccessful in securing funding to stay on and undertake a PhD after I graduated. But then something caught my attention. Something I had thought about before, but had always ignored. Teaching. Or more specifically, teaching Computer Science. It was a tweet from Dr. Sue Black that made me stop and think. She tweeted about the British Computer Society Scholarships being offered to those going to do a PGCE in Computer Science Secondary Education. Their goal is to encourage more people with the right skills to train as teachers, coinciding with Computer Science being added to the National Curriculum. Seeing this, and reading more about it, made me take action.
I knew that working with young people was something I enjoyed, having been involved in Scouting again as an adult for almost 4 years. This is why many of my friends had been suggesting for about 2 years I should become a teacher, knowing how much I dislike my job. They all think it would be something I’ll enjoy. I also knew there are plenty of enthusiastic young people out there interested in learning to code, through events such as Young Rewired State, who would gladly take the subject if it was offered at school. I immediately looked at the PGCE courses offered by the University of Reading. Having really enjoyed my time there completing my undergraduate degree, it was always my first choice if I returned to study. Fortunately, they offered Computer Science. I made my applications, to both the PGCE course and to the BCS Scholarship, and the process began!
I’d like to say I was lucky and was awarded the BCS Scholarship, but sadly not. That didn’t deter me though, and I kept going with my application to the PGCE course. Part of the process involved spending at least one day observing lessons in a school. Something I was apprehensive about at first, not having been in a school for years, but thoroughly enjoyed. It did not feel awkward or uncomfortable being in a classroom and engaging with the students. I have now been through the application process, and after a somewhat awkward and uncomfortable interview, I am looking forward to starting back at university in September.
It maybe isn’t how I expected I would go back to university, but I definitely think it’s the right thing to do, and now, the right time to do it. I can’t stay in a job I don’t like any longer, desperately hoping that somehow, some-when, the job will change and I’ll start enjoying it. It’s been 3 years, and the changes have only ever made things worse. If I don’t get out now, and do something different, I don’t think I’d last much longer.
Now, whether the weather shows it, or not, summer is here. And I doubt it will hang around very long. So I’ve got a new project, something I’m going to build. I took the Windows Phone controlled Netduino robot about as far as I wanted too. Although I still haven’t attached the wheels onto the motors, it functions as I planned it too. Nothing too complicated, just a bit of fun. Now I’ve set my eyes on a Quadrotor/Quadricopter – whatever they’re called – a flying vehicle with 4 propellers. To start with I’m just going to jump into the Radio Controlled world, and build one to fly manually. But after that, I’ll look at things like the ArduCopter and Bitcraze Crazyflie Nano, to see about automating it and turning it into some sort of UAV. As and when things happen with it, I’ll probably put up some stuff here. There’s also our ongoing home automation work, which may require some creativity to add some feedback to our LightwaveRF setup, that may also feature here. Either way, there should be something new sooner than 6 months!
Almost 3 years ago, I accepted a job at a large technology company as part of their Graduate Scheme. I had graduated from university with a First Class MEng degree, and spent months applying to many different graduate jobs. I wasn’t having much luck, and had been out of university without earning money for about 6 months. The job I was offered wasn’t my first, second, or even third choice, but a last resort choice because I was getting desperate. Rent and bills do not pay themselves, and I don’t hide the fact that I needed money.
I knew that the job was in a very specific industry, and although it advertised itself as a technical job, I had my doubts as to how true this would actually be. All the advice I received at the time was to take the job, that it would be good experience and would help me move on to a better job in the future. I doubted this even then when I signed the contract, months before I started the job. I was very worried I would be getting in to a job where what I would learn would apply only to that one narrow industry, and not help me in the wider technical job market in the future. But I believed the advice and as I knew it would at least earn me something, much less than most other graduate jobs but still something, I accepted it. I still continued looking for other jobs right up until my first day of work, but to no avail.
When I started there it wasn’t long until I saw why the job only required someone with a minimum of a 2:2, and not even a 2:1 degree. The job had been sold to me as one with opportunities for electronics, embedded development, programming/software development, and even computational fluid dynamics. But in the 2.5 years I have been working there, it feels like I’ve barely gone beyond ‘Hello World’. There have been a few small projects which have been interesting and technically challenging, where I feel I have learnt something worthwhile. But the majority of work has barely required anything beyond what I was doing during my first and second years at university. Most of what I have learnt has been specific to that one industry, and so as I expected, not beneficial when looking for other work now.
As with any knowledge or skills, if you don’t apply them regularly, or keep developing them, you get rusty. Most of what I had learnt during the 4 years of my degree has been stagnating. I can go back and look at work I did at university, and some of it might as well be in a foreign language. I was under the possibly false impression that a graduate level job was meant to take someone after they have finished university, and provide them opportunities to develop knowledge and skills that build upon their degree. I hope that at other companies, this happens. But with the job I have been doing, I feel that I could have gone there without a university degree and be doing just as well, as all the industry specific training would have given me what I needed for those areas anyway.
So I really wish I had followed my instincts and gut feeling 3 years ago, and not taken this job. It would have meant times were harder financially for a bit longer, but it would have given me longer to find a more suitable job. I have now completed the 2 year Graduate Scheme, and see that as a good point to look for other opportunities. But as I come to look for other work, once potential employers find out what the past 2.5 years of employment has actually involved for me, they realise I wouldn’t be right for them. Yes I can make things look good on paper, and people tell me that my C.V. isn’t too bad. But most of that builds upon my time at university, which I finished 3 years ago. All of that is going rusty while I’m doing a job every day that uses only the basics from a technical point of view. It feels like my career has been set back considerably. What I am learning isn’t relevant outside that industry. The technology world is huge, and I’m finding it hard to work out what I should be learning in my spare time that will help me get a job I enjoy.
It feels in some way I’m still at zero or worse, and almost need to go back to university, get another degree, and start again. Everyone assured me what employers want is experience, that it doesn’t matter where. Even advice given to graduates today by careers advice services is that they shouldn’t be picky. They should take any job they get offered, whatever it is, because it will get them experience.
After making that mistake myself, and regretting it, I hope no one else does the same. Be picky. Don’t take the first job you’re offered if you’re unsure about it. Employers may want people with experience. But if the experience is in a totally different area to the job, then it’s not going to help. Don’t start working in an industry you know you don’t want to be in, because this could damage your chances of working somewhere else in the future. Be sure that the job will have you doing things you want to do, and let you develop the knowledge and skills you want to develop. If the job will only need knowledge you already have, won’t challenge you and give you the chances to develop, be wary. You could find that despite having experience, you still won’t have the skills potential employers are looking for should you go to leave that job for something you’d rather be doing.
The job market is tough, especially for graduates. But sometimes it is better to trust your instincts, your own gut feeling, than follow other people’s advice.
It fell to the wayside a long time ago, but it never truly died. I of course mean the robot/electronics type thing I was building based on a Netduino. Unfortunately the XBee WiFi Module didn’t prove to be the solution to giving it WiFi connectivity back last year. I’m sure it’s a perfectly good piece of hardware, but unfortunately I was never able to configure it correctly, even using 2 different USB adapters. The software was temperamental, and would often lose connectivity with the XBee.
Some recent Googling of the problem again however turned up different results. A simple search for ‘Netduino WiFi’ turned up a post on their forums from late August, indicating the WiFly might be the solution (http://forums.netduino.com/index.php?/topic/5218-netduino-wifi/)! Luckily for me it is available as an XBee Module, and I already had the XBee Shield.
This proved to be a dream to set up and get working! I simply plugged it in, followed some simple instructions (http://www.tinkerfailure.com/2012/02/setting-up-the-wifly-rn-xv & http://www.newspinrobotics.com/index.php/blog/getting-a-wi-fly-module-up-and-running) and was connected directly to an Ad-Hoc network it created. From there I was able to connect it to my home WiFi network, and get all the settings correct so I could send UDP packets to my Netduino as planned. No messing. No hassle. It just worked.
My problem then came when I updated the Netduino firmware to version 4.2, and the .NET Micro Framework SDK to version 4.2. The update of both went absolutely fine. But when it was complete I found I could no longer compile and run my simple motor driver test code. First of all I have to make sure there was a Reference added to ‘SecretLabs.NETMF.Hardware.PWM’ (the old one) as the updated .NET Micro Framework included new PWM functionality. This also meant adding ‘SecretLabs.NETMF.Hardware.PWM’ in place of PWM where the 4 motors are defined. This meant it still correctly used the ‘old’ PWM functions. But it wasn’t the full fix.
The code would compile and run, but the motors would not move. Using debugging, I traced the main problem to an error in the motor driver code where the value for the PWM pulse period is calculated. In my original code, I used a very large number without any trouble here.
uint period = (uint)(1000000000D / (double)freq);
But this now caused an exception, and stopped the program from running, so the motors would not turn. I reduced this value from ’1000000000D’ to only ’1000D’ and found it worked. I still had full control of the motors, including speed and direction. So if you are using this Motor Shield Driver, and update your Netduino firmware and .NET Micro Framework, please also update this value. You may find other values work too, but I can confirm ’1000D’ works.
Now I’ve resurrected this, and have achieved the bare minimum I originally set out for, I will continue. I will hopefully think up other things to add to it, or things I want it to do. I’m also going to build the hardware into something more presentable than it currently is. Although it is never going to be a Sphero.