Following these steps could prove useful to be a competitive software engineer:
- Do 100+ medium/hard code challenge problems from LeetCode, HackReactor, Codility, Project Euler, and Interview Cake.
- Learn X (like React) by building X from scratch.
- Pick a real customer who needs something built and build it for them from scratch, listening to all complaints and continuously improving it to meet your new customer demands.
- Do this: Is there a project your company is currently working on? What technologies are you currently using? Give me a few days to play with this. I’ll build a simple version of part of your company’s product.
- Think: What daily problems do they have? How can I clearly show them that I’d be the obvious choice to solve these problems?
- Requirement: careful research into the company, its products, the manager, the team people’s GitHubs, and business/industry news about the company and its competitors, etc.
- Anticipate: What is the manager worrying about now, without anyone telling you. Then show them a sample of your possible solution — — again, without anyone asking you. Show your flexibility about being able to take what someone tells you in a first phone interview and build something with it before the second.
- Have you done at least 100 tough problems from Codility or HackerRank?
- How many of you have actually read and coded from scratch through each example in a full book on JavaScript ( or any language)?
- How many of you know your language so well you can go to a whiteboard and teach us about it, with no notes?
- How many of you have fixed bugs and added features to popular open source projects on GitHub and talked to someone about it?
- How many have read a good book on good object-oriented design, like POODR?
- How many of you learn to write software tests and write tests for all code you write?
- How many of you have built your own version of react from scratch? How many of you learn X by building x from scratch?
- How many of you study protocols like http, tcp, oauth2, that the world uses, which haven’t changed for decades?
- How many of you can learn the basics of a new language/technology by next week and build something in it, with no course or teacher?
- If you can do most of this list, companies will absolutely be fighting to hire you. Yet most bootcamp grads do none of it.
Raymond Gan has a much more extensive collection of articles to look over if you’re really serious about becoming a competitive software engineer. These are just the snippets of knowledge I’ve written from his articles to keep myself accountable to become a truly competitive software engineer.
I will continue to reference this article weekly to keep myself accountable for being a competitive software engineer.