What you’re really there to learn in computer science

You know that feeling of struggling to learn something that everyone else seems to have an easy time with? The one that makes you think, “Maybe this isn’t a good fit for me.” Or worse, “Maybe I’m not smart enough.”

That one.

Embrace it. Learn how to deal with it. This is the real hard work in a degree in computer science or IT or whatever. The rest is just implementation.

You see, there will always be more to learn. There will always be challenges to pick apart and overcome. If you’re not running into them, you’re not pushing yourself enough. There will always be those moments when you think, “How on earth do I even begin to learn how to solve this?”

You aren’t learning a computer language or a platform or a system of abstract concepts. You are learning a way of thinking. You are learning how to break down a big challenge into smaller pieces. You are learning how to try different approaches to understand and solve each small part. You are learning to set aside your worries and fears so that you can focus. You are learning how to adapt, even as changes come quicker and quicker. You are learning how to organize your thoughts. It just so happens that you’re organizing them in a way a computer can understand.

What can help you build your confidence? Start by building a small base of things you know well. Celebrate that. Expand through practice and curiosity. Ask for the help you need. If you don’t get it, fight on anyway. All learning feels weird in the beginning. It only becomes natural through repetition.

If you’re taking a course, learn what you have to learn, but leave yourself room to learn what you want to learn at your own pace. You don’t have to learn everything the first time around. If you know it takes you several tries to understand something, start before you take something up in class. That way, you’ll have better questions. Continue afterwards, too. Computer science lessons build on each other, like the way mathematics lessons do. They assume you understand the previous material. Practice and questions pay off.

There will always be people who have learned what you want to learn, or who will pick up things faster than you can. Most of these people are awesome. They know that your questions can help them learn even more, and they’re happy to pay it forward because people helped them too. Pay them back by writing about what you’ve learned and sharing that with them and others. Other people who are also learning will find your questions and answers useful, too. This is true whether you’re learning in class or on the Internet, so go ahead and share your journey.

There will always be some people who haven’t quite figured out their own insecurities – people who want to establish their position by putting you down. You can learn how to recognize what they’re doing. That makes it easier to ignore them. Don’t mind them if they try to make you feel bad for asking stupid questions. It just means they’re missing out on opportunities to learn how to ask and learn how to learn. Don’t partner with them. Look for people who help others up, not tear them down.

It is not easy to wrap your mind around new topics or break down a complex unknown. If you can get good enough at it, you may come to enjoy that excitement when a problem looks like it’s solvable. You’ll learn how to tell if you’re going in roughly the right direction. You’ll be able to celebrate even the tiniest progress. If you can do that, you’ll do fine.

Besides, the real world is little like the classroom. Even if you never get the hang of the artificial projects you do for education, you may find that you like working with technology. Don’t count yourself out just yet!

Sometimes I hear from students who find computer science intimidating. I hope this makes the big picture a little easier to see.