First, I want to say thank you for your support in helping me through the past three months. I have finally completed the MakerSquare course -- 13 weeks, 6 days a week, 11 hours a day. It is done.
And I already miss it.
But any doubts I had at the beginning about the effectiveness of the program have evaporated. I am a software engineer.
Thank you. Thank you so much. I couldn’t have done this without you, and so I want to share with you what I learned.
Certainly, there’s more to learn. There is always more to learn. But I’m coming out of this with all the knowledge and training I need to build web applications from the backend to the front-end. There is a clear and marked improvement between what I could do before MakerSquare and afterwards. More importantly, I’ve learned a lot of social skills -- it’s not just that MakerSquare taught me how to program, but that it taught me the ways that engineers communicate effectively in teams and organizations.
Furthermore, they’ve also given me insight into what I need to be looking for on job interviews - both technical and behavioral - and I honestly believe, for the first time in a long time, that I’ll be okay. Even after graduation I’m getting tons of support in the job search, and have already landed one phone interview and one onsite-tour (effectively a behavioral interview).
I’m telling you all this because I wanted to know that you’ve helped. Whether you financially helped, whether you provided emotional support, when you’ve cheered me on - you’ve helped me get through something difficult and rewarding. And I know it was the right choice. I love coding. I dream about code and I don’t want to wake up. And yes, I could see myself doing this every day for 30 years and not getting tired of it.
I wanted to share some of the projects I’ve done with you, so you can see what I’ve been up to.
Solo Project: Who Wants To Be A Millionaire & Chat Room.
At the halfway point in the course, each student gets 36 hours to complete a solo project of their own choosing. I chose to create a trivia game, using Who Wants To Be A Millionaire questions. The most impressive part of it - multiple people can play the same game at the same time, and the game keeps track of who buzzed in first, and how many points each person gets.
It was built primarily using Socket.IO in order to create the room - for the site itself (which is very simple), I used jQuery. No data is stored, so I didn’t need the full overhead of a database - I just used FS.js - a file writer/reader for Node.js - to read from a JSON file which contains tons of WWTBAM questions.
We “over-scoped” this project, so it’s not ready for deployment, but AmiGo is a website designed to let people who are vacationing in the same general area to meet up while on vacation. The front-end is incomplete, but built in Angular, while the backend is using MySQL and the Knex.JS controller. Using Knex.JS should make it relatively simple to switch to PostgreSQL (which is easier to deploy due to Heroku’s native support for it.)
The team has decided to continue to develop Amigo into the future as we start to look for work, and we hope to show you soon.
After the Greenfield, we effectively switched projects with other teams in order to add features to the legacy project. “Speak” was a fork of “SPKR” - a site where users could solicit and give feedback to public speakers. The main features the team added was to add the capability for users to create custom criteria for their presentations, and display it. I was the scrum master/github coordinator for this sprint, which taught me a lot about branching, merging, and rebasing in Git. We could not choose the tech stack for this project, but it was built using the MEAN stack - MongoDB (a non-relational database), Express, Angular, and Node.
This was by far the most difficult project, but also the one I’m most proud of. DigiQuiz is an app designed to allow teachers to play “Jeopardy” with their students, where the students can buzz in via mobile devices (phones, tablets, laptops, etc.). Teachers can create customized “decks” of questions, (or connect to the jService.io API to get real Jeopardy questions) and allow students to buzz in. They not only can tell who buzzed in first, but get live feedback on how difficult students found the question.
I won’t get into details, but this was especially challenging since we lost team members and time along the way, due to interpersonal issues. We did everything we could to make the group dynamic work - even going above and beyond - and spent way more time than we should have, but ultimately the project couldn’t continue with the team as is. We effectively had to restart from near-scratch two weeks into the project. I’m especially proud that despite having only two weeks instead of four, and only three team members instead of five, we were able to complete the project. I’m especially proud of my team members Juan and Peter, who took the best of a bad situation and made something that was as impressive as any other team’s project.
Again, we’re planning to expand Digiquiz to meet some of our original goals. For example, I had hoped that we could allow for multiple-choice questions and tracking student answers -- the idea being that it would be a great thing to use for standardized test prep.
This being our biggest project, we hit some major stumbling blocks. We couldn’t truly produce data visualizations because we had tried to do it using Charts.js instead of the much more complex, but far more fully featured D3.js. We also lost a great deal of time trying to get the project to run on Postgres (at the insistence of a former team member who we were trying to appease.) The thing about Postgres that we learned the hard way is that while it is true that our data was highly relational, the hard-and-fast schema (including join tables and complex queries) made adding new features to the application a matter of redesigning the entire database every time - it was very poor for iterative Agile development. We eventually built it on MongoDB, which as Juan said “was like cheating, compared to SQL,” and from there, we were able to catch up to other teams.
This is key: in order to get the site up and running, we used MongoDB, React.JS, and Socket.IO -- technologies that were not covered in the MakerSquare core curriculum. That’s the thing I learned most from MakerSquare - how to teach ourselves and dive into new technologies.
So, what’s next?
Well, through “SendThisGuyToCodeCamp.com,” I raised $2,406. I’m going to round that up to $2,600 to pay forward. That’s not enough to send anyone to a similar code camp, but it is enough to help someone who really needs it. Zach Weinersmith (of Saturday Morning Breakfast Cereal) and the team behind Cards Against Humanity have started a scholarship to give a full ride to women who want to pursue STEM careers -- and while $2,600 wouldn’t make a drop in the bucket in tuition, it would be enough for the scholarship recipient to pay for books and a decent laptop. So I’ve decided to pay forward the money there. It just makes more sense. True, this isn’t “recursive” and I’m not requiring the recipient to pay it forward further (though I can certainly ask) but I feel it’s the best thing I can do to help.
I’m also going to shut down the “Send This Guy To Code Camp” domain, and start publishing on my blog, “brianboyko.github.io.” I’m hoping you’ll check it out.
Once again, thank you all!
-- Brian Boyko