|
Author |
Topic: Algorithms: Filling in the gaps (Read 543 times) |
|
grefo Guest
|
Algorithms: Filling in the gaps
« on: Apr 2nd, 2004, 3:32am » |
|
In a recent job interview, the interviewee(?) told me that self-taught developers typically have a gap in their knowledge when it comes to translating a problem statement into the abstract world of programming languages. I am aware of this hole which, appearently is a good trait, but where to go to fill it in? Would someone be willing to share the steps they took in finding a problem, creating the algorithm, and then programming the solution? This could be beneficial to new Processing users as it could give some guidance in their learning. Would anyone be willing to mentor newbies? BTW, to the folks who created this amazing tool, thanks. I have been following it for a couple of years, and greatly appreciate the efforts! ~Greg Kingston, WA
|
|
|
|
justo
|
Re: Algorithms: Filling in the gaps
« Reply #1 on: Apr 2nd, 2004, 4:41am » |
|
i guess it might be "algorithms and data structures"? its a pretty early course in any computer science track, and one thats actually a lot more interesting (well, maybe not interesting) and useful than it sounds. its usually only about writing programs to solve various problems. the simplest way to fill the "hole" would be to pick up a book on the subject. there are literally like a billion of them, so the trick is really just to get some recommendations on which books are actually interesting and have problems in them...then once you have the book, actually do the problems. nothing is a substitute for practice. another idea is to take on a bigger project than your typical processing sketch. think about making a couple of classes of objects that interact or work on a user interface...nothing will make you work your algorithmic brain muscles more than trying to get a UI to play well with your other classes. as for help, i'll try and be around more again, since i'm also trying to pick fry's brain on how processing works i'll answer any questions the best i can, or at least point you in the right direction. good luck. justo
|
|
|
|
grefo
|
Re: Algorithms: Filling in the gaps
« Reply #2 on: Apr 2nd, 2004, 4:54am » |
|
It's funny you should mention data structures and algorithms as the guy I was interviewing with said the same exact thing! Although he suggested looking for a book with those subjects listed in the title, he wasn't able to recommend a specific book. Thanks for the reply! ~Greg
|
~greg kingston, wa
|
|
|
justo
|
Re: Algorithms: Filling in the gaps
« Reply #3 on: Apr 2nd, 2004, 5:18am » |
|
yeah, thats the phrase everyone uses to describe that whole area of computer science. sorry i dont have any recommendations either.
|
|
|
|
fry
|
Re: Algorithms: Filling in the gaps
« Reply #4 on: Apr 2nd, 2004, 5:26pm » |
|
hm, i wish i knew of a book too, though it gives me an idea for something that we ought to address in processing tutorials or courses. "data structures and algorithms" is usually a first or second semester computer science course, and goes through things like linked lists, trees, graphs, graph traversal (depth first search, breadth first search) recursion, searching, sorting, calculation of running time (O-notation), hash tables, and p vs np problems. if you find a decent-looking book that covers this stuff, you should be set. unfortunately, the books are usually *awful* (heavy on notation and minutae, light on "what does this mean?" and "why?") and it's better taken as a course with a good instructor who can properly put things in perspective. in general, this is nuts & bolts stuff that you'll likely never use in practical applications, which is why self-taught people often have a gap in these areas (or, are surprised to find out that their 'hack' for getting something done actually had a name or was a whole branch of computer science). especially in languages like java (used by p5) where things like Hashtable are built into the class library and readily available. what's useful about knowing the concepts, however, is that (perhaps as your interviewer was getting at) is that this sort of understanding provides the necessary thinking tools (an intelligent bag of tricks) for tackling a problem. ie. knowing that it's slow to search through a list of 10,000 names one by one, but rather a hashtable is many times faster. at any rate, having learned programming you'll have a much easier time picking up the data structures stuff, especially because it does so much to simplify and build on what you already know. i was a self taught programmer until taking a couple of courses during undergrad which really helped to fill things out. if you can do it, i'd recommend a course over a book--this might be one of the few areas where a book may not provide the right sort of background and perspective. but if that's impossible, hopefully someone else might have some good book suggestions. good luck!
|
|
|
|
Ben Stewart Guest
|
Re: Algorithms: Filling in the gaps
« Reply #6 on: Apr 4th, 2004, 6:25pm » |
|
Although if the Amazon ratings are anything to go by, the book that Berkeley is using isn't a very good one: http://www.amazon.com/exec/obidos/ASIN/0471469831/
|
|
|
|
grefo
|
Re: Algorithms: Filling in the gaps
« Reply #9 on: Apr 5th, 2004, 4:38pm » |
|
Thanks for all the input. This will help tremendously, especially the MIT Opencourseware. That is trully one of the greatest things to happen to the open source community. And I second adding algorithms to any tutorial for Processing. Again, thanks. ~Greg Kingston, WA
|
~greg kingston, wa
|
|
|
Ride215
|
Re: Algorithms: Filling in the gaps
« Reply #10 on: Apr 5th, 2004, 8:43pm » |
|
I recently picked up a 1983 book called "Data Structures and Algorithms" by Alfred V. Aho and John Hopcroft. I have finished one introductory course in java and find this book EXTREMELY useful. (prereq: basic syntax knowledge of gen. programming language) I have no idea how popular or easy it is to aquire this book but if possible, by all means read it. It is the wisest general programming information I have ever come across.
|
|
|
|
TomC
|
Re: Algorithms: Filling in the gaps
« Reply #11 on: Apr 18th, 2004, 2:14am » |
|
People might like to browse this online "Dictionary of Algorithms and Data Structures" http://www.nist.gov/dads/ It's quite heavy on the maths, but for gaining familiarity with keywords and terminology it could be quite handy.
|
|
|
|
|