3 Ideas for Running a Successful Virtual Python Workshop

Creativity is born through struggle, so give students the opportunity to fail.

Photo by Chris Ried on Unsplash

I have been teaching a python basics workshop for the past three years. It is a two-hour class for six weeks. I’ve learned that my workshops work best with ten or fewer students. These workshops are for absolute beginners. Since they are beginners, as an instructor, my role is to make sure students have a solid foundation that will allow them to venture out on their own. Naturally, therefore, I fervently monitor student outcomes.

At the end of each workshop, students give me feedback. Based on the input, I incrementally modify the workshop for continuity, clarity, and interactivity. Surprisingly, I found links between student outcomes and how often they interacted with the code, understood how one topic connected to another and made abstract concepts concrete.

With this understanding and modifications, I could see student outcomes significantly improve. They began to take on advanced projects such as web scraping, API development, and web frameworks on their own. Below, I’ll describe some of the elements that I include in my coursework.


Photo by Mayur Deshpande on Unsplash

Encourage Creativity

“Programming is a creative endeavor.”

When students feel that there is only one prescribed way to accomplish a programming task or it’s confined to one way of thinking, they struggle. They excel once they figure out how programming can conform to their mode of thinking. To promote this, as an instructor, you should recognize when students arrive at non-obvious solutions. When students are having difficulty implementing a coding solution, have them explain their logic to you, and then code it out to reassure them that their thinking pattern is valid.

One method I use to help students think through problems is to tell them to forget the syntax and explain how you would solve the problem with a pen and pad. Once they have this, they generally can proceed with the programming task. All of this instills the idea that programming can be a creative endeavor and, if viewed through this lens, can free the mind to achieve great things.


Photo by John Schnobrich on Unsplash

Make it Interactive

I use two tools for interactivity: “Pair Programming” and “Jupyter Notebooks”. Jupyter notebook is essential to the quick learning of python syntax and fundamentals. The color-coded syntax allows students to identify keywords and structures quickly while accessing the python kernel with a Jupyter notebook shortens the code execution cycle, resulting in less time spent running python scripts. The more a student can interact with the code within their IDE, the better.

Python, and computer programming in general, require a substantial amount of practice. Unfortunately, most online courses don’t leave room for in-class coding, leaving students to rely solely on instructor demonstrations and out-of-class exercises.

I’ve noticed that syntax requires frequent exposure through demonstrations and in-class coding exercises. Therefore, performing the in-class coding exercises is vital to retention and understanding.

After introducing 2 to 3 concepts, I have the students do pair-programming in break-out rooms for about 10–15 minutes. While one student directs the coding, the other types. I then visit each break-out room and address any concerns. At the end of the lesson, students also complete a lab assignment that is more comprehensive than the coding exercises.

“Repetition is key to learning, and this holds for learning Python.”


If Statement

Abstract Concepts

Students have difficulty grasping the logic when dealing with control flow, as it can be a bit abstract. For this reason, I made flowcharts of various control flow statements. The flowcharts help them visualize the logic and make it easier to implement. Do whatever you can to visually represent the code; the students will retain the information much better.

Final Thoughts

Running a successful python workshop is not something that happens overnight; three years in, I’m still performing experiments and tweaking the course material. The biggest lesson I’ve learned is to spend as much time as possible with the students, make yourself readily available, and help them explore out-of-class projects, and guide them. It will be surprising to see how much you will grow as an instructor as the students challenge you with new problems to solve.

3 simple things beginners can do to learn Python quickly

You can learn Python basics within 12 hours; the trick is simple, code and read as much as possible.

Photo by Chris Ried on Unsplash

“There’s no shortcut to learning Python.”

However, there is a way to become more proficient quicker. It comes down to practicing the foundational topics repeatedly, reading as much code as possible, researching when you don’t understand, and reading documentation.


Practice!

There is no way to get around it; learning Python begins and ends with practice, practicing the fundamentals to where you are tired of looking at Python syntax.

Of course, to make it fun, you can always attempt to solve real-world problems. For instance, I wanted to compare toy prices between major retailers, so I learned how to scrape the information off their pages and save them to a file. As my skill level progressed, I automated the process; then, I began storing the results in a database, then I built a web front-end to display the toys. Thus, I slowly built up my skill with increasingly complex schemes. If you can’t think up a project, go through as many tutorials on beginner topics you like as possible, I recommend Real Python.

“Practice, Practice, Practice”

Here are the foundational topics you should cover. Learning Python fundamentals should only take you twelve hours.

The Python Fundamentals Study Guide

Reading others’ code and documentation.

This section focuses on learning to read well-structured code and exposing yourself to enough of it to recognize coding patterns and an author’s signature style. You can read books about coding patterns all day, but until you are knee-deep in the weeds of some cool-ass Python library, your understanding of Python will never advance beyond the fundamentals. So instead, I advise that you find a package that does something extraordinary and try to understand how they implement specific methods.

For example, if you are interested in machine learning, I would recommend yellowbrick (not because I work on it) but because it only has three dependencies, thus making the code base relatively simple and easy to understand. Remember to use a library that you are already familiar with; dissecting the code is more straightforward.

Another helpful skill is learning how to read the documentation. Beginning with the official Python documentation and understanding the intricacies of the standard library wields a lot of power in how creative you can be when approaching problems. I would then move over to third-party libraries that interest you. Finally, I suggest you explore the Python Enhancement Proposal 8 (PEP8) so that your code structure adheres to the general Python convention.

“The best code writers read a lot.”

Photo by Priscilla Du Preez on Unsplash

Final Thoughts

I’m not selling any snake oil. But, after teaching myself and others for the past ten years, you quickly learn what sticks. These three recommendations are tried and true. Practice and read as much as possible. You will have a good grasp of the fundamentals in about 12 hours.

Let me know what you are thinking.

Do you think this is a suitable method for learning Python?

1. Add your thoughts to the comments

2. Become a Fan and give me a Follow

Two Amazing moments from my life

A moment doesn’t have to last a few seconds; it can last decades.

Photo by Alex Azabache on Unsplash

There are some exciting stories from my life that I would like to share with you. One is fascinating and about overcoming circumstances, and the other is funny, bewildering, and about kindness.


Traveling the world on someone else’s dime

I was a simple and poor country boy from the woods of Jonesboro, Louisiana. I accepted a scholarship to study Premed at a local liberal arts college a couple of hours away from home. Toward the end of my first year in college, I worked as a tech support representative at a local dial-up internet company. As my first college summer approached, a good friend, Nate, was looking for a job, and he joined the company as a business associate.

The internet company’s owner, Gordon, had another venture that sold telephone traffic from developing nations to major US carriers. Gordon was looking for someone with advanced computer knowledge who worked in a Unix environment (I was five years old when I began computer programming) and business acumen.

Nate and I jumped at the opportunity. I flew to Clearwater, Florida, for two weeks of training on a new voice-over IP (VOIP) technology. After this, Nate and I got our first assignment; travel to Panama City, Panama, and wait to install satellite telephony equipment. We arrived, and the Panamanian government had confiscated the satellite dish and telephony equipment. We waited seven days for our local partners to remedy the situation, but at night we danced salsa until the sun came up.

Photo by Ardian Lumi on Unsplash

For the rest of the summer, we skirted the globe, making several trips to Sri Lanka, Jamaica, Nigeria; it was just me and my best friend. We even got invited to tea by Sir Arthur C. Clarke in Colombo. As summer wound down, I wasn’t ready to go back to school, so I decided to drop out of college and worked full-time. Nate returned to school.

While working on a six-month project in Port Harcourt, Nigeria, I received two more assignments to Kyiv, Ukraine, and St. Petersburg, Russia. However, I never got to travel there because, like most start-ups, it went under, leaving me with only my wonderfully incredible free experiences. I was this young black teenager from the sticks that got to see the world (see where I’ve traveled or lived in the image below).

“Opportunities are usually disguised as hard work, so most people don’t recognize them.” — Ann Landers

Where I lived or traveled

Way Downunder Mate

I returned to university, but now I was living in Fullerton, California. I had quit my job at Pier One Imports to do biomedical research as my part-time hustle. I was lucky that there was an opportunity to travel to a sister lab in Melbourne, Australia, to do a summer internship. Here again, I was going to travel to another continent on someone else’s dime. The winter in Melbourne was beautiful, and I enjoyed my time there. I even got a girlfriend (it didn’t work out).

Photo by Simon Maisch on Unsplash

For a long weekend, I decided to travel to Tasmania. The plan was to fly to Launceston, take a bus to different cities with hostels, then to Hobart, and fly back to Melbourne. I got off at the first bus stop in St. Helens and skipped over to the hostel. I met Johnny, a Nepalese guy who was a university student in Hobart and was interested in seeing the white sand beaches and the Blue Tier old-growth rainforest.

Johnny somehow convinced me that I didn’t have to pay for a bus that, instead, I could hitch-hike around the island. I was pretty apprehensive because I am a black man with dreadlocks in Australia; I thought no one would ever pick me up. However, we did just that, and the first person to pick us up was this little old lady that drove us to St. Mary’s. The following person drove a Bentley, and the next was a family.

We made it to Hobart, and I stayed at Johnny’s house; then, I said goodbye to him and flew back to Melbourne the following day. I never thought I would ever see Johnny again. It was such a fantastic experience that I called my best friend, Anjali, and told her she needed to travel to Tasmania so we could hitch-hike around the island.

Photo by Leigh Williams on Unsplash

A couple of months later, we had the same experience as Johnny and I did. On the last leg to Hobart, a young college student gave us a lift and offered his house as a place to crash. The house and the neighborhood seemed quite familiar. Since it was a long day, I decided to turn in early, only to be awakened by this big voice…to my surprise, it was Johnny. I somehow got a lift from his roommate. It was weird that I meet Johnny again, but I chalked it up to a coincidence. However, this time, we exchanged information, but I soon lost it. I thought I would never see Johnny again.

Tasmania and Places we hitch-hiked

My Australian girlfriend wanted me to visit over their summer break. This trip was six months after my research internship. I was thrilled to go, even though I wouldn’t be traveling to Tasmania. One morning while exploring the different neighborhoods of Melbourne, my girlfriend and I stop for some coffee. We were sitting at an outside table when I hear, “Hey Brother! Hey Brother! Hey Brother.” I turned and looked, and it was Johnny. I ran into him on a random street 720km away from his home. It was fate. I retook his information. Sadly, I lost it again. I wonder why it was so important that I continually meet Johnny. He did open my eyes to the kindness of strangers. Maybe that is the lesson.

“Kindness can become its own motive. We are made kind by being kind.” — Eric Hoffer.

Johnny and Me

Final Reflections

Take these stories and think about how they relate to your life. We are more alike than different, and we share common themes and stories. Can you relate to these stories? Share your stories in the comments.

Follow me and give this article a clap.

15 Ideas to Build Your Data Science Brand — Part 2

How do you stand out from the rest of the data professionals?

This is the second part of my previous article on how to build social capital in the data science ecosystem. As expressed in part one, I believe all efforts to increase social capital should be done from a place of humility and honesty while also being your most authentic self. Although the ideas in this article seem most appropriate for seasoned data enthusiasts, my personal experience is to the contrary and most of these opportunities are available to anyone with an intermediate experience level.

8. Become Adjunct Faculty or Consultant

Teaching data science or other skills is a great side hustle that can be done at a university, as a workshop series or any myriad of avenues. Teaching will improve your understanding of data fundamentals. You will become more comfortable talking about data in front of others, giving you greater credibility in data circles. Getting this role isn’t impossible; I was teaching data science at Georgetown University before I had my first job offer for a data scientist position. Make yourself highly available to your students. Students will present unique and challenging problems that will help you grow intellectually.

9. Develop Coursework

Make the leap from teaching to developing your own course. You could easily build upon an established course’s structure and create your own. Most universities now employ curriculum designers that guide you through building effective courses. The hardest challenge you will face is simplifying data concepts down to their core and conveying them to a new learner.

10. Build Out Your Local LinkedIn Network

Cold contact local data professionals with two types of messages. The first is to plainly say you are looking to integrate with professionals within your career. The second form is to target people in positions you would like to ascend to and ask them sincere questions about career trajectory. The secret is to have no ulterior motives when asking fellow data practitioners about their projects and career journeys. People are more than happy to share. You may receive job offers, but most importantly, you will establish relationships.

11. Organize a Meetup or Become a Co-Organizer

Leverage your local LinkedIn network to create a meetup or team up with an established meetup by becoming a co-organizer. Establish relationships with influencers in your community by adding to it. Examples are hosting panels, hosting hackathons and open-source sprints, and starting a Speaker series.

12. Sit on Panels

This is a great opportunity to better understand your opinions on certain topics and learn to express them clearly to a receptive audience. Invitations to these are outgrowths of participating in conference development, building your LinkedIn network, and engaging with your local data community.

13. Internal Branding Opportunities

If you’re already employed, there are opportunities to build social capital within your organization. Every organization nowadays wants to be considered data-driven. Here are some examples of things I did to help my organization realize this dream while simultaneously building my personal brand. I understand that this is easier for me because I work in a start-up environment.

  1. Build a data literacy program. You could base your program on Qlik’s data literacy courses.

2. Create a Data Science Playbook. This is a document that outlines how data science is performed in your organization.

3. Create a Data Science Roadmap. Help your organization understand the possibilities of data science.

4. Teach a Python or data science course to staff. This can help improve analytical thinking across your organization.

14. Give Others the Opportunity to Grow and Show Gratitude

All of these only works when we all give back to the community and lend a helping hand to others. No matter the stage you are in your career, sharing your knowledge, experience, and time with others will greatly benefit you in the long run. We should be thankful every day.

15. These are opportunities I would like to explore in the future

1. Submit a conference talk proposal

2. Host a regional conference

3. Start an Internship program

4. Write as much as possible (books & articles)

13 Ideas to Build Your Data Science Brand — Part 1

How do you stand out from the rest of the data professionals?

We are all trying to establish ourselves and stand out in the ever-competitive data science ecosystem. I have been somewhat successful in navigating this space and want to share the opportunities I pursued that helped me build my brand. You should approach each of these opportunities with humility, honesty, and seek to forge long-lasting and mutually beneficial relationships with others you meet. Most importantly, be your most authentic self.

1. Attend Conferences

This is an awesome time to network with other data enthusiasts and get a glimpse of what is popular within the data community. PyData and PyCon are two of the best conferences. If you can’t afford to attend, apply for scholarships or grants. Most conferences offer some sort of financial aid such as academic discounts or “pay what you can.” To gain the most out of this experience while attending, you should:

a) Participate in open source sprints to meet and build relationships with core contributors and maintainers of major projects.

b) Give a lightning talk. Spend 5 minutes describing a project you’re passionate about.

c) At lunch, sit at a table with people you don’t know and share data war stories.

d) Be fully present in talks and at the end ask meaningful questions.

e) Speak with speakers after their talks.

2. Volunteer at Conferences

A major upside of volunteering is that you may receive free or discounted admission. You’ll get to understand the inner workings of a conference and build long-lasting relationships with the organization staff that is responsible for hosting these events. You’ll also get the opportunity to meet high-profile speakers in a low-stress environment.

3. Give Talks at Local Meetups

This is your chance to build up your confidence speaking in front of others. You don’t need a complex topic, just a simple explanation of a data tool or novel concept.

4. Join a Research Lab

Organizations like District Data Labs, offer opportunities called ‘research labs’ that allow participants to spend a semester researching a specific machine learning topic with a group of like-minded individuals

5. Contribute to Open Source Software

This is a great opportunity to build your software development skills beyond data wrangling and analysis. You will learn how to build a maintainable project and all the auxiliary processes required in making it successful. Try working on smaller projects like Yellowbrick where you can make frequent and meaningful contributions that can potentially lead to you becoming a core contributor or maintainer.

6. Attend Hackathons

This is a good place to test your skills out in the wild and be creative. Be sure to add your any achievements to your LinkedIn profile.

7. Join Committees

A few examples would be the PyCon poster committee (PyCon has numerous others), the Small Development Grants program from NumFocus, or NumFocus’ affiliated project selection committee. This is a great way to fill your network with hard-working people that play a significant role in supporting the data science ecosystem.

Part 2 — Can be found here

Three ways a graduate degree in the humanities/arts prepares you to work in data science

Turn that Arts degree into a tech job

Photo by Alfons Morales on Unsplash

Ignore the data science job descriptions that state a degree from a STEM field is required; you should still apply. Sure, your technical skills need to be on point, but your education has more than prepared you to excel in this field.

A degree in humanities is excellent preparation for a job in data science. It is easy to master core data science skills with this type of education.

Well, this is the conclusion I came to after working with art students that wanted to learn computer programming. Their ability to rapidly learn complex topics, be creative and view problems from multiple angles, critically approach new problems, as well as communicate their findings effectively will serve them well in a data science career.

“Learning to learn,” computer programming and critical thinking are keystones of data science, and I argue that a humanities degree has either given you these skills or has wired your brain to make it easy for you to obtain them.


Photo by Tim Mossholder on Unsplash

Learning how to learn

The number one skill a graduate student gains is the ability to learn how to learn. This is the process where one can teach themselves complex topics in relatively short periods because they have mastered how to digest large problems into digestible chucks.

You have perfected it as a graduate researcher, and your newly acquired knowledge is not just a surface level of comprehension. Learning how to learn applies to data science because you will often be asked to tackle problems in areas where you lack domain expertise and must respond quickly with breadth and depth of the topic.

Furthermore, data scientist jobs hops every couple of years, so quickly gaining expertise in a new domain is an asset. Survival in this field is directly related to rapid acquisition of knowledge, as technology is constantly evolving.


Photo by Diego PH on Unsplash

Be Creative

How does a programmer express his creativity? I would argue that programming is more than just logic and is, in fact, a creative endeavor that requires coming up with novel and interesting ways to approach problems.

I teach the same python programming curriculum to postgraduates at two schools, an Art College and a major University. At the art school, 98% of the students have a humanities/art degrees while it is a mixture of humanities/art and STEM at the university. When comparing the students, the art and humanities students’ performance in the course at both schools surpasses those of the others. Art students can easily grasp abstract concepts that STEM students struggle with. The art students’ ability to develop different ways of generating imaginative solutions to rather simple problems is astonishing.

The art students’ rapid rate and level of mastery at the end of the curriculum outperforms that of the STEM postgraduates. It is also important to note that all students regardless of degree are high quality students.

I acknowledge that my analysis could be a gross generalization, and there may be other confounding factors that can explain away the students’ differences. However, I have taught this class several times and each time the results have been the same. To overcome these differences and produce the best students possible, a new and innovative initiative at the university was put into place that teach students how to think.


Photo by Kyle Glenn on Unsplash

Think Critically

According to criticalthinking.org,

“critical thinking is that mode of thinking — about any subject, content, or problem — in which the thinker improves the quality of his or her thinking by skillfully analyzing, assessing, and reconstructing it.”

The various disciplines in the humanities use critical thinking when they show us how to listen, how to analyze, how to argue, and how to navigate our social world. Similarly, in data science, you apply this method to generate testable hypotheses and possible solutions. Your thinking skills are directly transferable to scientific thinking in data science.


Final Thoughts

Data science requires more diverse backgrounds and ways of thinking in order to achieve true innovation. You already have or can build the skills needed to begin your journey as a data practitioner. I have faith in you. Remember, programming is a lot easier than you think.

Bonus

This article addresses graduate students, but for college students trying to decide what to study, educator Dr. Tonya Howe thinks college students that want to get into tech should major in both in the humanities and sciences.

If you like this article please give it a clap