Real time notes on changing careers

career change pt 2

This is part two of a multi-part series. See part one here: https://careerchange.bearblog.dev/career-change-pt-1/

In the first part of this series, I wrote about why I wanted to change careers and what I want to do in the future. Now, I’m staring down that decision trying to figure out how to do it. Where do I start? What should I do? How will I know I’m on the right path? I obviously don’t have all the answers, but I’ve learned a lot in my journey so far; part two of this series will discuss what I’ve learned–and what I still don’t know.

Thus far, I’ve managed to finish a couple of short online courses, complete two Kaggle projects, and feel incredibly frustrated and adrift the entire time. I don’t feel qualified, at all, to write this. But, it can be hard to find articles or blogs by people in the middle of a career transition like this. Usually, people only write about their experiences after the fact. After they’ve made the change successfully and forgotten all of the frustrating moments: the hours of despair when you’re certain you’ll never fix that bug, the disorientation of learning a new library, the certainty that you were wrong to even think you could learn to code. The euphoria of finishing a project and achieving a goal obscures all that. But, finding out how to push through the dread and the frustration (and, sometimes, the anger), where’s the guide for that?

Well, my guide isn’t perfect, but I think it can be helpful to you in some way. I’ve learned a mix of things: some quite specific to learning Python, some about learning to code in general, and some about struggling to make a career change happen.

First things first: you have to have a plan. My broad takeaway here is to get a broad sense of a specific programming language. For data visualization, either JavaScript or Python will be your best bet. I’m going the Python route. A huge mistake I made at first was only learning the “data visualization parts” of Python. This really limited me caused tons of false stars and give ups on projects I wanted to attempt. It wasn’t until I had read about one million blogs, including this one, that I finally realized I needed to take a more holistic view. As soon as I started doing that I felt like I actually had a grasp on the language. That’s obvious–and might seem dumb–in hindsight, but how could you know if you’ve never done it? The advice to start broadly was helpful to me, but a more specific thing I learned was to do more projects. There is absolutely no replacement for learning by doing. One healthy, robust project is worth more than one thousand hours of YouTube videos. In particular, I’ve found picking projects from Kaggle to be useful. On Kaggle, you can see what others have successfully done with datasets and get ideas, help, and direction. They have lots of ideas for beginners. My recommendation: pick a dataset that interests you, use several highly rated kernels as inspiration, and make your own kernel. One piece of advice you’ll always see online is to “ask for help” from more experienced others. If you’re incredibly shy and anxious like me, Kaggle is a great way to “ask” for help by leveraging other kernels.

A quick word on completing projects: figure out how to solve the problem anyway you can. I can’t tell you how many times I sat there, head in hands, frustrated that I couldn’t solve a problem the “right” way. Hooey. Just worry about getting the work done. I’m not really sure what caused this realization for me. I think it was just the fact that I was getting so bogged down I wasn’t making any progress. At some point, that had to give. Hopefully it doesn’t take you as long to realize that as it took me. Before you can just jump into projects, though, you’ll more than likely have to take one or two online courses just to get your bearings. I certainly did. And what I realize now is this (I’m saying it again): there is absolutely no replacement for learning by doing. When you first start, skip the YouTube videos and head for the tutorials. I found that FirstPythonNotebook and FreeCodeCamp are great places to start. This is easier said than done, but don’t worry about understanding everything at the beginning (or really, ever). Just get the work done. Even if you have to copy and paste an answer from StackOverflow without understanding anything about the code. I have found that the understanding comes from seeing the output of your work, so just get it done.

By the way, make sure to go over, in detail, the syllabus of any course or tutorial that you choose to do. Definitely read a lot of reviews! Don’t just look at the star rating. Actually read the comments. The last thing you want to do is to sync a bunch of hours into a course only to give up halfway through because you aren’t learning anything

At some point, probably early on, you will face a crucial fork-in-the-road: you’ve been working through your plan for a while, chugging along learning a lot. Then, you hit a wall. It lasts for a few days or more. You feel unmoored and aren’t sure if you can get back on the right path (if you were ever even on the right path to begin with). This is the crucial moment. What do you do now? Almost all of the time, you should keep going. Think about it: it is highly, highly, highly unlikely that that JavaScript project or course will be completely, utterly useless in 6 months. The extreme version of this that we all imagine is: after weeks and weeks of learning a new language, you come up for air only to look around and see that what you just learned was a total waste of time because you’ll never, ever use that language. That won’t happen! Even if you learn something like Vue and you later end up using a lot of Node, they are all in the same family. When you’re learning code, you’re learning a new way of thinking. Anything you can do to practice that way of thinking is a good thing.

Be careful, though, of a mistake that I have made multiple times already: giving up too early. I often lack the confidence that I’ll be able to figure out a hard problem. “Ok,” I’ll say, “I’ll work on this for the rest of the night and then if I can’t get it by then I’ll move on to the next project.” The reality is that coding is complex and layered. It often takes several hours–multiple nights of after work focus–to reach a breakthrough, more when you’re just starting out. For me, it often feels like it is taking forever to make progress. “Didn’t I start this last weeks ago?” But the smart thing to do here is to adjust your understanding of the scope, rather than give up too early. Giving up too early is much worse than hanging on too long (at least in this situation).

Sometimes you are on the wrong path, though, and should abandon it for another one. The uncertainty of when to make that call is made all the worse by the lack of good plans out there. There are barely any resources or courses for how to break into data visualization, much less data journalism. Any resources that are out there have a fundamental problem, which is that they don’t match your situation. They might assume tons of prior knowledge, be too expensive, or not go deep enough on a particular skill to be worth your while. This was especially troublesome for me when I was starting out because I knew I wanted to do something with data viz/writing, I just didn’t know exactly what. There was no path that I could easily follow. The truth is that I’m still forging my own. Hacking away at the jungle. Surely, there has to be a better way? I know there is–it’s called asking for help.

No matter what path you pursue, ask more experienced people for help. I’ve had some success here, but want to do better. The challenge I’ve faced is that I don’t really know anyone who can help! It can be really hard and intimidating to reach out to people you don’t know and ask for help.

How do you find people, though? Well, reading and looking at blogs. YouTube, finding Slack groups. The key thing is to take a deep breath and put yourself out there. That worst case scenario that you’re imagining in your head–that the person will be aggressive and rude, that they’ll screenshot your request for help and put it on Twitter where it will go viral–that won’t happen. Just nicely ask for specifically what you want (it helps if you can tie it to work they’ve recently done). Think about if someone reached out to you for your expertise. You’d probably feel at least a little flattered, even if you were too busy to help out. Also, be persistent. Following up a couple of times is totally normal–assuming you gave the person a week or more to respond–and it’s really up to the other person to be an adult and tell you if they can’t help.

I don’t have any guarantees this will all be worth it, but what I know for certain is this: what I’m doing now is not worth it so I might as well give it all I’ve got. The time will pass anyway.