At CodeScience, we have weekly tech meeting for our developers and technical architects. We cover a wide range of topics focused on our technical staff, from the very business focused — like Salesforce certifications and dealing with clients — to things which are less specific to our day to day jobs but still of interest to our developers. One of these, which I had not participated in until recently, is our Developer Challenges.

We have had a series of optional challenges given out to our developers over the years designed to help people learn more about different technologies and show off what they can do on something they may not know much about. While I personally have been interested in them, until recently I’d never actually done one. One thing or another would come up and I’d put it off until it was too late. Recently, I participated in one and I learned many valuable lessons, including just how valuable of a learning and confidence-boosting tool these challenges can be.

The Challenge

The challenge was simple: to design an extension for the editor many of our developers use daily, Visual Studio Code. To start with, the challenge was a bit outside of my normal focus; I tend to keep more to the backend where I’m comfortable coding Apex and things like that. These extensions are all written in Javascript, which is one of those things I’ve been meaning to get better at for years but have never really taken the time to hone my skills.

The challenge was more open ended than some we’ve had in the past, but it gave me an opportunity to think about what kind of extension I could use and develop during that time frame. I came up with several useful ideas initially, but for one reason or another they either wouldn’t work or were far outside of the scope of what I could do in the time allotted.

The Idea

So, without any useful ideas, it was on to a useless one. The first thing that came to my mind was a game. I thought I might be able to make a game as Visual Studio Code extension. “Is that even possible?” I wondered. As I began to look into it, yes, it’s sort-of possible. “Is it a good idea?” No, not really. It’s a terrible platform for a game, but that’s part of the fun. I wasn’t trying to make a deliverable product, I was just trying to do something for the sake of doing it; and like getting Doom to run on an ATM, it’s usefulness was secondary to overcoming the challenge of doing it.

Without getting too mired in all of the details, there were several hurdles to accomplishing my goal of making a game in a VS Code extension. I had to come up with some unique ways of capturing input, displaying and updating the game, keeping score, and then resetting everything if the player wants to play again. A VS Code extension is not at all suited for making a game, but trying to make it on such an ill-suited platform forced me to become familiar with not only the inner workings of a VS Code extension, but also Javascript itself.

Over a couple of days, I managed to scrape together a game when I had some free time. It was a very basic ASCII-based game, but the more I added to it, the more I was pleasantly surprised by how well it actually worked. When I showed it to other people, they were impressed that I had managed to create such a thing at all.

Conclusion

When the challenges were submitted, there were several entries. It was decided that there would be two winners: the most useful, and the most interesting. While my game stood no chance in the useful category, it was awarded most interesting. I appreciated the award, but the satisfaction of making something and getting some experience in using technologies I’m not very familiar with was even more valuable to me.

The Developer Challenge is a great idea. It not only helps our developers to learn new things, it forces them to try things outside of their normal areas of expertise. I feel that the best benefit might not even be a technical one, but a psychological one. It gave me a new found confidence in Javascript that I’ve lacked in all the years I’ve interacted with it. At this point, I figure if I can create a game in a Visual Studio Code extension, any normal task in Javascript is doable. My only regret is that I took this long to take on one of the developer challenges. 

If you wish to check out my game, it can be downloaded by searching for MrSmiley through the Visual Studio Marketplace, or you can check out the Github repository here: https://github.com/bbaker13/mrSmiley


If you’re interested in building a business app with Brandon or another talented CodeScience developer, please contact our team to discuss next steps. Want to be part of our squad? Visit our Careers page to learn more.