Hello,
As I struggle, not without fun of course, to learn more about Pharo and its frameworks and idea came to my mind. We could put together some guidelines on how to become proficient in Pharo, and eventually come to be a power user and / or a developer. I read several of this recommendations on various list of other programming languages. Basically the idea is to have some sort of guide, with theoretical and practical stuff. For example: Beginners. Start by reading Pharo by Example for getting to know the system. On Agile development read XXXX book or article. On Object Oriented design and programming read this or that. For practice do this exercises from this book or site. For a background on Smalltalk read here or there Some stuff on algorithms. Intermediate Object Serialization read from here. The VM from here.. Building UIs Basic Frameworks Deep into Pharo Pharo for the Enterprise etc, etc, etc Advanced etc, etc, etc Like a road map to becoming a serious Pharo users and / or developer. I know this takes years but I think it would be very useful. Well at least for me. I sometimes get lost when I read things like serializing, marshalling, object memory, not to mention the internals of Pharo. Here is a link of something someone prepared for Haskell: http://stackoverflow.com/questions/1012573/getting-started-with-haskell Just an idea, it will be collaborative. I volunteer to keep and maintain the list updated in a place where it will be available to anyone but of course can't contribute much besides doing that. Cheers Nacho
Nacho
Smalltalker apprentice.
Buenos Aires, Argentina.
|
very good idea indeed. I try to do something similar with my video tutorial, my aim is to help beginners go beyond the basic of pharo. I find creating video tutorial much easier and more fun than writing stuff down. But yes we can do so much more in the area as well. On Tue, Jan 13, 2015 at 4:13 PM, nacho <[hidden email]> wrote: Hello, |
i really like that idea, but it seems like with someone as huge as a programming language, it might be best to reign it in a little. when people come to me asking for advice on learning a new language/ecosystem, i always have them come up with a small (but non trivial) problem to solve using that language.
the act of building something small and non trivial usually brings you head on with most of this concepts you are going to want to figure out pretty quickly.. but i do think this is a good idea.. On Tue Jan 13 2015 at 9:20:05 AM kilon alios <[hidden email]> wrote:
|
good idea. Now something I recommend you become practiced at.... Pick some system function, e.g. <Add package...> in the System Browser, bring up the halos on it and <Inspect Morph> from the debug halo icon. Look for a likely selector and put a HALT in that method. Then invoke the menu item and trace through the system with the debugger. You can learn a lot of magic from seeing how things work under the covers. Also, try checking Fogbugz for cases marked "Resolved (Fix Review Needed)" or "Resolved (Fix Reviewed by the Monkey)". Someone already did the hard work adding some feature or bug fix. You can learn A LOT from seeing what they've done. Again, put HALTs in some of the changed methods and trace through that code. cheers -ben On Tue, Jan 13, 2015 at 10:47 PM, sergio_101 <[hidden email]> wrote: i really like that idea, but it seems like with someone as huge as a programming language, it might be best to reign it in a little. when people come to me asking for advice on learning a new language/ecosystem, i always have them come up with a small (but non trivial) problem to solve using that language. |
In reply to this post by nacho
Le 13/1/15 15:13, nacho a écrit : > Hello, > As I struggle, not without fun of course, to learn more about Pharo and its > frameworks and idea came to my mind. > We could put together some guidelines on how to become proficient in Pharo, > and eventually come to be a power user and / or a developer. > I read several of this recommendations on various list of other programming > languages. This would be reallllllly great > Basically the idea is to have some sort of guide, with theoretical and > practical stuff. > For example: > *Beginners.* > Start by reading Pharo by Example for getting to know the system. > On Agile development read XXXX book or article. > On Object Oriented design and programming read this or that. > For practice do this exercises from this book or site. > For a background on Smalltalk read here or there > Some stuff on algorithms. > > *Intermediate* > Object Serialization read from here. > The VM from here.. > Building UIs > Basic Frameworks > Deep into Pharo > Pharo for the Enterprise > etc, etc, etc > > *Advanced* > etc, etc, etc > > Like a road map to becoming a serious Pharo users and / or developer. I know > this takes years but I think it would be very useful. Well at least for me. > I sometimes get lost when I read things like serializing, marshalling, > object memory, not to mention the internals of Pharo. > > Here is a link of something someone prepared for Haskell: > http://stackoverflow.com/questions/1012573/getting-started-with-haskell > <http://stackoverflow.com/questions/1012573/getting-started-with-haskell> > > Just an idea, it will be collaborative. I volunteer to keep and maintain the > list updated in a place where it will be available to anyone but of course > can't contribute much besides doing that. Super! > Cheers > Nacho > > > > > ----- > Nacho > Smalltalker apprentice. > Buenos Aires, Argentina. > -- > View this message in context: http://forum.world.st/Becoming-proficient-in-Pharo-tp4799284.html > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. > > |
In reply to this post by nacho
Excerpts from nacho's message of 2015-01-13 15:13:41 +0100:
> As I struggle, not without fun of course, to learn more about Pharo and its > frameworks and idea came to my mind. > We could put together some guidelines on how to become proficient in Pharo, > and eventually come to be a power user and / or a developer. > I read several of this recommendations on various list of other programming > languages. > Basically the idea is to have some sort of guide, with theoretical and > practical stuff. > For example: > *Beginners.* > *Intermediate* > *Advanced* > etc, etc, etc > > Like a road map to becoming a serious Pharo users and / or developer. I know one thing i noticed, is that such guides need to be topical. as a web developer i am not interested in GUI stuff, and if i have to go through tutorials that teach me how to build games than that's not very motivating. fortunately there are several web tutorials out there, but not all of them assume a pharo newbie, but expect me to learn pharo first (which brings me back to the game tutorial) one advantage pharo has is that new users need to learn the IDE and smalltalk at the same time. kind of like learning eclipse and java at the same time. i could learn eclipse using another language i already know, and i could learn java without using eclipse, but i can't really learn smalltalk without learning the IDE at the same time. so a new-user tutorial needs to explain every step in the IDE while teaching the language. a good example for a tutorial on the web-side is http://zn.stfx.eu/zn/build-and-deploy-1st-webapp/ it does not assume any prior knowledge about pharo, yet it is sufficiently high level that it will be interesting for an experienced developer (like me) even a person without programming experience will complete this tutorial successfully. i just had two students go through this tutorial during google code-in with more success than i had for other tutorials. one of them just started to learn programming, so throughout the tutorial he didn't really understand all of what he was doing there, but understanding comes from practice, and a few more tutorials and a good book or course on programming basics, and he'll get it. another aspect where this tutorial shines is, that it not only covers coding, but also deployment and packaging. the only thing missing is testing and debugging. in other words it introduces me to the major aspects i'd need to know to start building websites. > Just an idea, it will be collaborative. I volunteer to keep and maintain the > list updated in a place where it will be available to anyone but of course > can't contribute much besides doing that. as i am involved as mentor for code-in, semester of code and summer of code programs with a few smalltalk projects, i'll likely have more opportunities to test different approaches to get started, and hopefully will be able to provide more input. greetings, martin. -- eKita - the online platform for your entire academic life -- chief engineer eKita.co pike programmer pike.lysator.liu.se caudium.net societyserver.org secretary beijinglug.org mentor fossasia.org foresight developer foresightlinux.org realss.com unix sysadmin Martin Bähr working in china http://societyserver.org/mbaehr/ |
In reply to this post by Ben Coman
Ben,
How do you actually use the halt method? I don't follow you. Seems like an interesting thing to explore. thanks Nacho
Nacho
Smalltalker apprentice.
Buenos Aires, Argentina.
|
The halt method is used to put a breakpoint in the code, popping up the debugger. Just write the following: self halt. and when this gets executed the debugger jumps into action. I am surprised this is not clear, I thought that all beginner documentation mentioned this. Can you tell me what documentation you used to learn the language? Now I am afraid that some students of mine don’t know about this, while it is so incredibly useful … > On Jan 14, 2015, at 10:56, nacho <[hidden email]> wrote: > > Ben, > How do you actually use the halt method? > I don't follow you. > Seems like an interesting thing to explore. > thanks > Nacho > > > > > ----- > Nacho > Smalltalker apprentice. > Buenos Aires, Argentina. > -- > View this message in context: http://forum.world.st/Becoming-proficient-in-Pharo-tp4799284p4799495.html > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. > > ---> Save our in-boxes! http://emailcharter.org <--- Johan Fabry - http://pleiad.cl/~jfabry PLEIAD lab - Computer Science Department (DCC) - University of Chile |
In reply to this post by nacho
by using the message "self halt" inside any method. When it reaches this message it will stop execution and pop up the debugger, from there on its just a matter of using the debugger to inspect the variables and move execution one step at a time, the true power of smalltalk. This way you can see exactly what code is executed and how it affects the variables. Of course you can do this with other IDEs too but where it gets real interesting is that the smalltalk debugger allows you to change the code on the fly thus perform tests on the code to see how it behaves. On Wed, Jan 14, 2015 at 3:56 PM, nacho <[hidden email]> wrote: Ben, |
Thanks!
Kilon, is this feature included in one of your amazing videos? thanks
Nacho
Smalltalker apprentice.
Buenos Aires, Argentina.
|
The other thing I like about Smalltalk debugger is from there being able to select code and spawn a sub-debugger, so later I can return to the original location and continue. On Wed, Jan 14, 2015 at 10:18 PM, nacho <[hidden email]> wrote: Thanks! |
In reply to this post by nacho
i am afraid not. But it will definitely be my next video tutorial ;) On Wed, Jan 14, 2015 at 4:18 PM, nacho <[hidden email]> wrote: Thanks! |
In reply to this post by Martin Bähr
Hi,
I totally agree with what Martin says here. In my case I was interested in Smalltalk for long time, but the game tutorial didn't catch my attention. I planned several projects to learn, but none of them where easy to start with. It was not until the expansion of Moose from software analysis to data analysis and visualization and the idea of moldable tools that I found my way to learn the program by solving a small but non trivial problem (as Sergio suggested in this thread also). Now I'm making my interactive documentation platform for data narratives and visualization. I can start small and hopefully with this tool introduce newbies to the internals of Pharo/Smalltalk as we need them. It's a still buggie but useful tool for me. My way yo introduce others to this will be by workshops in our local hackerspace. We're documenting everything and creating non-English docs for Spanish speakers. We will share them when they're in better shape. Cheers, Offray El 13/01/15 a las 12:13, Martin Bähr escribió: > Excerpts from nacho's message of 2015-01-13 15:13:41 +0100: >> As I struggle, not without fun of course, to learn more about Pharo and its >> frameworks and idea came to my mind. >> We could put together some guidelines on how to become proficient in Pharo, >> and eventually come to be a power user and / or a developer. >> I read several of this recommendations on various list of other programming >> languages. >> Basically the idea is to have some sort of guide, with theoretical and >> practical stuff. >> For example: >> *Beginners.* >> *Intermediate* >> *Advanced* >> etc, etc, etc >> >> Like a road map to becoming a serious Pharo users and / or developer. I know > > one thing i noticed, is that such guides need to be topical. > as a web developer i am not interested in GUI stuff, and if i have to go > through tutorials that teach me how to build games than that's not very > motivating. > > fortunately there are several web tutorials out there, but not all of them > assume a pharo newbie, but expect me to learn pharo first (which brings me back > to the game tutorial) > > one advantage pharo has is that new users need to learn the IDE and smalltalk > at the same time. kind of like learning eclipse and java at the same time. i > could learn eclipse using another language i already know, and i could learn > java without using eclipse, but i can't really learn smalltalk without learning > the IDE at the same time. > > so a new-user tutorial needs to explain every step in the IDE while teaching > the language. > > a good example for a tutorial on the web-side is > http://zn.stfx.eu/zn/build-and-deploy-1st-webapp/ > > it does not assume any prior knowledge about pharo, yet it is sufficiently high > level that it will be interesting for an experienced developer (like me) > > even a person without programming experience will complete this tutorial > successfully. i just had two students go through this tutorial during google > code-in with more success than i had for other tutorials. > > one of them just started to learn programming, so throughout the tutorial he > didn't really understand all of what he was doing there, but understanding > comes from practice, and a few more tutorials and a good book or course on > programming basics, and he'll get it. > > another aspect where this tutorial shines is, that it not only covers coding, > but also deployment and packaging. the only thing missing is testing and > debugging. in other words it introduces me to the major aspects i'd need to > know to start building websites. > >> Just an idea, it will be collaborative. I volunteer to keep and maintain the >> list updated in a place where it will be available to anyone but of course >> can't contribute much besides doing that. > > as i am involved as mentor for code-in, semester of code and summer of code > programs with a few smalltalk projects, i'll likely have more opportunities to > test different approaches to get started, and hopefully will be able to provide > more input. > > greetings, martin. > |
In reply to this post by kilon.alios
you asked and I delivered. A video tutorial on the debugger , deeper into live coding and a powerful tool to understand the internals of objects and their structure I will of course follow it with additional tutorials since its a rather big subject but this tutorial should be more than enough to get you started and make you dangerous with Pharo. Always remember to save images before changing code , for example a self halt inside Morph initialize method was more than enough to freeze my image. On Wed, Jan 14, 2015 at 5:00 PM, kilon alios <[hidden email]> wrote:
|
Master kilon,
thank you very much. This is an excellent videcast. As always with your videos a lot of questions arise after watching them! I really appreciate you taking the time to put this togheter. Cheers nacho
Nacho
Smalltalker apprentice.
Buenos Aires, Argentina.
|
Thank you , it means great deal to me to help people appreciate what excites me about Pharo and the debugger is No1 reason for me and I suspect for the majority of Pharo developers too. I actually have my own questions too that I will try to answer with my next video, these videos are an opportunity for me to test my knowledge. The Debugger is a huge chapter and there is a lot of technomagic you can do with it. On Thu, Jan 15, 2015 at 5:09 PM, nacho <[hidden email]> wrote: Master kilon, |
In reply to this post by nacho
Me too!
Le 15/1/15 16:09, nacho a écrit : > Master kilon, > thank you very much. This is an excellent videcast. > As always with your videos a lot of questions arise after watching them! > I really appreciate you taking the time to put this togheter. > Cheers > nacho > > > > > ----- > Nacho > Smalltalker apprentice. > Buenos Aires, Argentina. > -- > View this message in context: http://forum.world.st/Becoming-proficient-in-Pharo-tp4799284p4799717.html > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. > > |
Free forum by Nabble | Edit this page |