How I Learned to Code and Started My Career in Tech and Landed my Full-Time Job as a Software Engineer

Hanwen Zhang
7 min readOct 31, 2022


It has been almost two years since I started working in tech, and I have no regrets about the career moves I made.

Over the past weekend, I gathered some of the studying notes that I took in the past, and posted them on Medium. Hoped these notes would be helpful to people who are learning the subject. Then, I thought of why not share my personal story on how I learned to code.

Looking back, I have worked hard and was fortunate enough to get the opportunities and support throughout the journey of my career change. There were definitely things I could have done better, and wished to be known earlier.

Photo by Christin Hume on Unsplash

My Journey

How I Started

While I was still in my MSW program back in 2019, I already knew that it is not the career path for me and I would not be happy if I continued to work in the mental health field, so I started exploring different options.

Upon my graduation in May 2020 during COVID, the tech industry was booming, and I started to reach out to people I know who work in tech to get more understanding of the field. I decided to make a change.


I applied and started my course at NYU Tandon Bridge, which is a certificate program that builds foundational skills in those without a technical background and connects students to apply for selected STEM graduate programs which covered subjects like discrete math, data structures and algorithms, and principles of operating systems, computer networking, etc.

First Job

After the certificate program, I was eager to find a job or get an internship to step in the door as I have heard so much about the working experience weighing more than a degree in this field. I started job searching, sent out many resumes, and attended interviews before my Master’s degree program at Boston University started.

Finally, I was lucky to find an apprenticeship program at a consulting company where I landed a job as a contractor at a tech company doing front-end development using ReactJS. After gaining some working experience there, I jumped to my current company working as a full-time software engineer.

Photo by Estée Janssens on Unsplash


You will never stop learning! You have to be a lifelong learner if you want to work in tech, there is just always something you need to learn — the product, the architecture, and coding is just the very basic part. Well, I guess living in the modern world, you have to consistently learn and adapt to new things in order to survive no matter what field you are in.

Tips I found to be helpful in learning:

  • Take Notes

“The palest ink is better than the best memory”. It is difficult to try to remember everything just by memorizing since there is so much information that is needed to remember, like life, work, school, news, appointments, etc. I found it helpful by writing down the key points of what I have learned for the day in a digital notebook and come back to the information when needed. I prefer using a digital notebook like Evernote or Google Docs or Github, I can just search the keyword and filter the section, which is easier to get to the part I am looking for.

  • Learning by Repetition

Something I have learned today, I might forget tomorrow. Repetition definitely helps. Go back to the content and just learn again, whereas keeping a note is important too.

  • Setup a Schedule/To-do List

Being consistent at something and having a plan helps. Create SMART goals for the day, week, month, quarter, and/or year. Write the to-do list down to keep track of the progress, and also be flexible to the changes.

  • Make Learning a Habit

When you Google something, you probably learn something; when you read something or see something or hear something, you probably learn something as well. Even just something small, we have to keep learning and adapting to this fast-changing environment.

What I Wished to Know:

  • Go Get the Job

If you are not just coding for fun, your end goal is to make a living from this skill, go get the job sooner than later. Feels like working experience weighing more than just a degree in this field, and you get to have first-hand experience when you work on a real-life project. I found there are concepts that have become easier to understand when you have seen them at work. Overall, you just get to learn more from work than just school.

  • Start Preparing for the Interview

It takes time and practice to do well during a job interview. I have heard people spend months or years preparing for technical interviews. I guess the more senior level you get, all the experiences and knowledge you have accumulated for the work will be expected to shine, whereas passion for the field is an important factor for an entry-level junior-level developer.

  • Fundamental is Crucial

With any skill, you get to have a strong foundation, just like how important the underpinning is when you try to build a building. Always refresh your basic computer science knowledge, such as computer networking, operational systems, data structure, algorithms, etc.

  • Keep Tracking your Work

Marketing yourself and keep tracking what you have learned. At a certain point, I wish I could have kept writing Medium posts more consistently.

  • Be Patient with the Progress

Progress takes time! All little progress each day adds up to big results! Continuous improvement — 1% a day! As long as you allow yourself to improve every day, you will be in a good shape. Do not give up!


  1. Practice makes perfect
  2. Fake it until you make it

Just like most of you, I get super nervous during the interview process as well although I have attended a number of interviews, both technical and non-technical ones.

One tip I found to be helpful when I try to deal with stressful events is to think about the worst scenario, and what I would do if the worst scenario happens, how I can take the worst result emotionally.

For instance, the worst case for attending an interview is probably not able to get the job, which is okay, you gain experience, get to know the interview process, and practiced it in a real setting. So… what is the loss?

Set up an action plan on how you can do better next time.

Tips I Found to be Helpful in Preparing for Interviews:

  • Study for the Interview Questions

Plenty of the interview questions are available online which you can study for, and some of the interview questions are pretty similar. You can google common interview questions to get a sense and keep practicing coding on Leetcode. Prepare some answers to behavior questions.

  • Take Notes After Each Interview

Keep a log of the interviews you have attended with questions the interviewers have asked. If there were any questions you were unable to answer during the interview, write them down and try to solve them on your own offline. If you are still unable to solve the question, seek help from the community. Do not just get the answer, but understand the logic.

  • Be Confident!

Try to make yourself as comfortable as possible, and present yourself with confidence. Either buy yourself a new interview suit that you like and wear it during the interview or put on some makeup. Make your room and your desk tidy if it is a virtual one, and do deep breathing before joining the room. Make sure you have a good mood for the day, sleep well and eat well.

Photo by Maranda Vandergriff on Unsplash

Imposter Syndrome





Sometimes I found it hard to keep something going without motivation. There are days I am more motivated than others, and some days I am just being lazy and do not want to do anything at all. I found that having a support group and building up a reward system help with motivation, and having a bigger picture in mind to keep yourself going.

A support group can be as simple as reading a motivational post and/or watching a motivational video and connecting with folks who share their stories by leaving comments and reflecting on my own life. I also found that doing workouts helps me with the motivation of becoming a better self, and I work out nearly every day from 7 AM to 8 AM. A reward system can be buying myself gifts or allowing myself to eat a nice meal or a mini-vacation to recharge. Be nice to yourself to avoid burnout.


If you do not like your current life, make a change! Tomorrow will look exactly like yesterday if you do not get out of your comfort zone and make a change to the life you want to live in. Just like Albert Einstein once said: “Insanity is doing the same thing over and over and expecting different results”.

Love yourself because you deserve something better! I really like the inspiration found in this article:

I realized that difficult things are only done willingly out of love. If you love yourself, you won’t eat junk because you’re convinced your body deserves better. If you love yourself, you will have a serious conversation with your partner because you are convinced you deserve a good relationship. If you love yourself, you will dare to change career because you know your passions are important and worth pursuing.

Photo by Jackson David on Unsplash



Hanwen Zhang

Full-Stack Software Engineer at a Healthcare Tech Company | Document My Coding Journey | Improve My Knowledge | Share Coding Concepts in a Simple Way