It can be difficult to not compare yourself to others in a negative way, especially when it comes to starting out on your journey to become a developer. It is far too easy to be plagued by those thoughts of, "I'll never be as good as them", "It took me twice as long before I could do that, I must stink at this", or "It was easy for them, I must not be smart enough".
I'm guilty of feeling like this in the past, and sometimes those negative comparisons will still manage to creep their way in no matter how long you've been at it. I've seen countless members of The Odin Project community make these comparisons, and it never fails to break my heart a little each time.
I don't want to tell you, "Just stop comparing yourself to others!", though. Telling someone to "just do/stop doing something" just doesn't always work. Instead I want to touch on some of the things that I think will help you push past those negative comparisons whenever you find yourself making them.
Let's imagine you and Person A started your journeys at the same time. Person A ends up learning a ton of skills and concepts, and eventually gets offered a job as a developer in less than a year. You, on the other hand, have gotten stuck on concepts that Person A breezed through, and you still haven't been offered a job after over a year.
The immediate assumption might be that you aren't as smart or good as Person A when you compare both journeys by only those details. That really isn't an accurate assumption to make, though, because you may not know any other details about Person A's journey. Likewise, Person A may not know any other details about yours.
Maybe you were only able to dedicate half the time as Person A on a consistent basis due to having two jobs or taking care of your family (or any number of other reasons). Person A, on the other hand, may not have had any other obligations and was able to learn these skills as, essentially, a full time job.
Maybe you rely on assistive technologies and it takes a little longer for you to get through material you're trying to learn, while Person A has a much faster inherent reading speed in addition to not requiring any such assistive technologies.
So even if Person A learned something or was offered a job before you, that isn't necessarily the entire story. The reality is we don't always know what circumstances someone else has or how those circumstances might affect their journey, positively or negatively.
Okay, so you understand the fact that you and Person A may have different circumstances affecting your journeys, and you're feeling a bit better.
Now let's imagine that you just finished some project you've been working on, and you're really proud of it. You used the concepts you had just learned and it functions nicely. At that point you decide to look at what other people came up with, and suddenly your heart sinks.
You see Person A's version of the same project, and it has beautiful, clean looking code, and visually it is just super aesthetically pleasing. Suddenly you don't feel so proud of your own project because it looks nowhere as good as Person A's.
What might not cross your mind, though, is the fact that what you're viewing most likely is not the first version of Person A's project. It might be the third version, or even the tenth. So yes, their code is clean and the aesthetics look great now, but that might only be the case because Person A spent additional hours, days, or weeks after originally finishing it to tweak and improve it.
Another thing to consider is the fact that Person A may have had a not-so-good looking project at first. After completing it and learning some more advanced concepts, they may have decided to come back and do some refactoring. Suddenly you're now comparing your own project that uses only concepts leading up to it, to someone else's project that now has more advanced concepts - concepts you aren't even aware of yet - added into it.
It's just not a fair comparison when you compare your first draft to someone else's tenth draft, or even when you're comparing your draft to one that uses concepts you had no idea existed or weren't introduced to yet.
You're feeling even better now, right? Different circumstances can affect people differently, and someone else's awesome code may only be that awesome because of a ton of refactoring.
So maybe you move on and look at some other submissions for that project you just finished, and you notice Person B's looks even better than Person A's. This time, though, you're absolutely certain that what you're seeing is the first and only version. Person B created this awesome looking project on their first attempt, so that clearly means you should have been able to as well, right?
Of course not. Even though Person B created this awesome project in one go, they may not be new to any of what you're learning. They could have months, years, or even decades more experience being a developer than you. On top of that, that experience includes them having made and learned from their own mistakes along their own journey, maybe even some of the mistakes you yourself have made (or are making).
Comparing your level of experience, especially if you recently started your journey in becoming a developer, against the level of experience of someone who has been doing this longer than you is just another unfair comparison. Nobody magically gained the experience they have by snapping their fingers; they had to put in the work and the time to get it, just like you'll have to.
If you've never played a particular sport, you wouldn't expect to immediatey be as good as a professional player, would you?
"Okay, this is making sense and I'm feeling much better," you say to yourself. Then in walks The Prodigy.
You and The Prodigy have the same exact circumstances, they have as much experience as you, basically you might as well be the same person. Yet they're still doing things faster and better than you. Surely those negative comparisons you've been making about how you're not any good at this or aren't smart enough are 100% correct, right?
Not even a little bit. Someone else succeeding before you or being better than you doesn't mean you're not smart or bad at something. If nothing else, it just means they're better or succeeded first. That's literally it, and there is nothing wrong with that. If every developer cared only about being the best or the first to do something, there would be a lot less developers in the world, because there can only be one "best" or "first".
The bottom line is that there is always going to be someone better than someone else, and there will always be someone who succeeds at something first. It is absolutely okay to not be the best or the first to succeed at something, because a) you can still be good at it yourself, and 2) becoming a developer is not a race.
I hope some of what I've said so far has helped you, whether this is the first time you've read this post or you've needed to come back to re-read it as a reminder (and it's okay if you've needed to).
At this point you may still be comparing yourself to others. Maybe not so much in a negative way anymore, but perhaps in a more positive way such as, "Wow, they're really good. I can't wait to become as good as them one day!" While that is better than those negative comparisons, someone else's success shouldn't be a major factor in your own journey.
What really matters is that you've grown, improved, and learned compared to a past version of you, whether that be from a year ago, a month ago, or even a week ago. When you think back on some of the code you wrote when you were just starting your journey and compare that to some of the code you wrote (or will write) a few months later, you'll be amazed at how far you've progressed and how much better you understand certain concepts.
If you strive to simply compare where you are today to where you were yesterday rather than to someone else, I think you'll find yourself being much happier, hopeful, and excited about your own journey.