I created a study plan for web developers to become software engineers
sourcesort.com
sourcesort.com
All software engineers have some sort of specialization or another; there is nothing preventing a web developer from writing software in another discipline.
A very large portion of developers at FANG companies are web developers; the web is a big part of software these days. FANG companies do not have a monopoly on defining what software engineering is.
Even if you are currently in a FANG company, you must take some time to prepare before you go to an interview for another FANG company. The reason is simple, you don't really get a lot of algorithm/data structure practice in most day jobs; leetcode is your friend.
And please, can we stop this incessant gatekeeping? It does not help. There are a lot of amazing software engineers working at non-FANG companies doing great work, building great things.
Sure, but not making north of $200k in non-management, non-super-specialized-and-rare positions. Except ("mostly", I must add, because this is an Internet comment) at places that interview similarly.
[EDIT] While we're at it—dear all you folks hiring in the low to mid-100 range for remote positions: your competition, for me, includes local places that don't have a weeks-long five-stage hazing interview process that take 4-8 hours total time, or more. They have maybe two hours of relatively low-stress phone calls and in-person conversations and make a decision in a day or three. And offer the same money you do. They shit or get off the effing pot, because they know if they don't they'll miss me. Your slow-ass high-time-commitment "oh we'll do two hours of pair coding online then fly you out and have you do a half-day of whiteboarding" processes are why it's "hard to find developers", assuming the money you're offering is right. You are not Google. Your money is not Google money. Your competition includes shops that have cashflow and contracts and need—need—developers with half a clue right now and can't afford to dick around, and they pay the same that you do. Knock it off. I'd rather work for you guys but you make it a real pain in the ass.
Looking at his new study plan, it looks like he's learned from his original undertaking and created an exhaustive list of things to know for a FAANG interview. I do think he skipped over the behavioral interview preparations which can be extremely important for certain companies.
- 15-1251 Computer Programmers
- 15-1252 Software Developers
- 15-1253 Software Quality Assurance Analysts and Testers
- 15-1254 Web Developers
- 15-1255 Web and Digital Interface Designers
Quoted from the Bureau of Labor Statistics:
5-1251 Computer Programmers
Create, modify, and test the code and scripts that allow computer applications to run. Work from specifications drawn up by software and web developers or other individuals. May develop and write computer programs to store, locate, and retrieve specific documents, data, and information.
Illustrative examples: Applications Programmer , Computer Language Coder , IT Programmer , Systems Programme
15-1252 Software Developers
Research, design, and develop computer and network software or specialized utility programs. Analyze user needs and develop software solutions, applying principles and techniques of computer science, engineering, and mathematical analysis. Update software or enhance existing software capabilities. May work with computer hardware engineers to integrate hardware and software systems, and develop specifications and performance requirements. May maintain databases within an application area, working individually or coordinating database development as part of a team.
Illustrative examples: Computer Applications Engineer , Computer Systems Engineer , Mobile Applications Developer , Software Applications Architect , Software Engineer , Systems Software Developer
15-1254 Web Developers
Develop and implement websites, web applications, application databases, and interactive web interfaces. Evaluate code to ensure that it is properly structured, meets industry standards, and is compatible with browsers and devices. Optimize website performance, scalability, and server-side code and processes. May develop website infrastructure and integrate websites with other computer applications. Excludes "Special Effects Artists and Animators" (27-1014).
Illustrative examples: Intranet Developer , Web Applications Developer , Web Architect
It's like thinking there's actually difference between "Coder", "Computer Programmer", and "Software Developer" just because developers kept penciling in those roles into a form. Anyone with experience in the industry knows that any of those could have the exact same job.
- Create iPhone & Android Phone apps with React Native framework
- Create robots/IoT projects with frameworks like Cylon.js, Johnny-Five, etc.
Sure, you can't use JS to program some stuff (integrated circuits, cisco networking gear, etc.), but there's a lot more you can do with it than web programming.
Mostly I just obsessed over functional programming for a long time, and then took the first job I could find doing Haskell (at NYU), then doing an Erlang chat server at a startup, and then doing F# at Jet.com. I guess people assume that only engineers and academics want to do functional languages.
I haven't done any web dev in awhile, and my understanding is that this has changed, but when I was doing it, you could get away without worrying a lot about performance or theory.