Live On Purpose.


17. Data Structures (a Bloc Coursework Update)

It has been a few weeks since I made any updates to my software development portfolio. As you can tell by that link, I have completed seven projects in total, six from my coursework at Bloc and one from my freelance work at Upscale Academy, but the frequency of my completion of the projects has slowed down. This is not because I am learning less or am any less focused on becoming a software developer, but instead because I am now working on the third of the four units in my Bloc Software Engineering Track, which is the part with the actual software engineering in it.

Signing up for a coding bootcamp is a bit of a leap of faith. It requires some faith in an untested industry, because coding bootcamps didn’t actually exist until 2012. It requires some trust that you will be learning about programming languages, tools, and concepts that are valuable in the job market today, meaning the course has to be up to date. And, last but not least, it requires a good chunk of cash to sign up (in paid-outright, scholarship, or loan form), just like all higher education does in the United States.

The reason I went with Bloc and its Software Engineering Track, as I’ve stated in previous posts, is because I figured that if I was going to learn to write code, I was not going to half-ass it or pick the cheapest course I could. I wanted to really, truly learn the ins and outs of software development (writing apps and websites) and engineering (generally, the layer beneath, where you make the tools that other developers use to write apps and websites). At the same time, I had to pick a bootcamp that could work with my schedule and appreciate the fact that I am not in a financial position to just quit my day job and code from 9–5.

The Software Engineering Track, as long as it is by bootcamp standards (72 weeks part time), is still much shorter and less expensive than a full-fledged Computer Science Degree from a university. It was the right balance for me: I could learn a lot and get a huge leg up into a new career field, but not devote another two or three years of my life to college.

Plus, as a guy with way more student loan debt than is reasonable, the appeal of a slightly-more-lucrative career as a software engineer was more appealing to me than hurrying out the door of the bootcamp and into a web developer position. It meant a better ROI, and even if my first job isn’t as an engineer, I’ll at least be more prepared for an engineering role in the future.

Bloc told me in my orientation that they spoke to lots of different folks in the industry who are likely to hire their graduates about what they wanted from an ideal candidate for a software engineer position, and they tailored their course to what they learned. Generally, they heard that bootcamp students often come out of their courses with the ability to build websites but without really understanding what they’re doing, while college grads with Computer Science degrees understand the theory but don’t have as much actual practice building software. Bloc wanted the middle path: students with lots of hands-on experience and a knowledge of what’s going on behind the scenes.

As I said before, I had to make a leap of faith in signing up. I did not know anyone personally who had signed up for Bloc. I had to trust that Bloc’s chosen way of teaching (for me, Back End Development, Front End Development, Software Engineering Principles, and finally an Open Source Apprenticeship) was appealing to hiring managers, and that I would get my money’s worth. I could not help but be skeptical, sometimes because I was struggling and felt like I needed more support (especially at first), sometimes because I was blazing through the coursework and it seemed almost too easy (mostly in the Front End section, which was not much of a difficulty bump from the Back End section).

Now, I appreciate how the course is designed and understand why it is the way it is. If it had started with the software engineering concepts I’m working on now, like learning how to build tree, heap, hash, and linked list data structures, I would have quickly become frustrated and likely quit with the feeling that I was too stupid to do this stuff. Data structures are more cerebral and conceptual, with less of the visual reward one gets building front end software. I have heard since I signed up that Bloc’s current course offerings put Front End Development (with JavaScript) before Back End Development (with Ruby on Rails), and I see why. The more visual content helps students feel they’re actually doing something; they can see it firsthand and feel that they’re making progress, being productive, and growing. The harder back end concepts can build off that foundation once students gain some confidence.

The first two sections of the course also encourage students to focus most of their time on building projects and testing out what they’ve learned, while the software engineering section is a bit more traditional in how it’s taught. I think this is by necessity; I’d need an extra couple of months to build purely creative projects that utilize what I’m learning now and really do anything meaningful with them. Nevertheless, this unit will have me building databases and frameworks soon, which will become part of my portfolio.

Really, this post is just a status report. I have come a long way- it blows my mind looking back on the first two sections and remembering how much I struggled with them, when in retrospect they don’t seem that difficult conceptually- but being in week 45 of 72, I still have a long ways to go. I hope to have much more to share about my experience in the software engineering section soon!

Dan RiceComment