UKC

Career switch - Computer programmer

New Topic
This topic has been archived, and won't accept reply postings.
 Sam W 11 Apr 2016
After Uni (Mechanical Engineering), 4 years of climbing/sailing/skiing and then 9 years of general management roles in varied industries I'm looking for something new. Currently top of the list is learning to code, something I would have done years ago but didn't want a job that left me sat in front of a computer screen all day. Have now realised that most jobs involve looking at a computer screen all day, so...

Reasons it appeals:
I like playing about with computers i.e. tinkering, not games and always have done
Enjoy problem solving
I'm a very logical thinker
Not tied to a geographical location
I generally get on well with other computer programmers (note sweeping generalisation)
Potential for flexible hours
Reasonable salaries available

Have got enough money to pay the mortgage and feed the family for 6 months while I teach myself a programming language, after that the children will need to go out to work.

UKC hive mind, please tell me:
a) if I'm about to make a dreadful decision
b) if not, what language is best to learn. I'm thinking more creating programs than websites
c) I'm guessing the hardest bit will be building up some experience so somebody is actually willing to pay me. Any tips on how to do this?
 Jon Stewart 11 Apr 2016
In reply to Sam W:

Can't tell you anything about the industry, but what I do know is the people I know who are programmers do *a lot* of climbing, and get paid very well for what appears to be mainly...going climbing.
Clauso 11 Apr 2016
In reply to Sam W:

Checkout what's in demand. That's where the jobs are:

http://www.codingdojo.com/blog/9-most-in-demand-programming-languages-of-20...

Personally, I develop in C# and there's a lot of demand for .NET developers.

I'd advise getting hold of a decent IDE, and tuition materials, and giving things a crack prior to chucking your job in. A conversion course - I switched from life sciences via a Computing MSc - would be very useful, as the industry often looks for more knowledge than just programming skills i.e databases, design, systems analysis etc.
In reply to Sam W:

Programming isn't just about a language; it's about a bunch of techniques for doing 'stuff' too. Latest jargon appears to call this 'patterns'.

You might think about what field of computing you're interested in: business/financial, web, database, embedded, etc. Different languages for each. If you'd like to keep within the mech eng field, then embedded control of actuator systems might be a possibility.

ps. I'm not a programmer (sorry: 'software developer'), but I work very closely with them, and have been known to hack the odd bit of embedded C for interfacing with electronics.
1
 beth 11 Apr 2016
In reply to Sam W:

a) getting into programming, as opposed to website dev, is often a computer science degree or a number of years relevant experience before most places will even consider you for interview.

b) depends on what you think you might end up doing. If you do Windows applications it's C# and you'll largely spend your days writing glue to stick bits of Microsoft libraries together. Otherwise you need good software engineering skills and understanding of algorithm development to solve problems. Language becomes largely a matter of syntax familiarity - object orientated and procedural methodologies, at least aware of functional and predicate languages. Scripting languages like perl/python/etc.

c) get involved with open source projects, you'll either learn fast and get your name in credits (so you have some google fodder to back up your cv) or you'll sink, also fast.

Companies recruiting sift through vast numbers of cv's so you have to stand out. Or you know someone who's willing to take a chance on you. New programmers are expensive both in time and salary to bring up to speed on what the team does. 6 months unlikely.
KevinD 11 Apr 2016
In reply to Clauso:
> I'd advise getting hold of a decent IDE, and tuition materials

Quick note on this. If you go the .net route Microsoft Dev Essentials program gives a full copy of VS2015 plus SQl2014.
For more general usage it also has either a 6 or 3 month free subscription to pluralsight (not just MS courses). I am not the biggest fan of video training but as it goes probably the best.

Quick edit: VS is also not bad for python work and possibly php and other heretical languages.
Post edited at 22:48
 beth 11 Apr 2016
In reply to captain paranoia:

Patterns is about getting programmers to not 're-invent the wheel' but to recognise 'patterns'/problems that have been solved before so can implement a suitable tried and tested solution. E.g not slogging through writing their own classes to traverse red/black trees, but pick a solution that's known, and bug/unintended feature/idiosyncrasies free.

There's a good book, "Design Patterns" by Vlissides, Helm,etc - often called the gang of four. Although Vlissides is now dead, 2004. Good to see the principles are still around. 'Refactoring' also went with it, improving the design of old code.

I got out of programming in 2007/8. Don't miss it at all.

1
 SenzuBean 11 Apr 2016
In reply to beth:

> Patterns is about getting programmers to not 're-invent the wheel' but to recognise 'patterns'/problems that have been solved before so can implement a suitable tried and tested solution. E.g not slogging through writing their own classes to traverse red/black trees, but pick a solution that's known, and bug/unintended feature/idiosyncrasies free.

> There's a good book, "Design Patterns" by Vlissides, Helm,etc - often called the gang of four. Although Vlissides is now dead, 2004. Good to see the principles are still around. 'Refactoring' also went with it, improving the design of old code.

> I got out of programming in 2007/8. Don't miss it at all.

GoF is a bit out of date these days and not as recommended as it once was. I don't know if Singleton is in their book, but it's now regarded as an anti-pattern for its ability to make code untestable. I think some of the other patterns have been going out of favour too.

Another thing to look for is to consider a specialty. SQL is beginning to fade away from popularity [citation needed], and many new applications are run from cloud based technologies instead (AWS/Azure/etc) using so-called noSQL stores. Basically if you invest in an older technology where the field is not growing as fast, you're competing against existing experts. If you instead invest in a new field - then you have as much chance as the next guy. It's important not to choose a dud however. To choose the right specialty requires insight into why a growing field might become dominant - something you can't get without a deep understanding of the "forces" that shape decisions.

The other thing to take note of is programming style. Style is not the difference between cursive and block letters - it affects how the program is read, how hard the bugs will be to find, how many bugs there will be, how others understand and can modify your code (by far the most important aspect in a team). These days functional style, immutability is getting a lot of traction, as you are writing code modules that don't have side-effects - this makes them easy to test, and easy to compose and reason about - as no matter how many you stack, the outcome will always be the same. This makes it a lot easier to test as well.
Another split is the imperative/declarative style: "Imperative programming focuses on describing how a program operates. The term is often used in contrast to declarative programming, which focuses on what the program should accomplish without specifying how the program should achieve the result."
Declarative is currently favoured - for good reason too, as it's often clearer. But sometimes you will need to write imperative style for certain occasions.

Another modern development is TDD. TDD can be done strict, or lax (most common probably) and involves the developer writing the majority of tests for the code they are writing (as opposed to dumping your crap code on some poor tester who has to try and fix your messes). This helps as the process of making your code testable makes it modular just about by necessity, and prevents bugs at the cheapest stage to fix them (i.e. the longer the bug hides, the more it costs to fix on average). Testing acts as a kind of living documentation as well, and by having a solid test suite only then are you able to confidently refactor code. If you skimp on tests to save time, you will almost always spend 5-10x that amount of time later on fixing issues that those tests would have found. All programmers write bugs - it is a fact of life.

Clauso 12 Apr 2016
In reply to SenzuBean:

All good points, but probably a bit beyond the OP's scope? The same goes for beth... Genuinely no offence intended on either side.

My take on the OP is that they're looking for advice on a career switch, without the luxury of being able to take the years of study required to study computer science in depth; hence my suggestion re. conversion courses that may equip them to take on a role in application development, as opposed to the gnarlier aspects of programming?

... Of course, I may be utterly wrong.
 d_b 12 Apr 2016
In reply to Sam W:

a) Maybe, maybe not. Bad programming jobs are awful, good ones can be quite satisfying. It can be hard to tell the difference from outside.

b) Depends on what you want to do. Languages are good for the CV, but understanding general principles is necessary if you are in for the long haul. Mech eng is a mathematical discipline so it could be profitable to try to approach it from that angle and find a niche there. Over the years I have found that the maths you can get from a fairly mediocre physics degree is equivalent to wizardry as far as most programmers are concerned.

c) Shit jobs in the first couple of years after uni in my case. I don't recommend that approach.

And finally, playing with computers is like everything else - a lot less fun when you have to do it.
 wintertree 12 Apr 2016
In reply to Sam W:

I'd advise carefully studying the difference between "programming" and "software engineering" - many jobs perceived from outside the field as programming are the later. Software engineering is as much about drawing boxes with lines between them and writing documentation as it is programming. Very important stuff for large projects, but death for the soul to some people.

> a) if I'm about to make a dreadful decision

Not if you can afford the risk and you enjoy it.

> b) if not, what language is best to learn. I'm thinking more creating programs than websites

If you want to be a software engineer, review job postings and look at the TIOBE index - Google it. chances are you can't cover every base with languages but unless you're into hardcore computer science theory, aerospace/defence or other such quirks, all the languages - C/C++/Objecitve-C/C#, PASCAL, BASICs, JAVA, FORTRAN etc, they're all basically the same thing. Academics in the field might tell you otherwise but if you learn one, you can learn em all. The "standard libraries" produced for various languages, with which you do complex stuff, are far more involved than the languages. Again, you can pick them up as needed...

Edit: the above assumes you mean "best to learn for employment" rather than "best to learn as an instructional tool". For the later there are pros and cons to almost every choice. You could do worse than spend a week learning C from a book called K&R and then working through the Python language tutorial. Learn procedural programming and then understand how object orientation is a layer built on top of procedural programming.

> c) I'm guessing the hardest bit will be building up some experience so somebody is actually willing to pay me. Any tips on how to do this?

Your big problem will be job adverts demanding XX years experience in QQQ language. Look for small firms hiring a software person rather than large firms hiring regularly and you'll find a more human specification that values problem solving and adaptability over standardised qualifications.

Experience building - have fun, play, contribute to open source projects you're interested in.

Good luck.
Post edited at 00:53
 Andy Hardy 12 Apr 2016
In reply to Sam W:

Just trawled through the whole thread and I have a slightly left field suggestion - given your mechanical engineering background why not look into industrial automation? I program PLCs, HMIs and for those who can afford it, SCADA systems. I think understanding of the process you're trying to automate is as important as how to code and your skills could be well suited. PM if you want more information.
 elsewhere 12 Apr 2016
In reply to Sam W:
b) Java (there are many others, but if you are going to pick one...)
c) get some code on GitHub that potential employers can see, tech meetups to get your face known, LinkedIn, some of your Mech Eng classmates are now in promoted & senior roles, is there a Mech Eng, general management, climbing/sailing/skiing Android Native Java app you could publish to get yourself known?
1
OP Sam W 12 Apr 2016
In reply to Sam W:

Thanks for all the responses, really useful food for thought. Have a couple of friends who work in IT, so am going to speak to them and get their thoughts. Recognise the lack of experience is going to be my biggest issue, so Andy's suggestion of something that builds on my engineering knowledge seems sensible. PLC/HMI programming an obvious route, anyone doing something similar but on different systems?

Andy - PM sent
 jonny taylor 12 Apr 2016
In reply to wintertree:
> Your big problem will be job adverts demanding XX years experience in QQQ language. Look for small firms hiring a software person rather than large firms hiring regularly and you'll find a more human specification that values problem solving and adaptability over standardised qualifications.

Some medium-sized firms have graduate programmes that explicitly look for aptitude rather than specific knowledge and experience. This is just one that I happen to know:
http://www.metaswitch.com/careers-graduates
Post edited at 09:34
 cha1n 12 Apr 2016
In reply to Sam W:

>PLC/HMI programming an obvious route, anyone doing something similar but on different systems?

I'm a control systems engineer doing the above. Note that as a systems integrator (using popular hardware/software to generate a system, different industries have preferred combinations), you can (and will) be sent anywhere in the country, where ever the work is to commission the system. It starts off quite exciting when you're younger to a real pain the ass as you get older and actually have things to do. I spent about 2 months staying away from home last year.

As mentioned, there's a fair amount of dull copy and pasting and drawing boxes and linking them to addresses in the controller, etc. Add to this functional spec writing and electrical drawings and the whole thing can be a bit boring at times. I've just got a new job with a local water company where I'm 50-60% site based but confined within my local area and I hope this will suit me better. There are other jobs, such as being based in a large factory that would mean less travelling.

One plus note for you in control systems is that you tend to get people in the industry from all sorts of backgrounds from general maintenance staff, through to people with a more electrical/electronic engineering background (like myself) or people with a mechanical background like yourself. You're making things move, so having that knowledge of mechanical engineering is useful.

Bit wordy but what I'm saying, is make sure the lifestyle of the job suits you as it certainly isn't all office based and it certainly isn't all interesting.

 kathrync 12 Apr 2016
In reply to Sam W:

I did this a couple of years ago. I was working in biological research and I was tinkering around writing bits of code for some data analysis when I realised that I preferred that to the actual research I was doing.

I did a conversion course - in my case an MSc in bioinformatics. Now I work as a developer for a database that hosts genomics data for parasites like malaria. In my case, my background isn't in development and I am never going to be as good a developer as people who have come out of a computer science course, but by going back and working in development within biological sciences I give myself the advantage of understanding the data and the what our users want from it better than most of our other developers - for me it was mostly about finding that niche that suited me.

For me, it has been a great move and I love it - although I seem to be working longer hours than I ever did before.

In terms of languages, I often recommend Python to people starting out unless they have a specific interest in web development or development for Windows.
 adam06 12 Apr 2016
also to note - in IT there is a constant threat of out-sourcing so its difficult to get comfortable.

I have been in my current job for around 6 years, and every 2 years they outsource a load of stuff and make people redundant..
 CurlyStevo 12 Apr 2016
In reply to Sam W:
I think I'd start out with C# / .net as its a nicely thought our fairly modern language and avoids some the more querky and hard to master aspects of languages like C++ whilst still being powerful and opening up a lot of job opportunities.

From there you can branch out in to more techy stuff like C++ or more towards something like web etc.
Post edited at 10:49
 wintertree 12 Apr 2016
In reply to kathrync:

> my background isn't in development and I am never going to be as good a developer as people who have come out of a computer science course,

Balderdash and piffle. What difference does a choice of 3 year course make after say another 10 years of working in a field? It's about someone's willingness to work at improving and learning new things, not what degree they happened to do. Depending on the flavour of a biology degree, it can teach a lot of skills that transfer to software engineering - planning, structure, design, organisation, documentation etc.

That's why I was particularly happy to see the link posted above for metaswitch.
 kathrync 12 Apr 2016
In reply to wintertree:

Ok, fair enough

I think my mistake there was using the word "never". It is fairer to say that when I started in this job, my programming skills were less developed than most of my colleague's were when they started, which was partially down to my choice to do bioinformatics rather than computer science as a transfer course. But actually, there is nothing like working on a shared code base with 20 other people who are more experienced than you for learning, and I have caught up pretty quickly. Having the understanding of the data the group is handling definitely helped me land the role with limited experience in the first place though - and I think what I was trying to say to the OP is that in the right circumstances it is possible to get a foot in the door without much experience.

And you are correct, the soft skills I learnt from lab research were highly transferable.
 krikoman 12 Apr 2016
In reply to kathrync:
> ........I am never going to be as good a developer as people who have come out of a computer science course,

I don't think this has much to do with it, to be honest. I've just spent 3 months -re-writing code that some software engineer had written, and while it worked it was a disaster to debug and update for new additions over 200 separate sections of code which should have been combined into about 27. I'm self taught and limited to what I know, but degrees and qualifications don't always produce the best results.


Edit: OK a bit late but there you go
Post edited at 11:07
 SenzuBean 12 Apr 2016
In reply to Clauso:

> All good points, but probably a bit beyond the OP's scope? The same goes for beth... Genuinely no offence intended on either side.

> My take on the OP is that they're looking for advice on a career switch, without the luxury of being able to take the years of study required to study computer science in depth; hence my suggestion re. conversion courses that may equip them to take on a role in application development, as opposed to the gnarlier aspects of programming?

> ... Of course, I may be utterly wrong.

I don't know to be honest - but I wanted to emphasize the point that knowing the language is a far cry from being a competent programmer and getting hired in a well paying job. I don't really know many programming roles that you could get from 6 months of study / practice unless you were some kind of savant.
There are enough young students / graduates that will be hired for peanuts, will learn quicker than you, so you need to make a good case for you being hired over them.
 eltankos 12 Apr 2016
In reply to Sam W:

I started a programming course on EdX a while ago, the language was Python. I struggled to keep up just doing it for fun, but it seemed to get fairly in depth. EdX is a great resource.
In reply to Sam W:

Programming could take ages and as others have said, may or may not lead to good roles.

As an alternative slant, have you considered hardware? I work in the data storage industry and there are tonnes of job available. Its an interesting blend of hardware/software and will satisfy your tinkering whilst allowing you the freedom and interest of working all over the place. These skills could have you working in a DC or as a sales/technical resource for a large vendor company or start up where stock might be available. The money can very good.

Things needed would be to learn about large SAN/NAS/Object storage whlst gaining appreciation for VMware, Hyper-V, Citrix, converged or hyper converged systems and data protection techniques such as disaster recovery, snap shotting and backup.

PM me if you want to learn more.



In reply to Andy Hardy:

> SCADA systems. I think understanding of the process you're trying to automate is as important as how to code and your skills could be well suited.

I do hope you listen to the Human Factors person involved - the amount of Control Systems that leave the operator with too many alarms I have come across always amazes me. Hopefully things have changed now.

 CurlyStevo 12 Apr 2016
In reply to SenzuBean:

I know someone aged late 30's that learnt to code and got programming jobs within 6 months (of hard work and with help from a friend) . I also know someone else that just decided to learn to code late 20's and did it and has worked in IT since.
KevinD 12 Apr 2016
In reply to SenzuBean:

> There are enough young students / graduates that will be hired for peanuts, will learn quicker than you, so you need to make a good case for you being hired over them.

Not sure they will necessarily learn quicker.
Computer science graduates arent always looked on fondly in the industry since the quality of the courses can vary massively. From very theoretical to close to what most developers would see as a day to day work eg lots of soft skills work. I know when we interviewed last we werent overly enamoured of most of the computer science grads. Knowing algorithms back to front isnt a bad thing but aint normally as useful as knowing when to try your own and when to use a library. Or indeed, sadly, being competent at debugging.

Andy Hardy's suggestion is a good one. Even if not specifically what he suggests the key selling point for any older person wanting to become a developer is domain knowledge.
 CurlyStevo 12 Apr 2016
In reply to krikoman:

You are probably right in this case but..... as a coder my self everyone else's code is never as good as my own, if you catch my drift.
 cha1n 12 Apr 2016
In reply to L'Eeyore:

> I do hope you listen to the Human Factors person involved - the amount of Control Systems that leave the operator with too many alarms I have come across always amazes me. Hopefully things have changed now.

I find that this can be a problem with the information you're given as much as anything. Some companies are good at getting the operators in at the start of design to explain their requirements but for the most part, it's the project managers that make the decisions on how they want things laid out, etc. This is obviously disastrous because as we know, project managers are useless.
 Andy Johnson 12 Apr 2016
In reply to Sam W:
I've been working as a software developer for just over 25 years. A few comments on your original post:

1. Being a developer is about more than "coding". You need to be able to understand the context of a piece of work, how it fits into the organisation that is paying for it, what the high-level design choices and trade-offs are, which architectural and design patterns are appropriate. Also how specialist issues like security and privacy affect choices.

2. That said, in an entry level position a lot of the above will be done by more experienced people and you'd initially be more focussed on implementation ("coding"). To progress you need to understand the bigger picture while understanding the detail.

3. A lot of a developer's time can spent on maintaining and enhancing existing code, which is often old and of variable quality. Even when writing new code, you're often plumbing together pre-existing software components.

4. You can't ignore the web even if (like me) you're not a web developer.

5. Very little software gets written on its own. You have to be able to work in a team, frequently across organisations. A lot of organisations use agile methodologies like Scrum and Kanban for software development. Look them up and see if they suit you.

If the above hasn't put you off, I'd recommend starting by learning high-level languages: either C# or Java, and then Javascript. Do a little basic C or C++ programming to complement your knowledge with a low-level perspective. Get a basic grasp of web development concepts and how to write code that accesses a database, including basic SQL. Understand software design patterns and architecture patterns. Get familiar with how to write maintainable software, and revision control using something like Git or TFS.

I wouldn't worry too much about not having a computer science degree. Companies use that to filter job applicants for junior positions, but your existing experience should be useful. Be ready to demonstrate your technical knowledge. Having some portfolio code on github helps.

Good luck!
Post edited at 11:59
 planetmarshall 12 Apr 2016
In reply to Sam W:
> a) if I'm about to make a dreadful decision

No.

> b) if not, what language is best to learn. I'm thinking more creating programs than websites

Most developers when asked this question will respond with the language they used first. So, I'll try to be objective.

* C# is a great language but most actual jobs revolve around web backend work. I find this dull as hell, but horses for courses. Of course it's also the language of choice for the Windows Phone ecosystem, but this is not as ubiquitous as iOS and Android ( which is a shame, because it's a nicer environment to develop in than either of those ).
* C++ is having a bit of a renaissance of late due to being the defacto choice for cross platform and embedded development. Wouldn't be my language of choice to start out with. ( I am a professional C++ consultant specialising in machine learning and image analysis ).
* Java is Android these days. Probably where I would go if I was starting out, you'll never be out of work.
* Not sure what iOS uses currently. Inexplicably dragged Objective-C from where it was gathering dust, but again, go this route and you'll never be out of work.
* Various scripting languages such as Python, Ruby etc. I use these for rapid prototyping and testing rather than production code.
* Javascript. Go to hell.
* Various niche areas like COBOL, which you can probably earn a fortune doing because you'll be one of the five people in the country still using it.

> c) I'm guessing the hardest bit will be building up some experience so somebody is actually willing to pay me. Any tips on how to do this?

If I couldn't code and I had six months free time to find a job, I'd do this. For the following, substitute 'Android' with 'iOS' if you prefer.

* Download the Android SDK and learn to use it. Follow Google's tutorials. Don't buy books they'll be out of date as soon as they go to print.
* Think of an App you'd like to have and write it. Doesn't matter what it is. A training diary for climbers or something.
* Stick it on the app store, and open source the code on GitHub or similar. Make sure it is absolutely watertight with regards to
- Code quality
- Google (or Apple's) recommended guidelines for development, UI patterns etc etc.
- Automated testing at various levels.
* Find a job as an app developer, using your new app as a sample of your work.
Post edited at 12:10
ultrabumbly 12 Apr 2016
In reply to Sam W:

Just want to chime in with the others mentioning the transferability of some skills you will have acquired and some other thoughts.

Bad developers make stuff work sometimes whether that is chunks of code or whole systems. Engineers and scientists tend to bring something to the process that is a whole lot more rigorous due to exposure to such things as FMEA and perhaps having been involved in some form of innovation before whereas some to many "programmers" have reinvented a specific type of wheel a couple of times with the technology of the day.

In terms of learning languages don't just look at what is currently used in fields in which you might be more easily able to get a foot in the door. Find something to master as a back burner project also that will require good "ever useful" skills in whatever paradigms you go on to use. I'd recommend something like C++ for this. Not only because it can be very powerful and elegant but also because it can be thoroughly abused and making sense of what someone else tried to do badly is a truly invaluable skill at times.

I kind of fell into programming/development from an science/engineering background as I went into an industry and at a time when it still had a lot of entrenched legacy systems that I could identify and suggest some stuff that could be done to make life easier while having been a hobbyist programmer. e.g. we still had pen plotters plotting electrical characteristics for component tests and I showed that with a few weeks work I could get rid of that part of the process and just create the graphs for datasheets from test result files. There is less of such low hanging fruit 20 years on but it might be worth spending some time more in engineering if you can find some projects along the way. You might have to compromise on what sounds "fun" if you go along something like this route to get approval to invest a little time. I had to go through the ugliness of learning the first versions of VBA to do that initial project for the simple reason that something being put together in a spreadsheet made a certain manager happy....even though the actual meaty work went on elsewhere. If you work somewhere there is an investment in bespoke application development that calls for stakeholders in the environment in to which it will be deployed get as involved in that as much as possible. It is a great way to meet people who are perhaps doing what you might want to do. If you have particular knowledge of that industry they might see you as a catch while you develop the technical skills. The whole idea of an Analyst Programmer is perhaps a little out of fashion at the moment but in specialised roles/industries they can be invaluable.

I did some horribly boring stuff in the first few years but there was a contracting boom at that time so there was always the feeling that I wasn't stuck doing something forever. My work after that though has been very varied and I now mainly work on surveying project viability and the choice of technologies and/or requirements gathering and in a sector totally removed from the one I started in. I would like to go back into something more hands on/ day-to-day technical I think but I certainly burned out for a time; not in my ability to get stuff done, more that it can become a bit "samey."
I'm glad I have had the choice of both sides. I would like to do both at the same time but this is rarely possible in the work I do now and that is sometimes frustrating but I suppose it depends upon how much of a control freak you are.

Some bad sides to it: anything you set out to do will take at least 2.5 times as long as you think it will. That isn't what you will start out at and improve upon, that is best case. More people, bigger error bars on those time frames. That will save a lot of stress if you accept it early on. Learn to accept that buzzwordbullsh*t is a big part of it from those that don't actually do anything technical but want to have a thumb in the decision making pie; play the game but always keep in mind that good first principles engineering methodology is worth 100 of whatever acronym people are currently in love with because some smarmy git from a technology provider took someone out for dinner and did a presentation.

You mentioned you get on with most programmers in the OP. Beware of this part. Like any group they are a mixed bunch. You have likely made social/professional contact with the more amiable types. There are quite a few, and perhaps slightly more than in other roles, that can be best described as quirky misanthropes who have carved out a niche for themselves. They are rarely a problem if you are socially confident but they can war with each other when you get a critical mass of them on a project. This can result in situations on a spectrum of funny-to-WTF? .

In reply to cha1n:

I was hoping that someone would ask 'what industry?'

I could then give a clue and say Mornington Cresent.

I win!!!!!!!!!!!!!!!!!!!!!!
 CurlyStevo 12 Apr 2016
In reply to planetmarshall:
I'm a C++ developer (games AI). I disagree that its a particularly elegant language and some of the more recent additions seem to introduce yet further (bolted on feeling) edge cases. However it certainly is very powerful. However the issue is that as a language it takes at least a year or two to become competent using it and much longer to master.

Many of the better android developers are now using C++ (NDK) BTW.

As a first language / platform I'd go for something easy enough to pick up but still powerful hence my suggestion for C#, also being a modern language it has solved many of the problems other languages face in a very elegant way.

JAVA seems like it keeps waxing and waning to me and I'd be concerned that if Android development did mostly move away from it that it would go in to decline.
Post edited at 12:26
 planetmarshall 12 Apr 2016
In reply to CurlyStevo:

> I'm a C++ developer (games AI). I disagree that its a particularly elegant language...

I don't think I claimed that it was elegant?

> Many of the better android developers are now using C++ (NDK) BTW.

Well, define 'better'. I have used the NDK extensively, but certainly not exclusively, and mostly for some fairly niche tasks. In my experience most places looking for Android developers are looking for Java skills, not C++ ( a quick search on Monster or similar should confirm this ), and as the OP is primarily looking for a job, that would be my focus in his position.

> As a first language / platform I'd go for something easy enough to pick up but still powerful hence my suggestion for C#, also being a modern language it has solved many of the problems other languages face in a very elegant way.

Well if the OP wanted to learn an elegant language I might suggest LISP or Haskell, but presumably he also wants to work for a living.

 Paul Robertson 12 Apr 2016
In reply to Sam W:

6 months is doable if you work hard.
So you'd better pick an area where you're going to enjoy the work.

If it were me starting over I'd do one of these:

a) Learn JavaScript, then the various toolsets used to build web apps (apps that run in a browser rather than websites), e.g. Node.js, AngularJS, React,...
b) Learn Objective C and the toolsets for building iOS apps
c) Learn Java and the toolsets for building Android apps

Good luck. I'll be interested to know what route you decide to take, and how you get on.
 planetmarshall 12 Apr 2016
In reply to CurlyStevo:

> Many of the better android developers are now using C++ (NDK) BTW.

PS, if this is actually true, then great, as it means more contract roles for me

 CurlyStevo 12 Apr 2016
In reply to planetmarshall:
Sorry the elegant comment was really meant for ultrabumbly.

I don't really think it's really fair compare C# with LISP in terms of learning an elegant language that is desirable on the job market.

My comments regarding Android dev were just that that there does seem to be a recent shift towards using the NDK by the more competent programmers.

Regarding the job suitability I think that's key here. The OP needs to decide what sort of area they would like to program in and learn the technologies required.

Personally I'd avoid focussing on smallish website programming my self, more and more this seems to be getting automated and there is a lot of competition.
Post edited at 12:51
 1poundSOCKS 12 Apr 2016
In reply to beth:

> a) getting into programming, as opposed to website dev, is often a computer science degree or a number of years relevant experience before most places will even consider you for interview.

This is a very good point. I've got a degree in software engineering and have worked as a developer for about 20 years in lots of languages and technologies, so it gives me a lot of freedom. I've left my last 2 jobs, taken a break to travel and climb A LOT, and then got a job almost immediately, with a good salary to boot. But I've got loads of experience.

And check the market first, see what companies actually want. It can be a fun and rewarding job at the right company, a combination of problem solving and creativity, but I still wish they'd pay me to travel and climb.
ultrabumbly 12 Apr 2016
In reply to CurlyStevo:

My statement was that it CAN be elegant, the subtext being it can also be used to create the most cryptic navel gazing approaches to doing something that would have been incredibly simple and readable when having stopped for a second and thought about how to approach an aim. Being able to discern between the two for your own work, or acting like a teacher marking the homework of the remedial maths set when looking at the spaghetti of others is where it can be valuable because the range of how "good" or "bad" someone can approach something is immense. In using any language one of the best things to learn is "you can, but you shouldn't"

It is why I suggested it as a backburner activity. I think learning something like C++ along with something more "initially readable" is great for identifying when it is appropriate to get "inventive" and when you should just sit back for a second and have a think. (for me I probably learned the most over any period of time using object pascal as a lot of my early work was partly in Delphi, today I would guess that C# or Java are the likely candidates for providing the similar experience, it is hard to say without being able to step back into those shoes). Learning a few languages at once after the initial one is probably a great way to learn the limitations and identifying the mistakes you didn't know you were making of your go to tools or often exposes ways to get something done you might not have been aware of otherwise.

I'd guess that working through a C++ tutorial up to the stage that you can effectively play with pointers and what that actually means "under the hood" would be harder though teach a lot more about what a compiler does than any exercise you might achieve with most other current languages in which much of that stuff is hidden from a novice by being wrapped in classes with meaningful task based names. Certainly you can read that a class is doing some clever housekeeping for you upon your own objects but unless you have ever done some of that housekeeping yourself you are less likely to understand and retain the knowledge. That will eventually make the step to truly understanding OO and how it works much harder when you approach a point you can't get everything done with the classes you have or the readily accessible means of allowing them to work with/manage each other.

There's a bunch of stuff to be learned from the likes of LISP and Smalltalk etc. too but it isn't that transferrable. C/C++ is probably instantly accessible in terms of following tutorials after having worked through some Java/C#.

I may be wrong in this as it is perhaps difficult to imagine forgetting what you know and look at how that might feel to someone picking things up for the first time?
 chriswood123 12 Apr 2016
In reply to Sam W:

a) Not if you'll be in an office job anyway! Money is good and it can be fun if you work for the right company.
b) http://www.itjobswatch.co.uk/
c) Write a load of stuff and put it on https://github.com/
 Andy Hardy 12 Apr 2016
In reply to L'Eeyore:

Most of the systems I deal with are meant to be fairly autonomous so the PLC generates the alarm, takes the appropriate action and the operator usually has to recitfy the cause of the alarm, then resume (or abort, if the fault can't be rectified)
In reply to Andy Hardy:

Just make try to make sure that your systems are robust enough to stop a blown light bulb (or even if someone puts some popcorn into the microwave and then gets distracted) inconveniencing several thousand people including numerous intercontinental flights.

Just saying. Like.
 Phil Anderson 12 Apr 2016
In reply to CurlyStevo:
> My comments regarding Android dev were just that that there does seem to be a recent shift towards using the NDK by the more competent programmers.

FWIW Google seem to disagree, basically saying that you should pretty much never use it unless you really have to. I would assume that the more competent programmers would see the sense in that. I'd consider myself competent and I certainly agree that it's the wrong tool for the majority of android development.

From Google's NDK page...

"you should understand that the NDK will not benefit most apps. As a developer, you need to balance its benefits against its drawbacks. Notably, using native code on Android generally does not result in a noticable performance improvement, but it always increases your app complexity. In general, you should only use the NDK if it is essential to your app£never because you simply prefer to program in C/C++. When examining whether or not you should develop in native code, think about your requirements and see if the Android framework APIs provide the functionality that you need."

Edit - To clarify, what I'm saying is that there may be a shift by some developers, but it probably has more to do with the fact that they prefer C/C++ and are willing to accept the drawbacks, than their competence level.
Post edited at 14:29
 CurlyStevo 12 Apr 2016
In reply to Clinger:

I think that's out of context to the point I was making, I wasn't saying google advise NDK coding or that most android developers use it.
 Phil Anderson 12 Apr 2016
In reply to CurlyStevo:

Just realised that I hadn't made my point clear in my earlier email, and edited it to try to clarify a little.

The point I was addressing was your (rather elitist in my opinion) assertion that it was the "more competent programmers" who were making the move. I disagree. I think it's programmers who are competent at C / C++ and aren't interested in / don't want to use anything else.
 CurlyStevo 12 Apr 2016
In reply to Clinger:
I didn't really say that either, you just took it that way

Post edited at 14:45
 Phil Anderson 12 Apr 2016
In reply to CurlyStevo:

Ah, I see. Sorry about that.

In my defence, you did say "there does seem to be a recent shift towards using the NDK by the more competent programmers" so I don't think it was an unreasonable inference for me to make.

Anyway, no harm done. Enjoy your AI work
 Dave B 12 Apr 2016
In reply to KevinD:

I find the courses generally good. But the quality of the intake and output vary enormously...
 james wardle 12 Apr 2016
In reply to Sam W:

If you have an aptitude you can do this without a computer science degree but is is hard to get a foot in the door as people have mentioned.

We are a small specialist software company and really struggle to recruit good developers who can take a highly complex business logic problem and implement it without being given reams of design documents and models. like people have said if you can find a niche that

In the end our brief to our recruiter was "just send me someone really clever we don't care about qualifications or experience." We picked up our brilliant lead developer this way who was working as a Pizza delivery guy at the time!!!

The company founder is also a brilliant developer and started out life as a Rat Catcher. which has mostly never been a problem except when we went to see the Directors of the Evening standard in london, and he pipes up " Last time i was in these offices i was working as a Rat catcher....," not the best way to win a client over but we got the gig!
 Mark Edwards 12 Apr 2016
In reply to Sam W:

Another vote for Java (I’m just starting to learn it myself). I have many years experience in mainly x86 and ARM assembly language and C for embedded applications and now find piping data to a webpage is much easier than digging through registers or printing results to a terminal (thank heavens for HTML5 and websockets).
There are loads of fairly simple interactive examples on the web to work with to get you used to the basics and can be used in many different fields. Perhaps not the end you want, bet it’s certainly somewhere to start.
 snoop6060 12 Apr 2016
In reply to Sam W:
Get into the industry as a Linux sysadmin. Learn to program on the job with Python, ruby and Java. Learn the buzz tools, currently puppet, docker. Learn to build and support Hadoop clusters....

Then go to London and get paid 500/day for your trouble. No exaggeration, this is the going rate right now. Saw some jobs paying £650/day last week.

I'd expect tho this would take at least 5 years if your first job was good and you're a good and fast learner! By which point all the tools will have changed and everyone will have been benched
Post edited at 20:18
 nutme 13 Apr 2016

As a programmer myself I see that there's few places nice to work in: Berlin, Amsterdam, London and Paris. They are like Silicon Valley here in Old World. Interesting jobs. A lot of vacancies with virtually any language and technology. Salaries are on a very good level and it's reasonably easy to find junior role without commercial experience. Most of companies I worked for in last decade were always hiring.

Working in country you are more likely to get stuck in supporting old code and will be limited to work with more static team. By static I mean that there's not much of rotation and people tend to work for same company for long years because it's harder to find another job.

Working with different programmers is best way of sharing dark magic knowledge.

Another thing is that there's always something happening in capitals like Meetups, hackathons and conferences. I normally go to at least one every week. Said so it's a great way to meet people and find a job. I know quite a few people who got employed by meeting future co-workers in a pub over a tech Meetup.

P.S. Amsterdam is interesting in terms of tax reduction for immigrants. Called "30% ruling". It's great because for first 8 years in the country your maximum tax can be just 36%. That's a lot compared to British 45%.

P.P.S. "Not tied to a geographical location" and "Potential for flexible hours" are rare benefits. Majority of companies will want you in office at least few days a week. Remote workers are paid much less. Flexible hours are not that easily achieved either. Most of teamleads will want team to work at same time. Much easier to coordinate, pair and run planning. To work remotely with flexible hours and good salary programmer must be a rockstar.
Post edited at 16:45
 planetmarshall 13 Apr 2016
In reply to snoop6060:

> Then go to London and get paid 500/day for your trouble. No exaggeration, this is the going rate right now. Saw some jobs paying £650/day last week.

While it is true that these jobs exist, it should be noted that they are extremely competitive and may require very long hours, and will almost certainly not be available to someone with five years experience, let alone six months. Also, you would have to live in London.

Contractor salaries look attractive, but there is a price to be paid for them. There's no such thing as a free lunch.

 planetmarshall 13 Apr 2016
In reply to nutme:

> To work remotely with flexible hours and good salary programmer must be a rockstar.

This is not necessarily true, but I agree that the perception that a programmer can work remotely and choose their hours is, largely, unrealistic. In addition, remote work in the heart of, say, the Peak district ( I speak from experience ), may not be all it's cracked up to be. However if you build up a good relationship with your employer, it can be done without necessarily having to be a 'rockstar'. It's also more likely with smaller companies.

 kathrync 13 Apr 2016
In reply to planetmarshall:

> In addition, remote work in the heart of, say, the Peak district ( I speak from experience ), may not be all it's cracked up to be.

Yes, I agree with this. I am the only person from my team working in the UK - everyone else is in the US. I live and work in Glasgow, so it's not remote in the sense of being in the middle of nowhere, but I am remote from my team. Most of the time it is fine, but it has downsides and these were particularly problematic when I started out. My current bugbear is pair programming, which is a valuable thing to do, but can be a right pain when you are trying to do it by screensharing over a flaky connection. I visit the office in Philadelphia a couple of times a year, and those weeks spent with the team are often more productive than the time I spend alone. Having said that, remote working suits me, just don't expect it to always be great

 stubbed 13 Apr 2016
In reply to Sam W:

Have you thought about something other than programming, like being a SAP consultant?
You can get a job with little experience and get the training once you start. Lots of travelling though and you said that you had children so maybe not ideal.
 neilh 13 Apr 2016
In reply to Sam W:

Interested in this subject as my daughter is doing a computer science degree and may go into programming ( there are other options open to her). She knew this before she took the course ( finishing her 2nd year) but there seem to be very few females in programming. Is that a realistic opinion?
 Andy S 13 Apr 2016
In reply to Sam W:
Hi Sam, what you want to know is HOW TO GET A JOB as a developer, isn't it???! I read about 30 of the replies and none of them actually told you how to do it?

At the end of the day, it's all about actually getting that first job. You can't learn externally and then land a job as a fully-fledged Developer; you have to get skilled enough to get a job as a junior developer, thus entering another extremely steep learning curve.

This is close to my heart because a year and a half ago I started at absolute ground-zero, and now I work as a Software Developer (junior level, of course) at Sky. 28k plus benefits. I don't have a degree. It's probably fairly accurate to say that I'm kind of a web developer, but I'm a month in and my team deals mostly with building backend stuff to talk to existing (or imaginary!) data services. I can't say much more than that due to confidentiality.

I'd be more than happy to talk to you on the phone but my route could be (all too briefly) summed up as: started with teamtreehouse.com to learn some Ruby, Ruby on Rails and Javascript, made a few things of my own with Rails, hit a wall and shelled out for Makers Academy in London (a three month coding bootcamp). After that I got offered the first two jobs I applied for: one in Southampton for a small but very good digital agency, paying 30k and the job at Sky in Leeds, which I took, paying 28k.

PM me for my mobile number if you're serious about this, because it's a conversation better had over the phone.

My Github account is here (Sky stuff won't be visible): http://github.com/yorkshireman - my old CV is also there: http://github.com/yorkshireman/CV

Yeah, I couldn't believe 'Yorkshireman' wasn't taken either
Post edited at 00:03
KevinD 14 Apr 2016
In reply to neilh:

> She knew this before she took the course ( finishing her 2nd year) but there seem to be very few females in programming. Is that a realistic opinion?

There is an inbalance.
Be interesting to see Kathrync take on it but my experience is most of us would prefer a more mixed workforce but its just far fewer women apply with the problem going back to schools. See how many women are on her course. If she hasnt already suggest she starts contributing some code to open source projects.

There is a subculture of morons who are misogynistic but sadly I suspect that is the same in any industry.
 neilh 14 Apr 2016
In reply to KevinD:

9 out of 100 on her course.....unreal in this day and age.Its not uncommon nationally.

I will ask her about code on open source projects ( whatever that means), thanks for the tip.
 jasonC abroad 14 Apr 2016
In reply to Sam W:

Hello Sam

I work as a Javascript developer, it's a skill that's really in demand at the moment, as it is the most used language at the moment. A lot of "proper" developers don't like it but never mind.

I think it would be a great idea for you to switch into IT, my old bosses boyfriend did it a few years back, he went from no knowledge to being a contractor in 3 years, it really worked out for him.

As others have said you don't just need to learn a language you need to learn about Test Driven Development and for Javascript stuff a lot of things around browser support.

Have a look at this

https://medium.com/javascript-scene/want-to-code-a-university-degree-might-...

Good luck

Jason
 kathrync 14 Apr 2016
In reply to KevinD:

> There is an inbalance.

> Be interesting to see Kathrync take on it but my experience is most of us would prefer a more mixed workforce but its just far fewer women apply with the problem going back to schools. See how many women are on her course. If she hasnt already suggest she starts contributing some code to open source projects.

My experience is probably slightly off-kilter because although I develop, I do so in an academic setting rather than in the tech industry. Female developers are a minority here (2/6 in my office in Glasgow, 5/25 in my team in the US), but the proportion of females is higher than I believe it is in the tech industry. Last year, I was at a tech conference and I was kind of horrified by the extremely low number of women - in fact that particular conference had some kind of grant for trans-awareness and had more trans people than cis-women in attendance which was kind of strange (although obviously great for the trans community). Having said that, everyone was extremely welcoming and positive. I would agree that the problem seems to be more that fewer women enter programming roles because of the way computer science is taught in schools, rather than anything to do with the culture in the industry. The advice given above about how your daughter can put herself forward a bit is good.

> There is a subculture of morons who are misogynistic but sadly I suspect that is the same in any industry.

Agreed, I have encountered my share of misogyny in this job, but no more so than in any other area of my life.
 nutme 14 Apr 2016
In reply to neilh:
Best ratio I saw in commercial development was 1 : 5, but in most companies it's like 1 : 50. And it's not just UK, I worked across Europe in last 15 years and seen it everywhere. General understanding is that girls are less in to computers and maths. However nowadays very few developers have master in maths anyway. More and more developers don't have relevant education or no education at all.

Personally if I were 18y now I would go for 2 - 3 years bachelor degree in maths and after working for 7 - 10 years in development would do mba.
Post edited at 10:44
 d_b 14 Apr 2016
In reply to jasonC abroad:

"Proper" developers don't hate javascript because of the language. It has some nice features and the syntax isn't awful.

The problem is that so much of it is written incredibly badly by people with no real idea WTF they are doing.

Of course most software is like that deep down, but on the web it is in your face and you can see how badly the script slowing down your web browser is written.
KevinD 14 Apr 2016
In reply to nutme:

> General understanding is that girls are less in to computers and maths.

That is a bit lazy though. Since it leads to the question of why? Is it how society sets expectations early on?


 Phil Anderson 14 Apr 2016
In reply to davidbeynon:

So true. Drives me nuts.
KevinD 14 Apr 2016
In reply to neilh:

> I will ask her about code on open source projects ( whatever that means), thanks for the tip.

Open source projects are ones which anyone can take a look at and potentially contribute to. Problem with computer science courses is they vary massively in terms of how much actual hands on work people do (whether that is code, requirements gathering, documentation etc) which can make people cautious about recruiting new grads.
So getting a portfolio of code out there a)shows real interest (it is odd how many people do a degree but show no real interest in it outside of the core hours) b)can give something concrete to look at and review.
Contributing to a multi dev open source project then starts to show team work, ability to read others code and so on.

 neilh 14 Apr 2016
In reply to KevinD:

This year she has been involved in alot of project based modules along the lines you highlight, and the codes have varied. I am told this was deliberate on the codes as they want you to learn to be able to change codes and understand and be competent /confident iin taking on other codes.

team work - makes me laugh - I get the impression that the lads are hopeless at this, whereas she runs rings round them and is always in charge of her project team.
 Ramblin dave 14 Apr 2016
In reply to neilh:

Anecdotal, but I've found that women who stick it out in heavily male-dominated disciplines tend to be very good at what they do. Possibly because if they weren't motivated and talented then they would have been less likely to stick it out.

And yeah, tech is very male dominated, although there seems to be a lot of variation between different companies and organizations and communities as to whether they really make an effort to prevent this from resulting in a difficult or hostile environment for women who are involved with them and the ones who take more of a "meh, not our problem" attitude.
OP Sam W 14 Apr 2016
In reply to Sam W:

Wow, thanks for all the feedback, most responses I've ever had to a post on here.

Have met up with a friend who works remotely as a C++ programmer specialising in 3D video. He generally enjoys it, but I'm not convinced pure coding is going to be the best choice for me, my biggest concern is chucking all my past experience in the bin and starting from scratch, only to find out that I still don't have enough experience to get a job, I also have a suspicion that although I'll enjoy learning the language and the first couple of years after that, in the long run I'll find it lacks variety.

Bit more background on my IT experience, have previously run the project to choose and implement an ERP system for a 40-person business (Netsuite put in place of Sage 50, delivered on time and on budget) and was then the NetSuite admin for an additional 12 months, transitioned 2 companies to hosted email (1 to Google, 1 to Microsoft) alongside getting rid of onsite Windows SBS setup and replacing with Synology NAS for file storage (this setup is great for medium sized businesses), am currently involved with a project to network lots of remote sites and bring PLC data back to a single location for display on a local HMI, plus setting up telemetry alarms for the site. These were all side projects to my main role of line management of operational teams, has made me realise I enjoy installing systems and processes much more than I like man management (I enjoy organising people, I don't enjoy motivating them).

More general skills are that I'm (provably) very bright, love learning new skills, reasonably personable (for an engineer) and diligent.

Feel like the above is a reasonable grounding for moving on to a role in IT without starting right from the bottom, best outcome would be a job that mixed coding and organisation/management. Problem I suspect I'll face is that people are generally going to be looking for technical skills first, management skills second.

Am meeting with another friend who is involved with professional services at a company that develops web CMS backends, interested to see what comes out of of that, but now I've given you some more info to work with, further thoughts on where I should be heading will be welcomed with open arms.
KevinD 14 Apr 2016
In reply to Sam W:

> Feel like the above is a reasonable grounding for moving on to a role in IT without starting right from the bottom, best outcome would be a job that mixed coding and organisation/management. Problem I suspect I'll face is that people are generally going to be looking for technical skills first, management skills second.

Lets see:
Business/systems analyst could be an option. Less techy but more domain knowledge and requirements writing.
Project manager: could be a good fit from what you say. Again less techy but matches what you have done. Some interest in the tech helps. Get to avoid having to motivate people as well (i believe all pm go on a course to master the opposite).
Or a more ops manager role. Hate to use the buzzword but devops. Lots of change management, process management work. Again without much tech knowledge needed.

OP Sam W 14 Apr 2016
In reply to KevinD:

Thanks, think this is the other direction I should be looking in before committing our life savings to learning to code. Would be great if I could move into something non-tech, and then develop tech knowledge on the go.

Any IT project managers/Devops/Business analysts on UKC?
KevinD 14 Apr 2016
In reply to neilh:

> This year she has been involved in alot of project based modules along the lines you highlight

sounds one of the better courses. Even so the advantage of public projects is that its easy for others to have a look. Example is the github from Andy S. It really is worth doing when getting started since its the sort of the thing which would impress any dev I know and despite our best efforts we do occasionally get roped into the interviews. Its sort of linkedin on steroids for the dev world.
Main thing though is despite the inbalance in numbers (Kathrync figures are, as she suggests, far closer than the tech industry average which are more like those from nutme) most of us arent misogynistic muppets and would like to see more women in the dev roles, as opposed to pm etc, so dont let her get put off by the figures.
I suspect it is something of a self fulfilling prophecy. People will hear the low numbers, assume the worse and so the numbers remain low. Fewer girls then consider it at school and so on.

ultrabumbly 14 Apr 2016
In reply to Sam W:

This blog post might give you some idea of how things are, or can be. http://stevepeacocke.blogspot.co.uk/2013/06/programmer-or-analyst-developer... I read it some time ago and it may help as it is a simply written take on one person's perspective of what it sounds like you would want to move towards.

Much of what makes the most sense (as to "who might do what") is how specialised/small the particular market sector or end user base is. In those cases an analyst developer with a good understanding of the specific business rules and workflows can be uber productive, earn good money and have a fairly interesting and varied workload. It can also be very demanding and sometimes so in very intense bursts. It generally will also usually involve at least the "soft-management" of other people.

My feeling would be if you wanted to go down the route of primarily being analysis based and transitioning into more of the actual development over time then you would have to really know that you were going to enjoy it as it would take much of your own time to move through from "awareness" to "basic competence" and then "productive competence" on the technical side. If you were good at,say, managing deliverables and interfacing with the eventual users then those sort of tasks would gravitate to you leaving you little time to pick technical stuff up at the pace you will initially be able to as it was ongoing. Do you think you would be able to deal with your apportioned chunk of work and then go home and spend 3-4 hours working on making sense of how the programmers/developers came to give you the input that they did during each day for a couple of years? Not at all trying to discourage you just making you aware of what it might mean in terms of biting into your own time. If you did want to do this taking a short work break and getting a grounding in basic programming, as you indicated you might do, might be quite a good head start.
OP Sam W 14 Apr 2016
If you did want to do this taking a short work break and getting a grounding in basic programming, as you indicated you might do, might be quite a good head start.


My preference would definitely be career break where I pick up technical skills, followed by job where they're useful. A key aim (possibly aspiration) of the networking I'm doing (away from UKC) is finding a company I like the look of who'll say 'Job available in 6 months for you, in the meantime learn technical skills x'. Having a family to support in the background has made me a little more risk averse, a job waiting at the end of it would take some of the pressure off.

heidiuk 14 Apr 2016
In reply to Sam W:

In addition to all the great other suggestions you've had, I would suggest:
* look for internships to add experience to your CV. Find out what local companies you would contemplate commuting to/work in and propose you work for them on 'work experience' terms for a while.
* think about research software development. It's growing as a career path at universities and would be a neat way of combining your MechEng knowledge with your new skills
* and staying on the research theme: (big) data analytics is trending (and we're offering a great, new conversion MSc in Sheffield from next term )

heidiuk 14 Apr 2016
In reply to neilh:

I'm a lecturer in Computer Science, and yes, we still have too few women computer scientists/developers. However, it's changing and it's not all bad: as a woman your CV will automatically stand out from the crowd a little bit and things are changing as many people here have mentioned.

My advice to your daughter would be to
* look at all the great opportunities available to women in tech at the moment - one of many examples: BCSWomen organise a lot of networking events (we just had 80 ComSci women students in Sheffield a couple of weeks ago, and that event will be in Wales next year when she's in her third year)
* get a mentor (perhaps an ex-student from her course or someone from the type of industry she's interested in. Her course tutee should be able to help her)
* get internship experience
* get involved with outreach if that has her interest - again lots of opportunities to work with e.g. charities that try and encourage school children to become interested in tech
* have fun! Programming can be hugely rewarding and very creative.

She is lucky to have a parent like you. We often find that women students have had to convince their parents that it is a worthwhile career. And as someone else mentioned, the women that do turn up are often very mature and capable.

Best of luck to her!
 neilh 14 Apr 2016
In reply to heidiuk:
Thanks. She already does the one in Sheffield and went to the one last year in Edinburgh !good to hear that it's well known.
OP Sam W 15 Apr 2016
In reply to Sam W:

Thanks for all the help, it's been really useful in both informing and clarifying my thought process.

Current preferred options are:
- Build on my experience as a NetSuite admin by learning javascript, which is used by NetSuite for both client and server side scripts. I will then be a well rounded and reasonably experienced NetSuite admin (relatively new product so not many people have used it, 18 months experience more than most can offer), and have been through the project management side of implementation, so lots of avenues to explore in future. It's entirely cloud based, remote working relatively easy, and have contacts within NetSuite to help me find work.

- Explore the Allan Bradley/PLC programming route. A bit of time in factories (I do like a good manufacturing facility), PLCs all over the country so I'm not tied to a particular location, builds on current experience, would be easy to transfer back into purer engineering if I change my mind about where I want to go.

In the fortunate position of having another couple of months before I have to make a final decision (I'm going to finish current job just before summer holidays so I can spend a few weeks with the kids), but this has been a great start, will let you know where I finally end up.
 Andy S 16 Apr 2016
In reply to Sam W:

After reading your post about maybe not wanting to be a Developer, the role of Scrum Master might be something you would like to aim towards: http://whatis.techtarget.com/definition/scrum-master

Example of a Scrum Master job ad (where I work): https://jobs.sky.com/job/leeds/scrum-master-sky-technology-leeds/1748/59100...

A few people have mentioned someone's daughter trying to get into tech? This should be of great interest to them: http://www.coralesce.com/sky-to-launch-women-in-technology-academy/

Sky is on a massive recruitment bender in Leeds at the moment and if you're a woman they will definitely be very keen to get you in if they can.
Jim C 16 Apr 2016
In reply to adam06:

> also to note - in IT there is a constant threat of out-sourcing so its difficult to get comfortable.

> I have been in my current job for around 6 years, and every 2 years they outsource a load of stuff and make people redundant..

Yep. Our IT guys were all TUPE out .
As were the Facilities.
 Peter Metcalfe 17 Apr 2016
In reply to wintertree:

Seconded. I was in development for getting on for 20 years and never once, as far as I'm aware, worked with anyone with a CS degree. Far and away the best developer, designer and technical lead I know has a degree in modern languages. Experience, enthusiasm and a willingness to put in the time to learn new skills are what makes the difference.

Peter

--

> Balderdash and piffle. What difference does a choice of 3 year course make after say another 10 years of working in a field? It's about someone's willingness to work at improving and learning new things, not what degree they happened to do. Depending on the flavour of a biology degree, it can teach a lot of skills that transfer to software engineering - planning, structure, design, organisation, documentation etc.

> That's why I was particularly happy to see the link posted above for metaswitch.
 CurlyStevo 18 Apr 2016
In reply to Peter Metcalfe:
Working in computer games its very competitive and hard to get you first jobs and nearly completely C++ development. Nearly everyone has a relevant degree - normally computing related, however this isn't completely essential (if you are just obviously good anyways). But these people are very much the exception to the rule rather than the norm. Once you are proven no one really cares about the degree IMO.
Post edited at 10:51
 d_b 18 Apr 2016
In reply to CurlyStevo:

I quite like working in CAD. Quite a lot of overlap with games technically - lots of computational geometry and interesting data structure work, but without the same sort of crazy deadlines and crunches that seem to afflict the games industry.

 CurlyStevo 18 Apr 2016
In reply to davidbeynon:

Yeah there is more pressure I imagine in games. Not every project though and just sometimes you get to work on something really special

I specialise in Gameplay and AI so CAD is quite different, but there are a lot of UI / rendering / graphics game positions also.
 d_b 18 Apr 2016
In reply to CurlyStevo:

You might be surprised. Things like path finding algorithms do come up quite often.

One big difference on is that we often get a huge unstructured soup of triangles to deal with, so a lot of the data optimisations that are possible with things like game level designs just don't work.
 LastBoyScout 18 Apr 2016
In reply to Sam W:

I'm a software developer. It's a bit like Othello - a minute to learn, a lifetime to master the nuances of any language.

I primarily use a product called Uniface, which is a 4GL language for writing database applications. Most people have never heard of it, but you'd be surprised how many places have legacy applications that use it - for example, Carphone Warehouse and DHL have large applications and I've written software in it for quite diverse industries. It's much more widespread abroad, however.

It's quite easy to learn the basics and Uniface are trying to push their Uniface Academy for version 10, which is very much aimed at web applications, although we deploy as client-server. You can download and play with it FOC - http://unifaceinfo.com/ and hit the "trial" link at the top.

Everywhere that uses Uniface will have a database of some sort (we use Oracle), so getting to grips the basics of SQL will be beneficial. Our product also has peripheral software and connectors written in all sorts of things from C#.NET to classic ASP and VB.

One reason I'm suggesting it is that there is a very small pool of competent developers for this language and so companies may be more willing to take less experienced developers - when we get round to recruiting another developer, we may well be looking for a graduate to train up.

New Topic
This topic has been archived, and won't accept reply postings.
Loading Notifications...