ELI5: Do computer programmers typically specialize in one code? Are there dying codes to stay far away from, codes that are foundational to other codes, or uprising codes that if learned could make newbies more valuable in a short time period?

I'm a doctor by trade, but I did a lot of technical fuckery when I was younger and smarter and I still program on and off.

I'm a VB programmer mostly, because it was the first language I ever found useful and I've just been plodding away at it ever since. I'm learning Java, slowly but surely, and I've started work on C# (note: do not skip C++, you'll hate yourself forever if you do).

Things like python, Ruby/on rails, HTML5, LUA are good languages for the beginner to think about. LUA is especially good for introducing people to the basics of coding and algorithm design, without pushing them into something hardcore that they can't really focus on.

After that, Windows fans should enjoy coding in VB, also known as Visual Basic or Basic. VB is now fully object-oriented and heavily centred around GUIs, so it's useful for those beginners who need to see where their code is acting, and also for those more experienced programmers who want to be able to knock out a functional, slightly-utilitarian but wholly-fit-for-purpose program in minimal time with minimal fuss. It's only compatible with Windows machines though, so don't expect massive platform support.

C++ and C# are great higher-end languages for Windows programming. They provide a lot of functionality and a greater level of customisation than VB, but whilst Basic is quick and utilitarian the C languages are more complex, less forgiving and more adaptable. Many Windows-only games are written in C++ and C#, particularly C++ because it's slightly easier to learn than sharp.

Web designers definitely need to know HTML, and HTML5 whilst you're at it. The old standby of ActionScript was good, and I learnt it in school back when Flash was all the rage, but it's old and outdated now and (like your senile relatives) should be given comfortable, quiet, out-of-the-way homes to slowly fade into obscurity in, while the newer cooler generations take over. Javascript is also a good language to learn, though it's extremely unforgiving in formatting and build-time errors - if you fuck up a single curly bracket, you'll be trawling through code for hours trying to fix it. Learn how to program decent algorithms and pseudocode mock-ups first.

Those who want to be more platform-inclusive need to look at Java before anything else. Java is compatible with damn near everything; Windows, Unix-derivatives like Linux and Apple's OSes, Android, iOS... it's a very versatile language. It's also smarter than most others, and many IDEs (where you build the code, Integrated Development Environments) will actually complete certain segments of code for you if there are only a few logical possibilities. This can dramatically speed up debugging, and makes life a hell of a lot easier for some. However, it's also a fucking nightmare to learn, especially for someone who's not totally green but still pretty new. It's probably easiest to learn if you've never learnt anything else before it; you won't have any preconceived ideas, and afterwards things like C++ and VB will look like English to you. Most modern games are at least partly Java-based, including the famous Minecraft, and whilst it does tend to massively hog RAM and CPU cycles it's also got support for true hyperthreading if you know how to use it, which is useful in the extreme for more intensive programs like games.

/r/explainlikeimfive Thread