Web dev 1.0 – The Process 🌱✨👨🏼‍💻✨🌱

For the last 3 years or so, I’ve been immersed in the world of code. What started as a simple workshop to help me build an MVP for an app turned into a full fledged rabbit hole, and before I knew it, I was working for a kick-ass EdTech company and spending my weekends sipping and writing Java. I’ve learned a ton, but the journey definitely hasn’t been linear.

Learning to code during evenings and weekends is great, and got me a working prototype of my Android app, but it has it’s limits. No amount of passion or drive can replace putting in the time, and I wanted to find a way to learn more, faster, without necessarily going back to school.

It just so happened that at the same time that I was feeling this urge, Les Pitonneux, a non profit that helps people learn to code, had a new cohort for their Lab12 program that was about to start. I’d already done a series of Android workshops with them, and I’d gotten a lot out of it, so I figured it was worth a shot.

Lab12 is twelve week “un-bootcamp” for self learners. There are no classrooms, no lectures, and certainly no fixed curriculums. You start out with a goal, usually a specific project, and with the help of mentors and your peers you work towards it for the duration of the program. It’s good to have a sizeable amount of time to dedicate to learning each week as well.

In my case, I wanted to make an interactive logic puzzle, while using modern web development tools that are similar to what’s being used where I work. The puzzle is something that could be integrated into Netmath, but more importantly, the whole process would help me become more familiar with the possibilities and constraints that come with building web apps. Design that’s informed by development is more robust, so I asked to be able to dedicate some time in my usual work-week to learning JavaScript and React.

A mural near Notman House that I like. It’s kind of chaotic, just like that front-end programming landscape!

Lab12 was divided into 3 parts for me: ideation, knowledge acquisition, and building. First I needed to figure out what exactly I wanted to do. Yes, I wanted to build a puzzle app, mais encore? I needed to scope the project into something that was achievable in 12 weeks, and also map out how all of it would be organized and what technologies I needed to learn.

The learning part is tricky, because I found that this is where motivation can take a bit of a dip. Optimal learning happens when you build onto prior knowledge bit by bit, applying what you learn as you go along, but it can be tempting to just go out on a limb and keep learning a bunch of things that you aren’t going to use right away.

One of the resources I was using, Eloquent JavaScript, had some particularly thorny bits that, while fascinating, were utterly useless for the first development phase of my project. I read on a bit further than I had to, and during that week where the puzzle app wasn’t moving forward I felt a big dip in my energy. It’s a tricky dance to balance learning and progress, but when you get the mix right it feels almost magical!

Dance magic dance!✨🕺✨👨🏻‍🎤✨💃✨

I spent a little over a month learning quite intensely, then came the building phase. There isn’t a ton to say about it other than the fact that it’s one of the most rewarding phase of any project. It’s when your planning and learning finally come to fruition, and you prove to yourself that you can do more than just follow along with a tutorial or copy/paste Stack Overflow. This is where I usually show off what I can do on Twitter. 😂

(By the way does anyone know the proper punctuation of emoji in a sentence? Do they replace the period, or go before/after it?)

At the end of the 12 weeks, I had a working prototype that was actually pretty fun to use. There were a few bugs in it, as is the case with most software, but nothing particularly worrisome. Setting aside the extra time to code made a huge difference and gave me a nice boost of momentum for my learning goals. I’ve taken the puzzle app even further as well, by making a puzzle builder, but that’s a whole story in itself!

I guess the takeaway is that if you feel like you’re in a bit of a rut or you’ve hit a plateau, there’s probably a way to fix that and take your game to the next level. In the immortal words of Enrique Iglesias, Baillamos! 💃

I made my first React Component! ⚛️

I created a Grid Component.

It accepts an array of arrays in order to structure the cells inside of it, and it automatically resizes to be as big or as small as I need it to be. The cells can contain anything, even other grids!

This is what using the grid looks like in React:

<Grid cells={THE_ARRAY_OF_CELLS_GOES_HERE}/>

It outputs a table, which is great because coding what you see below by hand in HTML is the very definition of hell 🔥.

a react component that consists of a 3 by 3 grid that cointains other 3 by 3 grids and random content like text and emoji(yes it’s hideous 😉 … there’s no CSS in it yet!)

UPDATE:

This was awful to style because tables kind of suck, so I stopped trying and came up with something else.
I made another version of it using divs and Flexbox in the end, and it’s actually beautiful!

Initiating Launch Sequence 🚀

Hi and welcome to my blog!

Two years ago, I embarked on a journey into the unknown. My job was pretty cool; I was making YouTube videos, and freelancing in design at the same time. That being said, the amount of things that had to be juggled to make it work was just insane, and on top of it I wanted to learn Spanish, and get fit, and work on a bunch of other skills. I realized that it was not humanly possible to focus on everything, but that gave me an idea! What if the solution to my problem wasn’t human?

Fast forward a year, and I’m working for an amazing ed-tech company and writing my first lines of Java on the side. When I opened Android Studio for the first time, I was completely overwhelmed by what seemed like a jungle of buttons and menus, and I remember thinking:

“I have no idea what I’m doing, but I’m going to make it work anyway!”

And somehow… I did!

Move the clock ahead to 2017, and I have a working Android app that I use every single day. It’s far from perfect, but that’s not the point. It works, and for someone who’s completely self-taught in all things computer science, that’s a hell of an accomplishment!

Despite all this, I still have no idea what I’m doing, so that’s where this blog comes in. From the mundane, like finding ways to save money on laundry, to the downright terrifying, like launching my app, every day I run into some new thing that I’ve never done before, and I think it’s going to be fun to document it. Lets try for something new here every week 😉

My adventures in figuring shit out are just beginning, and I’d love to have you along for the ride!

Jonathan