Hey guys sorry for this vague question.
I've been a junior react dev for 2 years.
But I want to get a good job, for that I need in depth knowledge.
But I don't know what to learn anymore.
If anyone could suggest projects, topics, anything at all that will help me become a really good developer it'd really hell me out.
I don't wanna stay junior developer with limited knowledge my whole life. I u wanna contribute to open source, publish my own libraries but whenever I look at other's code to contribute it feels so complicated to me. I also wanna work as a freelancer at hackhands, codementor etc but I lack the skills.
Apologies for this broad question.
Go Vanilla. Did you ever try to write a whole page without any framework? Just HTML, CSS and JS, keeping each of them clean and separated (no CSS in JS, no JS on HTML, etc.)? Make it work on Safari 10, IE11, Edge, FF 35+ and Chrome 45+? Make sure it still looks good on smartphones? Check if it is progressive? And then, once everything works, optimize the whole thing using a build pipeline? Because that's the kind of stuff I have to deal with. I have been coding for 10+ years, and I still learn something new every day just by doing that.
If you think that's easy, then we can start talking about code architecture and tools. What kind of architectures, patterns and algorithms do you know? What's a dirty flag? A builder pattern? Do you know OOCSS? BEM? What's the difference between
<strong>? How to do ARIA? How to XOR-encrypt (shuffle bits)?
If you know all that, then try to do something completely different. Go learn Rust and write a simple game of Pong or Snake, using OpenGL 4+. Just doing that will throw you into a whole new world of ideas and concepts which you can also use as a web dev.
Once you tried out all of that, you should probably not be a junior anymore and you will keep on growing with projects you do.
Also, don't forget to stay online, read blogs and questions and write answers. By talking about what you know, you can get others to confirm or correct your knowledge, which expands your horizon and makes you a better dev passively. In my time on Hashnode, I learned a lot just by writing answers like this one. The community here is awesome, so I recommend it wholeheartedly.
You mention looking at open source projects and them being complicated. It sounds like you've found a great learning opportunity then! Often, larger projects will have some issues tagged 'good first issue' or something. Or find a slightly easier project, but do challenge yourself.
Another way to find out what to learn is to just go to codementor and look at what type of questions are popular and what you are missing to handle them. Surest way to prepare yourself to switch to that!
My recommendation to you would be to focus beyond your technical skills, focusing on your soft skills is as important to get ahead in your software developer career. The resources you should concentrate on are: -How to market yourself -Professionalism: skills overlooked by universities and some coding bootcamps -Keeping up with the developer community -Coding skills and tech interview preparation -System design skills -Continual Learning
I recommend this article from ButterCMS that is a great reference guide for any junior developer looking to get ahead in their career: buttercms.com/blog/best-skills-for-junior-d..
I gotta echo what Marco Alka said, learn to do everything you currently know how to do without the crutches that are frameworks. or in many cases they're not crutches, they're hobble skirts... in some cases they're even a sledgehammer to the shins ala "Misery"
Until you can do it without the frameworks, you aren't qualified to know if what the framework is doing is the correct way, most efficient way, or even the simplest way. This is why beginners should NEVER be allowed anywhere near "frameworks" and why MOST of the big fancy popular ones are -- to be brutally frank with a highly unpopular opinion -- incompetent nonsense.
More so if you take the time to learn those underlying langauges -- and to use them PROPERLY with full separation of concerns -- you may in fact find that EVERYTHING you've been sold on said frameworks is nothing more than one giant lie rooted in apathy, ignorance, and wishful thinking; propagated not through actual merit, but from the same propaganda techniques and psychological failings such as bandwagon, glittering generalities, transfer, and card stacking that are the cornerstone of most major popular delusions; from garden variety snake oil peddling to "monuments to the stupidity of mankind" such as faith.
How are you at working with proper semantics, FULL separation of presentation from content and behavior from content so you don't have HTML full of things that flat out don't belong there? How well does what you're working on handle if client-side in the browser scripting is blocked? What about users on non-screen media targets? Are you derping in classes presentationally like "text-center", "clearfix", or "w3-red" or are you keeping your HTML saying what things ARE, and not what you want them to look like.
But Joe forbid anyone come right out and say any of that.
What can you do WITHOUT the frameworks?