Coding/Programming - career advice please

Coding/Programming - career advice please

Author
Discussion

Crafty_

13,290 posts

200 months

Thursday 30th March 2017
quotequote all
I don't think java is in a good place right now personally.

Doesn't matter if he's just learning though, as above don't worry too much about the language just for the moment, learn why and what, not just the how

KrissKross

2,182 posts

101 months

Thursday 30th March 2017
quotequote all
My experience employing developers:


Tuna

19,930 posts

284 months

Friday 31st March 2017
quotequote all
Crafty_ said:
I don't think java is in a good place right now personally.

Doesn't matter if he's just learning though, as above don't worry too much about the language just for the moment, learn why and what, not just the how
I just finished a contract with a multi billion dollar company that provides global online services. All based on Java, with a huge push towards big data and machine learning, as well as the usual internal services, management and deployment. Get it right and there is serious business to be done.

The point about coding/programming is that it can mean anything these days. A website with a click toy, a mobile app, some bit of office automation, data analysis for a biotech firm, secure online transactions, high frequency trading, firmware for pacemakers, scripting for art installations... the list is endless.

Now you might or might not be able to make a career in any of those - that will depend on (a) your business skills and (b) dumb luck. Those who have had (a) and (b) will tell you that the language they use and the industry they're in are the only way to make money.That doesn't mean you can replicate what they've done. Note also that the easiest markets to get into get the most developers, which means the most noise on the internet. That doesn't mean that language x, or industry y are a good idea - just that a lot of people are making noise on the internet. Your career will depend on being good at delivering something people want and finding those people. NOT on choosing the right language or doing the right course.

So. Practical advice. Check out these two websites:

https://www.itjobswatch.co.uk/ - summarises what keywords are being used in job adverts, how much they pay and how many jobs.

(And here's a comparison from that site by language: https://www.itjobswatch.co.uk/contract.aspx?q=java...)

http://www.jobserve.com - Find open job adverts by keyword and location

The thing to realise is that job types are somewhat regional, so if you want to focus on financial tech, you're going to do very badly for work in Blackpool.

The other thing to realise is that certification varies very much by industry. If you want to work in the public sector on Microsoft products, you need certificates coming out of your ears. If you want to work on a hot new media start up, you need to be a contributor to a bunch of github projects. If you want to help build a local insurance company's website, you need to know the boss. Basically the way you like to study and work will strongly influence the sort of industry you'll be able to work in - and vice versa.

You can also get a feel for the industry by getting yourself to events. Checkout Meetup.com which may have various tech groups near you discussing what they do. Just steer clear of the "happy clappy" startup stuff that encourages people to try to change the world - that's fine if you've got the energy to gamble, but not really the basis for a career (unless you've got that particular talent gene, in which case you wouldn't be asking online).

If your current focus is on learning, get yourself a pet project. Write an app, build a system to automate watering your garden, solve a real problem. It'll give you an end goal, force you to solve the problems around the edge ("ok, so how do I get this into an app store?") and will give you something to point to when you go into an interview.

As far as making money is concerned, most of the online stuff will focus on what was successful in the past. A decade ago it was telecoms, five years ago mobile apps. These days, markets like that are either completely sewn up by big operators, or awash with junk, so don't fall for the "make millions from online ads" type stuff. Concentrate on what people want now and (more importantly) what they're actually handing money over for. A starting point is looking for people who have a problem that no-one is solving (which immediately discounts things like writing games for the iPhone). Locally around me there is a huge amount of investment in biotech for instance.

Finally, we all have a blind spot when it comes to understanding what we don't understand. There is a world of difference between a ten line script and a distributed system consuming microservices and coordinating with a global website. It's not just that the second one has a lot more code, but that there are concepts in there that many developers won't ever get their heads around. The same can be said for UX design, real time operating systems and so on. Each of those areas require understanding beyond 'here's how I accomplish a task' - being able to code does not mean you have a talent or ability to build that into a workable product. So, work out what you are good at (beyond just saying you don't like doing UI work) and what your limits are.

SystemParanoia

14,343 posts

198 months

Friday 31st March 2017
quotequote all
microservices and docker swarm spread over AWS, Azure and Digital ocean...

Its enough to make your head spin!

Craikeybaby

10,414 posts

225 months

Friday 31st March 2017
quotequote all
I find this interesting - I am looking to get back into programming, after quite a long break.

I did a Computer Systems degree and graduated 10 years ago, moving straight into a development role. The role has evolved to the point where I'm hardly doing any coding and things have definetly moved on. All the front end work I did previously was in Flash - not much use these days.

I have found that rather than following tutorials, working on my own small projects has been a useful learning tool - I want an application to do X and Y etc. I'll treat it as a proper project, with specs (and then change them), use source control etc and write it in the language I want to learn, then maybe make the next iteration in another language, improving it as I go along. Recently I was using some opensource software from Github, and noticed a problem with their software, fixed it and submitted it back to them. That felt really satisfying, so I am going to try and get involved a bit more, to add an extra dimension to my skills.

Craikeybaby

10,414 posts

225 months

Friday 31st March 2017
quotequote all
I have plenty to be cracking on with for now, but could get involved if you get a few people together.

Ynox

1,704 posts

179 months

Friday 31st March 2017
quotequote all
+1 for offering help (Java, JS, Python, AWS, Linux hacking skills here). Not sure how much time I can spare (work is nuts right now!) but might be cool.

SystemParanoia

14,343 posts

198 months

Friday 31st March 2017
quotequote all
No enough skill to help at the mo'

But will be happy to watch the git repo and pull request commentary smile

andycambo

1,077 posts

174 months

Saturday 1st April 2017
quotequote all
loudlashadjuster said:
IME there seems to be two paths into development as a career.

1) Do CS degree etc., get good job, get promoted into better job.

..or..

2) Start coding obliquely as part of your ops/sales/support/etc. job, doing tactical fixes on otherwise abandoned intranet pages/building CRUD apps/automating tasks in Excel/some SQL wrangling etc., gradually learn the stack you're working with, get given more and more responsibility for larger and more complex projects until BOOM one day you're a 'developer'.
Interesting thread. I'm currently travelling on path 2. I've always had an interest in computers and programming so when I Joined a company that ran their own, poorly designed, case management system in Microsoft Access I rebuilt it in my own time and presented it to the boss. He rejected it as he didn't really know what my skill set was (scared of loss of data) but I was completely hooked on coding for applications.

A year or so later the business was quoted over £10K for building a website, I stepped in. I built a website that created a new department due to the amount of work that came in and therefore gained the boss' trust. Since then I've built many more deepening my knowledge of HTML, JS, PHP etc..

Now I've come full circle and have developed a case management system for the business using WPF, C# and Entity Framework, connecting to a Azure SQL. It has been a fantastic learning experience and my coding, way of working has improved so much since my first attempt.

Today, I'm not too far off completing an Open University degree in computer science which I hoping with the combination of the two I'll be able to move to a real developers job.

Who knows where I'll end up but the point I'm trying to make (from someone who hasn't made it... spin ) keep trying and practicing different languages. Find a language that 'clicks' with you the most and you enjoy coding in, try them all if you have to! Sign up for some free stuff on Azure and see if any of that takes your fancy. Look on GitHub and analyse a project. Just keep coding and good luck!

T o m

42 posts

105 months

Saturday 1st April 2017
quotequote all
anonymous said:
[redacted]
Sounds like a great idea. I'd like to get involved as a pupil.

T o m

42 posts

105 months

Saturday 8th April 2017
quotequote all
T o m said:
anonymous said:
[redacted]
Sounds like a great idea. I'd like to get involved as a pupil.
Bump - anyone else interested?

What platform would you choose for something like this?

Crafty_

13,290 posts

200 months

Sunday 9th April 2017
quotequote all
You could probably use or at least adapt some of the project mentioned here: https://www.quora.com/Is-there-any-good-Kickstarte...

Edited by Crafty_ on Sunday 9th April 11:01

Crafty_

13,290 posts

200 months

Sunday 9th April 2017
quotequote all
Sure, if you want to re-invent the wheel for the sake of doing it you can start from scratch.

On the other hand if the poster wants to get something up and running re-using something is a sensible route to go.

If you want to start from scratch it wouldn't hurt to look at how other projects are structured, even if you don't use any of it.

Crafty_

13,290 posts

200 months

Sunday 9th April 2017
quotequote all
anonymous said:
[redacted]
Thanks for the lecture rolleyes

Not all of the projects mentioned on that link are wordpress based from what I read.

Looking at what other people have done also includes learning from their mistakes. We all like to "own" code but reality there is no reason to if the stuff you can obtain is reusable. Good code can be extended (think open/closed principle). Bad code can't - in which case you consign it to the bin.

Half of being a developer is making sensible business choices on what you're doing imho. We can all bash out code until the cows come home - but writing code for a successful product has many more aspects.

Tuna

19,930 posts

284 months

Sunday 9th April 2017
quotequote all
See? This is just like a commercial software project already - people are arguing about the best way to do it! biggrin

Crafty_

13,290 posts

200 months

Sunday 9th April 2017
quotequote all
biggrin not even that far yet I don't think!


48k

13,105 posts

148 months

Monday 10th April 2017
quotequote all
alock said:
This is a real world example and similar to what a large proportion of my programming challenges are. We write automated testing tools. One of the things we do is list all of the software running on your computer (a bit like Task Manager). We go a bit further though and extract the current URL of any running browser. We have an interface like the following with different implementations for Chrome, IE, Firefox etc:
 string GetUrl(IntPtr hWnd); 


A new browser then hits the market and we need a way to extract the URL from it. If you think TDD adds anything meaningful other than a tick in the box to the above coding problem then I'm all ears.

From experience I know the key challenges are making sure the method we use works (or fails gracefully) at different UAC integrity levels, unknown locked-down corporate desktops, Citrix hosted desktops, etc...

As I said originally, if you live in a world where your environment is your own and you can control it then I'm sure TDD might offer some benefits. For me though, that's the boring side of programming which I avoid.
So if you don't use automated testing, how do you test those myriad permutations on the new code, and make sure it hasn't broken the existing code, before releasing? I assume it's by a whole bunch of people manually following test scripts?

Fetchez la vache

5,573 posts

214 months

Monday 10th April 2017
quotequote all
Tuna said:
See? This is just like a commercial software project already - people are arguing about the best way to do it! biggrin
Exactly. Has the o/p worked out there isn't a right or wrong answer yet? smile