On Saturday, 05 March, I am one of the keynote speakers for Django Girls den Haag.
Hi. My name is Rain Leander. Welcome to Django Girls den Haag. Today I’m going to talk about programming – what it is, why you should do it, what you can do with it. I’m going to tell you my programming story including how I got the job I have now. And I’m going to give you a little programming advice.
First, what IS programming? Ashley Gavin gave a great TEDxNYU talk where she defines computer science as a medium for problem solving and self expression. Just like a dancer will solve a problem or express themselves with movement in space, a programmer uses technology.
But then why should you learn to program? There are so many reasons. Steve Jobs said, “Everyone in this country should learn how to program a computer because it teaches you how to think.” And code.org is putting out some great you-tube videos of “code super stars” saying that everyone should learn to program. Paraphrased, some of the reasons include:
Whether you’re trying to make a lot of money or change the world, programming is an empowering skill to learn. Software is about humanity, helping people by using technology. To come up with an idea and see it and make it, then press a button, and it’s in millions of people’s hands is amazing. The programmers of tomorrow are the wizards of the future. You’re going to look like you have magic powers compared to everyone else. Great coders are today’s rock stars.
Basically, you should learn to code because it pays really well. Because if you prioritize happiness, programmers are ranked second in job satisfaction in the United States. Because of job security. Based on growth projection, there will be one point four million jobs in 2020 and not enough people qualified to do them. And because almost everything that teenagers use is a product of computer science – video games, wikipedia, the selfie.
And you don’t have to use programming to be a developer, there are lots of opportunities out there for people with programming skills. Mikey Ariel has a presentation where she shows some of the major career paths for code monkeys: developers, designers, support engineers, testers, project managers, and writers. Just to name a few options.
Learning to program is intimidating at first, but I promise, it becomes easier over time. Just like learning to play an instrument or play a sport, you have to start small and practice and break problems down into smaller tasks. You don’t need to be a genius to learn to code, you need to be determined. You should probably know your multiplication tables.
I am an OpenStack TripleO RDO software engineer with Red Hat. Specifically, I am a developer evangelist which means I am an active technical contributor to the OpenStack TripleO RDO projects and also I travel around talking about those projects and asking people to join me as active technical contributors.
You might think that this means i am really smart and have a computer science degree and tons of experience programming.
NOT AT ALL
I am a DjangoGirl. I attended a DjangoGirls workshop last year in March, but that’s not where my code story begins.
I had an entire dance career before I “retired” to program full time. I taught myself HTML, CSS, and PHP many many (many) years ago when I was dancing full time. How did I know I could do that? I met a woman who was an amazing web developer and asked her how she got started. “I taught myself.” Well, if she could do it, I could do it.
I taught myself to code and I used it as a bartering tool to pay for goods and services for my dance career. Rehearsal and performance space, costumes and make up – I didn’t have money, but I could code. “Would you like a new website?” At the end of my dance career, the next step was obvious – time to code FULL TIME. I joined Red Hat as a support engineer and absolutely loved it.
Years later, I gave birth to my kickass son, Sasha. And decided to go part time. My job wasn’t allowed to be part time, so my job became looking for a new position within Red Hat. At first I applied to everything, but then I took a DjangoGirls workshop in Groningen.
And I remembered how much I loved to code.
Sure, because of my current job, a few of the chapters from the tutorial were refreshers, like the git, command line, code editor, and HTML chapters, but a few were completely new like the python and django chapters and I had never deployed to heroku (the previous deployment platform, now we use PythonAnywhere).
From then on, I applied only to developer jobs. And here’s part of how I got my job that I do now.
I answered a job opening for a ‘Junior Application Developer’ and when they saw my resume, they sent me the following request:
I would like you to try the following 2 assignments, both preparing for a position as application developer: 1. Make a function which accepts a string and returns the Google-results for this string. You can use Python and the requests-module. 2. Also make a function which accepts a string and returns the Google results. This time do it with a different method: use Python and Selenium, which controls a browser (default: Firefox). For both I would like to receive your solution before we have our conversation, if it is possible.
The first thing I did when I got this email was panic.
WTF IS A FUNCTION? WHAT IS THE REQUESTS-MODULE? WHAT IS SELENIUM? HOLY SHIT!! !
Then I calmed down and rewrote the problem:
- Make a function
- accepts a string
- returns the Google-results
- use Python and the requests-module
- make a function
- accepts a string
- returns the Google results
- use Python and Selenium
- which controls a browser (default: Firefox)
Writing the sentences like this helped me see the parts of the problem that I needed to google, making it much easier to digest. You might find that you need to write it out another way, but you’ll find it as you practice and learn.
Once I googled and found the information I needed, I tested it locally and then uploaded the information onto github. Now, don’t just throw your code up there, but document it.
Yes, I received a job offer.
Finally, I have a few pieces of advice for new programmers, but if you don’t remember any of these, please remember that you can visit My Django Story where the DjangoGirls people have been interviewing programmers for years and one of the questions that they ask every single person is “What advice do you have for new programmers?”
Ola Sitarska, one of the co-founders of DjangoGirls says:
If you like doing this, then stick to it. Programming can sometimes be frustrating or boring, but it will get better. Don’t ever let someone tell you that you shouldn’t be programming. Ask for help often and help others.
And Ola Sendecka, the other co-founder of DjangoGirls says:
“It is very hard at the beginning when we know almost nothing. The worst thing is that it is hard to ask good questions. We don’t know what we don’t know :). All answers are there – you will find them on the Internet, books, you can ask people around you. But knowing what you want to know is crucial. So you don’t need to be perfect at the beginning. You will make many, many mistakes and that’s ok. You will improve. The best thing you could do is learning how to ask questions and how not to be afraid of asking them.
And my advice is twofold:
First, learn to google. Finding your own answer is key to being a successful developer, imho. Although, figuring out when to ask others for help is also very important. But, still, learn to google. Second, don’t be afraid to make mistakes. One of the reasons why children are so good at learning things is that they aren’t embarrassed when they make mistakes, they just get back up and try again. Adults have a stumbling block of “feeling embarrassed” or “looking silly”. Give yourself permission to make a mess, learn from it, and progress.
Now let’s get coding!