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.
3
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 Model
- The Design and Evolution of C++
- Effective C++
- Effective STL
and 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.
1
Subscribe to sites like Codechef.com, topcoder.com, etc. They will mail you twice-thrice a month about the latest algorithmic contests, take part in them using your the language of your choice
The best part is even if you are busy in web-dev their pinging will remind you writing code in C/C++ and the challenging puzzles will keep you thinking for a few days at least
Maybe there are – most back-end servers have the option to be extended using C/C++ code, generally for performance reasons, but that doesn’t mean you can’t start writing some of your web-serving code using C++ extensions to the main glue language.
Of course, you could also use C++ to write webservice services and use them from your web site code. Using Windows Web Services, gsoap, mongoose, cppcms or any of the other C++ web framework or libraries would be good for you.
Especially check out the WWS link as it describes Microsoft’s position. If WWS is twice as fast and uses 1/8th the memory then you can fit far more services on a server – that is a definite benefit to the cost of running the business.
For practicing algorithm challenges check out:
- http://www.geeksforgeeks.org
- https://class.coursera.org/algs4partI-2012-001/class/index