I don't care what programming language interests you, what front-end framework you are using, whether you think you need monoliths of micro-services, or if you went to a Bootcamp versus self-taught. None of that matters wherever you are starting in your development journey, because this is a lesson that applies to all developers. With everything going on its obvious everyone would agree the world is divided. Unfortunately, this divide exists in the software and development communities too.
Here is my ask for all new developers:
There is room for everything and everyone. We can all be kind, respectful, and patient with each other. I am all for encouraging healthy debate but people love to go overboard.
When you communicate with others I slice it into two buckets: internal communications and interactions and external communications and interactions.
Ultimately, what you do and how you communicate in the internal definitely carries over into the external. However, I want to highlight some different things for both. Here are my top 3 pieces of advice for you personally in your internal interactions as a new developer along with my top 3 pieces of advice for you when you interact outside your workplace within whatever developer communities you are in.
This can be taken a million ways. Perhaps you are judging your initial team members and thinking well so and so can't be good look at them. They are so old - no way they know what is modern. Maybe you judge their education and or credentials? Maybe your first project's tech stack sucks and you think there is nothing to learn. Again, so much to bite into but a few tidbits:
- Fuck what anything looks like, this is just human and stupid.
- Age, gender, sexuality, race, religion, all this stuff does not matter one bit. Diversity makes us stronger and everyone can contribute. The stranger the cast of characters on the team the better in my opinion. No matter who you work with you can learn so much from them.
- A lot of fields are being 'disrupted' in terms of education and 'credentials' but some of the most intelligent engineers I have worked with have had the least amount of education. I continue to learn from people at all levels all the time. The notion you can only learn from more senior people is false.
- No matter how much in your own judgment system you think something sucks(like your first role or project) I promise there is lots to learn. Nothing lasts forever and eventually, things will change. It's good to develop preferences and know what you like but immediately saying this sucks is not going to help.
Similar to judgment but I want to call out specifically one thing. People and developer communities love to talk about engineers who are rockstars, ninjas, geniuses, etc. I think this is all bullshit. It puts you in a perspective to focus on you versus others. No high functioning team is comprised of all people like this and that is not what you want. Do there exist certain people that can produce at a higher level - yes. But does your team's success depend on having these people? No, not at all. We all have strengths and weaknesses and honestly, the only person you should compare yourself with is you. Strive to get better than you were and improve year over year.
To invert this one - don't be the asshole. Don't be rude, arrogant, all-knowing. Confidence is fine but please give everyone a chance. Maybe you are better at something than someone else but take the time to teach/help them and you will be surprised how it improves your knowledge too. Teams are about collaboration and only you succeeding while others fail helps no one. As much as you may or may not like someone always strive to be someone they would choose to work with again. Thinking a bit longer-term one day you will no longer be a junior developer.Think about this when you become a senior working with the next generation. They might ask silly questions or be confused just like you were but be a mentor and guide to them. Help them become better.
Similar to how you act inside your company do the same elsewhere. Don't be rude/condescending on social media/ message boards. Don't jump on some hate or spread it. Be gracious, kind, and grateful in your interactions.
This happens way too much. People jump on some train about technology 'x' and if there is a competing technology 'y' well then it must suck. They write shitty things online why 'y' sucks or why use 'y' when there is 'x'. Sometimes, sadly, it's inter-community rather than across communities. They go after people on Twitter for the same shit. Or they think everyone has google sized large enterprise problems and crap on all these perfectly legitimate solutions for issues. They think their community is 'the' answer to something and go after all the other communities for doing things the way that community does. It always comes down to context but in reality, you can solve every problem in many ways using multiple different languages or technologies. Might the proposed solution/framework not be your favorite? Yep. But should you go trash some people or community just because of that? No.!! There are a million ways to do it - you choose what makes sense for you and let everyone do their thing. We are stronger because of this.
I see this a lot with newer developers. They have an issue with something and they can't get help internally for whatever reason. They see the libraries they are using are open-source or have a presence on the web and they end up on the message boards or stack overflow. They start posting and get upset when they don't get immediate answers. Someone might ask you to refine your question or for more information. Provide it! Don't just ask for quick solutions or fixes seek to understand what is going on. These days most open source libraries have at least one way of finding their community whether it be on a message board, e-mail list, chat room, etc. Definitely use all these resources but have patience. The authors/contributors might be very busy and it can take some time to get answers and that's ok. Search everywhere you can and attempt your hardest to find the answers.
In closing, there are so many interesting and exciting developments being made in all areas of computing/programming etc. Find what you love and go be the best community member you can. Help advocate for it, answer questions, contribute. Maybe your time has come and you decide to move on or explore other interests. That is fine too. Go try something else. There is room for everything and everyone honestly. We can all be kind, respectful, and patient with each other.
If you liked this article, check out:
What do you think? Let me know on Twitter and follow me there for more development, programming, and general software engineering content.