Hacker News new | past | comments | ask | show | jobs | submit login
Should a senior in Comp Sci know what a .tar file is?
23 points by jcromartie on March 8, 2008 | hide | past | favorite | 51 comments
Today at work I met an intern who happened to be a senior in computer science at a well-known area college. While helping them to get started on an assignment, it struck me as odd when they were working in Notepad, double-clicking what were obviously command-line programs, and didn't know what a .tar file was.

Who is to blame here? Clearly the student doesn't have a passion for what they are studying. On the other hand, how does a computer science department let students go nearly 4 years without exposure to things like UNIX-like operating systems?




Computer Science can be taught without a student ever having used a computer; it's a branch of mathematics. Would you expect a mathematician to know what a .tar file is?

Reminds me of a quote from one of the most famous Computer Scientists, who was really a mathematician:

"Computer Science is no more about computers than astronomy is about telescopes." - E. W. Dijkstra (1930 - 2002)


This is true, in the purest sense of CS. However, how much pure mathematical theory can you fill three and a half years of university education with?

I would imagine that a comp sci department where they never reach a point where the "rubber meets the road" is not worth the trouble.


> I would imagine that a comp sci department where they never reach a point where the "rubber meets the road" is not worth the trouble.

...unless your rubber has already met your own personal road long ago. I, personally, learned everything practical I needed to know about programming long before I stepped into a CS class, mostly from self-teaching and the web; I only took CS to "straighten out" my theoretical knowledge. I would have loved a CS department with no computers installed (except perhaps for interactive debugging after it's already clear that you can express yourself in pseudocode.)


OT: I'm in a similar situation: I've 11 years' experience and want to take some CS classes now that I live near Berkeley. Any tips?


I can't speak for Berkeley, but my favorite classes in CS were always the ones on Algorithms and novel languages.

Avoid classes that teach syntax, unless the syntax is used to highlight a language feature you have never encountered before, like continuations or currying.


I can speak for Berkeley, and you won't have any trouble with taking a class where you have to learn "syntax." I enjoyed the operating systems class there (project work in C++). I don't know if they are still using it, but the first CS class there used to be taught in Scheme using SICP.


English is my favorite novel language, but I didn't have much time for reading fiction in school. ;)


hehe... I meant the adjective, not the noun.


I think there are enough subjects in computer science to fill three and a half years with theory, no problem at all.

In my CS classes they had exercises, but students where left on their own with the details of programming. OK, there might have been dedicated courses on "how to solve the exercises", but still.

My first day in the computer lab I was completely lost, because I had gotten into Computers with Commodore C64 and then later DOS+Windows 3.1, and I had no idea how UNIX works. Other times, though - WWW was in it's earliest infancy, today it is certainly easier to get information on UNIX.



You're right, you can learn compsci theory without encountering a .tar file just like you can learn all about astronomy without encountering a telescope. But would you expect someone with a university degree in astronomy to have never heard of a telescope before?


"... Should a senior in Comp Sci know what a .tar file is? ..."

This is a statement telling me what the comp-sci is not doing:

- not interested in "systems" by not downloading installing free operating systems & servers

- not interested in software "tools" by not using free software compilers downloading new & interesting code to sample and understand

- not interested in "making things" because a lot of software is still delivered as source code wrapped in tar.

- just plain not interested

From physicists to chemists, archaeologists to biologists people in science use, hack and develop their own tools on computers to solve their problems and would most likely encounter tar.

    $ tar -zxvf foo.tar.gz
The computer is just another tool. For comp-sci's to not know what a ".tar", how it works [0] is just plain ignorance of the worst kind.

[0] http://en.wikipedia.org/wiki/Tar_(file_format)


Short answer: No, assuming you meant "should every CS senior know what a .tar file is?".

Long answer: Not always. Large and fascinating branches of CS has nothing to do with computers. A programmer looking to work on UNIX-based file systems should know what a .tar file is.

A commitment to GUI interfaces (and general mouse love) and not knowing .tar files probably just means the person had only seen Windows. I'd say the average child will take a week of dedicated learning before OK at using command line/Linux-based OS's. It would probably be a good idea to have a little intro-course to people who haven't seen Linux (kind of like a summary of OS class in college) at your company to catch these people up.

One of the things that bothers me most about the snobbier computer enthusiasts is how much pride they take in their curiosity, even if what they learn isn't all that impressive - it would take less than a minute to explain .tar file is to a degree more thorough than understood by half of the people who use them.


On the other hand, the CS program has a pretty glaring hole if it doesn't at least have an intro seminar into Unix-like operating systems, where things like tar files would surely be on the syllabus. I know I was offered a free week long seminar (about an hour a night) on Linux and gnu tools as a freshman at KU. Unix-like OS's make up a sizeable chunk of the programming landscape, so it would be strange to never mention them.

Maybe his CS program is super-theoretical and doesn't concern itself with implementation. Of course, it's far more likely that it's a lightweight shop turning out blub programmers.


We had a guy at our company with a Masters in cs and he didn't know the shortcuts for copy and paste! His first code review was unbelievably painful. Suffice to say he didn't last too long.


Funny, I find the people who are expert at copy and paste tend to generate the more painful code.


Was he using v's, y's, d's, and p's?


eh

I don't really feel that a professor should go through and explain common filetypes, that really isn't computer science.

However, if a 21 year old is passionate about programming, they will have come into contact with a command line and tar files on their own obviously.


Agreed. It's not the school's responsibility to teach a student what a .tar is, but if the kid is doing any programming out of personal interest he should have come across it.

In my experience, CS students who know what they are doing are usually using Mac or Linux by the time they graduate.


At my university, we used Unix for everything. We never had any lectures about how to use make, tar, cvs or LaTeX. But we were required to use them, so we had to learn stuff ourselves. I think that is the best way to learn, since it made us more independent.


I'm in my final year of school. (Career Changing). And, I've been trying to explain the benefits of a decent text editor to a couple of my fellow students. They're still using Notepad to edit SQL for their Advanced databases class.

We're a Java/ .net school, but still... I'm pretty upset that they don't know what a text editor is.


While at college I was upset that they taught some text editor that a prof. at the college wrote. Also, they only taught `vi` in Linux/UNIX classes. As an Emacs user I was offended! :P


At 21, I was pretty passionate about programming, but I had never dealt with a tar files. I was sticking with Windows because it just worked for me, and the barrier to installing a Linux on my PC seemed so huge (and they were. The first time I installed, it broke my FAT). It was just not worth it. Python works great on Windows, as does Corman Lisp.

I'm passionnate about programming, but computers and OSes are just a pain getting in my way.


I'm not worried about him not knowing what a tar file is - fine, he likes Windows, whatever.

What greatly disturbs me is his choice of text editor. Notepad? Seriously?! If you've only programmed with IDEs or Notepad, that is a serious problem. I love vi, and am competent in emacs, but even in a Windows environment he should go for Notepad++ or something...


uhmmmm as a windows user, tars are all over the place if you look for them, but then, i might have found them as a hacker.


I had something similar to this happen to me in my 2nd semester programming class at Berkeley. I was in the lab for a class that was taught in Java for data structures (and C when the memory management talk started). We were 5 weeks into a 10 week class. The guy programming to my left turned to me and asked me what "double equals" (as in ==) meant. I was stunned, but then answered. Later it struck me: how the hell did this guy get through the metacircular evaluator in the first semester? How had he gotten through the previous 5 weeks of assignments? I think about it even now and wonder.


Switch statements?


For what it's worth, I have 15 years of Unix work experience and I don't think I saw any tar file until graduating (my university was a mostly-DOS shop). I learned mostly on the job... man vi was painful... but now I can't use an editor for humans anymore.


Interesting. To become a competent programmer, a person has to spend a significant amount of time exploring and learning all of the nuances involved.

What other fields of study require this sort of initiative outside of the classroom? Is it enough for a chemist to go to class and complete the homework?

I can't think of any field where curiosity is as important as in computer science and where the classroom is so insufficient.


Programming is an art. All fields of art that I know of require this kind of outside initiative to be any good.


To be honest, I still don't completely see the point of tar - isn't it redundant, since zip puts things into an archive anyway? Coming from windows, I never used tar, I just zipped everything. Any now that I am on Linux, I never had the need to tar anything. Untaring thankfully is provided by the Gnome File Explorer.

Using Notepad for programming, however, is really odd...


If you have a folder full of media files (jpg|mp3|avi) then zip is going to waste a lot of time and CPU cycles over just tar-ing it all up.

Other than that, I've just used tar directly in some edge-cases to fit within some constraints.


unless you just want to _quickly_ package some files, use tar, skip the compression.


tar's specialty was writing archives directly to tape (Tape ARchive) and minimizing tape-seeks as much as possible. Yeah, it's a pretty old program.


In my program, we had classes (6.033 http://web.mit.edu/6.033/www/, I'm looking at you) with tasks that practically required you to use *NIX systems, know how to open LaTeX'd Postscript files, install open source libraries from tar files, etc. before you graduated. It's not that those things were explicitly the point of the assignments; it's that those things were simply part of the requisite yak shaving for successfully completing the real tasks.


I'm not a programmer and I found your example horrific.

It seems like a biz guy not knowing what excel is.


I meet a lot of kids like this at my school. They don't learn anything on their own or do any work if it's not part of some pre-defined "program" or "track".


4 years without a single CS professor using tar to distribute anything to their students sounds like a crummy CS program to me.


My answer: no, but he should want to find out.


yes.


That's just stupid :S Clearly, he hasn't compiler a single proggie from source, except maybe his own.


The point is moot. Storage schemes are not important in themselves.


This isn't a big deal.


Why isn't it?


What's important is whether this person has any important skills that you care about. Also, it's quite possible to get by under Windows without knowing anything about tar files.


The question is how can he have studied a wide enough variety of source code in a wide enough variety of languages to be competent without having seen tarballs? The best source code on the planet is generally available in tarball form (and occasionally also a zip as an afterthought). Not having seen a tarball means, "I have no interest in seeing other peoples code", which means they will never write good code. It takes years of reading and learning from other peoples good code to write good code of your own.


I think It's clear that what is important is the skill that this person has. However, this is likely a good indicator that the student has not put a lot of energy into the field beyond what was required for class.


"Getting by under windows" doesn't really scream 'great coder' to me.


Windows has excellent development tools.


this is important, because anyone with any degree of genuine curiosity will have at least seen a tar file in the context of compression. if you use winrar, tar files are included in the open file list. with any sense of curiosity and intuition one would guess a tar file has to do with compression.

i may not expect someone to know how to use a tar, but i would expect them to know what one is.


...except that a tar file really has nothing to do with compression at all. It's just a way of serializing a hierarchy of files into a single file, without any compression. The compression comes when you run gzip or bzip2 (typically using the -z or -j option to tar) on the tar file.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: