Live data from Hacker News

Code != computer science

ultrasaurus.com

131–140 of 148 posts

Re: Code != computer science

#131
post #126

Earlier quoted context omitted.

The truth is, CS is not a "science" like biology or physics. It is an education in understanding computation and software development. I'd also argue it is not an engineering discipline either. It's unfortunate the terms "Computer Science" and "Software Engineering" were ever accepted. They're holding us back; we're stuck in an outdated view of the subject.

I kindof disagree. For example while studying UML, it became more and more apparent to me how legitimate it is to have the word "science" in "Computer Science". Being able to create a high-level framework that is general enough to apply pervasively to IT systems is not a trivial matter, and requires considerable academic effort and creativity. The domain may be different from biology or physics, but the methods of ob…

Wait, did you just bring up UML as an example for backing up the claim that CS is science?!

Re: Code != computer science

#133
post #20

I look at this from the other side as well. I've worked with brilliant people with ivy league CS degrees who wrote much messier and less maintainable code than me, an autodidact designer/js dev with 1.5 years of experience. Maybe I'm wrong, and there was something in their code that I wasn't seeing, but I don't think so. There can also be a bit of an attitude, like the person is thinking "of course this is good, I we…

I think coding is neither science nor engineering. I like the term "craft" much better.

Re: Code != computer science

#134
post #54

Earlier quoted context omitted.

> I look at this from the other side as well. I've worked with brilliant people with ivy league CS degrees who wrote much messier and less maintainable code than me, an autodidact designer/js dev with 1.5 years of experience. Maybe I'm wrong, and there was something in their code that I wasn't seeing, but I don't think so. I would have ignored your comment were it not for you mentioning that you write javascript. I s…

What I find when I work with "pointy" data structures is that it really, really helps to draw diagrams to clarify your thinking. I can write a doubly-linked list extraction with my eyes closed (and it'd probably help to do it with closed eyes, since I can more easily picture what's going on) but it very likely won't look anything like yours... what's dec for? And all the extraneous underscores in the variable names,…

Drawing diagrams is one of the most useful teaching strategies I've found when people are just starting to learn pointers. I've TA'd a course that introduces students to C++, pointers, and basic data structures, and after five semesters, I'd say that it's the single most helpful thing I've found when they are first trying to wrestle with pointers. (They get to implement a doubly linked list.)

Re: Code != computer science

#135
post #54

Earlier quoted context omitted.

> I look at this from the other side as well. I've worked with brilliant people with ivy league CS degrees who wrote much messier and less maintainable code than me, an autodidact designer/js dev with 1.5 years of experience. Maybe I'm wrong, and there was something in their code that I wasn't seeing, but I don't think so. I would have ignored your comment were it not for you mentioning that you write javascript. I s…

> Of course if this was Perl it would be even worse. Sigh . Sadly, it has become fashionable to bring up Perl only to ridicule it even when there is absolutely no context or need. Take a look at this implementation [1] of doubly linked list in Perl. Tell me how that is worse [2]. Now, I will go back to my corner to being productive using Perl or whatever language I need. [1] https://metacpan.org/source/LEONT/List-Dou…

> Sigh. Sadly, it has become fashionable to bring up Perl only to ridicule it even when there is absolutely no context or need.

A lot of people ridicule C, I just laugh my head off.

Apologies, I assure you that I am not ridiculing it. The elegance of a language is not my concern. In fact, your comment has made me decide to put some effort into learning a bit more Perl, but I will have to find some time.

Re: Code != computer science

#136
post #54

Earlier quoted context omitted.

> I look at this from the other side as well. I've worked with brilliant people with ivy league CS degrees who wrote much messier and less maintainable code than me, an autodidact designer/js dev with 1.5 years of experience. Maybe I'm wrong, and there was something in their code that I wasn't seeing, but I don't think so. I would have ignored your comment were it not for you mentioning that you write javascript. I s…

A little whitespace goes a long way. Were the list elements also stored in sequence in some array, or is ->lnk a two-element array with the forward and backward pointers?

The latter applies here, this is the node:

  typedef struct dll__ {
      struct dll__ *lnk[2];
      void *dat;
  }ndi;
I've seen some examples on the web, but I haven't seen it done this way. I have a suspicion it might be slower than the traditional technique, but I'll have to check that. What is not evident from the code snippet is that I'm trying to make the code handle both fixed end and looped lists.

Re: Code != computer science

#137
post #126

Earlier quoted context omitted.

I kindof disagree. For example while studying UML, it became more and more apparent to me how legitimate it is to have the word "science" in "Computer Science". Being able to create a high-level framework that is general enough to apply pervasively to IT systems is not a trivial matter, and requires considerable academic effort and creativity. The domain may be different from biology or physics, but the methods of ob…

Wait, did you just bring up UML as an example for backing up the claim that CS is science?!

I know UML is not very popular, but as you can see, I thought it was interesting.

Re: Code != computer science

#138
post #40

Earlier quoted context omitted.

Well if you think of it, a CEO like Steve Jobs will call the PC a truck... to sell the iPad. • Computer Science = Truck • Treehouse = iPad But how do you make iPad dev tools?

> But how do you make iPad dev tools? The same way you make a real-world video editing suite work on an iPhone and have the guts to make that your seasonal and campaign: in a careful and considerate fashion without trying to be all things to all people. That said, if I had an editable Chrome dev tools on a tablet I'd be 50% of the way there some days. :) And ... Don't read too much in the car/truck comment. Eventuall…

You missed the point on what I was inferring.

> The same way you make a real-world video editing suite work on an iPhone and have the guts to make that your seasonal and campaign: in a careful and considerate fashion without trying to be all things to all people.

It isn't about being all things. It is about a level of control you need while working. This is actually a mathematics problem namely Godel's second theorem of incompleteness which states and this is a brief description that "a system cannot contain itself" meaning that you can build a system of components but those components can't be built from inside the system. This equally applies to software.

> That said, if I had an editable Chrome dev tools on a tablet I'd be 50% of the way there some days. :)

Again you're conflating two issues. Not all dev tools can exist is a browser. If they do then by definition they don't exist in the browser anymore. A paradox. If your dev tools can exist in the browser alone then you definitely are using only a subset of necessary dev tools for other domains. It is obvious that you are a web dev but then I'm not and the browser doesn't cut it for me.

> And ... Don't read too much in the car/truck comment. Eventually even smart phones will behave like supercomputers. It's just a matter of time.

Then again you missed it. I wasn't reading into it. I was comparing how the CEO of Treehouse was dissing CS degrees because he wanted to sell his tutorials like Jobs was dissing the PC because he wanted to sell iPads.

Re: Code != computer science

#139

Fundamentally,computer science = data structures + algorithms. in a data structure class,you learn the basic structures like PODs,structs,vectors and linked lists. in algorithm class,you learn various basic sorting algorithms plus the big O notation and thats pretty much it. Then you will take a few physics classes,then chemistry classes,then maybe calculus one and two,then probably discrete mathematics class,one or…

People are incredulous when I tell them I use 90% of the stuff learned while getting my CS degree. Stuff I've done in the real world: AI: I've lost count of the number of times I've had to implement A* Graphics: wrote a ray tracer; matrix transformations Data structures and algorithms: wrote an approximation algorithm for the travelling salesman problem (christofides); fancier data structures like bloom-filters, lru…

...and I officially envy you...

Re: Code != computer science

#140

True but: Code people, should be open to learn theory when needed. CS people, should be open to understand that writing code is not marginal and takes a lot of time to master. Probably more cooperation would be needed.

I think the distinction is more like medical researchers and practitioners. CS is more like the research aspect of the craft but once it's done it has to be applied in practice. Sometimes you don't need to be a doctor when feel you have a cold and just take a day off and stay in bed, but a nurse can't help you with cancer. Most people get the common flu and for them you don't have to see a doctor, but what happens in our profession is that some people think that all problems are equivalent to the flu.
Post reply on HN