Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

As a complete newbie, I am curious as to what I should undertake after finishing Structure and Interpretation of Computer Programs (along with the MIT course). I am primarily interested in building desktop applications, and secondarily interested in web development.

How do I grasp the essence of desktop programming? And web? Are there any particular books or courses that survey the various areas of programming and the tools I need to build something solid?

share|improve this question

3 Answers 3

up vote -1 down vote accepted

The distinction between desktop and web applications is practically non-existent at this point. Most desktop application now have some kind of net connectivity and with various frameworks like Adobe Air you can develop "web" applications that pretend they are desktop applications. I consider myself a web developer so I can't say how you would get into desktop application development but if you want to start with web development then "Learning Javascript" by Shelley Powers should be a good starting point.

share|improve this answer
    
Adobe Air is more the exception than the rule; desktop and web application development in general is still quite different. –  Zsolt Török Nov 30 '11 at 16:58

Having learnt scheme should now put you in a unique position where you can identify syntactic sugar and the key features of a language rather well.

Scheme is useful, but if you are looking at larger programs, you should probably have a look at Common Lisp. Though it is not that "clean" and "academic" as Scheme, it is far more powerful. (http://gigamonkeys.com/book/ is a good reference)

Otherwise, like davidk01 said, you should look at JavaScript. It isn't far from scheme - very functional, very dynamic, and it enables you to write powerful web applications.(Crockford's lectures on Javascript, and his "The Good parts" book are a good reference.)

Then again, you could go and learn a strongly typed functional language, like Haskell or OCaml. OCaml is particularly good for writing desktop applications.

If you do want to stick with Scheme, like Macnell suggested, I would suggest you to pick up Racket. It is easier to get things done with that MIT scheme.

Finally, you could (and probably should) learn Python. It is probably the easiest language out there to pick up, and has wonderful libraries that make most tasks easy. You can write your own email client, or a program to fetch you lyrics, or any of those nice little first-desktop-apps. "Dive Into Python" by Mark Pilgrim is a great source.

share|improve this answer

A nice follow up and complement to Structure and Interpretation of Computer Programs is How to Design Programs, which will give you a different perspective on Scheme and help you grow as a programmer, helping you move on from the basics and work toward design.

The book is by the same people responsible for PLT Scheme, which is now called Racket.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.