Big-picture thinking: What I learned from my conversation with Web Developer Spencer

For some reason a lot of people are intimidated by software (myself included). But as Spencer told me in our conversation, it’s not that difficult. It involves sitting down and working through problems, moving script around, using google, and taking breaks when needed. It’s not for everyone, but if computer programming is something you want to learn, then you might be surprised by how painless it is.

Spencer learned coding back in 2001 after developing a fascination with Wikipedia. He didn’t study it in university. He learned coding using Google and other internet resources. Then he got a job at start-up. Now he’s one of the top web developers in the GTA. 

 Even if you don’t want to be a coding whiz, there’s something to be gained from learning more about how our software works. We use it every day. In our conversation Spencer and I talked about everything from programming languages to good computer hygiene and overall wellness. I learned so much! The gears in my head are still turning. One thing I realized is that the things we spend our time doing (our careers, hobbies, etc.) can have a huge impact on the other areas of our lives. It’s important to be able to see the big picture – how interconnected it all is. On that note, here are some of my big takeaways from our discussion on learning computer programming. Feel free to add your own in the comments.

1.     Find a reason to learn. It should be more than just a vague payoff like ‘it will make me money someday’. Spencer pointed out projects as a way to learn computer programming. He wanted to make editing Wikipedia simpler. A friend of his wanted to make his email client more user-friendly. This doesn’t just apply to computer science. To get started on learning something, think of a project that you would be able to accomplish if you learned this skill. For example, if you want to learn to cook, you might visualize the perfect version of your favourite dish. It doesn’t have to be a project, just something that gives you an answer to the “why?” Something that helps you see the bigger picture of what you are working towards. 

2.     Invest in your projects (outside of work). This is where you get to do things the way that you want, “and don’t let anyone else tell you you’re doing it wrong”. With computer science, this means building software programs that interest you, whether it’s Wikipedia bots or a global time zone visualization (I definitely recommend checking out some of Spencer’s work). For you, this could be anything. It could be a novel, a homemade birdhouse for your mom, or a wicked tree fort for your kids. Whatever it is, the investment will pay off, whether monetarily or otherwise 

3.     Protect your work-life balance. When the boss tells you to work late, you can say no. When you are offered a job with a low salary, you can say no. The bottom line is you can say no. Saying no is one of the most important (and most difficult) habits to learn. Your time is your most valuable resource. If you don’t protect it, you’ll see it gobbled up by other people. And when you work for other people, they get rich off your time – not you. I realize this is capitalism in a nutshell, but you can have a job that ends at 5pm. Our forefathers literally fought for that. Say no to hustle culture (unless it’s for your own projects).

4.     Take breaks. When Spencer said, “it’s never going to be done”, he summed up the process of learning a skill. There’s always something to be done, just as there’s always something else to learn. That’s all the more reason to stop the clock and go for a walk when needed. As Spencer mentioned, this can be difficult if you’re chained to your desk. Often, we chain ourselves to our work, hoping that we’ll make it perfect, or solve the problem, if we just keep at it. As a perfectionist, I have to remind myself that this is self-defeating. Putting your feet up or going to bed is usually a much better way to work through a challenging problem than banging one’s head against the computer keyboard.

5.     Take care of yourself. Even sitting at a computer takes a toll on your body (and your mind). Whether it’s yoga, the gym, or just reminding yourself to raise your arms above your head, it’s important to routinize self-care. This is forward thinking. If you want to continue doing what you love in the future, you’re going have to take care of the faculties that enable you to do it.

6.     Make your work-flow work for you. Spencer said that a computer is like a carpenter’s workbench. If you ever watch a good carpenter, you’ll notice that every tool is in the exact spot. My former boss Rob was like this. Like Spencer, I used to think it was anal and even a little silly. But now I understand that setting up our work area in an organized manner, makes you work more efficiently. A disorganized carpenter could waste half an hour trying to find a misplaced level. Though not physical spaces, our computers are the same. Making our computers (and other work stations) work for us takes time and effort, but it’s worth it in the end. On that note, I have to go clean out my email inbox…    

Bonus: Spencer’s Tips for Learners of Computer Programming

1.     You don’t need to go to college or university. If you just want to work at a startup, you’re better off learning it on your own (if you’re not self-motivated and have the money, you can try a coding boot camp).

2.     Start with Python or Javascript. Though coding languages are all similar, some will take longer to learn and get good at. By starting with Python or Javascript, your progress will be quicker. Once you learn the basics of one language, it’s easy to pick up another language as they all have the same basic components.

3.     Start as a web developer. According to Spencer, learning programming on the web is much more forgiving than elsewhere and allows you to avoid licensing fees. As he says, websites are an amazing thing – how small, versatile, and fast they are!

4.     Start with a project you want to complete or a problem you want to solve.

5.     Learn version control. This enables you to track your changes and collaborate with other developers efficiently. The most common system is Git, according to Spencer.

6.     Develop your communication skills and emotional intelligence. At some point you are going to have to ask someone for help. Knowing how to approach and connect with people will enable you to learn from others and grow your network.

7.     You’re only as good as your tools: Set your computer up the way that works best for you. Also, don’t neglect to take care of those other tools. Your body and mind are irreplaceable.