Hi guys! I hope you had a nice Christmas! :) Just before the holiday season, we hosted a meetup to demystify the process of getting into the tech industry in our Toronto Chapter. Let's check out what happened!
This event was hosted by me (Shiqi) and my friend -- Dailey Kaze. Dailey is a full-stack developer in Toronto. Like me, she is also a self-taught programmer. We both made a lot of efforts to transfer our careers into the tech industry. Since we both successfully landed jobs, we thought it's a good time for us to share our experience with people who are in similar situations.
We divided the career transfer journey into three stages, they are:
- Leaning & Practising,
- Job Searching,
The following text is a summarization (not verbatim) based on what we talked about and our answers to audiences' questions. Note that our opinions are based on our personal experience, so take them with a grain of salt and adjust them to fit your personal circumstances.
What kind of learning resources did we use and what are the pros and cons of them?
Dailey: I went through a Bootcamp and courses on Udemy and Codecademy.
For language syntax: Codecademy, Udemy, Freecodecamp.
Pros: Flexible time, budget
For more structural learning: Bootcamp
Pros: supports from cohorts, career supports
Cons: Cost money, fixed time.
Shiqi: taught by YouTubers' online tutorials. Also used Codecademy.
My opinion for learning on YouTube:
Pros: budget, flexible time, varieties of topics.
Cons: No structural learning (this is the thing you need to arrange yourself)
I combined these two learning resources: following a career path offered by Codecademy (or other platforms you like) and using YouTube tutorials as an extension.
There are so many career paths that can lead to the tech industry. Sometimes that can be overwhelmed, especially for people who don't have a strong technical background. How to choose between them and what made you make up your mind?
Dailey: I learned by trial and error. The Web Development Bootcamp gave me a clear picture of what I can do. What's helpful on Codecademy is that you can see different career paths. You can have a look and then decide which one to follow.
Shiqi: You can get a taste of each career on Codecademy by trying different career paths. After you gain some insights into them, you then choose based on your interest.
Is there anything you wish you have learned before you started to work?
Dailey: One problem with Bootcamp is that your courses are squished to fit the limited study time. You caught the corn concepts but missed out on explanations behind them. That's why I recommend supplementing your knowledge with different online courses.
For data structure and algorithms: I recommend "Coding Interview Bootcamp: Algorithms and Data Structure" on Udemy.
For technical skills: working on it! Making some personal projects.
What development environment do you use for work/at home?
Dailey: For code editors, I use VScode and Atom. VScode has more built-in extensions than Atom, so it's more versatile.
Shiqi: In my company, we use Jira for task managing. Additionally, you need GIT to do Version Control. As for code editors, I use CLion (paid) at work (from IntelliJ). I also enjoy VScode.
I'm following the Full-Stack Development career path and consider to do freelance jobs. Any suggestions?
Dailey: You can start with asking people in your circle to find anyone who needs a website to be built, or volunteering some of your work to help local businesses. When you are confident about your skill, then you can go to any freelancing website.
Shiqi: Another thing that helps is to build yourself a well-designed portfolio. It can serve as proof of your skills. Start by asking your family members, relatives and friends who own a small business and volunteer to make websites for them. Then you can use this experience to advertise yourself (maybe put that in your portfolio). Post your works on freelancing websites and people will reach out to you.
Are data structures and algorithms heavily tested in the technical interviews?
Dailey: That might depend on what kind of position you are applying for. For example, if you are applying for a React developer, the interviewer might gear their questions to React's mechanisms. So reading the documentation of the framework you will use in your future job could be really helpful.
Also, they want to see that how comfortable you are in terms of using the language. So, if you will be tested on data structures and algorithms, practise the language of your choice to show that you are proficient.
Shiqi: Speaking about practising data structures and algorithms, there are platforms designed to do this job, e.g., AlgoExpert, LeetCode, and HackerRank.
Plus, spend most of your time on the easy to medium-level questions, because your interview time is around 30 min to 1 hour. In such limited time, they probably won't question you about something that might take hours to solve.
How long does it take you to make a career change?
Dailey: My Bootcamp is about 4 months. I landed a job right after my Bootcamp. But my Bootcamp schedule is quite tight: you need to attend it every day. So it also depends on your time and how fast you want it to be.
Shiqi: I would say the learning phase requires at least 6 months if you start from zero. After that is the job-landing period which is hard to predict. I spent 2 months landing a job. Most Tech companies have at least 3 terms of interviews, so that expands into 3 weeks. If you failed a couple of times, then spending several months to get a job is not uncommon.
Any suggestions for the projects that I can put on my portfolio? I find it hard to get inspiration.
Dailey: There are a lot of websites that show you want you can build. You can start with creating those to gain experience and knowledge. Try to build something that you are passionate about because that shows your interviewers that you can integrate different aspects of your life together.
Shiqi: For my experience, I first followed some online tutorials to learn. I naturally generated my projects ideas once I obtained the skills. When you know what you are capable of, ideas just come along.
As for the efforts you spend on each project, I suggest that putting 2 to 3 weeks into one project, which means small projects are enough for job searching.
How long is the Tech interview? And what form of tech interview you might get?
Dailey: 45 min to 1 hour. Sometimes they give you a take-home project. Sometimes in the interview, they allow you to use Google, they want to see whether you can effectively use resources. Feel free to ask them questions if you get stuck, and talk through your approach because they are looking for how you approach a problem rather than whether you can solve it.
Shiqi: Do read the interview description in your email that you get from recruiters/HRs. They will tell you what kind of interview it will be. For example, it might be a pair programming interview. If you don't know what that is, please google it. Some forms of interviews are designed to test a specific skill/property. In this example, pair programming, they want to see you have excellent communication skills.
Also, if you get stuck during the interview, just be honest. But don't say "I cannot solve it" directly. Instead, you should ask for help, for instance, say something like "I have some difficulties here, could you give me some hints?". Then you get some hints! Asking for help will not harm your interview performance, because being stuck in your work is not rare, and the company wants you to seek help when needed, rather than be silent and wait.
What about behavioural interviews?
Dailey: These questions are repetitive, so you can find them online and I offer a template here. Read them and be prepared. Common questions are "Tell me about yourself", "Why do you want to work for us", and "what's your expectation to this position".
Shiqi: Yes, behavioural type of questions are not "hard". They are the questions that are in your expectation. Be prepared for those questions and the interview is about 30 min.
Is networking helpful in landing jobs?
Dailey: Yes, it definitely helps. What I did first is to make a LinkedIn profile, then I try to connect with as many software engineers as possible by sending messages. Additionally, I joined Meetup like this to know someone who might be looking for a developer.
Shiqi: For me, apart from applying for the job online, I also reached out to the recruiters of the positions that I was really interested in. What I did is go to the company's LinkedIn page, and in the people section, search for "recruiters" and it will give you a bunch of people. Then I will send a message to the recruiter saying that I'm interested in this job. I've got a template here, in case you don't know how to do it politely.
Inside that template, there are two other schemes. one is for "peer-networking". If you are not sure about what's the culture is like in a certain company or you want to know more about what kind of technical skills they use, the best way to find out the answer is to ask their employees! Another one is for "leadership-networking", if you are interested in that, please check it out.
Additionally, do reach out to your friends if they are in this industry. Getting a referral from them will enlarge your possibility of receiving an interview. Don't be afraid to ask them, because if you get the job they will be rewarded. It's a win-win solution here.
All right guys, that's the summary for our meetup. If you feel like it, please join our Toronto Chapter by clicking the join button in this link and you will get a notification for future meetups. I hope you have some take-away today and I wish you the best of luck in landing your dream job.