Sign in to join this conversation, and others like it, in the communities you care about.
React / General
I think it would be rare to have an organisational structure that had deliberate "Junior/Middle/Seniors" all in the same group like that specific to React...
Seniors typically are able to make decisions that impact an entire codebase without anyones authority and dictate architecture, Intermediates typically implement without assistance and research potential solutions to problems which they would cross check with a senior, and Juniors implement "simpler", more specific or deliberate tasks.
So based on what I said, and trying to apply it to a particular codebase...
Imagine the codebase for Redux and the idea behind it. A Senior might be able to come up with a similar solution without reference to that library. He would need someone to work with him to implement it, who he could rely on to execute it (that would be the intermediate), but then they actually need to use that new library or architecture to implement actual components, so they might ask the junior to build simple components using that library.
One of my favourite answers to this question in general is found here:
I know Basecamp use Rails, but it still applies to any language, and it might help you understand why your question isn't necessarily as simple or black/white as it seems.
Hope this helps!!!
In my experience "junior" generally means you're not expected to be able to work completely on your own and need a lot of guidance. You may already be pretty good at what you do but you shouldn't be expected to make larger technical decisions because you lack the experience to predict how they impact projects down the line. So even if you're not a beginner you may still be considered junior because you may lack the "bigger picture" expected from a senior. "Seniors" OTOH are expected to be able to make larger decisions and in some cases complete smaller projects entirely on their own. In general I'd say the "ranks" should be balanced in such a way that while "senior" positions have more liberties in turn "junior" positions should have fewer responsibilities. Unlike props in React, blame should always flow upwards by default (IOW if you let the fresh graduate make the major technical decisions, it's not their fault the project turned out to be a mess).
The title really only makes sense as a distinction from e.g. a "Senior Angular Developer" (because Angular brings a more standardised ecosystem) in which case I'd expect a React developer to be very familiar with routing, state management, side-effects, and so on, but not necessarily have thorough experience with any particular library when there are plenty of alternatives (though they should have a rough understanding of the differences and explain their reasoning when preferring one over the other).
(sorry for the wall of text)
It's a bit like a driver's license: if you're learning to drive, your instructor tells you where to go and makes sure you don't crash the vehicle or hurt anyone. Once you've passed the tests, you're on your own. You can make your own decisions but you're also fully responsible if you make mistakes because you have proven that you should know better.
Is he more a junior or middle?
let say projects like e-commerce, blog, social network(with basic features)
I'd generally say fresh graduates (whether uni or bootcamp) are junior by definition, as are hobbyists with no real world experience. But there are exceptions to the rule. It also depends on the size of the company and how much experience the rest of the team has.
Getting user on your website is whole another skills that u should devote some time
or is there any way to get around this?
complex projects that has *no
The thing about hobby projects (i.e. projects that you can develop in a vacuum because it doesn't matter if there are any users) is that they don't share the same constraints as real-world applications. The line is blurrier for libraries and open source projects but application development is very different when you have actual users/customers to take into account or if you can just build what you want. Concerns like user experience are more in the domain of design than development but in my eyes a senior developer should at least have some intuition of what is or isn't good UX and what solves the customer's needs vs what just makes the developer happy.
So the reason I'm emphasizing "real-world" is that when developing software professionally you have to take all kinds of constraints into consideration. First of all there's likely a fixed budget (whether it's a customer who ordered the software or your employer or an investor), so any effort you invest has to produce sufficient value. Additionally you might need to adhere to technical restrictions dictating what services, software or even techniques you can use. And lastly of course in any non-trivial project there are likely other stakeholders than you who might have their own mind about what the application should be like and you'll have to compromise accordingly.
Being a professional developer is as much about budgeting (if only your own time) and negotiating (aka social skills) as it is about writing code and sketching out software architecture. These skills take time to develop. They're learnable and may come easily but I still would be skeptical if someone with no prior professional experience applied straight for a senior role (though they might still prove me wrong in an interview).
So as I understand in real world projects there will be bunch other people who can criticize your work comparing it to what they wanted it to be within a timeline they would want it to work supposedly. Thus you would learn how account other people's likes & dislikes in mind and you would have set of responsibilities.
It wouldn't be like you are alone doing it or at home, It would be like there is whole audience, judges in front of you. Right?
To have those experiences(some basic amount of it) is it better to go for a junior role or manage to have a website with real world users? which way would be more efficient?
If you're capable of running a website/webapp with a considerably large userbase, you're going to run into alot of challenges along the way to help you get better. The challenge of working from home alone is that not alot of people actually have the resolve to pull this off.