Home Page
Other Posts

All Aboard Bootcamp with John Crepezzi

In March 2021, I joined the All Aboard Bootcamp hosted by John Crepezzi, Staff Software Engineer at GitHub.

John started this bootcamp as an alternative to pay-walled and restricted bootcamps and he wanted to bring the power of coding to minorities and lesser priveleged people. At first, I was unsure if I was right to join this bootcamp, because it was for people who had no prior exposure to coding or software development. I had a Master's in Computer Science and had worked on large codebases before. However, I suffered from imposter syndrome regularly, and I was interested in learning Ruby and Rails. I decided to devote my time to learning from John.

During the 4 weeks I spent learing at his bootcamp, I realized how great a teacher and human being he is. He has excellent clarity in concepts, his classes were a fun, social thing I looked forward to everyday, and in the 4 weeks I learnt just as much as I would have learnt in a semester worth of Graduate studies at Boston University. I decided to note down a few things in class everyday that I found interesting!

Day 1

We were introduced to John and also learnt how the classes would be structured. It was exciting to know that there would be guest speakers to share their experiences as professionals. The environment that we would be coding in was GitHub CodeSpaces, and I was delighted to see that it was basically an online VSCode.

The outcome of the course was set at being able to be comfortable in Ruby, Rails, HTML, CSS, and JavaScript at the end of the course and build a project using these tools. If we attended class regularly, completed assignments, and did good on the final project, we would be connected to prospective employers. Yayy!

Day 2

Day 2 brought our first guest, the distinguished Mary Moore-Simmons, the director of engineering at GitHub. She talked about how we could improve our resumes, how to use GitHub resources to look for jobs and the significance of havings ops and devops experience in the industry.

We learnt about Ruby and its object-oriented nature. The contrast with JavaScript, with its prototype-oriented nature, was brought up as well and I realized why JavaScript and React are a much steeper slope to learn since most languages I had come across in my schooling are object-oriented.

Day 3

We learnt about blocks, loops, and functions in Ruby. The interesting exercise included making a dynamic box that would contain names and change its width based on the longest name in the array.

Day 4

Denise Yu was the speaker for the 4th day. She emphasized the importance of soft skills that a lot of technical recuiters look out for and are important to the workplace. It is easy to become a better coder but much harder to become a better person. It is important to highlight your communication skills, leadership, and other soft skills that could make you an asset.

We reviewed yesterday's exercise, and this would become a pattern in later classes. John did a great job at going through the exercises step-by-step, and allowed us a peek at the mindset a developer should have, even while solving the easiest problems. We also learnt how to use classes and objects.

Day 5

Last day on Ruby, we learnt about class inheritance, how classes interact with each other. We also learnt about modules and how they can be used to give a blueprint for our classes.

Day 6

The first day with Rails kicked off rather appropriately with Rails celebrity Eileen Uchitelle as the guest speaker. She talked about life as a major contributor to Rails and working remotely.

We got to build our first web apps using Rails. The database we used was sqlite we and were able to succesfully start the web server.

Day 7

John talked about the MVC (Model- View - Controller) as a software design pattern and how most web applications are built with these 3 interconnected elements. A good way to understand them is:

His diagrams and correlation of the system design model with the code makes it so easy to understand how these things connect and interact with each other.

We also created Rails models and did some basic CRUD (Create- Read - Update - Delete) operations on objects of these models in our database using the Rails console. We were able to connect these models to our controllers as well. Exciting how powerful Rails is!

Day 8

We had Enrique Gonzalez, part of the GitHub sponsors program, talking about his experience in the industry.

We learnt more about Rails models and how models with belongs_to and has_many relationships interact with each other. This was also our first introductions to views and .html.erb files. These are HTML View files which can run Ruby! We learnt how to use these views to get data from the model objects in our database and create forms that can send data back!

Day 9

We did views from a different viewpoint and actually understood them a little better. Resources is very helpful to create Rails routes and some more HTML explanation from John that will certainly be helpful over the next 2 weeks!

Day 10

Great guest feature today with Eddie from Genius. He talked to us about the software industry from the standpoint of a recruiter. He had great insights on how he views people sending applications to him, and we all definitely learned how we can tailor our applications to make it easier for recruiters to see the best of us.

Remember Resources for routes?
Apparently, you can nest them. Rails will figure out how to create the urls for the nested resources!
We also took a harder look at how forms work and this was a much more organic take on the topic that we tackled in session 8.

Day 11

Today we learned about online sessions and how cookies are used to store them. This gave our web applications a sense of stateful behavior as we were able to hold onto information between requests and make our views more personalized for the current user looking at them.
We also learnt common methods that can be added in application controller and common view layouts that can be replicated across differentpages of our web applications.

Day 12

Our guest today was the delightful Jenn Schiffer from Glitch. She talked about how it is important to build small parts of code, something that John has emphasized during our sessions as well. Glitch is a great platform to share code and builds on one of the integral properties of good code - reusability.

We started with CSS today!
Even with all my fancy CS degrees, I had never used CSS before and was always intimidated of the scary front-end tool that I would never use. John made it super-easy to understand and integrate into our existing HTML views. We were able to make our pages colorful and pretty, and I was astonished at how simple to use it had been all this while!

Day 13

Today was our first day with JavaScript. We learnt how we can inspect pages to see console logs.
We also learnt how eventListeners can be used to make changes on pages and make them dynamic to clicks, loads, and hovers.

Day 14

An exciting guest session with BDougie today, with a delightful cameo from his son at the end!
He is a developer associate who migrated into the tech industry from sales, and he talked about his motivations to do the same and some lessons he learned on his path.

In continuation of our JavaScript lessons, we learnt about the fetch function, what JSON is -> JavaScript Object Notation.
We also learnt about the fat arrow syntax, that is closures in JavaScript. This was something I've found hard to undestand, but the way John created distinct functions and then integrated them into a closure was a really helpful insight into how it all comes together.

Day 15

In our penultimate session, we used the fetch function to make XHR requests to retrive entire HTMl pages into our current view.
We also learnt how to make sure JavaScript can find certain HTML elements in the view we are actively inside.

Day 16

Final day!
I learnt so much in this bootcamp, even as a Computer Science Master's graduate. John has been a great teacher, and I am so thankful that I saw his twitter post about the bootcamp and was able to be a part of it.
As part of the last session, John talked to us about the projects that we will be doing in the next 3 weeks and how we will use tools that we learnt to make a web application. I am going to be building a website for cryptocurrencies, and I am looking forward to it!