Hey, I'm a relative newbie to programming. I've picked up some very basic Java (File I/O, GUIs, inheritance) and would like to take a look at functional programming - in particular, I would like to learn Scheme. I'm having some trouble finding a Scheme implementation I can understand. Interpreters are weird; I'm not sure how to save my programs and create executables. I've downloaded PLT Scheme, but I would prefer using something less condescending, something similar to NetBeans. Is there a plugin or tool that will allow me to quickly and easily create and manage Scheme programs? All help is appreciated!
some nice links for you
both are course books. The courses with video lectures are available on the MIT opencourseware site.
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/index.htm
Well I can't help You much with the tools. I tried MIT implementation and got a bit lost too, but I'd like to recommend a book which is a great source of knowledge about programming in general and uses scheme for illustrating ideas. If You din't come across this one yet, You have to check SICP
Maybe this isn't the best answer but one of things I have found over the years is that a lot of new programmers get pulled in too many directions. If you are just starting out the best thing you can do (my opinion) is to learn one programming language really well. If possible I would try to make this the language you are working in, if you are not working in a programming job then I would try to pick a language with the best prospect of getting a job. Once you have mastered this one language then learning other languages will help enhance your already solid foundation and help make you an exceptional programmer.
Don't get me wrong, learning Scheme is a great thing to do but until you have mastered one language you will have a harder time moving up the ranks and landing that perfect job. In the end most companies are looking to hire the guru's, make sure you are in this group.
SICP (Structure and Interpretation of Computer Programs) is sure a great book, but it is not necessary a good introduction to Scheme programming. Though, after some understanding of Scheme, reading SICP is recommended.
Learning to use Emacs as an editor would be useful. As a Scheme implementation I would recommend something like CHICKENscheme. Its manual describes for example how to deploy programs.
An alternative is a Scheme development environment like JazzScheme.
A good book for learning Scheme would be The Scheme Programming Language.
I took a programming languages course in college that was done entirely in Scheme, and the textbook we used is "Programming Languages: Application and Interpretation" by Shriram Krishnamurthi, one of the guys who helped write DrScheme. The textbook is available freely online. I found the book to be really helpful and informative when trying to understand the arcane mysticism of Scheme.
I wish I had learned Lisp when I was 16. (I started programming commercially at that age.) I didn't learn it until I was nearly 40. Where I was once blind, now I can see. (Well, I can see a few inches ahead of me anyway.)
I second the idea that someone else here posted about learning Emacs.
One good way to learn any language is to go solve problems on projecteuler.net.
I think the docs for plt-scheme is quite nice http://docs.plt-scheme.org/ is worth reading
End also: write code, write code, write code
If Java environment is already comfortable for you, then probably the best way is to use Scheme implementations that run on top of JVM. For educational purposes SISC is more than enough:
Alternatively, you could use Kawa or Bigloo.
If you're up to learning functional ways, and not necessarily bound to Scheme, then probably Clojure would be a right choice.
A nice beginner intro to Lisp is Common Lisp First Contact
Not a heavyweight course like SICP mentioned above, but a gentle introduction to the syntax, features and oddities of Common Lisp in a nicely formatted PDF optimized for screen reading.
Try the book "The little schemer" (http://mitpress.mit.edu/sicp/), it provides an unconventional but yet easy to follow tutorial on Scheme, and in particular teaches you how to "think" recursively, which is essential in order to understand Scheme (and other functional programming languages).