Ask HN: Am I an arrogant or am I surrounded by incompetent people?
You&#x27;re just starting your path on computer science, and it&#x27;s common to feel this way when you&#x27;re approaching a mid-level engineer. But do realize that the entire industry is at its infancy compared to many others. Here are some things to think about:<p>- Your internships are what you make them. The names don&#x27;t mean much at an intern level because Amazon and Google aren&#x27;t going to hand you &quot;exceptional software&quot; as an intern. Learn as much as you can while given the opportunity.<p>- People are still learning, especially in school. Programming is hard for a large majority of programmers, even for the masters. You may be smart, but if you can&#x27;t work with people, then you are not valuable. There is always something you can learn about yourself and your approach, even when surrounded by idiots. If you don&#x27;t realize this now, you will waste time throwing away opportunities to learn and grow in CS and with your soft skills. Unless you start your own business or become a consultant, you will need to get used to working on a team, motivating them and teaching them to become better.<p>- There are two types of programmers, imo. One does it purely for money. The other is truly passionate about it. The ones who do it purely for money aren&#x27;t motivated to learn and grow, so treat them as order-takers. They just don&#x27;t care, but they&#x27;re paid handsomely for it. Learn as much as you can from the ones who are passionate, because they never stop investing in tech. They will shoot you forward in your career and save you years.<p>- Everyone recommends tech stacks they&#x27;re comfortable with. Tech stacks are not what determine the quality of work. What determines it is good planning, design, architecture, and refactoring. Readability is king. The best way to write software is to adhere to the nuances and quirks of the tech stack you&#x27;re working with, and to have proper separation of concerns, which is an art that takes at least a decade of refinement unless you devour text books on the subject regularly.<p>If you allow me to be frank and you truly want to know what&#x27;s going on, then let me tell you that the issue is that you need more humility. Objectively assess what is going on and do what is necessary to solve the issue (without &quot;firing&quot; your peers and complaining that they suck). Always be learning from the situation and take the most appropriate action to reach your goal (without being passive aggressive or hostile). Then hold yourself to the highest standard you can, knowing that people will rarely ever match your dedication to your work unless you&#x27;re surrounded by passionate engineers. What matters is that you&#x27;re always learning and growing. Anything else is a waste of your time and opportunity.<p>For example, when you see that there are compile time errors in the main branch, you need to get your team together and talk about why that is bad. People may genuinely just not understand why it is important nor care. Now being a principal engineer at my company, I have seen time and time again that people just don&#x27;t know what they don&#x27;t know because computer science is extremely complex and humanity has not figured out how to teach people everything they need to know. I&#x27;ve learned by reading a ton and trial and error, but as I said, people who just do it for the money will not find it out themselves. If you care about it, you&#x27;ll have to establish yourself as a trustworthy leader, raise morale, get them to care, and then start teaching them. Not saying you&#x27;re doing this, but if you sit around and complain that they&#x27;re not as good as you or they don&#x27;t understand what they should, you&#x27;re not solving anything and you&#x27;re just part of the problem. This situation will arise over and over in your career. If you understand there is an opportunity for you to grow as a mentor and leader, companies will flock to you and pay you handsomely for your skills, AND you will shape and mold your environment to your liking with higher quality and standards wherever you go.<p>Last thing to note...be PATIENT. Change takes time, trial and error, and refinement. Humans are stubborn and slow to change, especially in this industry, unless they&#x27;re passionate about it and have humility to learn and grow and receive constructive criticism.<p>Hope that helps.