/prog/ I don't understand data structures very well and I have a test next week that will either make me or break me. I am usually a star student but something about me/data structures/teacher isn't right. I pay attention in class and take pages and pages of notes and every night I read the related material for at least 1-2.5 hours each and every night although I still find myself lost. Please give me advice on how I can better understand this subject.
Noo don't sage mah thread.
I get the pointers, I get the structures, I get the balancing, I get the manipulations but, I just can't put it all together or something. Please, there has to be people out there who struggled. Please just tell me how you overcame the obstacles, what tricks did you use to learn the material, who did you turn to for advice and help.
Name:
Anonymous2007-10-25 23:07
Change your major to business. All the real CS kids are sleeping in past noon and not showing up to class.
Do you have any older friends who have been there and done that? if so just keep nagging them until they show you the ropes it worked for me and ive been successfully programming for 13+ years
Name:
Anonymous2007-10-25 23:25
there are no tricks and no secret formulas. hell, no silver bullet. no vampires either.
just practice and reading. having someone to guide you and telling you what you're doing wrong also help.
Also, read sicp (not trolling btw)
Name:
Anonymous2007-10-25 23:27
>>6
We actually haven't used the structures, but instead are focusing on making the structures from scratch. Would using the structures for simple games or data help me understand them better? Also the only ones we have done so far are things like simple search algorithms, red-black trees, binary search trees, avl ect...
Name:
Anonymous2007-10-25 23:30
>>8
I guess I'll just keep grinding away then. Also, I'm VERY new to CS so I guess I'll buy the book you suggested, Thanks anon.
>>9
Yes, absolutely. If you haven't used your structures in a program, you haven't really come to grips with them. Just contrive something that involves managing data, even if the actual application is somewhate silly. It's really something you should have been doing all along, but you should give it a shot now.
>>1
You don't get into programming by taking classes, just like you don't get into auto mechanics by taking classes. You get into those by tinkering with them in your spare time, building hobby projects, and forming your own practical understanding. Then you can enter academia and grow your knowledge.
Name:
Anonymous2007-10-26 3:08
>>17
True. Since OP is already in classes, it's going to be kind of a crunch, but OP needs to play with this shit a lot rather than just doing school work as assigned (also important, of course). CS people are lucky enough to be able to do this, since computers are everywhere and compilers are free. You've got professional facilites available to you. Just imagine needing to purchase thousands of dollars of equipment before you could write a proper program. That's how it is in most fields. You CS kids don't know how good you have it.
OP, I want to see you reading at least one CS paper per week, and learning every living language you hear about well enough to read it. You can study the history of programming in your spare time. If you care about being successful in the field (not just grinding out programs that work often enough to get okayed for deployment, but writing good programs), this is what you'll be doing.
You have no idea how often I'm talking to a CS major and find myself delivering a lecture rather than having a discussion. You and your peers are fucking clueless, and it's all your fault for not reading and not practicing, and above all, not knowing how to consult documentation.
Name:
Anonymous2007-10-26 3:54
Truth, this thread has been surprisingly helpful. So I'll jump on the bandwagon and advice him to read SICP as well and just learn by practicing. Write lots of software. And keep in mind lists and dictionaries ae like violence: if they don't work, use more.
Name:
Anonymous2007-10-26 8:13
Wow thanks everyone! And your points are taken, now I think I see where my fault was, I really do love CS it's sad how I didn't connect the dots and have fun with the languages instead of only doing class work. For being my first time in /prog/ you guys sure showed me not everyone here thinks they are on /b/ 24/7.
Name:
Anonymous2007-10-26 8:19
>>20
When you pick a personal project that you can use to practise your skills on, make sure that it's complicated enough for you to learn new things, but not too complicated that it pisses you off.
A good one might be a simple multiplayer game such as scrabble or backgammon.
Name:
Anonymous2007-10-26 8:49
Well, for me it was
-Dead on sharp, experienced professors when I was an
undergradute. These guys were in their 50s and 60s and
had their explanations perfected after decades of teaching.
They instantly assessed your intelligence and tailored the
explanation to you. Nowadays, profs are 27 year old
Pakis and Afrikkaners doing teaching as a temp job,
so tough luck.
-A pretty good algorithms book. All I remember is what it
looked like: mustard yellow, 3 inches thick, and small print
to fit in all the information and examples. I don't have
it now because the data structures/algorithms I need are
in libraries. I couldn't code a quicksort or Gaussian
Elimination now to save my life, but I was master of them
when I took my exams.
-Unix man pages. I grep'd them for keywords a lot when I
started out.
-Brian Kernighan has a Zen approach to book writing and
programming. K&R C book was clear and concise and set the
programming standard for many people. Kernighan's HOC
calculator helped many people get started in interpreters
and compilers.
-Nowadays my starting points are wikipedia, then
directory.fsf.org, then sourceforge.net, then google.
I'm lying a little because I don't want the spammers in here
screwing up my real favorite coding web site.
In general, remember that 90% of everything is crap, and
you just have to keep searching until you find non-crap. That
goes for text books, /prog/ replies, data structure tutorials on the web, and your own code. So start visiting University book stores and browsing the text books until you find explanations that are clear to you.
Name:
Anonymous2007-10-26 8:54
>>21
Is that really doable at my level? I have been struggling to find a project to do though, should I use walkthroughs or only use my knowledge about the game?
Name:
Anonymous2007-10-26 8:57
>>23
If you are a college student and know any programming at all, you should have no problems whatsoever implementing a simple multiplayer board game. (I'm not >>21)
Name:
Anonymous2007-10-26 9:04
>>22
Wow, thanks for the advice I am definetally going to keep these things in mind and I see what you are talking about with the professors(although most of the younger ones are still great teachers) . Thank you for taking the time to tell me your knowledge.
Name:
Anonymous2007-10-26 9:13
>>23
Yes, but don't get the computer to play the other player, make it for humans only. (You could always go back to it and add some computer player AI if you want to and also when you've developed more advanced skills.)
Name:
Anonymous2007-10-26 9:15
>>22
These days you'd be better off with web-based documentation than Unix man pages, especially for APIs and the like.
man kinda sucks, it's based on such a piece of shit of a legacy that troff is, and it doesn't have full-text search. Then you have GNAA info pages, which are even worse, because they come with a piece of shit of a browser that doesn't even scroll, fucks up past pages, has no "back", has no full-text search, and fails at everything something could fail at.
I'm sad to find fucking Microsoft got the upper hand here; CHMs are as powerful as webpages, as structured as info pages, compressed into a single, easy to manage file, and have full-text search. /r/ CHM for GNAA.
I'd like to extract the individual files from a CHM file (becaus the MS search is NOT awesome).
Do you know a good CHM extraction tool?
Name:
Anonymous2007-10-26 13:20
>>31
Unzip. They're just zip files that have been renamed to have a different suffix.
Name:
Anonymous2007-10-26 14:41
well this thread was good while it lasted thx for the advice every1
Name:
Anonymous2007-10-26 15:16
I have happened across web sites with teaching demos for data structures and algorithms. I had no reason to note them, so I have no list for you. Mainly it was when I looked into some teaching oriented language like Smalltalk Squeak or Logo. Some schools teach programming to young children, and they develop visual aids to explain stacks, linked lists, etc. For Uni level, various professors put their class notes online, but again I had no reason to note those sites. I was waitng for someone more recently out of school to answer you; they WOULD have reason to note those sites.
>>23
Try working just from a list of rules for the game. That way you you have a checklist to see what you need have working and you don't have to rack your brains on that score, and you get to practice translating a specification in terms of behavior into a program that will make it happen.
Name:
Anonymous2007-10-27 5:03
How is it possible not to understand data structures? Very very sad.
Name:
Anonymous2007-10-27 9:46
>>36
I'm just a student, I'm still learning. Maybe you were born with the understanding.
Name:
Anonymous2007-10-27 10:22
>>37
That's right. He's an EXPERT PROGRAMMER. You'd better not anger him.
OKAY THATS IT YOU FUQIN ANGERED AN EXPERT PROGRAMMER GODFUCKIGNDAMN
FIRST OF ALL, YOU DONT FUQIN KNOW WHAT A MAN PAGE IS
SECONDLY, THIS IS /prog/ DO NOT DEMAND USEFUL ANSWERS THE WAY YOU WANT THEM TO BE
THIRDLY PROGRAMMING IS ALL ABOUT PHILOSOPHY AND ``ABSTRACT BULLSHITE'' THAT YOU WILL NEVER COMPREHEND
AND FUQIN LASTLY, FUCK OFF WITH YOUR BULLSHYT
EVERYTHING HAS ALREADY BEEN ANSWERED IN >>17 and >>34
>>1
DO YOUR OWN FUCKING HOMEWORK YOU WORTHLESS PIECE OF SHIT. >>2-52
QUIT FUCKING HELPING HIM. ANYONE WHO CAN'T GRASP DATA STRUCTURES SHOULD GO BE A BUSINESS MAJOR. GET BACK TO TROLLING, GUYZ
/prog/ IS ONLY PLEASED WITH ONE THING: EXPERT PROGRAMMERS WHO HAVE READ SICP, KNOW HOW TO FORCED INDENTATION OF CODE, OPTIMIZE CFLAGS, -O3 -Wall, AND HAVE ACHIEVED SATORI.
You study computing science to learn how to think about problems. It is absolutely NOT about knowledge. If you first self-teach yourself then going to university is rather pointless.
You are correct in that learning to solve problems is a large part of computer science, but it is intimately tied into knowledge of the subject - and by that I mean the theoretical groundwork of computer science.
I taught myself a fair bit of practical knowledge before attending university, but it was learned in ignorance of the theory that pins it up. For me at least, my computer science course was far from pointless. It brought me closer to Satori than any D-I-Y Java book could ever do.
Name:
Anonymous2007-10-30 15:39
>>68
first year becomes quite pointless if you've already did self study before university, second year however, haven't been there yet
>>69
he probably meant learning ABSTRACT BULLSHITE via SICP or something
Name:
Anonymous2007-10-31 0:26
>>68
I am >>17. Knowing how to attack problems, what programming discipline is and how it's applied, what not to do, abstract bullshite, etc, are all knowledge just as well as knowing programming semantics of 42 languages.