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'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.
> 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.
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.
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.
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
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.
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:
- Javascript, Node, MongoDB.
- PHP, MySQL/MariaDB, Laravel.
Frontend: - Typescript, Node (npm), React, CSS
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.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.
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 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.
Congratulations on your success!
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-...
Thank you again.
> 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!
-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.