1. You have to like what you do. If you don't then think about what would you actually like and do that instead. No reason to work in a job you actually don't like that much.<p>2. We all have different speed when it comes to learning and progress of one individual. Just because you might be slower doesn't mean you're stupid compared to others.<p>3. Look at them from an other angle. By learning one, or two things really well, takes time. And that time is taken away from something else. They might be experts in A, but they have close to zero knowledge of B, C and D. What would you like to have more 25% of A, B, C and D, or knowing one of them for 100%?<p>4. There is a saying "if you're the smartest person in the room, then you're in the wrong room". Which means, don't feel ashamed knowing less then the others. Use it to your advantage. Get help from them. Get them to explain things. Knowledge is passed down by people to the people. Wether you're reading a book written by someone, or a colleague explaining something. The end result is the same. You grow.<p>Extra:<p>Lot of people think IT and Software Development is only coding and nothing else. But that is far from the truth. It has a lot of human aspects from UI/UX to team management. I always say, that when you write code, you write it first and foremost for others to read. Because you're working in a team and others will read what you wrote. But most of the developer ignore this simple fact.
Also there are so many jobs and skills needed in IT next to the regular stuff, but people don't see it most of the times.
That's why I roll my eyes when I see fantastic developers become managers and struggle, because they love to code, but they don't want to manage people, etc...
If you're a people's person, you could become a Scrum Master, a Project Manager, Product Owner, etc...
There are so many other things in IT besides coding. But you have to look closely.