Error messages used to be panic inducing. Lots of strange text and foreign looking symbols telling me that I did something wrong. Judging me.
Now, I’m slowly seeing that error messages are really my friends. Maybe even a developer’s best friends.
Not only do they tell me what went wrong in my code but they even tell me on what line. Instead of panicking what I should do is take their advice, go to that line — try to fix whatever went wrong — and … wait for the next error message.
What I’m learning is that you can’t be afraid of this stuff. Yeah, something went wrong. So what? Nothing will ever be perfect (including your code) just deal with it and move on.
The messages are trying to tell you something. Listen to them. Decipher them. You can do it.
So we’ve started learning Rails. The meat and potatoes of the Bitmaker Immersive Course: this is the thing we spend the rest of the nine weeks learning.
My first introduction to Rails was seeing Mina (one of our instructors) create a website blog CMS from scratch in, oh about, ten minutes during the Bitmaker intro to HTML workshop. He made it look so easy.
Over the last two days we’ve been getting our own Rails site up and running. Part of the problem, for me anyway, is just wrapping my mind around the philosophy that underlies the software. It’s based on a Model View Controller concept, and it’s… well it’s interesting. It’s opinionated software. It has a very particular point-of-view about how it should work and how web apps should work and you can either work with it or fight against it.
Funny thing is that at my level, the two extremes — working with it or fighting against it — look exactly the same.
I began the week getting up at six in the morning, getting to Bitmaker before eight and then staying till seven or eight in the evening, then getting home and doing more stuff after dinner till about eleven.
By the time Wednesday’s “Meet your Makers” event came around I felt like I was on the verge of burning out. My head throbbed from a lingering sinus headache and my back ached from sitting in chairs with questionable ergonomics. I was not in a good place.
And this was the easy week.
Yes, this past week Bitmaker bootcamp felt much more relaxed than week one. The exercises were procedural — start here, do this, now next step, etc. — as opposed to the large ambiguous coding challenges that we were faced with initially.
And of all the material that we are going to cover in this course, this past weeks material was what I’m most familiar with since I’ve been writing and looking at HTML and CSS code for about 10 years. Yet, despite this advantage I was feeling like I was about to collapse.
This would not do, so I decided to make a few changes. I stopped waking up so early in the morning. Instead of aiming for six, now I’m getting up an hour or so later. This in addition to shutting it down for the night a little earlier has combined to give me a better night’s sleep and I’m waking up less tired.
For my back, I started up my home yoga routine again. I also scrounged around the Bitmaker space to find chairs with the better lumbar support than the ones that I had been using. The results in a small sample size were very encouraging, after two days of stretching and sitting in better furniture I was much improved.
The lesson I learned this week is this bootcamp is not a sprint, and it’s not exactly a marathon either. It’s a bit of both. (A sprint-athon?) I wanted to maximize the experience and the learning by carpe-diem-ing the shit out of every day, to try and take advantage of every single thing offered. But even if I physically could do what I wanted, I probably shouldn’t.
The point of this is to learn to code. Burning myself out isn’t going to get me there.
Today we started taking our talents to the web. The CRM program that we built last week will find new life as a web application.
We got the basics working today and we’ll improve upon it over the week. By the end of this week we will have a fully functional web app. Kind of cool when you think about it.
I’m kind of tired today so what I wanted to do was introduce you to one of the stars of Bitmaker Labs. Really if it wasn’t for this guy, I don’t know where I’d be. I’m talking about the automatic coffee / beverage machine.
I want one of these things for Christmas. It makes a hot cup of coffee in less than 30 seconds or it can just as easily make you a cappuccino or an espresso or a cafe latte. It’s basically a mini Starbucks. So cool.
I found out about Bitmaker and programming bootcamps exactly one month ago on July 16th. The thought of learning to code in *just* 9 weeks seemed almost too good to be true. Is it possible? How can you go from zero to a ruby hero in little over two months?
Now that I’m here and (deep) in the trenches of this course I’d like to have a conversation with myself of only one month ago. Yes, you can become proficient with code in nine weeks, but - and here is the crucial part - the time that you have to spend learning to code is not decreased.
See, there are no shortcuts. If you want to go to level three in any skill where you are at a level one, guess what? You have to go through level two. You don’t jump magically to the next stage in your personal evolution just by signing up for this (or any) course or by showing up. You still have to learn this shit. And you better learn it fast!
All that stuff about the 10,000 hours is true. While the amount of time is overstated, the actual point of that big scary number is to convince you that in order to achieve proficiency in any field you have to put in the time. No way around it.
So why do an immersion-course-style-boot-camp? Why not do it on my own at my own time? I’ll tell you. What an immersion course like this one offers you isn’t so much a short cut but that it’s forcing you to focus.
When I was trying to learn coding on my own I would run into an obstacle and after an hour or so I would put it aside till ‘the next time’. On good weeks ‘the next time’ was the next day, but already I had forgotten a little of what I was learning. When ‘the next time’ ended up being next week… well, I had to almost start over. In this course you don’t have that luxury. You run into an obstacle and you better get through it!
The pain is more acute, more immediate, but the gains are also immediate. The point is that you don’t waste time superficially relearning the same thing over and over again. The immersion gives you the opportunity to let it stick, so you end up *saving* time by having no choice but to move forward. Sink or swim is powerful motivation.
Of course this begs the question, ‘are you sinking or swimming Mr. Minnis?’
Talk to me tomorrow. I got work to do.
The Bitmaker resident magician Ria, (I believe that actually is her job title) brought all the fixin’s this morning, I manned the irons, and we had ourselves a bona fide Waffle mash down! Yum! Good times!
Today was one of those breakthrough kind of days. Why? Cause I actually built a program. An honest to god little program.
It’s a command-line Customer Relationship Manager (CRM) that takes input and gives back output and, I’ll be damned, it works! Ya know, mostly. It’s not completely done yet, got some bugs to work out. But, wow.
It got me thinking. If I was still trying to do this - and by ‘this’, I mean learning to code - by myself, how long would it have taken me to get here? And by ‘here’, I mean where I would be comfortable enough to actually attempt to write this program that I wrote today.
The best-case-scenario answer that I can come up with is six to nine months.
Ladies and gentlemen, this is day five. I think a freak-out is in order.
I also attended (passed-by is probably the more accurate word) my first Hackathon. It’s the Bike Share Toronto Hackathon and it’s going on right now at the Bitmaker Labs offices.
I was a bit over-ambitious, to imagine that after all this weeks learnings and codings that I was just going to absorb _more_ data? The splitting pain in my head says no.
With my blurred vision, what I did see of the Hackathon looked amazing though, so if I can make it through debugging my CRM app at a decent hour I’ll be there!
At some point in the near future, maybe as early as next week, I’ll look back at the work I was struggling with today and say “Ha! I had a hard time with this?” But right now, it’s not so funny.
Up to this point in the course the problems had been relatively easy. Basic calculators and simple output methods, but sooner or later we’d have to build something, right? You know, make an actual program?
Today we got into the teeth of Object Oriented Programming or O.O.P. for short. The coding language that we are learning, Ruby, is all about OOP so there really is no getting around it. You have to learn this stuff.
What is an object? Why does this even matter in programming? How can we make some of our own objects and how does it affect our code?
Let’s talk more about this tomorrow…
Above: Also Playing at Bitmaker labs… the #ThinkThursday fireside chat with Satish Kanwar, Director at Shopify & Co-founder of Jet Cooper.
Yesterday Ria, the resident Bitmaker magician, had promised us that if we came early, we would be rewarded with waffles.
I had completely forgotten what power the promise of a free breakfast can wield. So last night, in between fleeting dreams of methods and key-value pairs I was surprised to see in my mind’s eye, fresh off the iron, dripping with syrup, sprayed with whipped cream, adorned with fruit. Waffles.
Apparently I was not alone. About a third of Bitmaker Cohort #8 was there first thing in the morning, ready and waiting for breakfast. But it was not to be. The iron was malfunctioning, there weren’t supplies, etc. etc.
Already the day had started on the wrong foot.
So we had to make it through today’s morning lesson, which was filled to the brim with arrays and hashes, on some other hastily acquired breakfast food. It did not compare.
Then it was off to our first Wednesday Yoga class. Ria led us through afternoon Toronto throngs to the building… except… the yoga studio had moved.
It really wasn’t turning out to be Ria’s (or our) day.
See, it all started with the waffles.
Above the class is in search of the yoga studio…
Of course I’m exaggerating here. The day was by all measures a smashing success. The coding lessons were enlightening as always; Yoga class was fun even for those who were doing it for the first time; and we all grew as coders.
And! Another breakfast of waffles is scheduled, this time for Monday. Will it happen or not? Stay tuned…
It’s time to get down to the nitty gritty of actually making something. As an aspiring developer that means that you spend a lot of time with the command line and a text editor. Lots and lots of text.
Before yesterday I had spent maybe 30 minutes total in the terminal. Now, at day two it seems like I’ve spent years in here. The GUI (graphical user interface) that I had used almost exclusively up till now is looking foreign. How quickly we adapt.
It reminds me of the scene in The Matrix when Neo sees the code that the operators look at for the first time and Cypher says “You get used to it. I don’t even see the code…”
Not like this is the Matrix or anything… Of course it’s exactly like that!
The main thing that we’ve had to get used to is Git. It’s where we post all of our assignments and it has a bit of a steep learning curve. But after having to use it over and over again, I’m wrapping my mind around it. It’s now becoming familiar. The keyboard commands are starting to feel familiar. Not as hard as it was only a few days ago.
Already I’d say that I’ve learned more than I would have in around two weeks to a month if I had tried to do this by myself.
Not bad for the second day.