Skip to content

bhushanRoh/Tech-Career-Growth-Learning-Resources-And-Roadmaps

Β 
Β 

Repository files navigation

Tech Career Growth: Learning Resources and Roadmaps

Context

Slack search is bad, and we're also on the free-tier so you can only see the latest 10k messages. No, we're not going to move to Discord as we're in way too deep. The point of this document is to take all the awesome resource recommendations and roadmap posts shared in Slack and eternalize them here.

For public resources from Tech Career Growth specifically (i.e. stuff Alex and Rahul made), you can find them in this giant Medium post.

For all the recap content from the community's famous live sessions, you can find them here.

Better Sessions Recap πŸ“Ί

Contents

🌐 Web

Android

πŸ“‹ Product Management

πŸ“± iOS

πŸ’Ό Interviewing

πŸ“š Miscellaneous


🌐 Web

Resources

CSS:

JS:

Everything:

Posts

Front End Engineer Roadmap:

HTML:

  • Learn semantic layouts header, footer, main, article, divs, classes, id's.
  • Know about web accessibility.

CSS:

  • Learn the CSS box model.
  • Learn flexbox, grid, or both. Make basic layouts.
  • Learn css variables. Learn BEM. scss if possible.
  • Learn media queries, mobile responsiveness.

JavaScript:

  • Learn the core programming concepts, loop, functions, control flow, error handling, classes etc.
  • Learn DOM manipulation document.querySelector(), document.appendChild() etc.
  • Learn event listeners, addEventListener().
  • Learn FORM capturing basics.

Browser APIs:

  • fetch (send a GET, POST request)
  • localStorage (store and retrieve items)

Frameworks:

Learn one popular framework,

  • Vue (easy)
  • React (Medium)
  • Angular (Hard)

* Difficulty assessed by FireShip youtube channel.

As you can tell, the frontend web development landscape is huge. I tried to cut down as much as I can and followed the requirements of the Front End Engineer position at Facebook. Learn each topic and try to build some stuff out of it and you will learn them better.

As someone who has spent a lot of years in web dev, even I don't know everything on this list. I still lack web accessibility, flexbox, and know only one framework React. It's only recently I learned BEM and sass styling.

So don't make this list intimidate you.

Android

Resources

Kotlin:

Videos:

Books:

Posts

Alex and Rahul are big advocates for side projects, and I would +1 that as well. It sounds like you have a solid foundation so far with a bunch of individual pieces, so I would heavily recommend putting them all together to build something. There's actually a lot of stuff you can build with the knowledge you already have - the hard part is realizing what you can build lol

Side projects are great for two major reasons:

  • They will help your resume/job search immensely if you really want to become a mobile dev. Relevant domain projects is a quick way to get some attention during the interview process.
  • The classic "the whole is greater than the sum of its parts" saying. Take the example of getting a bunch of individual car parts - they are not nearly as useful individually as they are when you combine them to make a physical car. Similar-ish story here - you have a great foundation, but combining all of the skills into a single (or multiple) projects will make all the skills more valuable as a whole. Side projects will give you a clear direction or path to a final product and therefore give you a chance to use, and sharpen, the skills you have, while also gaining new skills you didn't even realize!

Your next hurdle is what to build. Greatest thing you can do is start small and possibly even copy something that exists. You likely aren't going to build the next flappy bird right now, so I'd push you to start on a journey with what you already know and see it all the way through.

I'd first start with something like a cookie clicker, a random-generated guessing game, a calculator, To-Do list or a classic "list -> detail" app. All of these have a quick and easy approach to them, but can quickly be augmented to make a more interesting app. Then you can move into more advanced topics like networking + asynchronous programming (i.e. Kotlin coroutines), games, connecting to Firebase, authentication, real-time updates, etc. But in all honesty I would start smaller and finish the project before moving on. You'd be surprised how much you can jazz up a simple cookie clicker game or calculator if you get a little creative with it. Animations are always a great way to add more flare!

Last thing I'll mention is that Rahul has a YouTube channel about Android dev and has plenty of resources there to help you, and as of January of this year, I started a channel as well. I think Alex has a channel too? Clearly there is muuucch more content out there than what exists in these channels or Slack community, but there is definitely enough content here for you to get started and make it pretty far! Good luck!

Oh! If you're starving for a project and don't want to copy something out there or build a basic whatever app because everyone does it, ask yourself what daily or weekly problems you ran/run into and make an app to solve for it! This is how I made my first ever application (back in college) that I still use to this day! It has like 3 active users, but I use it at least once a week and it has saved me a major headache at least once a month!

πŸ“‹ Product Management

Resources

Books:

Courses:

Videos:

πŸ“± iOS

Posts

None yet

Resources

πŸ’Ό Interviewing

Resume:

Company:

Interview:

Negotiation:

DSA

Resources

Posts

None yet

System Design

Resources

Posts

None yet

πŸ“š Miscellaneous

Resources

Great Threads And Posts

Posts

[...] it seems like you have a decent company you're working for, but you're having trouble growing and also finding an outside place that's clearly better for your growth.

While it's nice when people are proactive, they often times aren't. It is very hard to be a proactive mentor; most of my managers even were very reactive, even at a supposedly top company like Facebook.

I don't think it's reasonable to have a bar set expecting proactive mentorship; you should just flip the script and push your manager and tech lead in particular for growth advice. Ask them what you could be doing better every 3-4 weeks, ask for bigger projects, ask them to make you develop new skills you don't already have. Try to set a goal for the half or year and check-in regularly to meet it. Someone who is very good at being reactive also has a lot of value; you just need to trigger the reactions. You can find our video on how to get feedback flowing here: https://www.youtube.com/watch?v=r6D9dirIqLs

Now let's say you're trying to push all the buttons and you're still not getting real feedback and opportunities to grow every several months - At that point, it's time to find a different team/company.

About

A curated, high-quality list of resources to learn any pillar of tech you want

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published