For a good majority of people, learning how to code and growing as a developer is a far fetched dream along with becoming a billionaire and owning a company. Is it impossible ? Well no, but it might be really hard and takes a lot of time and practice to get to a place where you can feel comfortable about your knowledge in code and have enough experience to understand all the why's or how's. Let's be honest, there aren't a lot of experienced developers out there that are welcoming to beginners.
That's pretty reassuring but what happens when I know zero things about coding and need guidance to actually get to a place where I can help someone else. It doesn't make sense to tell me to code, give me a book and then push me into the world of tutorials, algorithms and YouTube videos. Let's be honest here, to get that the previously mentioned place is a chore. There has to be better ways to help beginners grow into seasoned developers.
So here is my answer to this difficult situation: Cookies! Yup, lots and lots of cookies. No, that was a terrible joke but there are better ways to improve the situation. Let's look at it from a community standpoint.
We live in an age where we can get in contact with someone on the other half of the world and never in our lifetime meet them in person. Not saying there is something wrong with that, but for beginners we need that physical touch. Can I learn code via online material? Yup. But that's not the point here. What I'm saying is that the physically meeting is extremely important as human beings are social animals and this may aid in a faster learning process.
Now let's talk about a physical meeting place. Make the place that you choose to meet up accessible. This meanings 5–15 walking minutes away from public transportation and accessible for those who have disabilities. This can be tricky because not all businesses or hosting spaces will want a bunch of people hogging seats for hours and not buying anything. So look for a place that has different options like; co-working space, a library, a school, a breakfast spot or a tech resource center. And don't just show up with your bright ideas either. Make sure you speak to the owner of the establishment before hand and reserve a spot. Think how you can create a lasting relationship with this person and how your meetup benefits them.
You will need to do a few things to make sure that your community continue to grow and encourage beginners to join in. Select a time each week or every two weeks that works for most of the members as this repetition helps them to be more accountable to themselves and each othe. People have jobs and other troublesome things that will require their time and focus elsewhere, so be as accommodating as possible.
Depending on the space having a source of energy can go a long way. We've all had that one laptop that just needs to remain plugged in for it to work. So be considerate of those beginners that don't have the latest and greatest tech. Having power-strips available can help to make staying on task easier. You will also need bathrooms ( preferably clean ones), snacks/food and liquid energy or as I like to call it, coffee. A good pot of coffee can work wonders for pushing through a series of complicated algorithms. And let's be honest, who doesn't like free food.
Have space! A place that is big enough for growth but also has the ability to foster conversations and discussions about code or even small talk is important. You want to have enough space that for those of us that are introverts, so that we don't feel suffocated by the amount of people in the room. A few different seating options can help to make the space feel more like comfortable. If someone is a regular, encourage them to bring things that will make them more relaxed.
People are … well people. Everyone seeks acceptance in one way or the other. So having a space where individual expression is accepted can make a huge difference in how people interact. Make your space inviting to all different people from different walks of life. This isn't to say don't have rules, because honestly you will need them to keep some form of order, thus, I strongly suggest a code of conduct. Someone might get offended by another's form of expression but make the space available for discussion and resolution of any problem. Not everyone will agree with each other because some people just don't get along, so make it open to those who feel as though they need to leave or offer them a one on one option with a mentor/mediator to continue to encourage them and be there to answer their questions.
This space should be a place where asking questions is encouraged and while some questions may come across as stupid, let them know that by asking they will gain knowledge and understanding. In a sense, you may have to teach them how to learn, how to grow and seek knowledge. Let it be a place that one person can help another solve a problem, even if they don't have all the pieces of the puzzle themselves. Help them learn how to ask the correct questions and do problem decomposition (i.e. don't be like f#@king StackOverFlow to newbies … ever !!!!!!!!!).
As a senior developer/ mentor you level of patience may have to be a bit higher than most. People will test you and your boundaries, they will push you and see just how far you can go before you snap. You will have to exercise a large amount of empathy (and compassion?). Take time to listen to their concerns and be understanding of the fact that you might have once been in their shoes. Encourage them to step out of their comfort zone, because that is where the majority of personal growth will happen.
Teach them how to go after what they want. In this life hardly anyone is going to hand you the keys to infinite growth and possibilities. So teach them how to find the resources they need to grow. Granted not everyone will know what they need to be strong or to polish their skills, that's where knowing how to ask for what they might need is important. Our pride often gets in the way when asking for help and that's reasonable but there are times when our pride will not get us to where we need to be. As adults we often think, "I should know this already" "I don't want to ask for help because it makes me look bad". That's your pride, so get off your high horse and learn to hustle like the game changers. Learning how to seek the things you need is a sign of growth, both as a person and a developer.
You may be the only one who is trying to encourage a beginner and that can be a tough burden to bear. You may think that you can handle it all but being honest when the damn breaks, you are the first person to go under. So instead of taking it all on your own, learn to be a resource. Be one of the many resources that they can go to in order to learn and grow. You will need a team of individuals that share the vision and are available to help nurture their talent as it grows. Think ahead of the game and become someone that can provide solutions. In essence, you will have to be the change you want to see in your little community.
You alone can not sail a large ship, no matter how badly you want to. Ask for help. Implement the same tactics you are trying to teach others on yourself. Have a group of people that help you manage your community. This will take a lot of strain off you and give you more room to focus on what matter. If you do half of this list then that's awesome. Don't forget to congratulate yourself on coming this far. A community is made up of different people, with different needs. You will not be able to fulfill everyone's desire. You will fail, you will lose hope, there will be a time you don't have all the answers and that's okay. Learn that as much as you are teaching them, you have to learn as well. You can not stay stagnant and expect your community to grow. You have to move forward as well and know when something is out of your area of expertise.
Sometimes in learning a new skill there can be more losses than there are victories. So celebrate the victories and the little battles that are won. You may not know how important it is to celebrate a small victory but trust me you will want to do it. Encouraging new beginners to stay the course and keep building their knowledge base can be one of the foundations of the community. When someone understands a concept, solves an algorithm, finishes a project or complete an online course ( I currently have 11 unfinished on Udemy) celebrate! Going full steam ahead towards a goal can be hard, so encourage them along the way. Getting an internship or a new job in their field can feel like the biggest accomplishments in their life, so let them know how proud you are of them. We often forget to celebrate the little things, it's pretty nice to be reminded how awesome you are from time to time.
While the main topic of this article is to be physical, you can't forget to have an online presence as us developers live on Twitter and in other digital spaces. Take pictures, write posts to let others know what's going on in the community that you have created. This will not only let others see the hard work of strangers but it might encourage them to join or make a community of their own. Stay active online and reach out to others who are doing the same thing.
There comes a time when the little birds have to leave the nest and build their own life. You may want to keep holding on to their hands and guide them, but that will hinder their growth. Know when to let go and let them walk on their own. Just remind them to keep in contact every now and them. Don't. I repeat DON'T be disappointed if they just disappear off the face of the earth. You had one job to do and you did it well. Let them leave knowing that they have the tools to succeed.
At the end of the day, this is my #2cents on community building. There are a million and one ways to build a community that is friendly to newbie developers. I am interested in what you think on this topic, I would love to hear about them in the comments!
Be sure to follow me on Twitter @nerajno for my latest articles, tweets about tech and other random stuff. If you are in Atlanta on Sunday, be please feel free to join us. Addendum : This article was made with the editing, suggestions and #2cents of other developers which I rely on, we stand on the stand on the shoulders of others and for that.. thank you all.