Live data from Hacker News

Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

codemanship.co.uk

1–10 of 205 posts

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#2
I was with him until he started complaining about being asked how to implement a hashmap and how this implied that the interviewer had reimplemented Java.utils.

How would you know when to use a hashmap and when to use a list if you don't know anything about big-O notation?

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#3
post #2

I was with him until he started complaining about being asked how to implement a hashmap and how this implied that the interviewer had reimplemented Java.utils. How would you know when to use a hashmap and when to use a list if you don't know anything about big-O notation?

Agreed. The Data Structures courses we had were among the best courses we had. I think it's great to learn how to implement them once.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#5
"It helps to know some music theory if you write and perform music, but a lot of very successful songwriters and performers get by very happily with just enough music theory."

This is an absolutely bogus comparison. Music does not need to be maintained, music does not need to be troubleshooted or debugged (and thus, reasoned about), music does not solve a problem(1).

Music is an artistic expression, while computer software isn't.

(1) Writing soundtracks for movies, for example, can be considered solving a problem with music. It also requires music theory knowledge because soundtracks have to convey particular emotions at particular moments.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#7
post #2

I was with him until he started complaining about being asked how to implement a hashmap and how this implied that the interviewer had reimplemented Java.utils. How would you know when to use a hashmap and when to use a list if you don't know anything about big-O notation?

I think he addresses this point pretty well -- you can learn good programming practices through apprenticeship/experience without understanding the deeper fundamentals. You won't be creating the next MapReduce, but you'll be able to remix and hack up existing functionality in new and creative ways.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#8
I follow the author's point, but I feel as though he's as guilty of dismissing valuable knowledge as the academics he condemns. I recently completed a graduate degree at a university that offered both a "Computer Science" program as well as a "Software Engineering" program. This is only my opinion, of course, but the difference in depth of understanding between the students in each field was very stark. The SoftE students dedicated several semesters to development best-practice-type classes: generating JavaDocs, curating JUnit tests, writing and revising good requirements, and UML modeling. They would essentially walk away from their program as expert Java users with little to no idea how Java itself (let alone the machine underneath) functioned. The CS students knew the inner workings of a computer program from code to compiler to stack, but would have to learn the bookkeeping side of development on the job. Both paths have their strengths and weaknesses and you've got to learn some degree of each to be a meaningful contributor.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#9
post #5

"It helps to know some music theory if you write and perform music, but a lot of very successful songwriters and performers get by very happily with just enough music theory." This is an absolutely bogus comparison. Music does not need to be maintained, music does not need to be troubleshooted or debugged (and thus, reasoned about), music does not solve a problem(1). Music is an artistic expression, while computer so…

I found the comparison pretty useful.

I used to compose music solely by playing around on an instrument until I hit upon something that sounded good, but I had no idea why it sounded good.

I can still compose that way, but after studying music theory, I can compose directly from my head to a sheet of paper without any instrument, as (1) I can now envision in my mind what the music would sound like, and (2) I understand and can employ reusable patterns and concepts of composition that I know will sound good and work together.

Similarly, when I started programming, I had little overall vision for what I was doing. I just started writing code, and stopped when I had built up a pile of spaghetti statements that did what I wanted them to do. Now, with better understanding of design concepts and reusable patterns, the development process is much more clean and structured rather than poking around with guesswork.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#10

Writing applications: go ahead, program by the seat of your pants. Architect a solution to a big problem: theory comes in very handy.

The theories behind computer science have little very application in large software engineering.

software engineering != computer science

Post reply on HN