2018… The Year of… Python?!

Over the past few years, I’ve been dealing with things in C# and Java, especially in bringing newcomers to the field and helping those who may be older in the field get some new tools.  I fell into this groove with C# and Java, and yes, I even had a change of heart with Java.  (When I saw Java in the late 90s/early 00s, it was a strong dislike relationship.  Nowadays, I actually like it!)  Little did I realize that this year would be a departure from C# and Java and cycling back to another one of the languages in my toolbelt – Python!

Early 2018 Changes

I left my last employer at the end of 2017, as I could feel the winds of change and knew it was the right time for me to move on.  What I hadn’t anticipated was my direction.  I figured I would stay in the training realm with more C# and .NET-related topics.  However, I picked up a client in the Python space and in the process, dusted off the cobwebs in my Python space as well as ramped up JavaScript yet again with React and Redux.  Wait… Python?!?

My History of Python

I don’t remember what it was that convinced me to look at Python.  I suspect it might have been talking with a colleague decades ago and his mention of the local Python user group.  I do know that once Microsoft entered in the Python space with IronPython, I had to see what it was about.  Python on .NET?  What?! (Ok… part .NET, part Mono….)  The absurdity of Microsoft bringing Python in .NET really appealed to me.  Why?  I’ve been a Microsoft fan all of my life, and then there’s the part of me that likes Linux and the command line as well. So when any of those can be combined, I’m intrigued.  Little did I realize that my playing around with Python as a hobby back then would lead me to present IronPython on Linux at PyCon 2009. (Oh and the team was in my audience… yeah, the IronPython team… and the father of the language… oh, no pressure.  Argh! 🙂 )

Back then, I didn’t want to be the only one playing with this.  I did some user group and conference presentations introducing C# folks to Python.  In 2008-2010, I made my rounds to local user groups and conferences (Cleveland, Columbus, Cincinnati, Sandusky, Dayton, even a Cincinnati financial company’s internal group).  I took a break from Python towards the end of 2010 because book writing took over my life PowerShell distracted me.  However, my inner polyglot shelves languages for later, never really forgetting them.

Return to Python

Since I picked up a client who used Python, I figured I better brush up on my Python again.  This time, while going through my day-to-day work, I also went through some of the Python training over on DataCamp.  (How I love DataCamp’s courses!  I’ll save that for another blog post.)   What I love most about picking up Python again is seeing how quickly I regained my muscle memory/coding memory for the language.  I had to pick up some Python 3 changes, but because a lot of the concepts are similar to what I’ve seen and done in other languages, it’s been syntax adjustment more than anything.

In addition to returning to Python code for some of my consulting work, I also fell for pandas, matplotlib, and Jupyter notebooks (shoutout to Brian Sherwin and his Drops of Jupyter talk).   Data has always been a love of mine, and poking at the data science realm in Python…. so much fun!

Also… Microsoft has been growing in the Python space since the last time I did talks on Python.  So now I can include the likes of Python Tools for Visual Studio (PTVS), Visual Studio Code, and Azure Notebooks in my Python presentations.  Yes – Microsoft is in the Python space!  Anaconda now ships with Visual Studio Code.  And Visual Studio Code has LiveShare, so you could remote pair program in Visual Studio Code on multiple platforms – or even have someone LiveShare in Visual Studio Code in Linux while someone else is in Visual Studio in Windows.

So what lies ahead?

Apparently, 2018 is my year of Python so far, and I’m curious to see where it leads.  I didn’t plan on going this route, other than looking into data science more.  I was excited to see Python in SQL Server 2017 – again, this is an absurdity thing for me that makes me more curious.  I end up playing with the technologies, learning how I can work with them and others can, and then turn them into presentations.  Working with Python for a client brought Python back into the presentation topics.  With Python growing in the Microsoft space and with it huge in the data science realm (which is growing as well), I don’t think Python will be leaving my topics for awhile.  I already have some local user groups reaching out to me to deliver my Python for C# Developers talk (1st presented in Hong Kong this year), and if this is something you’re interested in seeing, let me know!  (Yes, I am interested in doing remote presentations and not just in-person.)

Internationally Speaking!

2018 marks 10 years (and a little of change, counting my 1999 stuff) of speaking in the tech community on a variety of technologies:

  • Linux Administration (Samba)
  • Squeak
  • Python (and IronPython)
  • SQL
  • Silverlight
  • Cross-Platform Development with C# and Mono
  • PowerShell (for IT administration and for developers)
  • HTML 5

I have spoken on other technical topics as well:

  • ATDD
  • Test-Driven Development
  • General Debugging Tips & Tricks
  • User Experience for Developers
  • Responsive Web Design

I have also spoken on other topics:

  • The History of Women in Tech
  • Servant Leadership
  • Mentoring
  • Social Media and Marketing Tech Events
  • Google Analytics
  • Women & Diversity in Tech

I have done some major talks:

And now I can add the badge of international speaking!

Sadukie presenting The C# Dev's Intro to Python at the Microsoft Developers HK Meetup

Sadukie presenting The C# Dev’s Intro to Python at the Microsoft Developers HK Meetup – photo courtesy of Kevin Dutkiewicz

Why did it take so long?

There are many reasons why I haven’t submitted to speak internationally:

  • My primary audience is within my region.  I rarely need to leave here.
  • I was honestly afraid because of language barriers.  English is my primary language, though I have some basic understanding of Spanish.  I don’t really have a secondary spoken language. I worried about having to deal with that.

So… why now?!

We were travelling to Hong Kong to visit family (and yes, #ancestraltrip for those following along on Twitter).  I was curious about the technical communities over there, and since I know a little about Hong Kong’s background, I suspected that there may not be as big of a language barrier as I originally suspected.

When I reached out to their group, they offered to have me speak, and it seemed like a great opportunity that I couldn’t pass up.

How’d it go?

It was a wonderful experience speaking with the Microsoft Developers HK Meetup on “The C# Dev’s Intro to Python”! Their community is a great group of folks – islanders and main land folks.  They’re enthusiastic and really enjoy learning more.  It was great to see their energy and feel very welcome.  Special thanks to Stephen Tung (cheers for bringing VLT!), Thomas Weiss (especially for meeting me in person at the MVP Summit – great to have a familiar face to meet again), and Bart Verkoeijen (getting me directions and set up at the venue)!  These organizers were very welcoming, and my husband and I enjoyed going out with these guys and Michael (one of the group members) for pizza afterward!

For those who want to learn about what I presented:

Slides: https://www.slideshare.net/sadukie/intro-to-python-for-c-developers

Code for presentation: https://github.com/sadukie/IntroToPyForCSharpDevs

Azure Notebook for presentation:
https://notebooks.azure.com/cletechconsulting/libraries/introtopyforcsharpdevs

Will I do it again?

Absolutely!  I would love to come back to Hong Kong to present, and I could be up to other locations as well, especially if I already am travelling that way.  The tough part about international speaking is the cost (especially if visas and airfare are involved).  So if I can coordinate multiple events, that makes it a bit easier to swallow.

 

PyOhio 2010 Recap

At the end of July, I had the opportunity to speak at PyOhio in Columbus, OH.  This was my second year picked to speak, and this year, I did everything I could to stay healthy, as I really wanted to be there this year.  (I missed my talks last year due to serious health issues.)

Both of my talks had low turnouts, which I expected.  IronPython doesn’t have a large following here, although it does have some people curious.  Also, to be fair, my second talk was scheduled against an entrepreneur panel with Eric Floehr, which would’ve been great to catch!

Overall, though, I really enjoyed the event.  It was great to see the regional Python community get together to talk Python and share their experiences.  I finally got to meet William McVey in person; he and I follow each other on Twitter and he had expressed interest in leading the Cincinnati Tech Events initiative.  And those AGI guys who kept appearing – you guys rock!

From what I’ve heard, the sprints went well.  Unfortunately, I had another conference the following week, so I had to miss out the sprints this year.

If you’re into Python and would travel to Ohio to talk with others on Python and write Python with others, PyOhio is definitely worth checking out!

Hello World! – A Friendly Intro to Programming…

 

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


 

Python 101 for the .NET Developer

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