If you want to be a programmer, entrepreneur or a statistician, the best advice that I can give is,
“Don’t believe other people are smarter than you.”
Sometimes that is hard advice to take. I read an interesting blog post by Ali Berlinksi, “I miss being stereotyped”, about being Asian-American and moving to an area in Spain where people had met so few Asians that they had no stereotypes. She said she missed the advantage of having people just assume she was studious, intelligent and good at math.
Of course, as she notes, most stereotypes are not nearly so benign. Many groups – Native Americans, women, Hispanics – are assumed not to be as good in math, or programming or really not the start-up type. Not many people say it that bluntly any more.
Last week, I happened to be in a seventh-grade math class at a predominantly Hispanic school, I asked,
“How many of you would like to be a programmer or design computer games?”
One girl’s hand shot up while the rest of the students looked at me (and her), as if it was a crazy question. I persisted,
“Why not? Seriously, why not? “
This wasn’t a remedial class. The math the class was doing when I walked in was closer to eighth-grade level than seventh, and remember, the school year just started. It’s often more a lack of encouragement rather than being actively discouraged.
My friend, Hayward Nishioka, is a phenomenal judo instructor and competitor, author of several books. We were having lunch this week and he said to me,
“You know, you need to give young people permission. You say to the student, you know, YOU could earn your black belt, YOU could become an instructor, too. You have that ability. Then they go ahead and do it, because you have given them that permission.”
I’m not sure that is true of everyone. Some people telling them they can’t it just makes them more determined. But, he is correct about a lot of people. He’s also correct that it is harder to keep going when you don’t have a lot of confidence you will succeed.
Programming is one of those things that takes a lot of perseverance – why do you think they call it hacking? It’s easy to get discouraged when your first attempt doesn’t run – and believe me, once you get out of CS 101 and get into real problems, your first attempt almost NEVER runs. Sometimes your second, third and eleventh don’t either. It happens to everyone. It’s normal.
What I’m afraid I see in too many classrooms, though, is that students have not been encouraged to believe they will succeed in the end or that that math and programming are things they should expect to be able to figure out. So, when they have that fifth failure, they just assume they aren’t smart enough.
Here’s another piece of good advice. Check out github.com – a place where you can find a generous number of code examples (and I feel terrible guilt that I have not contributed – although it is written on my whiteboard as one of the ‘must get around to’ items). When you are first learning a language, it’s great to see finished examples of ’the big picture’. Reading books on a language is great, but no substitute for actual working on a project. For me, starting with something like programming a tip calculator is as boring as watching paint dry. I’d rather jump in there and do something like a game. With github, you can read through examples and see where what you are learning is being applied.
Not everything on github runs or works as desired. People put up projects for review, projects that are in progress. As you gain more experience, you might want to download a project that is similar to what you want to do and just modify it. You’ll certainly see code that you would have written differently. You’ll see code where it is obvious that the person who put it up actually just downloaded it from somewhere and modified it, because there are modules, functions, that don’t really do anything — they’re left over from whatever the original program was. That’s your first insight into no, not everyone is smarter than you.
The nice thing about github is you can kind of lurk anonymously and look over other people’s shoulders and see that no one else is perfect either.
As you gain even more experience, you’ll eventually start downloading code that you think, “Hey, I could do this part better. …”
Someone told me, no one has math anxiety, they have dumb anxiety – they are afraid that other people will think they’re dumb. This is another thing that github may help you with. I’ve never once looked at anything, and thought, “That person is really dumb.” More likely, I’d think, they must be new to programming.
On occasion, I’ve downloaded a program from someone who had a reputation as being really smart, and found ways to improve it, for my purposes anyway. Did I think, “Wow, I must be smarter than that person”?
Not even once. What I actually think is, “This saved me a couple of days work and I really feel good that I can improve on something someone this smart wrote.”
So, my two points, before I toddle off to bed with a glass of Chardonnay:
1. Math, statistics, programming – you can learn it. Just start and keep going.
2. Github is awesome.