PyOhio 2015 - A beginner’s perspective
If you feel intimidated about attending a coding conference as a beginner, don’t! I say that because I was actually too intimidated to attend PyOhio, so I signed up as a volunteer.
I wanted to be a part of the weekend, but felt like I had to earn it.
Don’t feel that way.
My first clue to how welcoming the Python and the greater programming community is came when I was looking for a ride down to Columbus. Someone replied to my request on Twitter and offered to throw in money to a GoFundMe account if I couldn’t find a ride down. Even more impressive was that I did find a ride down, and it was with someone who decided to attend PyOhio last minute because I needed a ride and they thought it would be cool.
Once we actually arrived at the conference, I realized there weren’t people walking around quizzing you on your level of Python knowledge, or making sure you fit all of their checkbox requirements for “knows Python good enough to be here.”
(Well, there was one, but more on that later.)
Shocking, right? All it was was a large group of people who were all interested in this programming language called Python and who wanted to learn how to do cool things with it. Imagine that!
I did a few speaker introductions, made sure no one stole T-shirts, and spent time giving out the swag bags and lanyards to people who showed up. My favorite story from the day is about a roughly 11-year-old kid who showed up with his mom and younger brother. His first question to me was, “Where do you go to learn this language?” I asked him what he meant by that, and he said he already knows some languages and builds games with them, and he wants to know where to learn this language’s syntax.
Well, I’ll be darned. Apparently he already knows Lua (which I had never heard of), JavaScript, HTML, oh and PHP because he needs to know that one for his internship.
I recommended he attend the Building Games in Python workshop that I was TA-ing next, since that would likely be a good comparison of syntax for him, what with his game-building experience in JavaScript.
Let me tell you. This kid! He answered almost every question the instructor threw out there, sometimes throwing the instructor for a loop because his answers would be one or two steps ahead. At one point he got a job offer. I assume he will turn it down due to his internship, but it’s good to know when you have options.
It was awesome seeing not just this particular kid, but several kids all around the age of 10, plus or minus a few years, floating around the conference. I wanted to buy them all lunch.
I’m not sure if that helps or hurts my case for the lack of intimidation at conferences, since I was definitely blown away by this kid’s enthusiasm and tenacity! But for what it’s worth, conferences are awesome and you should go.
Now, on to the story about the quiz on my Python knowledge.
Like I said, I had accidentally volunteered to TA a workshop on building games in Python because I signed up to introduce the speaker. If I had known I’d also be TA-ing, I don’t think I would have done it. Plus one for being oblivious!
Prior to the talk, the volunteer organizer asked me what my Python skills were on a scale of 1-to-10. I laughed and declared them a one. He then turned to the other volunteer for the class and asked him the same thing. This volunteer replied he didn’t know, so the organizer clarified by asking him if he knew how to use a for loop. The volunteer said no, he didn’t, and then I got excited because of course I knew how to use a for loop! And a while loop, and if…then statements and all of those! Most recently because of my work in JavaScript, but it still counts. It’s just a different syntax. (More on that in another post.)
Why am I telling this story? If you’re a beginner, it’s important for you to not discount how much you know. It’s very easy to feel intimidated because the sheer volume of knowledge available on the internet proves how little we know. But the thing is, no one knows it all. In one of the PyOhio talks I just listened to, Allison Lacker mentions that. She points out how if a coworker asks her a question about a language she uses every day, she could respond with indignation that this person doesn’t know that language. But that would be silly, because her coworker probably knows a thing or two she doesn’t. That’s how it works.
For me, I don’t think I ever stopped to realize how much I do know.
I think about how much I’d like to know, or what I wish I could do. But I haven’t stopped to think about how much I’m able to do right now. I know I’m capable of building a word search game in Python. I know I’m capable of using Twitter’s API to automate things like follow-backs or direct messages. I even feel confident about creating some automation with Selenium after listening to Al Sweigart’s talk. I know I can do it, but I realize now I have been assuming that if I can do something, it must just be really easy to do and it’s not worth showing people because of course everyone can build a word search game in Python.
I’m calling my own bullshit here. I’m going to show what I can do. Dust off my GitHub and actually use it.
I decided I want a job in Python first or web development second, and so that’s what I’m going to do. Right now I’m working my way through the Python Koans — and I’ve already learned some new things I plan to use in some programs! I’m building my aunt a website on the side, and have added building a Flask-based portfolio to my list of to-dos.
You’ve got to start somewhere, and you’ll never know how much you actually know until you start using it.
Which brings me to my second point. It’s so overwhelming, this whole “learn to code” business. There are umpteen bazillion resources out there on the web, and almost as many languages. People are creating new languages and libraries and frameworks every day. How in the world are we supposed to learn the important ones before a newer and better one comes along?
One of the biggest things I struggle with as a beginner is staying focused. For example, Ruby is very popular right now. I feel like I’m always hearing about how awesome Ruby is and how you have to learn Ruby, and I’ve even found companies who will hire you in order to teach you Ruby so you can join their engineering team.
As attractive as that is, I don’t plan on learning Ruby. Why not? Well, Pythonista sounds cooler than Rubyist. Obviously!
I started learning to code in Python. (Well, I started learning HTML and CSS if you count my super awesome geocities website in middle school.) And it just stuck with me. I know people who are trying to learn all the languages — JavaScript, Python, Ruby, Java, and all the jQuerys and Meteors and Rails…s and Djangos to go along with them. And it’s sometimes difficult for them to understand how a for loop works. More isn’t always better. That’s why there’s also Less — plus one for a command line joke!
I’m going to stick with my two languages for now — Python and JavaScript — and get really freaking good with them before I worry about branching out. And I encourage you to do the same. If you’re new, pick one or two languages and go all out with just those. You can even use this handy guide and choose a language based on which Lord of the Rings characters you relate to.
I highly recommend Python. It’s the best. (But really though.)