in Search
Welcome to Neopoleon - Sign in | Join | Help
Navigation: Home | Forums | Galleries

Computer science: Just add water

I'm still getting a lot of email about the "learn computer science at home for kicks" post that I put up a couple weeks ago.

Rather than responding to each email individually, a task which would require temporal resources that I simply do not have, and also because I'm guessing that for each person who responded there might be five more who wanted to but didn't, I'm going to summarize the most useful stuff that I've gotten to date from people.

Basically, if you're like me, then you don't even know where to begin with this stuff. A common theme among people who responded and wanted to be my tutor was this question: "What are your goals?"

It's strange how such a simple question can totally derail your simple plans to acquire a four-year computer science education in six months. The more I saw this question, the more I realized how absolutely little I knew about computer science.

So, here's what I'm going to do about it:

1) For the general overview of computer science, and so that I can get enough of a foundation to be able to answer the "What are your goals?" question, I'm going to pick up a copy of the book "Computer Science: an overview." It was recommended by a CS-prof friend of Mr. Sells named Joe Hummel. I had seen the book before, but I thought it looked too trendy to be useful. I was immediately suspicious of its elegance. But, if the heavyweights say to start there, then I'll start there. That's all right for me, though, as I like my computer science books the way I like my women: Hot tartlets with good fashion sense.

2) For getting a better understanding of the box itself, I'm dusting off assembly language skills that I haven't used in over ten years. I'm starting over with a copy of MASM (Borland TASM was my favorite "back in the day," but I'll take what I can get) and some tutorials. If there's anything that will remind me of how the gollywots of my computer are laid out, it's this slow, tortuous nightmare of a language (with which, I'll say, I had a helluva lot of fun in my youth).

That's it for now. The schedule's getting more and more packed everyday, so there's only so much I can do at any given time. Between the book and the assembly, I think I'll have a decent exchange going on between the theoretical and applied aspects of what I'd like to learn.

And, by this time next year, I'd like to be designing missile defense systems for the lowest bidder.

That's my goal, and with some assembly, an introduction to computer science, and a few white lies, I think I can get there.

Published Saturday, April 10, 2004 6:36 PM by Rory

Filed Under:

Comments

 

vbNullString said:

I got into programming without CS degree as well. I'm like you wanting to know more about computer itself. I started with HTML (I don't know if you call it a programming) and then went into ColdFusion, VB6, ASP, VB .NET and C#. When I look at it, I seems to like lower level languages as I do more programming. I don't have an intetion right now to learn assembly language, but I do want to learn C++ right now. I bought books on C++, but haven't started. I'm also interested in Java.
April 10, 2004 8:33 PM
 

Scott Allen said:

Missle defense systems are so last century. Biometrics and facial recognition == way of the future!
April 11, 2004 1:46 AM
 

Rory said:

"Missle defense systems are so last century."

Hey, man - that's cool - more missile defense system jobs for me :)
April 11, 2004 1:48 AM
 

Sven Groot said:

"For getting a better understanding of the box itself, I'm dusting off assembly language skills that I haven't used in over ten years. I'm starting over with a copy of MASM"

What are you doing that for? I'm a fourth year CS student, but I don't know x86 assembly (much, anyway). Unless you want to go into building high-performance optimizing compilers, you don't need to know that.

Reading books on digital design and computer architecture will give you a better understanding of the box than learning ASM will.
April 11, 2004 11:11 AM
 

GuyIncognito said:

yeah, wtf? are you just gonna go ahead and bypass cobol?

as for assembly, i liked:

The Art of Assembly Language
by Randall Hyde

also check out (not released yet):

Write Great Code: Understanding the Machine
by Randall Hyde

if you like reading books on you computer (i prefer a paper copy) you can even download the book here:

http://webster.cs.ucr.edu/

April 11, 2004 1:52 PM
 

Andy said:

Because x86 will make you think about how a machine really works when you are writing it. Right down to the level of gates and registers. Besides it can be fun. You can write functions in assembler and then strip away everything but the object code with some gcc tools then use C++ to read them in as a streaming function pointer rather than using a .dll. Dominic who's blog is on this domain has a really good example of doing that. You are doing the right thing Rory. Taking yourself to the next level rather than being stuck forever automating marketings CRM apps. Missile defense though? I turned down a job with Tritan because I don't want my code blowing up a village somewhere. However optical recognition and speech recognition = very cool. And the NSA is hiring if you are interested. 1,500 people this year and 1,500 more a year for the next five years. If you wanted to work on the bleeding edge that would be a great place to work. The two languages they use internally are C++ and Java. Here is a link to a post in my blog that touches on the very reason why you doing this is a good thing:
http://www.cadencoding.net/blogs/users/cornbread/permalink.aspx?id=16
April 11, 2004 3:01 PM
 

Joe Grenier said:

You go girl, uh, boy, uh, dawwwg...oh whatever.

I like your way of thinking. I didn't know how the stack really worked until I started reading about assembly language. IMHO, the deeper the understanding you have of the platform you write code for (everything from the CLR/JVM level down to the machine) the more resources you have to draw upon when solving problems. Not to mention the plain ol' satisfying intellectual curiosity aspect. In fact, the latter may be more compelling than the former. Anyhow, good luck and haf uh happy Eeeastahhhh!
April 11, 2004 6:49 PM
 

Josh Baltzell said:

That book is $70? I've got a poolpass for sale and a great offer for a time share resort house for sale too.

I've forgotted how different the prices become if you change over from "Technical Book" to "Text Book".
April 13, 2004 2:09 PM
 

Wayne Grey said:

Good for you to be focusing your intent. I'd agree somewhat with the other poster that CS doesn't necessarily imply a knowledge of assembly or the low-level functions of a particular system; it's about computation rather than computers. But, since computers are used for computation, studying their inner workings has its place in CS.

I'm not sure I'd agree with the classification by languages that Andy mentions, but the explanation following it that mentions a broad knowledge of theory, languages, and systems seems to address crucial points. For many problems, a wise developer may choose to use a high-level language and code that is clear rather than tense to save expensive developer time (and maintenance time). However, now and then it may be useful to be able to go low-level, or at least to be able to determine the low-level effects of a high-level program.

It seems as if that book does aim to highlight some big ideas in computer science, which is good. I'm more a student of math than one of CS, and more that than a programmer, so I mostly get away with just studying abstract concepts in algorithms and programming languages. But, even if a programmer doesn't necessarily need to know the difference between a regular language and a context-free language every day, it's still worth knowing something about algorithms to be able to determine the efficiency of a routine.
April 18, 2004 1:17 PM
New Comments to this post are disabled

About Rory

I *own* this site, you loser.