# Ask a Software Engineer/Developer

**URL:** <https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777>\
**Category:** In My Humble Opinion\
**Created:** [December 14, 2002, 8:46pm UTC](https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777 "2002-12-14T20:46:37Z")\
**Posts on this page:** 10\
**Page:** 2

<div class="post-metadata">

**Author:** ![Spectre\_of\_Pithecanthropus](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/spectre_of_pithecanthropus/32/12343_2.png) [@Spectre\_of\_Pithecanthropus](https://boards.straightdope.com/u/Spectre_of_Pithecanthropus)\
**Post date:** [December 16, 2002, 11:56pm UTC](https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777/21 "2002-12-16T23:56:21Z")

</div>

Thank you, **Winsling** for spinning off my thread, which was itself a spinoff of one of our perennial [Who Is A Real Engineer](http://boards.straightdope.com/sdmb/showthread.php?threadid=149398) threads.

As for titles, we don’t have SE’s, only Programmer Analysts I and II, Sr. PA’s I and II, and Principal Analysts. But we’re working currently with a software vendor for a particular project, and they seem to call all their developers engineers. Based on that, and reading the above, it seems like the title “Software Engineer” is spreading in popularity.

---

<div class="post-metadata">

**Author:** ![Winsling](https://avatars.discourse-cdn.com/v4/letter/w/8e8cbc/32.png) [@Winsling](https://boards.straightdope.com/u/Winsling)\
**Post date:** [December 17, 2002, 12:06am UTC](https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777/22 "2002-12-17T00:06:34Z")

</div>

> [@](#):
>
> \*Originally posted by Shalmanese \*  
> \*\*How concerned are modern SE’s with the speed and elegance of their code? Do people bother writing highly optimal algorithms or do they only try to optimise if the program doesn’t run “fast enough”. \*\*

I agree with what’s been posted; only optimize what needs to be optimized. Anyone who’s been in the field for awhile has a story where they speculated on what the bottle neck was, only to be completely off base.

**Javaman,** I look forward to the day when every open thread can be traced back to one ancestral thread, and several dissertations will be written, “Constructing the _Ur_ Thread.”

Hal

---

<div class="post-metadata">

**Author:** ![Spectre\_of\_Pithecanthropus](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/spectre_of_pithecanthropus/32/12343_2.png) [@Spectre\_of\_Pithecanthropus](https://boards.straightdope.com/u/Spectre_of_Pithecanthropus)\
**Post date:** [December 17, 2002, 1:33am UTC](https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777/23 "2002-12-17T01:33:46Z")

</div>

> [@](#):
>
> \*Originally posted by Winsling \*  
> \*\*I agree with what’s been posted; only optimize what needs to be optimized. Anyone who’s been in the field for awhile has a story where they speculated on what the bottle neck was, only to be completely off base.
> 
> **Javaman,** I look forward to the day when every open thread can be traced back to one ancestral thread, and several dissertations will be written, “Constructing the _Ur_ Thread.”
> 
> Hal \*\*

The Ur-Thread would be one of infinitesmal negative ignorance distributed over an infinite domain.

---

<div class="post-metadata">

**Author:** ![emarkp](https://avatars.discourse-cdn.com/v4/letter/e/3be4f8/32.png) [@emarkp](https://boards.straightdope.com/u/emarkp)\
**Post date:** [December 17, 2002, 1:41am UTC](https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777/24 "2002-12-17T01:41:01Z")

</div>

> [@](#):
>
> \*Originally posted by ultrafilter \*  
> Oh, and I should add, it still is important to pick good algorithms. No matter how fast your processor is, bubblesort still sucks.

And I should add, knowing when bubblesort sucks is important. For nearly sorted input, it can be best.

---

<div class="post-metadata">

**Author:** ![MEBuckner](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mebuckner/32/2896_2.png) [@MEBuckner](https://boards.straightdope.com/u/MEBuckner)\
**Post date:** [December 17, 2002, 1:54am UTC](https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777/25 "2002-12-17T01:54:33Z")

</div>

**Moderator’s Note:** I think this particular thread is probably more suited to IMHO.

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [December 17, 2002, 2:09am UTC](https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777/26 "2002-12-17T02:09:35Z")

</div>

> [@](#):
>
> \*Originally posted by emarkp \*  
> \*\*And I should add, knowing when bubblesort sucks is important. For nearly sorted input, it can be best. \*\*

Yes, but it’s probably simpler to just use quicksort with a randomized partition choice than to try and figure out whether input is nearly sorted.

---

<div class="post-metadata">

**Author:** ![Avumede](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/avumede/32/7235_2.png) [@Avumede](https://boards.straightdope.com/u/Avumede)\
**Post date:** [December 17, 2002, 2:41am UTC](https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777/27 "2002-12-17T02:41:41Z")

</div>

THese things widely vary. My first job we had a “release” every few weeks. We just added feature by feature, and kept giving company X (our one big customer) every new release. Dangerous, but it was necessary. At my current company we have a release every 6-12 months or so, with point releases every 2 months or so.

Due to layoffs, everyone is roughtly the same level - from experienced to “very experienced”. I don’t fall in the “very” category, but we are all Senior Software Engineers.

---

<div class="post-metadata">

**Author:** ![Winsling](https://avatars.discourse-cdn.com/v4/letter/w/8e8cbc/32.png) [@Winsling](https://boards.straightdope.com/u/Winsling)\
**Post date:** [December 18, 2002, 1:33am UTC](https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777/28 "2002-12-18T01:33:02Z")

</div>

> [@](#):
>
> \*Originally posted by MEBuckner \*  
> \*\ ***Moderator’s Note:** I think this particular thread is probably more suited to IMHO. \*\*

I die. I weep in my shame. Gallons upon gallons of tears flow out from me, leaving a dessicated corpse. Still the tears flow, covering the land in brine. No crops can grow, no animals can graze. All die. O the embarassment.

> [@](#):
>
> _Originally posted by ultrafilter_  
> **Yes, but it’s probably simpler to just use quicksort with a randomized partition choice than to try and figure out whether input is nearly sorted.**

Except if you’re doing something like inserting into a sorted structure, which I find more common than sorting random data.

I can’t imagine figuring out at runtime if the data is close to sorted, and then switchng algorithms. Off the cuff the switching logic would be O(n) which blows away any savings. Does this really happen?

Hal

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [December 18, 2002, 4:31am UTC](https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777/29 "2002-12-18T04:31:04Z")

</div>

> [@](#):
>
> \*Originally posted by Winsling \*  
> **I can’t imagine figuring out at runtime if the data is close to sorted, and then switchng algorithms. Off the cuff the switching logic would be O(n) which blows away any savings. Does this really happen?**

With the sorting algorithms known today? Not bloody likely. You can do mergesort and be done in O(n \* log(n)), even if you don’t use an extra storage array. I had to code that for an algorithms class–fortunately it was a partner assignment, and my partner still deserves mad props.

---

<div class="post-metadata">

**Author:** ![MEBuckner](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mebuckner/32/2896_2.png) [@MEBuckner](https://boards.straightdope.com/u/MEBuckner)\
**Post date:** [December 18, 2002, 5:25am UTC](https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777/30 "2002-12-18T05:25:52Z")

</div>

> [@](#):
>
> \*Originally posted by Winsling \*  
> I die. I weep in my shame. Gallons upon gallons of tears flow out from me, leaving a dessicated corpse. Still the tears flow, covering the land in brine. No crops can grow, no animals can graze. All die. O the embarassment.

Now, now. It’s OK. No need to beat yourself up over it.

Did I mention the Moved Thread Fee? Cash, checks, or major credit cards accepted.

[Previous page](https://boards.straightdope.com/t/ask-a-software-engineer-developer/142777.md?page=1)
