I am often asked this question by other Web developers. In fact, I regularly need to figure decide which web programming languages and technologies I need to learn next as part of my life long learning.

Start with Web Browser Technologies

Did you know? Even after over 20 years of mainstream web technology, web browsers only natively understand 3 things: HTML, CSS and JavaScript. That's it, that's all!

There actually used to be a fourth, vbScript, but it was only available in Internet Explorer and Microsoft finally deprecated it as of IE11. Anything more and it is usually an add-on, plugin or other synonym for what is essentially an extension.

So my recommendation would be to get the basics down. No matter what you end up working with after that, you won't be able to do without this basic foundation unless you just want to end up editing content in WYSIWYG editors.

Once you've got those down, you can expand into jQuery, Angular.js, Bootstrap and Foundation which are implementations of JavaScript and CSS. These should give you enough experience so that, if you do end up using different libraries or frameworks, you'll have an idea of how things work and will be able to adapt.

Server Side Technologies

Once you've got a good handle on web browser technologies, the next step is to look at Web server technologies. There are many options and you will have to make a decision as where you want to go with it.

Server side technologies enable servers to deliver dynamic content to web browsers. For example, it may send the browser different content depending on the context such as page being displayed. Basically your website has a theme/layout is separated from the content of the page. The advantage is that you can easily change the look of your website without having to modify the content.

Your first choice will be whether you want to work on Windows based technologies or cross platform technologies that can include Windows, Unix/Linux, OS X.

I could rattle off a whole list of server side programming languages like Java, Python, Ruby on rails, .Net, PHP, Perl, node.js and databases like MS SQL Server, MySQL/MariaDB, MongoDB, Postgres and many more. Is there a right one to choose? Who knows really. In my opinion, the right one is the one that lands you the job in my opinion. Just try to avoid the fads if you can. Those are the technologies that are supposed to be the next big thing and then fizzle out over the next year or two. It's like trying to always wear the latest fashion. Tomorrow what was way cool is so passé. Stay a little conservative… and again, pay attention to what is happening in your industry. In fact, you may even discover that certain industries have standardized on particular programming languages and technologies making the choice a no brainer.

Which ever server technology you end up working with, take the time to learn how to set it up and configure it yourself. Over time, this will serve you well, especially when something worked in the development environment and didn't when it went live onto the production site.

Life Long Learning is the Only Sustainable a Way of Life

There are so technologies that it will often seem like you picked the wrong one for the job. My recommendation here is to pay attention to what your employers are using, what the employers of your friends are using and learn those technologies.

If you are paying attention to your industry, even if you make a mistake and choose the wrong technologies to learn, it will still be possible to find work with companies that made the same mistake and you'll have less competition for these jobs when you find them.

I once had a job working for a company that used a programming language called "Crackhaven". You may not have heard of this programming language because the founders of the company invented it and it isn't used anywhere else in the world. Documentation was almost non-existent and was often incorrect. I didn't get the job because I knew Crackhaven -- I didn't. I got the job because I had lived a career of Constant And Never ending Improvement (CANI) which resulted in knowing so many programming languages that I can adapt to new programming languages with relative ease. Programming concepts are similar across most programming languages. Most of the time, it's just about learning how to use their function libraries and APIs.

Whatever technologies you end up learning, try to stick with them for at least a couple of years if you can. Notice that employers are looking for at least 6 months experience, often even 2-3 years minimum in job postings. If you constantly jump from one technology to the next, you may become very skilled but you still won't meet the requirements.

Follow the Money

Stay focused on your desired outcome and the results you really want. Pay attention to your industry and keep an eye on the job postings, even when you are not looking for a job. Keep in mind that 80% of all jobs are never advertised so you may assume that those that are might also be the ones that are harder to follow.

When you are working, also take the time to learn something new. You don't have to spend tons of time on learning, just a little every day. If you really want to change the direction of your career because you see yourself in a dying technology, you'll need to spend more time to ramp up. Stay focused on your desired outcome and the results you want to get.

To help you keep an eye on job market trends, take a look at Job Trends on Indeed.com. You can enter multiple technologies and see how they've been trending over the last few months/years.

Above all else, have fun. There is nothing worse than working in technology and hating what you do. Follow your passion and become an expert in what you do and there will always be new opportunities opening up,

While not computer programming, program your brain by learning about marketing. It doesn't matter if you are the best in the world at what you do, nobody is going to come knocking on your door if they don't even know you exist.

Don't keep it all to yourself. Share your knowledge at every opportunity, except when it is clearly not wanted. People don't hire you in hopes of learning your secrets, they hire you because they can't, don't know how or don't want to do it themselves. By helping people regularly, they will begin to recognize you as the go-to guy or gal, see you an authoritative figure and remember you fondly for years to come.