The Chingu Experience: My Voyage-4 Cohort

Oliver De La Via
10 min readJun 4, 2018

--

After several weeks of having finished my first team project, It’s finally hit me: I’m a part of the Chingu community, and I’m here to stay. Wait, let that really sink in. In an indiscernible fashion, I went from struggling to learn web development to being adopted into the best free coding community around and leveling up massively. Before I dive into my personal experience, let me start at the beginning. Chingu is:

A global collaboration capital for tech-learners — developers, data scientists, designers & digital marketers. [Chingu’s] mission is to create a place where tech-learners from all over the world, from all stages of their career, can come to level up their skills for free.

“Several people fist bumping over a busy workspace” by rawpixel on Unsplash

So what does that mean exactly?

Chingu is a build-to-learn community. You learn in a professional team setting through building projects. You apply to the quarterly Voyages (read: coding cohort) and then by the grace of the facilitators get placed into a team of two to four other developers at your skill level. Once you’re placed on a team you have the following 2 months to build a team project.

I can’t stress enough how much work and dedication goes into not only putting together these teams(thank you Chance Taken and the rest of the Chingu facilitators), but also into starting and finishing the team projects. You have eight weeks from the inception of your team to get to know each other, pick a Project Manager, pick a project idea, the tech stack you’re going to use, plan the work flow, make wireframes, develop the front-end, develop the back-end (if you’re at that level), test it for bugs, and deploy it. If that doesn’t already sound like a ton of work add having to communicate with people who speak different languages, making sure to keep constant communication with a group of teammates you’ve only just met, making design decisions, self-assigning work and following through on that work week after week.

If you’re a software developer or aspire to be, it’s the wildest most fulfilling adventure you’ll have outside of actually working for a company team. The teams are made up from 300–400 other developers who signed up from around the world. Imagine all that collective wisdom! We mainly communicate through Slack and Discord and let me tell you, we’ve gone over the 10,000 message limit multiple times in the two months it takes to complete a project! But I digress.

Photo by Chang Duong on Unsplash

I started programming on my own in November of 2017 and had been doing so with the help of a couple friends until I learned about Chingu through Medium (more on my beginning in another blog post). I read one of Chance Taken’s blog posts and knew immediately I wanted in. I applied for Voyage-4 in late December and to my delight got accepted in mid January. WOOO! The Voyage was scheduled from February 21st to April 21st. Little did I know just how much this would change my life.

This was my first Chingu voyage and I was both elated and nervous. Having only been learning for a little over two months, I knew JavaScript, CSS, HTML, and how to use Github Desktop. I had just started learning Node.JS and Express.JS when the teams started. I was put into a team of three fantastic developers who not only taught me so much but without whom our project wouldn’t currently exist. My team consisted of Mary, Raymond Cox, and ziggysauce.

Mary, one hour ahead of the rest of us in Argentina, was a full stack PHP developer studying at a university. Raymond Cox was a front-end developer specializing in JS working freelance, and ziggysauce, who we later hailed as our champion, was a full stack developer who was comfortable with the React framework. He was the only one self-teaching full-time and so ended up contributing the most. I learned so much from all three of them that I honestly feel I was spoiled for my first Voyage. I was even lucky enough to have ziggysauce live a 15 minute drive from me. We ended up pair-programming in person multiple times.

Like all the other Voyages we had eight weeks to pick a project idea and get to work. We’d decided to build a music video app.

The two months allotted to us was divvied up like so:

Sprint 1:
- Introductions and decide on a project as a team
Sprint 2:
- Boilerplate setup of team repository on Github
- User stories and app issues to gradually resolve
- Wireframes
- Research and tutorials
Sprints 3–7:
- Self-assign tasks to code
- New features/implementations
- Refactoring/cleaning up code
- Styling for consistency
- Optimizations
Sprint 8/Conclusion:
- Final polishes, fix bugs, Deploy app onto Heroku and making it available to public

Screenshot of homepage taken by @ziggysauce

Our app, Gecho, is meant to function similarly to YouTube but strictly for music videos. We called it Gecho because there were three tiers of teams per voyage and we were in Tier-2, the Gecko Tier. The Geckos tier was for those who are comfortable with the front-end and want to get their feet wet in the back-end. The echo part came from wanting to incorporate sound into the name somehow as it was a music video app. I’m still super proud of this project because none of us knew too much about the back-end, let alone a Node server going in, yet we pushed out a Tier-3 project. Tier-3 teams are for those comfortable in full-stack development. We’d decided on using JavaScript, React.JS, Node.JS, Express.JS, and MongoDB (MERN) for our tech stack. Yet we ended up also implementing React-Router, Axios, BCrypt, OAuth, Mongoose, Passport.JS, Redux, SASS, and Webpack 3.

Screenshot of our initial wireframe mockups taken by ziggysauce

As a guest, Gecho utilizes the YouTube API to let you search for and play music videos. You also have the option to register or sign in via an email and/or a Google or Facebook account. As a signed in user, you can create a profile and edit your name, username, email, location, and choose an avatar for your profile. As a signed in user, you can also favorite your music videos for a later time and pick from one of the visual themes that are predefined for you. A playlist option is currently being implemented for signed in users.

Here are some Gifs of the app in action (courtesy of ziggysauce):

The Hardships

Note to all future Chingus- The voyage cohorts can only be brought to fruition if you give the projects your all. You have to be hungry for knowledge. No one is going to hold your hand along the way. The experience is similar to a coding bootcamp in this way and also in that you will have a plethora of developers from around the world willing to help you with any questions you may have. Don’t take this for granted and please follow through on your commitment.

This project was Raymond Cox and I’s first time using the React framework. As a result we both had a hard time quickly getting up to speed so we could contribute to the team project. This was also my first time with a database, an ORM for our database, and all the other libraries that made our lives much easier. I probably spent half the voyage going over tech documentation and the other half actually implementing the knowledge. As overwhelming as it was, it was also a ton of fun because not only was I finally given a purpose for my learning but I now had teammates I could depend on for help. I ended up copy and pasting a lot of code on the back-end and then trying to reverse engineer it so that I could modify it for my needs. Probably not the best way to go about it but I learned nonetheless.

My focus for this project was to learn as much as possible on both the front- and back-end. I was all over the place, pair-programming with each teammate multiple times so that I could absorb a little more from each one. This definitely took a toll on me as one can handle learning only so much before you start forgetting it all but I made it work.

I loved seeing their thought process in motion and how they wrote their code. I made sure to take mental notes of everything I saw. Each day, I became a better developer as I took all feedback and criticisms with excitement. I started organizing my code more, commenting them out and making more intentional git commits. I’d like to say I’ve become a semi-pro at pull requests and git flow. While I did do some back-end configuration mostly in regards to the database, ziggysauce and Mary did most of the legwork on that end and eventually overwrote the majority of the code I had done. And that’s okay.

Not everything you write is going to stand the test of time, in a team setting everything is constantly getting modified and rewritten. Your purpose in a team setting is to help with the many iterations of the project. I learned a lot and am now comfortable working on the back-end as a result. The point of these team projects is to exponentially raise the level at which you learn and I got that in spades.

What I learned

It’s recommended that with these Chingu projects you aspire to learn 25% of the tech you’re working on so that you don’t get burnt out or have too hard a time finishing them. I can proudly say I learned 50%, maybe a little more of the tech stack I worked in and came out so much stronger. I’ve gotten really good at reading through documentation, Stack Overflow, and searching through online tutorials for the snippet of knowledge I need. There are still a lot of unknown unknowns I’m sure, but for now the software development world is a little less scarier. Some of the specific things I learned along the way are how to:

  • Use the React framework
  • Use Passport with BCrypt for local authentication with hashing of passwords
  • Use OAuth for authentication via Google and Facebook accounts (thank you Mary for figuring this out for us!)
  • Use Server Side Rendering and why
  • Use redux (thank you ziggysauce for figuring this out and implementing it for all of us)
  • Use SASS
  • Use CSS Grids (thank you Raymond Cox teaching us all this)
  • Set up Webpack for bundling code, implementing hot module reloads, and utilizing optimizations for production-ready code
  • Use MongoDB and its difference from a SQL database
  • Solidified my knowledge of RESTful routing
  • Use axios
  • Set up a proper config folder for API key and secrets use
  • Solidified my knowledge of Git flow in both the terminal and Github Desktop
  • Use Mongoose for MongoDB Schemas
  • Solidified my knowledge of JavaScript (Although I’m sure there’s still a ton more to learn)
  • Use the YouTube API to connect our app to their videos
  • Wireframe mockups of apps

The MVP for Gecho is complete and a live demo can be found here.
The Repository for the project can be found here.

We plan on adding more features and fixing bugs as we continue learning but the basic functionality is up and running. Feel free to contribute or create issue cards if you’d like to see specific features!

To try Gecho out without having to register use the following credentials:

username: chingu
password: geckos32

Going Forward

At the time of writing this, I’ve already started my second Voyage-5 at the third tier with another three awesome developers. We’re working on a mobile app for a non-profit in Belgium. I’ve been picked as a facilitator for this Voyage as well as my team’s Project Manager. I’m incredibly honored and excited for these new opportunities (I’ll speak more on the experience in a future post). I’ve learned a few other technologies in the Voyage interim and I’m excited to keep learning. If you have any interest in programming I can’t recommend enough that you join regardless of what skill level you’re at (sign up here). There are some phenomenal developers in the community and I promise you’ll do more working on a team than if you are going it alone. Personally, I’m ecstatic that I’ve found this community of like-minded friends. They drive me to get better daily. I hope you all have an opportunity at the same experience.

Until next time — Live Passionately!

--

--