I am a self taught developer and have primarily focused only on Android. I'm not a genius and I know I lack in many of the lower level foundation areas. Examples would be I've been doing Android development and really do not know much about the JVM or ART for the matter and how they work. I have never had to learn algorithms at all with my 7 years in the industry. The list goes on.
I do see myself as a solid Android developer and can churn out work but the goals I am striving for I won't hit at my current knowledge level. In my opinion.
However I am a process person and for me I basically need to put together a personal step by step plan on what to learn in order.
What are some suggestions?!
When it comes to the step-by-step plan to break into FAANG, this is it:
It looks like you're still on Step #1. The good news is that it's easy to tell where you stand with it: Just apply! More specifically:
Before you do any of this though, make sure to polish your LinkedIn and resume, particularly your resume. Follow the advice here: [Masterclass] How To Write A Stellar Tech Resume That Gets You More Job Opportunities
We also have communal resume events so keep an eye out for those. Here's an example: https://www.jointaro.com/event/collaborative-resume-review-meetup-9/
Lastly, my job searching course lays out the interview success process in a step-by-step way: [Course] Ace Your Tech Interview And Get A Job As A Software Engineer
To add to this. I'm 31 and there is one app that I helped on a few features through a contract gig. They let me go after a few features and changed directions ( this was a few years ago ).
Now they have released the public version finally and it is called AirChat. It's a startup backed by Naval and Brian Norgard.
This is my biggest regret in my career, I focused on strictly Android developer studying and application vs engineering as a whole. If I had known actual Computer Science I think I would have had a chance to stay on the team.
Pretty sure they only hire geniuses right now.
You shouldn't feel bad at specializing in Android, and FAANG doesn't only hire geniuses. I know both of these for a fact as I'm an Android specialist and I'm also not a genius 😁 (at least not a "traditional" genius). In fact, I would go as far to say that I'm not that smart. I've always been pretty slow to pick up complicated concepts - "Getting" things takes me a long time.
What I will say though is that in order to get into FAANG, you need to be extraordinary in some way. For me, there were 2 things that helped me a lot:
So it's kind of true that you need to be a "genius" in some way in order to get into Big Tech, but it doesn't have to be through raw natural intellect which is what people think of when they hear the word "genius".
Here's another excellent discussion I recommend checking out: "For self-taught developers - How to build my own knowledge system during work?"
I forgot to mention that I have near 0 understanding of JVM and ART and I've done just fine as an Android tech lead. This is because I've always worked more on the product side and never needed to deeply understand those areas.
The only time you should feel bad about a lack of knowledge is if you have been punished for not being familiar with certain things. In that scenario, embrace the mistake and learn those things. That's life.