Note: This is not meant to be offensive in any way and is purely an interesting observation amongst guys in programming. where women shouldn't be competing.

While I was reading some tweets this morning, I came across Kevin Mitchell's link to Unix beards.  Sorry, ladies... this something that we should not try to strive to compete with in our field. Even if you write in a bearded language, it probably isn't worth it to try to compete.  I'm not sure you'd want the infamy that would come with that.  Python, now featuring the Bearded Lady ... something doesn't sound right with that...

Now I have to admit that Tamir Khason does have an interesting observation that popular languages are designed by guys with facial hair.  Check out that Unix beards link to see his observation.

I'm always amused when programming beards come up on Twitter - it seems ridiculous, but yet it cracks me up.  Then again, I was a little in disbelief and highly amused when I was at PyCon 2009 and they had a Beards of Python birds of a feather.

So tell me... do you think this guy might be onto something?  And if a woman designed a programming language, is the language doomed to fail because she can't grow a beard?  (And I'm not saying women shouldn't design a programming language - I honestly think that would be cool!  This was just a random thought that crossed my mind while looking at all of these beards.)

* Edited *

Ah yes... there's the Grace Hopper factor.  She was the one behind COBOL, which succeeded despite her lack of a beard.  Thanks to Doug Philips for pointing this out!

 

Many months ago, Manning Publications contacted me and asked if I'd review this book.  I had seen one of my fellow local user group members with it, and it intrigued me, so I agreed to do it.  Manning sent me a PDF of Hello World!  Computer Programming for Kids and Other Beginners (ISBN 1933988495), which I promptly read but have forgotten to post about here.  My apologies on delaying my review on such a great book...

Father and Son Take on Programming

This book was written by a father/son team - the son is 10 years old.  When they first embarked on this journey, he was 6 years old.  And he wasn't just a kid learning a new programming language - Carter had significant input in the book content.  Cartoons with speech bubbles, amongst other parts, were written by Carter.

They wanted to gear it for beginners at any age, including kids.  Rather than convincing “why” to learn programming, they assume that if you picked up the book, you’re obviously interested in learning programming.

What I love most about this book is that it offers a kid's perspective on programming.  I've found the younger perspectives of programming to make it seem less intimidating and more fun, and this book and Carter's perspective both do that.

Presenting the Concepts

I really like the order they presented concepts.  If I had to teach an intro to programming (in general) class, this would be the approach I’d take as well.  It starts out with the basics of variables and operators.  From there, it moves on to GUIs, decisions, loops, comments, and then graduates from there. 

The object-oriented side of Python doesn’t get introduced until later, and I like this because it reminds me of my data structures classes in college when people who thought they understood the basics would get totally lost.  Object-oriented notation and development in general was a tough concept that really made or broken a person when it came to our data structures classes.  Those who didn’t get it did what they could to get through the class and then avoiding programming like the plague.  I think this was because OO concepts in general were explained more academically rather than in terms that most people could relate to.  Carter and Warren use a simple example of a ball to explain objects, attributes, and methods – had we had something like that in college, there may have been a few more programmers from that program. After objects, they get into things like modules, graphics, collision detection, sound, and randomness. 

Each chapter addresses concepts that we as developers should be familiar with and explains them in terms that a beginner can understand.  Rather than being challenged to look at a language through a textbook with syntactic and plain examples, I find this book offering fun examples for learning basic programming concepts and even the advanced concepts.

Conclusion

Overall, I really enjoyed the book.  I found the examples to be easy to relate to and the overall text to be both understandable and in an order to make it easy for a beginner to work through.  As I mention ed earlier, I read it right away.  I got caught up in event planning, speaking engagements, and life in general that I forgot to write this review.  I liked this book so much that I purchased a dead-tree version for my bookshelf and to take with me and promote at my Python talks. I highly recommend this book for beginners of all ages.

More on Father and Son

Want to see and hear more about Warren and Carter Sande?  I found some links that you may enjoy.

You can see them on the Young Programmers Podcast, where Carter presents PythonCard: http://young-programmers.blogspot.com/2009/11/carter-sande-presents-pythoncard.html

They appeared on Hanselminutes #194, talking about their book writing experience, Carter's programming experience, and other things: http://www.tr.im/RM6l


 

A couple weeks ago, I spoke at a few user groups in southern Ohio - the Cincinnati Financial internal group, CINNUG, and Dayton .NET Developers Group.  I took my Python 101 for the .NET Developer talk on the road, getting the word out about Python and IronPython.

Just to answer some of the questions...

 

  • Scoping, classes, and functions: There were some questions about functions versus classes, and I know I had confused some people on that.  There was also a question about scoping in Python.  For more on classes, functions, and scoping, see part 9 of the Python tutorial.
  • The @ symbol: One of the guys in Dayton had asked what the @ symbol was - this is used as a decorator.  For more details on decorators and why they chose the @, see PEP 318 -- Decorators for Functions and Methods.
The slide decks were made available to the group leaders, but if you want to see the slides, please contact me.

If you're looking for the books I recommended, check out:


 

 

Hello World!  Computer Programming for Kids and Other Beginners

ISBN: 1933988495

 

IronPython in Action

ISBN: 1-933988-33-9

 

 

As I finally settle back into side projects after work, I realize that I need to recap my PyCon experience. Since I blogged about my goals, let's see how they went.

Goal #1: Present at PyCon. (accomplished)

My presentation was at 10am on Sunday morning, and it was an experience that I won't forget. It started out with video difficulties, and then we ran into audio issues as well. We heard the start of Mark Ramm's Paver talk in our room. Of course, I had to run with it - I couldn't let that throw me off. I did have a great audience, and that helped as well.

It was the largest group I've presented for, and it's been the largest room that I've presented in on my own - the only other experience that compares is my CodeFest panel at OOPSLA '99. Despite the nervousness, I moved right along.
I was able to show some basic examples of what you can do with IronPython, including a cross-platform form that uses the Environment.OSVersion property to show which operating system was running. This cross-platform was the only demo I ran in Windows. Everything else ran in openSUSE thanks to Mono.

After I finished presenting, I had to check the pycon Twitter feed to see what was said. Yes, I was using vim for my editor. This time around, I used an openSUSE VM in VirtualBox. I've given this presentation before in Ubuntu, but I wanted to use the IronPython 2 bits, which aren't in a package yet for Ubuntu. (This would involve compiling from source, and there's a problem with that - so no package yet.)

I still need to get my demos online, but my slides are available on my Slideshare.

Goal #2: Meet some of the IronPython people. (accomplished)

When I arrived at PyCon on Friday, I managed to make it in time for the Python VMs panel. When Harry walked in, Dino yelled to him, and that's when I made the note that these guys were here in person. After the panel, I talked with Harry a little, and then I ran into Michael Foord.

It was great to hear Jim Hugunin's talk on IronPython, immediately following the Python VMs panel.

On Saturday, I went and hung out at the IronPython open space with these guys and a few others. It was nice to hear the other guys asking about IronPython and talking about using it.

Finally, on Sunday, I saw these guys in my audience for my presentation, and I stayed for Dino's talk as well.

It has been great to meet these guys in person, and I hope to run into them again sometime.

Goal #3: Meet with the PyOhio team. (accomplished)

On Saturday night, I went to the PyOhio open space, and I was quite impressed with the turnout. We had Eric, the token Columbus python rep. The Cleveland group was there in rare form (or maybe just in their normal insanity), and Cincinnati was also well-represented. We also had at least a guy from Maryland, a guy from Texas, and a guy from Utah.

In the hour that we met, we were able to cover quite a few issues and get a few volunteers. I have volunteered to help them with publicity, and I will also be carrying the IronPython torch there as well. (If you're on Twitter, make sure to follow @pyohio.)

Goal #4: Check out the Stackless python presentation by CCP. (failed)

This was my only goal that I didn't make. I managed to make it to the room just as the presentation was starting, but the snow outside kept bugging me and so I gave up the fight. We had a 6.5 hour ride home, and I didn't want to take any chances with it.

Final Thoughts

This was my first python event, and it was great to see such an awesome community. People from all over the world came together to talk about, hack in, and show off Python and its various implementations. I look forward to PyCon 2010 in Atlanta!

As I'm finishing up my slides and looking at my "Search:pyohio" column on TweetDeck, I'm reminded of the many things I hope to accomplish while at PyCon.


Goal #1: Present at PyCon.

On Sunday, I will be giving my talk on IronPython. My timeline is slightly skewed from what I had anticipated, but that's because I've got more slides and a better VM to work with. I had a couple questions come up that I've included this time around. So if you're at PyCon and want to hear what I have to say on IronPython, I'm speaking in Ballroom D at 10:00am (Chicago time, that's 11:00am EDT).


Goal #2: Meet some of the IronPython people.

While we're all spread throughout the world, there are other IronPython people out there that will be at PyCon. I've followed them on Twitter for awhile, and I'm hoping I get to finally meet them while at the event. If you see me there, feel free to yell "Hey, sadukie!" and I'll most likely respond.


Goal #3: Meet with the PyOhio team.

PyCon is the national event, but PyOhio is the statewide python mini-conference. It's held usually at the end of July down in Columbus. I want to meet them and help where I can, and it'll be good to carry the IronPython torch for them as well. It does seem a little odd, though, that we have to leave our state to meet, but hey, whatever works!


Goal #4: Check out the Stackless python presentation by CCP.

Of all the presentations out there, I really want to see this one, as I've been an EVE Online player for awhile now. I'm typically mining or building things, and I've also had the joys of rooting for my alliance (Manifest Destiny) in the alliance tournaments. But having experienced the update as user is one thing - I'm very curious to see what this will be like from a developer's standpoint.

 

I'm leaving later this week, and I look forward to arriving in time for the talks on Friday. Hope to see some of you there!

PyCon Talks Posted!

January 20, 2009

The PyCon 2009 team has posted the talks. It looks like they have a little something for everyone.

I will be speaking at PyCon on IronPython (#12 in the talk list). For those who saw my presentation at CodeMash, my presentation at PyCon will be a condensed version of the CodeMash talk.

I am interested in seeing the presentations "Making games in Python - Tools and techniques at CCP" and "Stackless python in EVE, pt. 2", as I've been a huge fan of EVE Online. When I'm not blogging or coding, I can be found mining in game, to help my husband and some of our friends in manufacturing items. One of my side projects currently is to help my husband master the game of "playing spreadsheets". He's got an Excel spreadsheet with the cost accounting for some of his manufacturing projects in game, but he recently hooked me up with a database dump, from which I was able to create most of his spreadsheet programmatically.

Looking at the talks list, there is one other IronPython presentation, given by Dino Viehland, the lead developer of IronPython at Microsoft. While I will be presenting what IronPython is at the beginner level (what it is, what you need to run it, some neat things with it), he will be presenting some of the internals of the language. He will also be representing IronPython on the Python VMs Panel. So if you are attending PyCon 2009 and are interested in learning more about IronPython, check out our talks - "Pumping Iron into Python: Intro to FePy" and "IronPython Implementation".

I hope to meet some of you there!

One of the latest talks that I will be adding to my list is "Pumping Iron into Python: Intro to FePy". Originally, I had named the talk "Pumping Iron into Python : Intro to IronPython", but that title was too long for the CodeMash submission page. So then I shortened the name, but in changing the name, it changed the context of my talk as well. My abstract changed from an intro to IronPython similar to the one I did at Cleveland Day of .NET to this:


As python grows in popularity, IronPython has started making more waves. What is IronPython and why should regular python programmers be familiar with it? This session will introduce the open source .NET implementation of python known as IronPython without using Windows. Come see FePy (IronPython community edition) in action via Mono -- a cross-platform open source implementation of the .NET framework.


I'm extremely excited to announce that it has been accepted for CodeMash, so I will be giving this talk in January 2009 at the conference at Kalahari resort in Sandusky.

When I first put together the abstract for this talk, I was looking forward to showing just IronPython. But after seeing Catherine's comment here and having to shorten my title for the CodeMash submission, I changed my perspective and decided to take this another way.

I decided to act on Catherine's comment and submitted this talk for PyCon 2009. That talk is currently in the review process. Now I've spoken at user groups and Days of .NET, and those submission processes are fairly short and straightforward. Even the CodeMash submission process was fairly painless, other than maybe for the decision makers since they had quite a few sessions to review. But the PyCon submission process has been probably the most interactive, most detailed process that I've gone through so far - and I definitely like it.

I submitted the talk to PyCon on the same day I submitted it to CodeMash, before the November 3rd cutoff. Since then, I've had a few people look at my submission and comment on my submission. The comments came from my reviewers, who basically wanted to know more and had things to say about the topic with the description that I posted here. I was able to go in and hopefully answer their questions.

I liked that there was a way to interact with the reviewers. There are stricter guidelines and an agreement to be videotaped, amongst other things. This is what the PyCon submission timeline is for proposals. Now, I wait until December 15th or so, when I find out if my talk will be accepted.

However, I'm not really sitting and doing nothing while waiting. Remember... this talk has already been accepted for one conference, and I'm really looking forward to showing off IronPython in a different development environment besides Visual Studio. I'm looking forward to showing off Mono and developing with that. I will also be showing off some of the things that FePy has that makes it different from the standard IronPython implementation, as well as what IronPython has to offer for non-Windows users.

Look forward to hearing more about this talk as we get closer to CodeMash... teasers will definitely show up between now and then!