Annie is a programmer without a CS degree who is sharing her story of learning to code today. Read on for her tips on learning to code. Annie discusses the benefits of going to a coding bootcamp vs self-teaching and how to get a job in tech without a CS degree.
Hey, so can you introduce yourself?
Hey Pete, thanks for having me! I’m Annie, originally from Perth, Australia and currently based in Toronto, Canada! I’m the Front-end Engineering Lead at Pastel, a small SaaS B2B startup. We make it easy for teams and people to collect feedback on websites and digital assets.
I have a BA in Multimedia Design, and graduated from a front-end bootcamp in summer 2019. I also have my advanced PADI scuba diving licence and I love hiking, camping and snowboarding/onewheeling!
How and why did you learn coding?
Interestingly, coding was something that I never thought I’d end up doing as a career. Although I’d studied basic web development at university and used it in my work throughout the years, it was never on the table as a full-time career choice. Whenever I had to code the websites I designed, I felt very forced into doing it.
After working as a designer in Australia and England, followed by a way-too-long stint teaching in Japan, I found myself in Toronto questioning some life choices. Finding a full-time design job after a long hiatus was impossible, and I was working multiple dead end jobs to make ends meet. I won’t go into details but I was living in survival mode, and it was the darkest period of my life. I remember thinking the only direction I could go from here was up. This period of my life fueled the next.
I started looking into various career options in health and tech; two areas that weren’t going anywhere anytime soon. After attending a few free one-off coding classes offered by various local bootcamps, I attempted to study on my own through a variety of free online resources.
Unfortunately I found that I was jumping around, a lot of information was outdated and it was hard to stay personally motivated. I didn’t know any tech communities at the time, such as #100DaysOfCode, so doing it by myself through sheer will-power on top of full-time work was short lived.
Bootcamps came back into the picture and after some serious debate, I signed up for a part-time web development course at Juno College (formerly HackerYou). Financially, this was a hard decision but the right one. I had an amazing instructor and wonderful mentors. Beyond the technical skills I learned, it was so clear to me that my Shopify instructor loved her job, and this reflected in the way she taught. Her enthusiasm and passion rubbed off on me.
With the technical knowledge I gained from the part-time course, I applied for the full-time bootcamp and to my shock, my application was accepted! That was how I got my start, but even today, the learning doesn’t stop. I take advantage of a number of various resources (anywhere from Udemy online course to books to live workshops) to make sure my skills keep growing. I also try to attend conferences whenever I can to keep up to date. Tech Twitter can be a very helpful source of learning too; whenever I have questions, a lot of people are willing to help!
What do you find to be enjoyable about development and what genuinely stresses you out? (A question from Danny Thompson)
There’s a number of things I find enjoyable about development. On a high level, I get to work with smart, talented folks helping build products that can really make a difference in people’s lives. In my current role, I really enjoy the autonomy and ownership of sweating the UI/UX of the app, and coming up with solutions to various challenges. Development is a team sport, and I love learning from my colleagues and working together towards a common goal.
At my heart, I’m a creator. I see coding as another tool in my toolkit. I’ve used traditional media, film, art, photography and design in the past and it’s exciting to be able to add a swath of coding tools to the mix. I think that’s why I really got into CSS art; I could “draw” the scenes and images in my head and animate them… but with code instead of Photoshop or After Effects. It’s really motivating to think of my work as my craft. I’m currently diving deeper into SVGs and it’s so fun!
Intellectually, the challenge of coding is also very stimulating. The feeling of learning something difficult or getting into a flow state while working is very personally rewarding.
The thing that most stresses me out stems from imposter syndrome and feeling like I don’t know enough or I’m not good enough yet. Sometimes while working on a really tough bug or a new problem I’ve never encountered before, I get really frustrated and start to doubt my abilities. To fix one thing, I have to delve into all these other things. I feel overwhelmed at how much more there is to know. When this starts to happen, I know it’s time to pull back, take a break or talk to my CTO/other developers to get some perspective.
How did you get your first entry level software engineer job?
At my bootcamp pre-pandemic, we had something called “Industry Day”, which can be best-described as a student-employer speed dating event.
Hiring partners and potential employers were invited to the campus, where tables were spread out throughout the floor. Us students sat with our laptops on one side of a desk and had two minutes each to introduce ourselves and explain our favourite project to potential employers/hiring partners. When the bell rings, employers move around to the next student.
I got a couple of interviews from this event, and accepted an offer at a Wordpress VIP agency two weeks after graduation! I was here for 1.25 years.
In all the interviews I’ve done, I’ve been lucky I’ve never had to whiteboard anything. They’ve all been take-home projects, where I then demonstrate my work and explain my approach or things I would do if I had more time.
What are your tips for people learning to code?
First of all, I honestly believe that anyone can be a programmer if they really want to. You just gotta put in the hours and embrace the suck at the beginning. It doesn’t matter if you’re not good at maths (although it helps), and it’s also ok to want to do it for financial stability. That’s a very valid reason and was my driving motivator when I first started.
I’m a big believer in figuring out what path and learning style works best for you. Research what options are available to you, but in the end, go with the one that makes the most sense for your personal situation.
For my learning style, I benefited from the structure, community and collective sense of purpose/camaraderie of a bootcamp. It was hard for me to stay motivated self-learning; there were always so many shiny resources/courses to get distracted by. Additionally, pair/group coding, stand-ups and dedicated help/feedback, plus moral support proved invaluable to me.
Irrespective of the bootcamp route, I can not stress enough the importance of building projects. Practice, practice, practice.
Find a balance between tutorials and personal projects. If you only focus on tutorials, you’ll never go through the process of struggle that’s necessary to consolidate concepts and help you grow. But if you only build personal projects and never use tutorials, you’re also missing out on a lot of advice and tips that experienced instructors and devs can impart.
What advice do you have for someone without a CS degree who wants to get their first programming job?
For the job hunt, I attended many coffee chats and industry panels around the time I graduated. My blog post, Getting your First Coveted Tech Job: Advice from Senior Developers, Hiring Managers & Industry Recruiters, was the result of this. I still return to many of the tips and advice in this article.
One thing I’ve really learnt in regards to getting work is; your network matters. Leverage it. Building community and getting to know others in the industry is extremely beneficial to landing a job, especially as you progress through your career. It doesn’t have to be online through social media either. One of the best developers I know is barely online, but has a reliable group of people he’s connected with and can reach out to when he’s ready to look for his next gig.
What does a typical day as a software developer look like for you?
It’s hard for me to talk about a “typical day” as it’s quite varied, but I can speak generally about my week.
We start off Monday mornings with a company planning session to say hello, set weekly targets and bring up any discussion points. On Tuesdays and Thursdays, I have scheduled pairing sessions with my CTO, as well as a weekly one-on-one. Fridays end with a company retrospective where we talk about what went well, what could be improved on and what we’re looking forward to the week after.
During the week, I mostly work on building and shipping features, but there’s also PR reviews and other meetings that occasionally come up. As much as possible, I try to keep my Wednesdays meeting-free to do focused work. Reading documentation plays a significant role in my job, as does continuous learning. For example, I’ll attend conferences, talks and workshops or sometimes work on courses to constantly improve my skills. As front-end lead, I’m constantly thinking about best practices and how I can improve the front-end codebase, as well as the UI, UX and accessibility of our app for users.
We have a very flat company hierarchy, so I work autonomously with a lot of ownership over my work. Being able to prioritise my time around feature builds, fixing bugs, learning or addressing tech debt has been key to success in the chaos that startups can sometimes be.
How has your life changed since learning to code?
For the first time in many years, I no longer have to think about ordering from the three cheapest items on a menu when eating out with friends, put off visiting the dentist because it’s a luxury, or feel bad I can’t afford to get someone a nicer present. It’s an incredible relief having that financial burden lifted from your shoulders.
I shared this thought shortly after I got my first developer job — it was such a huge relief and turning point in my life.
Professionally, all the seemingly disparate pieces of my past as designer/teacher/traveller/random-whatever are blending together beautifully with my new career path. I couldn't be any happier. I feel a sense of purpose, future and upwards motion I’ve never had before, and I’m so grateful to find myself in this space.
What are your career goals for the future?
I recently got promoted to Front-end Engineering Lead at Pastel after 10 months of being there, which was very exciting! I’m not a senior developer by any means, and still have a lot to learn. Luckily, I have the space to do so at work. I’m very determined to get really good at my craft; That is, to be expectational at front-end development, with the optimal amount of back-end and dev-ops knowledge to be deadly.
Community is important to me and I’m fairly involved with the tech and design ones at large. I want to show others that with hard work, it’s possible to create a meaningful, fulfilling life in tech, no matter your start. I do my best to share what I’m learning and doing on Twitter, as well as my Polywork profile.
Beyond that, life and technology changes so fast that I can’t plan everything out that far in advance. I know my overarching motivation: the opportunity to work on purposeful, worthwhile products and causes with fun, talented people.
With these in place as a bit of a guiding north star, I like to leave myself open to opportunities as they come up.