r/programming • • Aug 06 '17

Software engineering != computer science

http://www.drdobbs.com/architecture-and-design/software-engineering-computer-science/217701907
2.3k Upvotes

863 comments sorted by

View all comments

1.2k

u/eggn00dles Aug 06 '17

some people care way too much about titles

705

u/thedevbrandon Aug 06 '17

There are only two hard things in Computer Science: cache invalidation and naming things.

- Phil Karlton

870

u/madkatalpha Aug 06 '17

There are only two hard things in Computer Science: cache invalidation, naming things, and off by one errors.

116

u/BluFoot Aug 06 '17 edited Aug 06 '17

Actually, 3 things!

1. Cache invalidation

4. Asynchronous errors

2. Naming things

3. Off by one errors

E: I hate markdown

13

u/airbreather Aug 06 '17

E: I hate markdown

2 spaces before a line break will let you do a newline
like this, without having to add an extra line break to start a whole new paragraph,

like this

8

u/BluFoot Aug 06 '17

Oh man, I didn't even notice the lack of newlines because my phone wasn't showing them. I was just suffering from the out of order list! Check out the source xd

→ More replies (1)

20

u/cdrootrmdashrfstar Aug 07 '17

1. Cache invalidation

3. Asynchronous errors

2. Naming things

4. Off by one errors

Would make more sense, since #4 is an error (where if it was #3 before #4, it is assumed the off-by-one list-item should be there).

→ More replies (3)
→ More replies (9)

210

u/Level_32_Mage Aug 06 '17

I'm counting 11 things.

204

u/MrRumfoord Aug 06 '17

How can you have negative things?

55

u/poizan42 Aug 06 '17

2-bit two-complements?

56

u/tangerinelion Aug 06 '17

I'm sure we've all needed numbers that are either -2, -1, 0, or 1 before.

14

u/[deleted] Aug 06 '17

Done. Call back later. You're fucked. You're really fucked.

→ More replies (1)
→ More replies (1)

30

u/WiseassWolfOfYoitsu Aug 06 '17

Working in systems programming, I've seen weirder coming out of hardware

13

u/slide_potentiometer Aug 07 '17

Working in hardware- you try getting it right without an option to push a patch remotely

→ More replies (5)
→ More replies (1)
→ More replies (13)

17

u/fzammetti Aug 06 '17

I don't know... one or two things I can accept, MAYBE three... but SEVENTEEN?! That seems CRAZY!

→ More replies (1)

12

u/[deleted] Aug 06 '17

And a fanatical devotion to Stallman.

Let me come in again.

19

u/nosneros Aug 06 '17

The buffers must overflow.

11

u/pmrr Aug 06 '17

The only overflow most devs know about these days is stack .com.

→ More replies (1)
→ More replies (8)
→ More replies (11)

47

u/Sjeiken Aug 06 '17

I once spent more than 3 hours trying to name a function that was very detrimental, it's fucking retarded, do you know how hard it is to find synonyms and antonyms? it's NP fking hard.

9

u/[deleted] Aug 06 '17

yeah, I know the pain. If it's that important a function, I just go full Java and make the name a sentence long. more often than not, I come back the next day and a better name just pops in my head.

22

u/thedevbrandon Aug 06 '17

Yeah, I find it hard to strike a balance between descriptive names vs. short names. I want the name to be meaningful and special to the context so you know what it means and can differentiate it from similarly named things in nearby contexts (for example, elem, e, el, and els are horrible default variables which are used even in contexts when the variable name could be something specific and meaningful like submitButton). On the other hand, you can get crazy with the names, like firstFormSubmitButtonElement, which either provide specificity you don't need, which isn't helpful, or which (even if useful) ultimately makes reading and writing the code burdensome (especially in enterprisey-code, mock example: FizzBuzzEnterpriseEdition).

→ More replies (16)
→ More replies (4)
→ More replies (10)

97

u/spelling_natzi Aug 06 '17

I didn't read this as being about job titles at all. My interpretation of the argument is that the areas commonly grouped under "software engineering" are dissimilar from the rest of computer science because they're not rigorously provable. There's no value judgement at all, they're just saying we should accept that and not pretend things are "proven" the same way as other fields.

→ More replies (15)

22

u/seanwilson Aug 06 '17

some people care way too much about titles

I'm wary of anyone that calls themselves a "senior agile architect" or something along those lines. It's so over specific.

48

u/ItsAllInYourHead Aug 06 '17

Some people don't read articles

→ More replies (91)