How can an English teacher transition into web-development?
Hello, I'm Aaron.
I hold a BS in ChemE, but my day-job is teaching English in China - I think I do a good job. Also I write fiction at my website.
For several years, I've made little projects on the web, mostly in PHP and JavaScript, for example: a game where people "invest" in subreddits like stocks [1], a reddit-like-commenting system [2], my own website [3], etc.
How could I transition to a remote web-developer job most effectively?
Coding boot-camp? Crank through job-boards and applications? Go through an online MS in CS?
My coding is not strong, but I can get stuff to work in PHP and JavaScript, and I can use web APIs fairly well. I'm lacking in skill and knowledge, but I hope to remedy that.
So, if you have a suggestion for how I might most effectively improve and hopefully even be remunerated, I'd be grateful to hear your thoughts. Thank you.
[1] paaronmitchell.com/karmakarma
[2] github.com/aaron5m/rlc
[3] paaronmitchell.com I live in the US, so my experience may or may not be useful, but I transitioned to web development from massage therapy. I can't speak to your PHP experience, but JavaScript developers are in huge demand. Someone who is good at ReactJS can basically write their own check. > I'm lacking in skill and knowledge, but I hope to remedy that. If you want to level up your skills, learn some modern JS. Looking at your RLC repo, I see a lot of ES5, which is valid and even preferred in many jobs, but it looks very different from the code I write day to day. Start using ES6/7/8/Next features today, because docs are written using them. const, arrow functions, fetch / promises. Nobody at my job would approve a PR that uses `var` to declare a variable. From there, I'd learn a framework. React if you want to work in the US, but Vue and Angular are valid choices too. > Crank through job-boards and applications? This is the name of the game. I have never seen a listing for a junior dev. If I'd waited for one, I'd still be giving massages for a living. Instead I kept practicing and studying until I was good enough to hire for a mid-level position. Keep studying, keep applying. What an encouraging comment - and thank you so much for looking at that RLC repo! It's riddled with mistakes, to be honest. I took it on as a learning project, speaking of which... > Instead I kept practicing and studying until I was good enough to hire for a mid-level position. May I ask how you demonstrated how good you were to the hirer? I mean, when you were studying were you producing side-projects, contributing to github repos, going through a course that gave you grades? I hope this question isn't rude. I'm not sure how to jump over the junior dev role without my resume being auto-filtered out because of lack of experience, if that makes sense. Anyways, congratulations! I hope you're liking your work in web development, because your story is really encouraging. > May I ask how you demonstrated how good you were to the hirer? I had done some small personal projects and two websites, which I highlighted on my resume. I also had spoken at a few Meetups, so I had an "Appearances" section on my resume as well. Ultimately, the place that hired me was one of 4 actual interview I went on (with maybe 75 applications sent). They assigned me a takehome assignment. I later found out I was the only candidate who successfully completed it. > I hope you're liking your work in web development Yeah! It's fun using my brain to make a living, and most importantly, I work a lot less than I had to before, for a lot more money. They gave me a take home assignment and I did it. I later found out I was the only applicant who successfully completed it. Got it! What's that old quote? "Half the work is showing up" or something like that. You just did what they asked and - boom - got the job. Well done! I'm tucking that one away under "life insights". Thank you for taking the time to answer that question. > Yeah! It's fun using my brain to make a living, and most importantly, I work a lot less than I had to before, for a lot more money. Congratulations, again! you have to paths available. 1. Learn algo/DS and apply to FAANG 2. Learn web development Both have very different approaches. For path 1, you'd get really good at leetcode. Read cracking the coding interview. And do 20 or so mock interviews. Time: 7 months. For 2, you'd start from codecademy, then freecodecamp and try to land frontend react developer jr/internship role. If you can I'd suggest go path 1, if not path 2 will be slow but it will work too. Path 2 salary would start at 80k, 90k, 120k, 140k, 160k, 175k, 180k... then it pretty much hit the ceiling. For path 1, it'd go like this: 120k, 160k, 190k, 210k, 240k, 320k. But path 1 requires tortures honing of algo skills but reward is high. Thank you for being so specific! Numbers and time-frames are really helpful for me - even if I wiggle them, or miss them, they are bench-marks in my mind. For example, I would have no idea how much leetcode to practice; but you've given me a nice ballpark and a book to start from. I'll see if I can get my hands on that book while here in China! Thank you again If you want high salary potential of FAANG and want to go there, then you'd have to be good at algos, regardless of if you have 1 year exp or 10 years exp and Fullstack expert. So you can skip the unrelated part and just learn algos and get in at the start of career. If algo is too much you can apply everywhere else but instead of algo you'd be tested on other skills. Reason TOP companies don't test open techs is because they have internal tools they use so they can't test people on things nobody would know on account of not being in the company. So they test on something very general and innate to programming. Of course I'd love that FAANG salary, but I guess the only way I'll know if I'm good at algos is to give them a shot. I think I'm smart - but, hell, almost everybody on this site blows me away with how smart they are. However, last night I opened up that leetcode stuff - and I got lost in it! Just like some of my old physics problems, they're so interesting to puzzle out. And, granted, interest isn't enough, but it's still a nice indicator. I just had fun, just fun, going over one of those algo problems last night. Thank you again for giving me so much of your time! try easy ones, just being able to read leetcode question requirements is a skill. As someone from just cs background and not math background the question were phrased very much like a math problem. But they are not. It's basically testing how much you can think like a compiler. So do dozens of easy ones then do some reading/courses. Then move onto harder questions. Nice! I'm looking forward to going through some more of them. Try this: https://learnaifromscratch.github.io/
The software workshop here: https://learnaifromscratch.github.io/software.html you can do on a phone programming assignments during a lunchbreak, but it's not an easy course it's Brown University's accelerated intro to CS This workshop https://learnaifromscratch.github.io/algorithms.html is designed for passing job interviews, doing competitive programming and ucsd's design & analysis course. Do you have 3 months? You can do this. You are an english teacher so I assume you are familiar with grammar and possibly Latin syntax, you're good to go esp when you learn PL theory There's some (poor, very poor) notes here https://functionalcs.github.io/web/ for webdev, doing MIT's software class and their bootcamp on writing an MVP, with a dive into CSS grid and flexbox, see the latest youtube vids: https://www.youtube.com/channel/UCS2pbR9gJpaT6HIcQNT2QQQ/vid... but nothing really has changed, you want to be able to program from this spec https://github.com/gothinkster/realworld Wow, these resources are great! Thank you so much. I have these bookmarked - I want to finish some other projects and then lay out a plan that will hopefully be best; of course, "no plan ever survives first contact" but it's still useful. Did you put together the github site for "AI from scratch"? I can't find an "About" page - whoever's work it is, I love it. Thank you again for pointing me in this direction. First of all: it can be done!
I friend was flight attendant 10 years ago and is a SAP Abap developer. Focus on the side that has less friction to you: backend or frontend. I am in the backend and I believe it changes at a slower pace than the frontend, but some people thinks otherwise. Spend some time working with new leanguages. Since you know PHP and Javascript, both Python and Node are good options to explore. With PHP you can start working remotely writing plugins and integrations for CMS like wordpress but it is not as widespread as Python and Node. Backend path where with _little_ friction: Learn about CORS. It is both your friend and foe. And read code from other people.
A lot of code. The more, the better. I was lucky to be able to read Charles Petzold articles in Microsoft Systems Journal 20 years ago and I learnt a lot just reading his code. Hey, thank you so much! I like that backend path you laid out. And I think you're right that I need to read code other people have written - mostly I've approached building stuff for fun, figuring it out as I go, instead of really investing in understanding. What a great suggestion. Thank you again! I wish you great luck and success; thought I'd share my experience as a former math teacher. I made the jump from math teacher to software developer a bit over 11 years ago (and I've been a few other things before that). I put my projects on my resume and any work I could cite. A recruiter saw my tech-only resume and sent me on some interviews (this was the first I ever heard of recruiters). My skill set was php, mysql, js/jquery, html, css. I flubbed a couple interviews and landed at an early start up making more than I had been making as a teacher. I so happened to engineer 12 at at company, that later went public and was then acquired. It's been an awesome and wild ride. Wow, thanks! Maybe I should just put some of this stuff on a resume and send it out - see what it turns up. Congratulations on your success! Not really a question of transitioning, but how to get a paid web developer job starting almost from zero. Web development is a big field with lots of tools, languages, frameworks, application domains. Anecdotally a person needs to put in a few years of motivated practice to get productive. Of course that depends on the person and the project/job. I’ve been in web development since the web started and I’ve never known anyone to get to professional level in less than two years. I wrote this several years ago. Possibly useful. https://typicalprogrammer.com/things-you-need-to-know-to-do-... Thanks! I'm slightly busy today (reading papers) but I skimmed your link and bookmarked it. Useful! I'll definitely get back to it for a more thorough read. Thank you again. Code, code, code, and code some more. Learn the technologies and do tutorials, yes. But make your own stuff, and also learn the fundamentals. My company is having a hell of a time finding junior level people who actually know how to solve even the simplest of coding challenges. Try something like Codewars in your preferred language and get to figuring out how to actually think in code. Got it! Just bookmarked Codewars, and thank you for the suggestion! > My company is having a hell of a time finding junior level people who actually know how to solve even the simplest of coding challenges. If there's any small thing I could try to do for your company - something not too integral nor time-sensitive - I'd be happy to take a shot at it just for the experience. But I don't want to waste your time. Anyways, thank you again, and best of luck to you! -ditch PHP. -most popular stack is NodeJS + React but others also popular (Python, Ruby, Go, Rust, Elixir, etc). -build one (1) website including all your web programming skills. -link in your CV and apply to junior position. -work as junior for at least 1 year and never stop learning and improving even if its outside your job. Thanks! The idea of one website to best showcase all of one's web programming skills seems like a useful puzzle - I'm going to mull over how I might do that. Thank you again!
Frontend: - Javascript, Node, MongoDB.
- PHP, MySQL/MariaDB, Laravel.
You'll hear a lot about microservices. In fact, you'll end up coding some microservices yourself - learn about them, and try to implement what might make sense to you but don't get obsessed. - Typescript, Node (npm), React, CSS