PyCon Sweden - Learning Python Programming

This week I had the honor to be part of a panel discussion with Anna Unger, Jessica Shortz and Lilian Nandi discussing learning and teaching Python programming. This blog post is a recap of our discussions with my own additional thoughts sprinkled in.

I have been teaching programming since somewhere around 2012. I got involved in mentoring students at the university and after that I've experimented with a lot of different ways.

Some of the more traditional teaching I've done via university classes with mass lectures and pair programming sessions, half-day workshops, weekend workshops, summer courses and personal mentoring. And if we expand the concept of teaching a bit, you could add on speaking in and organizing meetups and conferences, streaming on Twitch and blogging.

Read about other panelists (content by PyCon Sweden)

Anna Unger (Data Engineer at Granditude): Three years ago Anna changed her career to tech. In June 2019 she founded the Facebook Developer Circle in Stockholm together with Dalia Hamoda and became thereby an active driver of the Stockholm tech community. In August 2019 she and her team succeeded at the San Francisco's PyTorch hackathon and ended up on 3rd place.

Jessica Shortz (Web Developer, PyLadies Stockholm): After trying her hand at being an attorney, she discovered her passion for computers. Python is currently her favorite language, and she loves engaging with the local tech scene in Stockholm.

Lilian Nandi (Teacher of Computer Science/Head of Department at Northbridge House): Lilian studied Computer Science at high school and did her PhD in Computer Modelling from University College London. She went on to looking at computer applications and programming in the pharmaceutical sector before entering formal teaching for the next generation.

Learning Python programming for beginners

I personally believe that Python is a great language for beginners. But it's also important to note, that you can pick any language when you start and not worry about it. The main concepts in programming are the same regardless of the language and as a beginner, I feel it's more important to just pick one and start learning rather than worrying over the language.

That being said, Python does have a few really nice characteristics that make it great for beginners in my mind. First, it's easy to read and write. It reads quite much like English and with good variable and function names, you can figure out what a code does even before you understand all the mechanics.

Second, it's very versatile. You can use Python to build backend systems for web and mobile, build tools for data science, or write scripts to automate your daily life. That versatility offers developers easier way to choose what they want to do later in their career with bit less work on learning new languages and paradigms.

Third, the ecosystem and community is great. There are so many good libraries so you don't have to reinvent the wheel. The Internet is also full of guides, tutorials, blog posts and Stack Overflow posts about Python so it's easy to find information you need.

The great thing in 2019 is that there are so many ways to learn programming. In addition to traditional degree programs in colleges and universities, you can learn for free from sites like Youtube, Codecademy or Coursera. There are also local programming groups that come together to learn in peer-to-peer way with or without teachers and you can always also start your own group. Learning together with friends is fun!

Inspire and engage

Lilian, how do you pitch programming to your students? Open question: If you are leaving school, working in a non technical job, how could people that have a technical interest but are not programming get inspired and engaged? Anna you were participating in the Facebook Hackathon in Silicon Valley this Summer and finished at 3rd place. What do you think makes hackathons engaging? Juhis, how did you build and grow a community in Finland?

Learning for experienced programmers

Open question: How to stay motivated and engaged to continue learning, what drives you? Open question: How to deal with failure and frustration? Juhis, you are giving workshops and teaching programming to beginners and experienced, what did you learn as a programmer from teaching? (submitted talk I teach therefore I learn) Open questions: How could one become a teacher?

Create a learning environment

Juhis, you are giving workshops frequently, what do you see as a key to create an environment that is open for learning? Open question: How could companies encourage learning as an essential part of a company culture? Anna What did you see in Silicon Valley that you would like to see here in Stockholm? Open question: How engage participants to contribute during meetups/talks/discussions/workshops?