Speaking as a full-time professional programming manager, I read this as...
Hi community :-) I've recently decided to renew my study of computer programming, and I'm looking for some opinions to help guide my way.
I am looking to get into construction, and would like your opinions on...
Which languages are worth learning?
Which tools are the best for new construction workers?
Do I need a degree to land a job in the field?
No but it helps, especially if you want to ever be anything more than entry level.
A better idea is to actively contribute to open source projects you actually care about. If you have any actual talent or skill, it will help you land a better job that way. You'll probably surprise yourself on that front.
if so, what type of program is best?
Whatever makes you happiest. If you want to move into management consider MBA track. If you want to actually know what the hell you're doing look to engineering, especially EE. If you want to be a code monkey the rest of your life (some people are really happy with that choice by the way), just go modern CS. Some of the better candidates I've seen recently seem to be coming out of
www.wgu.eduBest programmer I ever met had a Masters in Philosophy with a B.A. in Art Appreciation, though I'm still scratching my head on that one.
Everyone's story is different. I myself started as a code monkey mostly C/C++, used the money from that job to cover a degree in finance and then got the MBA for employability reasons because I kept seeing programming jobs get farmed out overseas. Honestly the code coming out of India and China is improving to the point that it does make sense for a company to send work there as long as they have a solid project plan.
So keep in mind you're now competing against people that can live on the same amount of money you might spend on a meal at McDonalds (US centric view here).
When I actually need to write code myself it tends to Java or Golang anymore. I got over myself and tend to use the tools with the best turn around time when I need to build anything more than a toy project, but I'm not doing a lot of coding myself anymore either.
YMMV.
which ones are crap?
Any which promise you that the degree will translate into employability. Any "for profit school" especially. As I said before, I see some solid candidates are coming out of wgu.edu, but that's probably because you need to be completely self motivating to finish up there and that is the #1 skill a good programmer really has.
The degree will just get you past HR drones in Fortune 500 companies. The ones who actually make decisions about who to hire or not, probably don't care what your degree is in. Or even that you have one, if you can present a compelling enough case to them.
I once interviewed a candidate who disclosed that the degrees on the resume didn't exist and were there solely to get past the resume filters. B.S. in Human Information Tech or something like that. Hired them on the spot for their honesty. Company downsized the entire department 2 years later, he was still there.
and to the devs of bitshares, what path did you guys take to become programmers?
I'm not a bitshare dev. I can't speak for them, but here is what is working right now speaking solely as someone who's job it is to hire, train and manage new code monkeys for a living.
Get involved right now with something you feel passionate about. You're here right now, so my guess is you'd like to work with something bitshares or at least crypto related. I don't know about what the backend code needs right now. It seems to work well enough for our purposes. So we never really questioned it too deeply. The core devs should probably chime in on that.
But your question is broad enough that I think you might make a better UI person than core anyways.
One thing I do know is that the easiest language stack to learn right now is probably Javascript/HTML5 & CSS.
My advice, for what it's worth, is that if you really don't have much background and want to contribute right away go here...
www.w3schools.com go through the HTML, CSS & JS stuff.
Then dip into angular & node.js for a bit. Once you feel like you've got a handle on that, come back and help the guys working on wallet.bitshares.org , it's a great little project but they need a lot of UI/front-end help. (I'm not affiliated, just a customer).
If you want to get into serious coding, back end, systems programming etc. Learn C, then Java, then Go. I recommend Java because at this moment in time it is the highest paying language in the USA and has been for a number years. Followed by C# which is actually a Java variant. Despite people who managed to contract a case of Mono.
At this point I would recommend skipping C++ for a newbie. There is no compelling reason for it anymore. The pay scale compared to Java & C# isn't worth it, and the pain of dealing with it's quirks is not a path I recommend for anyone who is not a masochist.
Sadly, the language has devolved to monstrous levels of complexity. The learning curve for that language and the use cases for it will probably never lead to a higher paying career than the same amount of time spent on Java & C# will.
I have yet to see anything done in C++ in the last 10 years that in my opinion couldn't have been better done with either Java, Go or C. Pretty sure bitshares itself is written in C++ though, so if you want to contribute to the core and become an actual core dev. You will probably need to gain C++ skills in the long run. However the BTS project is probably big enough now that I'm not sure they really need more core devs. But they might want to chime in on that.
Python is a good control language, i.e. for scripting other stuff, but I personally don't feel much love for it. Lua seems to be smaller and faster in the rare cases where I just need to bind quickly and expose scripting to something.
The other use cases for Python seem to be getting sucked up by Javascript especially with the release of Nashorn. Which honestly a few years ago I would have probably just marched you out the door for wanting to get people already confused with Java & Javascript. Avatar stack is proving me wrong though.
Golang has removed all the use cases I would have had for a Python/C stack except driver development and bit banging, both of which are really rare anymore anyways.
Avoid Perl, PHP unless you have a compelling reason to learn them such as supporting a legacy code base.
PHP has been making strides lately, but I've seen too many people bitten by it's absolutely shitty security track record and the fact that despite the documentation being excellent, the sample code still shows you the absolute least secure way of doing things.
Yet in our case the company website is built on top of PHP/Wordpress. However we don't put anything mission critical there either.
Still that was never my call.
If you're interested in your first shot as a dev, drop me a PM. I've got enough space to mentor one more complete newbie coder and I'll be honest you sound to me like you probably have competency already and just aren't sure of direction and/or lack confidence. Let me know.