From Solving to Creating...

From Solving to Creating...

A Journey through the Wilco Hackathon

I recently participated in Hackathon organized by Wilco for building quests. In this blog, I'll be sharing my experience of participating in this Hackathon, the challenges I faced, the things I learned, and the satisfaction of seeing my creations come to life.

About Wilco

Wilco as they tell on the platform is a flight simulator for developers.

As a beginner or even as a seasoned developer, it's easy to feel like you're not getting enough hands-on experience while learning to code or working on projects. You may not have an opportunity to dive into an existing codebase and make changes, whether it's adding a new feature, debugging issues in production, writing tests, deploying the code, and much more.

Wilco is a platform designed to give you that hands-on experience by presenting you with a series of quests. These quests provide you with a chance to solve problems and build your skills. All the quests code review happens on github and communication is via Snack, a platform similar to Slack.

About the Wilco Hackathon

The hackathon was scheduled from January 8th - 28th. More information is available on this link.

The process of creating a quest

Creating a quest involves different steps like planning, choosing a scenario, dividing the quest into steps, writing tests, designing the cover and logo, and submitting the quest for review. After the review, we get feedback and we iterate and make changes based on the feedback.

Identifying the right topic to work on

To get the right topic first you need to try different quests, understand the platform, and explore the codebase of Anythink to see if there's anything we can improve in the product or identify a bug, security vulnerability, or any tool that can be integrated to improve developers and Anythink users experience.

I had at least 5-6 ideas to work on, among that ideas I started with the most basic but important ones and completed creating two quests - "Navigating the Unknown" and "Route to Victory". I wanted to work on one more quest "Uncovering Verified Users" with the main motivation to familiarize users with TDD and testing in general but I wasn't able to complete this quest... (More details are in the later part of the blog)

Choosing a scenario

To make the quest interesting and engaging it is important to choose a scenario that the user can relate to. If you have identified a topic that you think you can make a quest with, but have not decided on a scenario yet, it can be helpful to consider the following:

  1. What is the end goal or objective of the quest?

  2. Who is the target audience for the quest?

  3. What are some real-world examples of the topic in question?

    This can help in creating a scenario that is relatable and practical.

Dividing the quest into steps

Once you have a scenario and skills in mind, the next step is to divide the quest into a series of steps. Each step should be clear and concise, allowing users to easily understand and complete the task. For each step, you can add the checks in form of tests or regular expressions so that you can identify if the user has made the expected changes or not. You can find more details in the documentation.

For each step, you create a new yml file and add the flow in that file. Each step can consist of different actions and conditions. Adding the conditions helps in communication between the quest persona and user and also acts as checkpoints to ensure quality solutions are submitted for the quest.

Creating the graphics

Quests require a logo and cover image with certain guidelines that you can find here.

Submitting quest for review

After creating the quest and graphics you can check if you have followed all the instructions with the help of Quest Submission Checklist. You can then submit your quest for review on the WIlco platform by Uploading the quest on the quest builder page.

You will get feedback from the team and once you have made the changes your quest will be reviewed again.

Reflection on experience

Participating in the Wilco Quest Builder Hackathon was a great opportunity to expand my knowledge and improve my coding skills. The process of creating a quest was challenging, but also incredibly rewarding. Throughout the experience, I learned the importance of planning and the process of dividing a complex problem into smaller, manageable steps. I also learned how an engaging narrative and choose the right skills that were required for the quest. The feedback I received from the team was constructive and helped me to improve my quest.

Lessons I learned

  1. Creating quality content

    This was the most important thing I learned while creating the quest as I wanted users to feel the conversation with the personas as real as possible.

    The content for the quest needs to be easy to understand, the flow should be proper and meaningful. So whenever I had an idea for creating a quest I would first think of the flow and write the steps in my notebook after that I used the template and started filling in the content. I wanted to make sure that I make sentences as small as possible so I used wordtune and quillbot to avoid any possible grammatical mistakes.

  2. Working on the Designs

    At first, I was quite confused about how to create the cover image as the template was editable in photoshop and I didn't have access to it, so I just created a simple design and connected with the team for help. Later I got to know that I can use any tool to create a design so I used Figma to make the cover image for "Navigating the Unknown".

    Anyone can easily notice the difference between the quality of the first and last 2 designs. All the designs aren't that good but still when I think that I can improve and make a different type of design in one day and get hang of it boosts my confidence. I am used to designing web pages for my side projects on figma so I used it, I thought of using canva but didn't find the accepted font so wasn't able to use it. Anyhow, the final designs are given by the wilco team so if you aren't comfortable with designing cover images don't worry, your designing skills won't stop you from creating a quest.

  3. Creating Youtube Videos

    For both quests, I have created a basic video explaining what the quest is about. I am used to creating videos on loom and sharing them but still more videos you make the better you get.

  4. Opportunity to interact with the team

    I got an opportunity to connect with the wilco team two times in this short span of 1-2 weeks and I completely enjoyed it, I think the team spending time to interact with participants was itself worth participating in the hackathon. I have participated in 10+ Hackathons but it was the first time someone from the core team interacted with participants.

Challenges I faced

  1. Getting started

    I got to know about this Hackathon maybe on the 11th or 12th of Jan and when I tried to make a quest I was confused, I wasn't sure how to start the quest. I even thought that I need to edit the code to make a quest...

    To be honest it was tough to figure out how to make a quest work without any context and just the documentation. Hmmm, After spending 1-2 days just exploring the stuff and not understanding anything I almost forgot about the Hackathon. While scrolling Twitter I found a tweet of a video where Jason and Lior Brauer collaborated to make a new quest on the Learn With Jason show. You can find the video here.

    After watching the video I realized it was easy super-easy :) to create a new quest, so I thought why not try creating a quest? Before I realize I completed one quest, was working on another, and also had started another one. So I wanted two submit three quests in total but unfortunately was able to submit the last one. More details in the next point.

  2. Testing user test

    Testing itself is a headache for many developers and testing users test... that sounds difficult, right? I was excited to work on this idea as many devs aren't familiar with TDD, so I thought it would be helpful for many if I could make this quest work, and the planning for this quest was also easy. I wanted to divide it into four steps - two steps for writing tests and two for coding.

    But when I started to work on the quest I found it difficult to test the tests the user will write since I had no code which I can run the test against. And if I let users start the next step before verifying their tests then it would be difficult to verify the next step as well. So, I had to spend some time reading for this, plus I had to update my other two quests based on the feedback received from the team, plus the other side project I was working on...

    I wasn't able to complete this quest before the hackathon deadline but I hope I will be able to complete this pending quest later...

Overall, this experience has been an excellent learning opportunity. I have gained a deeper understanding and I feel more confident in my coding abilities. Both solving the quests and creating them have been helpful for me. I would highly recommend to sign-up on the Wilco platform to anyone who is looking for hands-on experience in coding and an opportunity to improve their skills.

That's it for this blog, thank you for reading my experience.

Happy Coding!!

Did you find this article valuable?

Support Shweta by becoming a sponsor. Any amount is appreciated!