When I was in college I learned how to program in C, C++, and Java. Currently, I'm a web developer using front end and back end technologies (HTML/CSS/JS, PHP, MYSQL). While the sorting algorithms and OOP concepts that I learned in college can be applied to web development, I'm looking for ways to keep up my knowledge of all languages. I enjoy programming in C-Style (C/C++/Java) languages and front-end/back-end technologies. Unfortunately, there aren't many options to use C-style languages to build websites. However, I would like to keep up my knowledge and skills in the languages I learned in college as I know they will continue to help me with my growth. What resources are available to keep challenging myself in C-style languages that are relevant to web development? Would contract work for C-style languages be beneficial? Are there sites that offer algorithm challenges? Any help is appreciated. I'm also interested in how others that have asked themselves this have solved this problem.
Maintaining C/C++/Java skills as a web developer
java;c++;learning;javascript
For the sake of brevity, I'll address C++, but most of what I say applies to Java as well (if not more so).It's worth noting that C and C++ can be used for web development, and there are even several C++ web frameworks. The thing is that most shared hosts don't support that kind of stuff, but you can easily deploy it on Virtual Private Servers.Now, what I've been doing is simply reading books about topics that interest me. For example, there's a ton of C++ books. Namely: Inside the C++ Object ModelThe Design and Evolution of C++Effective C++Effective STLand many more.You'll find, as I did, that these in-depth books will give you a theoretical knowledge of C++ that you might never forget. The Scott Meyers Effective books will also teach you about using the language idiomatically and effectively.Another thing you can do is make c++ a favorite tag over at Stack Overflow and check out questions every once in a while, and try to answer them, or at least check out popular answers.And last but not least, even as a web developer, you might sometimes get ideas about non-web applications you might want to develop; in that case, pick C++ as your language of choice. If you're lucky, you'll encounter some non-trivial challenges which (meeting them) will leave an important mark on your experience and knowledge.On top of all that, you can always go over to GitHub and see if you can help some open-source projects, or at least try to understand some interesting code bases, such as Node.js.Good luck.