Photo by Ian Schneider on Unsplash

Why quit a cushy corporate tax job and switch to tech to start over, you ask? My answer is simple — a career in tech gives me the power to create, fuels my passion for problem-solving, and provides unmatched flexibility! Currently, I am a Certified Public Accountant (CPA) with over six years of experience in the area of corporate taxation. I have had the pleasure of working in public accounting (with Ernst & Young), as well as publicly traded and privately-owned companies as a senior tax professional. Initially, I was on my path to becoming a tax manager at a large publicly traded company before I decided to change things up.

I wanted to share my experiences, resources, and some tips with everyone who may be considering a career switch to tech. I wanted my journey to bear-proof that it is 100% possible to make such a monumental move if you have the passion and willingness to work hard towards your goal. Luckily in computer science, I have discovered a ton of free online resources and support groups that may help you succeed along your way! If you are only interested in reading a summary of what you can do to move forward your career transition, go to the end of the article.

How it all began

Even as a tax professional, I was always a technology enthusiast. Nothing excited me more than discovering a technology that streamlined repetitive and manual tax work, and whenever possible, I went to tax technology workshops and events. Since I started my career as a tax intern, I have been using Excel and its powerful macros to automate tedious and unvarying tasks. Along the way, I heard about the programming language Python, which was capable of automating a ton of tasks, and that’s how my deep dive into the field of tech began!

Photo by Hitesh Choudhary on Unsplash
How I got started

Thanks to Dr. Chuck’s incredibly easy-to-digest (and funny) lectures and Python’s intuitive syntax, I was able to pick up Python using Python for Everybody and acquired a few Coursera certifications while doing so. Coursera played an instrumental role in my early learning period due to its online availability, flexibility, and particularly its discussion forums, which provided much-needed interaction with other students and teaching staff. These courses helped build my confidence and incorporated me as a part of the broader programming community.

If I were to do it all over again, I would use Coding Bat to solidify my learning while taking this course. I would also suggest getting comfortable with reading a programming language’s documentation instead of simply Googling questions. In addition, I also found a useful app called SoloLearn that I used during short breaks to continue my learning and reinforce topics I had already gained a basic understanding of.

Photo by Chris Ried on Unsplash
Why I chose the MCIT Online program at the University of Pennsylvania

During the limited amount of time I used to have left after my full-time job, I had to research what my next steps were in my learning process. Instead of endlessly perusing the internet, I thought that it might be worth it to enroll myself in a more structured program. My goals were to find a program where I do not have to set my curriculum, have learning resources in-place, and, most importantly, have an available support system of people in the same boat as me.

I looked into some coding boot camps and some online degree programs, both of which would offer part-time learning opportunities, allowing me to continue my full-time job. Soon, I came across the Master of Computer and Information Technology Online (MCIT) by Penn Engineering, designed for students without a Computer Science background. It was a no-brainer for me to apply, given the excellent quality of education, affordable tuition rates, and well-known class instructors, and unparallel flexibility of being online. I was initially very nervous about applying to the program, but I quickly gathered some courage, and luckily, I got accepted.

Photo Hey Day by University of Pennsylvania on Flickr

As soon as I joined MCIT, I became part of the program’s slack group. I found myself surrounded by some of the most intelligent and hard-working individuals, most if not all, shared one thing: the desire to dive deep into the field of computer science. Instantly, I found an exceptionally supportive and active community of professional students. We all shared the joy and pain of learning while overcoming the obstacles that came our way. Having the ability to ask questions to teaching assistants and course instructors live and offline helped cement the study material. I started my journey by taking an introduction to software development class, which allowed me to learn Java, and most importantly, the principles of object-oriented programming.

The ”debugger ducks” used by the CS50 course team, Photo by Andrew Wulf on Unsplash
How I incorporated outside-the-classroom learning and projects into my schedule

With my first programming class completed, I had a comprehensive final group project under my belt. With my newly found confidence, I wanted to learn more on my own during the summer instead of taking condensed material-packed classes. I came across the most popular CS50, Introduction to Computer Science, by Harvard. I cannot thank the entire CS50 team enough for making this invaluable resource available for free for everyone to benefit from. The course has video lectures, a ton of examples, assignments (on less comfortable and more comfortable tracks), video shorts on various topics, an online browser-based course IDE, automated grading and feedback, and much more. I could not find a more comprehensive resource for a beginner learner than this course. If you struggle with a topic and need additional support, you can also watch the lecture videos from prior semesters on CS50’s youtube channel. If you still need extra help, you can find support on their slack or Facebook group. There are lots of resources on numerous platforms available by the CS50 team. To take it one step further, CS50 has web programming seriesintroduction to artificial intelligence series, live office hours, and numerous tech-related podcasts, some of which I am exploring currently.

After my summer self-exploration, I took a few more core courses (CIT 592 to CIT 594) towards my degree program. After about a year into MCIT, I had built up enough programming skills and learned enough foundational knowledge to build a portfolio of personal projects. At this point, I was confident about my career switch and had quit my full-time job. I was introduced to GitHub during my first programming class, and I found it to be my primary platform to showcase my projects. GitHub is not only great for version control and collaboration with others, but I found GitHub pages to be a great (and free) place to make websites. A good tip I can share that helped me a lot was to involve or share my projects with my peers (or mentors) to get their feedback and better my skills.

I also participated in a couple of hackathons on Devpost and won an honorable mention spot in one of them. Besides the monetary reward, this achievement was certainly a confidence booster for me since I worked with professional developers/engineers outside of my university’s student community side-by-side. I learned how to communicate timely, collaborate in a team setting, and organize the entire projects until the submission stage. These lessons are invaluable, and they made me realize how many skills from my previous career were transferrable.

Letters spelling “PROJECTS” attached on the wall with some light reflecting from the back
Photo by Octavian Dan on Unsplash
How I suggest getting started with open-source contributions

An important tip that I would give to myself a year ago (and even now 🙂 ) would be to contribute to open source projects. I felt intimidated by the thought of contributing to an open-source project that will be visible to numerous users. I was afraid to “mess up” or “break” something. However, with a better understanding of the available support system, I feel very confident and plan to make a few contributions in the upcoming months. Here is a useful resource on how to make your first contribution to an open-source project. If you don’t know where to contribute, feel free to start by checking out the organizations listed by Google Summer of Code. You will see the technologies used, project details, and associated GitHub repository. I frequently notice that the GitHub repositories would have several open issues with tags, such as “good first issue” to get started. Many large open-source projects would have in-depth documentation on how to set up the environments, technologies, get help, connect with mentors, etc. By contributing to open-source software, a person gains a deeper understanding of a large codebase, experience collaborating with other developers, and potentially connect with people who may end up helping you with your career path.

If you find contributing to open source projects overwhelming, I would suggest finding a friend to do it with. Recently, I came across the MLH Fellowship program that has a 12-week internship alternative with a focus on open source contribution. Given the mentoring support as well as learning and networking opportunities, I surely plan to apply to this program in the future.

Photo by Clay Banks on Unsplash
What communities I joined

Besides creating a portfolio of projects, connecting with those who are entering the tech field was also very empowering for me as I mentioned before. Finding a community, in my opinion, was instrumental in keeping me motivated to keep going and reach for my goals! To connect with peers within my program, I joined slack back in 2019. Through slack, I joined several organizations and connected with various groups of individuals: students from other universities, working professionals, women in tech, etc. Currently, I am part of the following slack channels that I welcome you to join if you are eligible: Women In Tech (join here), intern.club (join here), Scholarship Track (join using this here), and Breaking Barriers || Tech Branch (join here or LinkedIn group. It was through these slack communities that receive an unbelievable amount of support: a chance to network with other professionals, ask questions, practice interview coding questions, receive feedback on my resume/cover letter, learn about a ton of events, companies, recruiting tips, and more! And to keep me informed, I also found a few organizations’ newsletters to be very helpful: Remote Student Newsletter, and Diversify Tech Issue. I also found joining tech events, such as the Grace Hopper Celebration and RailsConf, to be very beneficial in connecting myself with the tech community, learning about new technologies, and getting inspired by others in tech!

Besides receiving support from the above communities, I strongly believe in giving back. In 2019, I also joined the University of Pennsylvania’s MCIT Online Student Organization (MOSA). MOSA regularly organizes events and programs to support the student community in several areas: professional development, diversity and inclusiveness, student mentoring, education and learning, social outreach, and much more. I initially started as a committee member in the Entrepreneurship and Jobs Committee, and later, I received an opportunity to get elected as a Director of Operations, allowing me to contribute to other areas of the organization. I found this leadership opportunity to be very rewarding, and it lets me connect with other active members of the community in a meaningful way. I am proud to be a part of such a large and diverse student organization!

Photo by Glenn Carstens-Peters on Unsplash
What you can do now

Here is a summary for you on things you can do to help propel your career transition to tech:

  • Learn a high-level and easy-to-learn programming language like Python (Python for Everybody) and take an introductory survey course, such as CS50, Introduction to Computer Science
  • Join communities/organizations that resonate with you and your values. Build your support network
  • Work on personal projects and request feedback from peers/mentors
  • Participate in hackathons
  • Contribute to open-source projects
  • Be informed, join organizations on slack, read newsletters, attend tech events. Connect with people!
  • Take a leadership role or volunteer in the communities that helped you and give back

Finally, one thing that everyone is curious about is getting an internship or a job. I am in the process of writing another article on this topic, so stay tuned! Let me know in the comments below: What resource(s) did you use in various aspects of your learning, career transition, or job search. I would love to know!

Note: All the opinions expressed here are solely my own and based on my personal experiences. Views expressed here are not supported by any organizations associated/unassociated with me or covered under the article.

If you are interested in learning more about applying to MCIT Online, click here.