Is Cooper preparing me for the real world?

Yes it is.

Let's look at a job description at Slate:

[http://jobs.slate.com/job/software-engineer-with-c++-new-york-ny-new-york-medialets-1be78cee98/?d=1&source=jobroll]

Software Engineer with C++ Posted Feb 15
Medialets, New York, NY (New York City)
About the Job

This is a key role in our server engineering team. You'll be building both iterative and substantial revisions to our flagship tracking, reporting, and ad-serving tools and will have an integral role in our engineering organization. You'll have the opportunity to interact with, teach and learn from many experienced developers working on emerging mobile, analytics, data processing, and ad serving platforms.

We are looking for someone to provide innovative solutions to scale and build rock-solid code for reliable server systems. Our clients expect us to lead and we work hard to deliver reliable and timely information and a phenomenal end user experience.

Performance analysis and tuning will also be a significant responsibility in your job - with our large transactional volume, every last bit of performance counts. You should be able to step back and look at a problem in different light to identify an approach that improves performance.

About You

You studied computer science (or another tech-heavy science/engineering field) in school and can proudly claim that you spent more than your share of late nights bathed in the glow of compiler output.

You have a track record writing multi-threaded code and experience with synchronous and asynchronous code. Algorithms and data structures are your friends.

You see problems as opportunities and have what it takes to effectively communicate, brainstorm and collaborate to work through them.

You're more than comfortable with *nix-based operating systems. ***

Skills •You pose knowledge and experience in at least 3 different languages (i.e. C++,Java, Ruby). We are a 100% Linux shop though if you have Windows experience we would see this as another way you can show us how you tackle and solve problems with your code. •The software you will be building is server side providing the connective interfaces for mobile devices using our SDKs (e.g. Android, iPhone). Our solution is based on Asynchronous Pooling and you must show your knowledge and experience with having done this to provide highly performant and cost effective systems. ** •The systems behind our server side interfaces are focused on large data processing and aggregation. These systems are fundamentally an event processing solution for automated output based on the data feeds we create through the connective interfaces. •Ultimately we utilize SQL once our event processing is complete. Your knowledge and experience with databases (DDL & DML) are a must. If you have used NoSQL systems before that is great but not a requirement.** •Experience with web application development, although stateful experience is much more interesting to us than stateless.* •Experience with data analytics & BI processing and tools - strong statistical background & interest.** •Big bonus points for experience using scalable data processing tools such as Hadoop.

•Bigger bonus points for experience with building AI or rule engines or other advanced matching algorithms***

Join Our Team!!!!

Here are the keys:
Bold: I will be prepared for this upon graduation!
**: I will be prepared through self-learning.
***: I will be prepared through time spent at Cooper.
Oh yea...
Hahahaha ~~