I seem to be having a hard time finding any sort of smalltalk tutorial that doesn't assume I'm already a master programmer in some other language.
...That's not to say I haven't read, and executed examples from, a few of them. I've followed along with the laser game development guide by Stephan B Wessels (I can find a link if anyone wants it), I've read most of Squeak By Example and a few others, so I have explored enough for a basic understanding. My problem is that smalltalk is my first programing language, So I need to figure out how to break a problem down to something I can code out (I need to learn to "scratch-code" in a workspace).
Does anyone know where I can find such a guide, or even outline one for me to build as I learn?
On another note, I have tried to learn the "basics" of programing in other languages (most recently C++), but now that I've been exposed to smalltalk, it all seems cumbersome and scattered. I end up getting too frustrated with the need to reference some other part of the book so often, as well as the edit-compile-debug cycle.
-- View this message in context: http://forum.world.st/I-ve-never-written-a-line-of-code-but-want-to-be-a-pro... Sent from the Squeak - Beginners mailing list archive at Nabble.com.
Check out this thread: http://lists.squeakfoundation.org/pipermail/beginners/2010-October/007313.ht...
Amir
On Wed, 30 Mar 2011 00:00:56 -0700 (PDT) Tim Retz human.shield.117@gmail.com wrote:
I seem to be having a hard time finding any sort of smalltalk tutorial that doesn't assume I'm already a master programmer in some other language.
...That's not to say I haven't read, and executed examples from, a few of them. I've followed along with the laser game development guide by Stephan B Wessels (I can find a link if anyone wants it), I've read most of Squeak By Example and a few others, so I have explored enough for a basic understanding. My problem is that smalltalk is my first programing language, So I need to figure out how to break a problem down to something I can code out (I need to learn to "scratch-code" in a workspace).
Does anyone know where I can find such a guide, or even outline one for me to build as I learn?
On another note, I have tried to learn the "basics" of programing in other languages (most recently C++), but now that I've been exposed to smalltalk, it all seems cumbersome and scattered. I end up getting too frustrated with the need to reference some other part of the book so often, as well as the edit-compile-debug cycle.
The book "Joy of Smalltalk" by Ivan Tomek was written to teach programming in Smalltalk. You can find it at http://plato.acadiau.ca/courses/comp/tomek/jos.htm
It is for VisualWorks, so a lot of things will be different, but most of it will be the same. You should give it a try and let us see how well it works.
You could get a free version of VisualWorks, but the book was written 10 years ago so VisualWorks has changed since then, too.
-Ralph
On Wed, Mar 30, 2011 at 9:00 AM, Tim Retz human.shield.117@gmail.comwrote:
I seem to be having a hard time finding any sort of smalltalk tutorial that doesn't assume I'm already a master programmer in some other language.
...That's not to say I haven't read, and executed examples from, a few of them. I've followed along with the laser game development guide by Stephan B Wessels (I can find a link if anyone wants it), I've read most of Squeak By Example and a few others, so I have explored enough for a basic understanding. My problem is that smalltalk is my first programing language, So I need to figure out how to break a problem down to something I can code out (I need to learn to "scratch-code" in a workspace).
Does anyone know where I can find such a guide, or even outline one for me to build as I learn?
Have you looked at - http://www.pharocasts.com/ , more specifically http://www.pharocasts.com/search/label/getting%20started - http://squeakbyexample.org/ - http://pharobyexample.org/
Try to describe the problem you want to solve, so we could help.
Laurent Laffont - @lolgzs http://twitter.com/#!/lolgzs
Pharo Smalltalk Screencasts: http://www.pharocasts.com/ Blog: http://magaloma.blogspot.com/ Developer group: http://cara74.seasidehosting.st
On another note, I have tried to learn the "basics" of programing in other languages (most recently C++), but now that I've been exposed to smalltalk, it all seems cumbersome and scattered. I end up getting too frustrated with the need to reference some other part of the book so often, as well as the edit-compile-debug cycle.
-- View this message in context: http://forum.world.st/I-ve-never-written-a-line-of-code-but-want-to-be-a-pro... Sent from the Squeak - Beginners mailing list archive at Nabble.com. _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
This list is maintained by Stephane Ducasse: http://stephane.ducasse.free.fr/FreeBooks.html
He also wrote an excellent book, *Squeak: Learn Programming with Robots*that assumes no development experience: http://news.squeak.org/2008/10/28/squeak-learn-programming-with-robots-now-f...
On Wed, Mar 30, 2011 at 2:00 AM, Tim Retz human.shield.117@gmail.comwrote:
I seem to be having a hard time finding any sort of smalltalk tutorial that doesn't assume I'm already a master programmer in some other language.
...That's not to say I haven't read, and executed examples from, a few of them. I've followed along with the laser game development guide by Stephan B Wessels (I can find a link if anyone wants it), I've read most of Squeak By Example and a few others, so I have explored enough for a basic understanding. My problem is that smalltalk is my first programing language, So I need to figure out how to break a problem down to something I can code out (I need to learn to "scratch-code" in a workspace).
Does anyone know where I can find such a guide, or even outline one for me to build as I learn?
On another note, I have tried to learn the "basics" of programing in other languages (most recently C++), but now that I've been exposed to smalltalk, it all seems cumbersome and scattered. I end up getting too frustrated with the need to reference some other part of the book so often, as well as the edit-compile-debug cycle.
-- View this message in context: http://forum.world.st/I-ve-never-written-a-line-of-code-but-want-to-be-a-pro... Sent from the Squeak - Beginners mailing list archive at Nabble.com. _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
On Wed, Mar 30, 2011 at 07:21:39AM -0500, David Mitchell wrote:
This list is maintained by Stephane Ducasse: http://stephane.ducasse.free.fr/FreeBooks.html
He also wrote an excellent book, *Squeak: Learn Programming with Robots*that assumes no development experience: http://news.squeak.org/2008/10/28/squeak-learn-programming-with-robots-now-f...
While it is available as a free pdf, you can of course you can buy the actual book also:
http://www.apress.com/book/view/1590594916
It's a good idea to buy a copy because it looks nice on your bookshelf, and purchasing it supports the work of the author:) You can also buy it as an e-book if you prefer.
Dave
On Wed, Mar 30, 2011 at 2:00 AM, Tim Retz human.shield.117@gmail.comwrote:
I seem to be having a hard time finding any sort of smalltalk tutorial that doesn't assume I'm already a master programmer in some other language.
...That's not to say I haven't read, and executed examples from, a few of them. I've followed along with the laser game development guide by Stephan B Wessels (I can find a link if anyone wants it), I've read most of Squeak By Example and a few others, so I have explored enough for a basic understanding. My problem is that smalltalk is my first programing language, So I need to figure out how to break a problem down to something I can code out (I need to learn to "scratch-code" in a workspace).
Does anyone know where I can find such a guide, or even outline one for me to build as I learn?
On another note, I have tried to learn the "basics" of programing in other languages (most recently C++), but now that I've been exposed to smalltalk, it all seems cumbersome and scattered. I end up getting too frustrated with the need to reference some other part of the book so often, as well as the edit-compile-debug cycle.
On Wed, Mar 30, 2011, Tim Retz wrote:
My problem is that smalltalk is my first programing language, So I need to figure out how to break a problem down to something I can code out
Computer scientists are taught courses like "algorithms" and "data structures". Others like me end up skipping these, even though some courses are available in books or in open courseware, usually in Scheme or Java languages. But that is only part of what is needed to get going.
As a fellow newbie, I will offer three thoughts.
(1) I found my previous programming knowledge quite unhelpful.
(2) I found that digging into someone else's code to maintain it has vastly accelerated my learning. By maintain, I mean add or tweak a feature, or track down a bug (even if someone else beats me to the finish line.)
(3) Etoys is a much simpler language than Smalltalk, but building an Etoy is _real_ programming, while playful and fun even for an adult. Dragging, dropping and throwing away failed experiments taught me a lot about how to compose an application from objects. It also helped me to see why a method or Etoys script is rarely more than three lines. However I didn't need to worry about inheritance or classes, nor did I have to memorize Smalltalk's mouse clicks, shortcuts, menus and modifier keys, or navigate a vast and complex class library.
(I need to learn to "scratch-code" in a workspace).
Not necessarily. The workspace is where the system offers the least help. Browsers, inspectors and the debugger seem, to me, to offer better training wheels or water wings.
On Wed, Mar 30, 2011 at 9:59 AM, David Corking lists@dcorking.com wrote:
On Wed, Mar 30, 2011, Tim Retz wrote:
My problem is that smalltalk is my first programing language, So I need to figure out how to break a problem down to something I can
code
out
(3) Etoys is a much simpler language than Smalltalk, but building an Etoy is _real_ programming, while playful and fun even for an adult. Dragging, dropping and throwing away failed experiments taught me a lot about how to compose an application from objects. It also helped me to see why a method or Etoys script is rarely more than three lines. However I didn't need to worry about inheritance or classes, nor did I have to memorize Smalltalk's mouse clicks, shortcuts, menus and modifier keys, or navigate a vast and complex class library.
I agree whole heartedly, I have learned more about "programming" by playing with Etoys and interacting with the folks on the mailing lists, than I did from my Computer "Science" courses in college.
Stephen
On Wednesday 30 Mar 2011 12:30:56 pm Tim Retz wrote:
My problem is that smalltalk is my first programing language, So I need to figure out how to break a problem down to something I can code out (I need to learn to "scratch-code" in a workspace).
Start with your own programming problem first (not an exercise from the textbook). Pick an itch that badly needs scratching :-).
Terse Guide is a handy reference for scratch coding in Workspace.
Does anyone know where I can find such a guide, or even outline one for me to build as I learn?
Blue Book is an excellent guide book for language concepts but a bit dated these days.
Morphic Programming by John Maloney is an excellent guide for event-driven programs.
Squeakland (www.squeakland.org) would be a good starting place for both issues. Etoys, with its Quick Guide help, lowers the barrier for learning Smalltalk.
HTH .. Subbu
I now realize I need to have some sort of example for anyone to work with, so here's my current plan: I know that "Diving in" would be the best way to learn, so (With the help of boredom) one day when playing minesweeper I thought to myself: "I wish I had an empty playing-field, where I could click to place mines, and the surrounding cells would number themselves off. That would totally help my strategy, and I could expand it into a working minesweeper game really easily. I bet that'd be a great 'my first smalltalk app'!" Now, I know I would have to make some sort of grid with cells, and make the cells aware of their surroundings. My biggest issue is that I don't have the experience to know where to start.
Every guide I've found (with one exception) has more or less just given code to make something work, without much insight as to how they got the idea to do what they did. I can copy and paste methods all day long, but I won't learn anything.
The exception I mentioned above was the "Bots Inc." tutorial. It was fantastic, made me think, and I really felt like I was learning. My only problem is that is ended too soon. I wish it would go on to show you how to build your own systems and, well, just keep going.
On a side note, I'd like to mention that I've been at this off and on for some time now, and I was hesitant to write a question for someone to respond to directly. Before now a Google search to find if anyone is having similar trouble is all I've had the confidence for, making this a very pleasant experience. (I'm 21, old enough to know I'm still a kid, and be nervous about wasting people's time.)
I feel I should also mention my long term goals. I know it'll be a LONG while before I'm successful, but I hope to eventually (I'm thinking in terms of years from now) write my own OS, and everything that runs in it. I sort of hate windows, and want to be able to change anything I want at any given time (I know I'll need to learn more than smalltalk, but I have to start somewhere!), but I don't want to have to deal with how someone else thought things would work best.
However, I'm starting to see that this idea is likely hindering my learning experience. (I want to do it all myself, which pushes me away from other peoples (working) code in favor of struggling to solve the problem myself.) I have also, once, managed to run a program I was working on in my head to see what things where doing (And it was quite a trip!), if it's worthy of noting.
Wow, This message ended up being a lot longer than I thought it would, I hope I didn't leave anything out! ...And for whatever reason, I was unable to post a reply for a few weeks. It's working now though.
-- View this message in context: http://forum.world.st/I-ve-never-written-a-line-of-code-but-want-to-be-a-pro... Sent from the Squeak - Beginners mailing list archive at Nabble.com.
On Mon, Apr 4, 2011 at 3:49 PM, Tim Retz human.shield.117@gmail.com wrote:
I now realize I need to have some sort of example for anyone to work with, so here's my current plan: I know that "Diving in" would be the best way to learn, so (With the help of boredom) one day when playing minesweeper I thought to myself: "I wish I had an empty playing-field, where I could click to place mines, and the surrounding cells would number themselves off. That would totally help my strategy, and I could expand it into a working minesweeper game really easily. I bet that'd be a great 'my first smalltalk app'!" Now, I know I would have to make some sort of grid with cells, and make the cells aware of their surroundings. My biggest issue is that I don't have the experience to know where to start.
Every guide I've found (with one exception) has more or less just given code to make something work, without much insight as to how they got the idea to do what they did. I can copy and paste methods all day long, but I won't learn anything.
The exception I mentioned above was the "Bots Inc." tutorial. It was fantastic, made me think, and I really felt like I was learning. My only problem is that is ended too soon. I wish it would go on to show you how to build your own systems and, well, just keep going.
On a side note, I'd like to mention that I've been at this off and on for some time now, and I was hesitant to write a question for someone to respond to directly. Before now a Google search to find if anyone is having similar trouble is all I've had the confidence for, making this a very pleasant experience. (I'm 21, old enough to know I'm still a kid, and be nervous about wasting people's time.)
I feel I should also mention my long term goals. I know it'll be a LONG while before I'm successful, but I hope to eventually (I'm thinking in terms of years from now) write my own OS, and everything that runs in it. I sort of hate windows, and want to be able to change anything I want at any given time (I know I'll need to learn more than smalltalk, but I have to start somewhere!), but I don't want to have to deal with how someone else thought things would work best.
I'm new to this Small Talk too and I have you by 49 years. If I understand your point of view then you will stay frustrated a very long time. Take a look at the history of Small Talk. Listen to some of Alan Kay on video. It will help you get a real perspective of where Small Talk came from. Way back to Sketch Pad.
Why invent the wheel again. Later
However, I'm starting to see that this idea is likely hindering my learning experience. (I want to do it all myself, which pushes me away from other peoples (working) code in favor of struggling to solve the problem myself.) I have also, once, managed to run a program I was working on in my head to see what things where doing (And it was quite a trip!), if it's worthy of noting.
Wow, This message ended up being a lot longer than I thought it would, I hope I didn't leave anything out! ...And for whatever reason, I was unable to post a reply for a few weeks. It's working now though.
-- View this message in context: http://forum.world.st/I-ve-never-written-a-line-of-code-but-want-to-be-a-pro... Sent from the Squeak - Beginners mailing list archive at Nabble.com. _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
On Apr 4, 2011, at 5:49 PM, Tim Retz wrote:
The exception I mentioned above was the "Bots Inc." tutorial. It was fantastic, made me think, and I really felt like I was learning. My only problem is that is ended too soon. I wish it would go on to show you how to build your own systems and, well, just keep going.
Hi Tim,
I like your attitude about programming. I too like Smalltalk for similar reasons -- you can dive down to the very root of the code and see how things are working, and feel free to break -- er, I mean, replace -- any or all of it.
To get a good feel for what's possible in Squeak and how to do it, some more good recreational reading would be the two original Mark Guzdial Squeak books. Keep in mind that their examples mainly apply to 2.3-era images. Also really great to keep up the excitement about "what's possible" IMHO is Smalltalk-80: The Interactive Programming Environment (Goldberg). This defines the feel of "exploratory" programming IMHO. Type some code in a Workspace, Do it, see what happens.
When it comes down to actually coding and getting projects done, my favorite books have been:
- An Introduction to Seaside (Perscheid et al.) - Smalltalk, Objects and Design (Liu) - Squeak by Example (Ducasse et al.)
Also one of the Kent Beck books like Smalltalk: Best Practice Patterns but I can't recall if that was the one. The original 1983 Byte magazine issue all about Smalltalk is also pretty neat.
Have fun, Tim
I've been looking for this issue of Byte for a long time - are there any scans online? It's certainly a seminal issue!
Amir
On Tue, 5 Apr 2011 10:11:34 -0500 Tim Johnson tjohnson@iwu.edu wrote:
Also one of the Kent Beck books like Smalltalk: Best Practice Patterns but I can't recall if that was the one. The original 1983 Byte magazine issue all about Smalltalk is also pretty neat.
On Apr 5, 2011, at 11:26 AM, Amir Ansari wrote:
I've been looking for this issue of Byte for a long time - are there any scans online? It's certainly a seminal issue!
I've found a few of the articles available individually on the interwebs, if I recall correctly.
But I was lucky enough to find the whole issue in a volume here at the library!
BYTE (.com) is supposed to resume publishing again soon; I wonder if the new entity will be able to provide access to older articles...
- Tim
beginners@lists.squeakfoundation.org