You are not logged in.

#1 2009-09-07 22:50:44

Xs1t0ry
Member
From: Canada
Registered: 2007-07-01
Posts: 181

From Scheme: Next Steps?

Besides messing around with HTML when I was like 14, Scheme is my first real programming language. This is because it was adopted for first-year use a couple of years ago at the University of Waterloo (replacing Java, with plenty of controversy). So after my first year here, I feel like I have a pretty good handle on the Scheme programming language. I can see why they wanted to use Scheme with the frosh -- it's workings are very transparent and the fact that it is a functional programming language (as oppossed to an imperative language, for instance) makes certain concepts  (searching, sorting, anything that is a function itself, etc.) really intuitive for a first-time learner. All-in-all a good introduction to real computer science, not just "computer programming." (That's what SoftEng is for!)

That said, I come to you today, most venerable archers, with that ever-burning question, "where do I go from here?" My classes in the next 2 years will take me through a brief stint of python, onto C, then Java and finally diverge into a myriad different languages and paradigms, depending on my interests. I would like to expand my knowledge of programming outside of class--should I continue fiddling in Scheme? Perhaps take on Common Lisp (Scheme's somewhat brother)? Get a jump on Python (which many people rave about)? A combination of these? Something entirely different?

I would like to become more knowledgeable about Scheme as I already have the foundations laid. I'll probably experiment with Python and Common Lisp a bit later on. Thoughts on this?

Also, this may be a bit hand-wavy (even ignorant), but, with functional programming languages like Scheme, what kinds of projects do you tackle after you have grasped the syntax, semantics, basic and intermediate functions, concepts, etc? I have this idea in my head of certain languages being great for web design or databasing or making windows apps or making games or whatever, but when it comes to functional languages, from Lisp To Haskell, I really have no idea what they are for.

Please, enlighten me!


P.s. I am working with PLT Scheme in DrScheme

Offline

#2 2009-09-08 01:36:13

pauldonnelly
Member
Registered: 2006-06-19
Posts: 776

Re: From Scheme: Next Steps?

Since you're going to learn some other languages soon as part of your schooling, I don't think it would be a bad idea to spend some more time on your Scheme right now.

Offline

#3 2009-09-08 02:45:32

Xs1t0ry
Member
From: Canada
Registered: 2007-07-01
Posts: 181

Re: From Scheme: Next Steps?

Paul,

That is what I would like to do and I agree that it isn't a bad idea at all. The problem is, as part of my coursework, we have textbooks and problem sets that are specifically aimed at my level and developing my skills. Pursuing something like this out of school leaves me lost. I don't know what my exact skill level is, nor what kinds of programs I should be making.

Basically, I lack any kind of structured approach or plan (which normally I would have gotten from school).

Offline

#4 2009-09-08 02:51:57

Profjim
Member
From: NYC
Registered: 2008-03-24
Posts: 658

Re: From Scheme: Next Steps?

Yeah, I don't see the advantage in poking around in Common Lisp. Either delve more deeply into Scheme (here's a good _advanced_ resource: http://okmij.org/ftp/README.html) --- or move onto something different.

Unlike Scheme, you'll see Python used a lot in the wild. It's got some similarities with Scheme, but lots of differences too. That would be a good place for you to look if you want a change.

If you're into the functional aspects of Scheme, you'll want to learn Haskell. But probably you'll appreciate learning more mainstream stuff first like Python and C, rather than stay on a diet of academic, functional languages. (Myself I'm nutso about academic, functional languages.)

Offline

#5 2009-09-08 03:05:19

Xs1t0ry
Member
From: Canada
Registered: 2007-07-01
Posts: 181

Re: From Scheme: Next Steps?

Thanks for the insight and resources, Profjim. I've flirted briefly with Haskell (if only through my interest in xmonad and an overzealous first year CS prof), but I think I'll stay away from it for now. It looks intense!

Offline

#6 2009-09-08 07:02:11

scj
Member
From: Sweden
Registered: 2007-09-23
Posts: 158

Re: From Scheme: Next Steps?

How about Forth? It's sort of the inverse of lisp, where you are programming on almost bare metal, but with the same power of abstraction and metaprogrammability.

Offline

#7 2009-09-08 07:37:19

wuischke
Member
From: Suisse Romande
Registered: 2007-01-06
Posts: 630

Re: From Scheme: Next Steps?

If you want to do an paradigm shift, have some fun with C. I think it's a good candidate to teach you about imperative programming and lower-level thinking. (When people say it's glorified assembler, there's a certain point to it.)

Sticking with Scheme I would recommend you to learn about networking and program an HTTP server. (Use HTTP/1.0 to start with.) You'll learn about text parsing, networking and as you already know HTML, it helps to broaden your knowledge. (You could write a server in C, too. http://beej.us/guide/bgnet/ is a good guide to help.)

I started to write most of my code in Python about 2 months ago, with some Common Lisp and C sprinkled in. As all I currently do is web application programming (web.py) and Project Euler, Python serves me well to quickly express whatever idea I have. Batteries included libraries and clear syntax really save you a lot of time.
On the other hand it's pretty slow, particularly if one doesn't know the runtime characteristics for functions. (For instance testing for membership in a list is O(n) while testing for membership in a set is O(1)...makes code a lot faster.)

Offline

#8 2009-09-08 07:58:57

bernarcher
Forum Fellow
From: Germany
Registered: 2009-02-17
Posts: 2,281

Re: From Scheme: Next Steps?

scj wrote:

How about Forth? It's sort of the inverse of lisp, where you are programming on almost bare metal, but with the same power of abstraction and metaprogrammability.

Is Forth still alive?

It is over a quarter century ago since I had been heavily in Forth. It was an interesting experience, although somewhat "esoteric". Tended to become barely readable (and rather slow) in bigger projects.

Thus I feel Forth being no real way for the OP (at least for now). But if he ever wants to expand beyond Scheme, some Common Lisp experience would be profitable.

On the other hand, some good basic knowledge of C and Python would be desirable in any case.


To know or not to know ...
... the questions remain forever.

Offline

#9 2009-09-08 09:49:11

keenerd
Package Maintainer (PM)
Registered: 2007-02-22
Posts: 647
Website

Re: From Scheme: Next Steps?

bernarcher wrote:

Is Forth still alive?

Chuck Moore is still designing new chips.  His latest two (SEA Forth and Green Arrays) are pretty intense, with multicore hardware message passing at several GHz.

bernarcher wrote:

Tended to become barely readable (and rather slow) in bigger projects.

People say the same thing for Java now.  Actually, all programming languages ever.

If you want something really different, Forth is a mind trip.  Considering you already have Scheme and some Haskell (the other two big mind trip languages), putting your brain through the blender once more might be fun.  If you want to hack an embedded micro, Amforth is a good choice.  If I were starting out today, Factor is the best option for PCs.  It is basically a forth like language with solid libraries to actually get things done.

Staying on topic, "Simply Scheme" and "Logic Programming in Scheme" are good books.

Offline

#10 2009-09-08 17:02:13

rizzix
Member
Registered: 2005-10-22
Posts: 55

Re: From Scheme: Next Steps?

Xs1t0ry wrote:

Besides messing around with HTML when I was like 14, Scheme is my first real programming language. This is because it was adopted for first-year use a couple of years ago at the University of Waterloo (replacing Java, with plenty of controversy).

Oh a UW student! Join us at www.compsci.ca smile

Offline

#11 2009-09-09 02:16:30

skottish
Forum Fellow
From: Here
Registered: 2006-06-16
Posts: 7,942

Re: From Scheme: Next Steps?

Part of the reason why Python is fun because it's supremely well documented. I haven't done a lot of Python coding, but I've been able to find anything that I was looking for in a matter of minutes.

Offline

Board footer

Powered by FluxBB