# Advice on Computer Science as a Career

**URL:** <https://boards.straightdope.com/t/advice-on-computer-science-as-a-career/663532>\
**Category:** In My Humble Opinion\
**Created:** [July 15, 2013, 3:59am UTC](https://boards.straightdope.com/t/advice-on-computer-science-as-a-career/663532 "2013-07-15T03:59:38Z")\
**Posts on this page:** 2\
**Page:** 4

<div class="post-metadata">

**Author:** ![notsoheavyd3](https://avatars.discourse-cdn.com/v4/letter/n/85e7bf/32.png) [@notsoheavyd3](https://boards.straightdope.com/u/notsoheavyd3)\
**Post date:** [July 23, 2013, 10:02pm UTC](https://boards.straightdope.com/t/advice-on-computer-science-as-a-career/663532/61 "2013-07-23T22:02:12Z")

</div>

> [@squeegee](#):
>
> Yes. And just in case, you can pass your own allocator function to STL and allocate things yourself if you don’t trust (or have reason to not like) STL’s allocation func. In STL implementations I use, I trust STL’s allocator to be smart, most times.

That’s cool, I really need to use STL more. That said it turns out I was partly wrong. MFC’s array isn’t quite that stupid.(Ok, I went back and double checked the code.) Under normal operation the MFC array will allocate in blocks. (Up to 1k) However I think what I mis-remembered was that he had an array of pointers. So he’d allocate one object and then add it to the array. (So for every one of his adds he did have an allocation.) It’s actually possible to force that array to allocate one item at a time but I’m thinking now he didn’t do that. (But it would be easy to do if you weren’t careful.)

---

<div class="post-metadata">

**Author:** ![Stealth\_Potato](https://avatars.discourse-cdn.com/v4/letter/s/d78d45/32.png) [@Stealth\_Potato](https://boards.straightdope.com/u/Stealth_Potato)\
**Post date:** [July 24, 2013, 1:18am UTC](https://boards.straightdope.com/t/advice-on-computer-science-as-a-career/663532/62 "2013-07-24T01:18:43Z")

</div>

> [@Athena](#):
>
> Like you said, you can transition (I moved from C/C++ to C# and a little java. The language differences are minor, the really big differences are going to browser-based coding)

I wouldn’t say “minor.” C++ and C# are fundamentally different languages with very little common ground. C# doesn’t have have RAII or templates, just to name two of C++'s most defining features; it also lacks const-checking, multiple inheritance, and the vast swaths of undefined behavior. 😉 On the other side, C++ doesn’t have reified generics or garbage collection or attributes or run-time binding or delegates or, even more importantly, a unified type system. All of these are fundamental features and principles that define the way programs are built in each language. The overlap between C++ and C# is small and largely superficial.

There is also a fairly wide gulf between C and C++, though they’re a lot closer to each other than either is to C#.

> [@notsoheavyd3](#):
>
> That’s cool, I really need to use STL more. That said it turns out I was partly wrong. MFC’s array isn’t quite that stupid.

MFC? STL? Did I step in a time warp back to 1999? 😃

[Previous page](https://boards.straightdope.com/t/advice-on-computer-science-as-a-career/663532.md?page=3)
