Tales from the jar side: Endings, Bootcamp and Otherwise
Welcome to Tales from the jar side, the Kousen IT newsletter, for the week of September 29 - October 6, 2019. This week I spent a lot of time on my Kotlin Cookbook, and finished my last two days with the bootcamp students.
The bootcamp part was really interesting. The requirements changed again, which I suppose it good experience for real life, but hard to manage. They had to complete their projects and upload everything by Friday at 5 pm, and each person has to present their project on Monday. They'll each have half an hour to talk about the design decisions, the technologies they used, the implementation details, and answer any questions that come up. Later in the week they each go through an interview process for the actual job.
I've taught bootcamps before, but this one is really unusual. All my previous times have involved either regular employees who were switching technologies (like from mainframes to object-oriented web apps) or entry level employees who had just been hired. This is a group of individuals who don't have jobs, but the bootcamp is sponsored by a company in the Hartford area, and there's the promise of a job at the end, but nobody knows how many actual jobs are available. Since neither the sponsoring company nor the training company have done one of these before, it's been a bit of an adventure of changing requirements and uncertain politics.
My attitude has been to assure the students that a company doesn't pay for something like this unless they need a lot of people. Plus, somebody high-level had to champion this inside the company, so there is already somebody with authority invested in its success. On the other hand, nobody wants to be embarrassed by hiring people who don't work out or make them look bad. Still, I expect this to be possibly the easiest, most friendly interview process they'll ever experience. As long as the students demonstrate basic proficiency, then it'll come down to whether or not enough jobs are available.
Of course, even saying all that, the students were both flooded and nervous this week. Nobody felt they were done -- which is another lesson: software is never done; it's just abandoned -- and they all felt like they weren't ready to present anything. I spent some time on Thursday answering questions and helping on the parts where I could help, which meant the server side of the projects. Unfortunately, most of the help they needed involved the front end, implemented with Angular JS, and I don't know much about that. Fortunately, there was someone else in the room who could help, at least to a degree, and the students were willing to help each other.
The plan this week was to give each student a chance to present their projects to the group, both to practice doing so and to get feedback from a group that wanted them to succeed. On Friday, about half of the 13 students remaining took the opportunity to present their code.
I have to say I was really impressed. A few of the implementations were just straightforward coding of the requirements, but you could see the time and effort that had been invested. It was clear to me how hard they had worked, and how committed they were to making the project successful.
A few of the presentations (three in particular) were amazing. I was very impressed with the level of excellence demonstrated. Watching them, it was hard to keep in mind that most of them had only a few months of experience as coders.
My only advice was:
Start with the best part of your project. If it's the user interface, focus on that. If it's the back-end, show test cases or other interesting implementation details. Either way, lead with your best.
Don't apologize. It's hard not to focus on the project deficiencies when you're in the middle of it, but there's no need to dwell on them. Everybody always feels like they're not yet done.
Of course, readers of this newsletter will recognize my inability to see the good parts of my own Kotlin Cookbook. I promise that when I'm done, I'll stop remind you of what I didn't manage to cover. I'm giving advice I have difficulty following. Believe me, I know what I'm talking about.
I'm keeping my fingers crossed for the students next week. My part may be finished, but we've built a real relationship over the past several weeks, which is something I rarely get to do given that most of my training classes are over in a day or two. I'm rooting for them all.
Regarding the book, I still need to add the section on coroutines, which will happen this week or not at all. I got back the copy-edit, which showed that there were a few general house rules I didn't follow (like using italics for filenames rather than a code font), but that should be easy enough to fix. I'm also pleased to say I received a foreword trom Dawn and Dave Griffiths, the authors of Head First Kotlin (on which I was a tech editor) and Head First Android Development, which is an excellent beginner book on Android. Now I really do have to finish my book. The rule is that I can't add anything new after next Monday, Oct 14. That's the end. One week to go.
A few miscellaneous notes:
Monday, Oct 7, is my 29th wedding anniversary. That's significant, because I was 28 when we got married. On that day I'll have been married longer than I wasn't married, which feels like a milestone. My wife was older than me, so she's still got a while to go before she gets to experience this.
I reached another minor milestone this week. My Tesla Model 3 is now over a year old and I just passed 10,000 miles on it. I took it to the dealership partly to find out where it is (down in Milford, CT, about an hour away) and partly to get the tires rotated and re-inflated. I've had to do zero maintenance on the car other than inflate the tires and add some wiper fluid, which is pretty cool.
Between the MLB playoffs and the NFL, I'm actually spending time on regular cable these days. I mostly use my Roku or watch YouTube videos, so it's very different having to deal with commercials again. That's what the mute button is for, though.
It feels like history is happening at Internet speeds, with all the attendant uncertainty, problems, and bad actors you'd expect. Keep in mind that change can come very quickly, and even long-established structures can crumble. Those in my age group will remember the fall of the Soviet Union, and even experts were taken by surprise when it actually happened. I don't have any idea what's going to happen, but it feels like we're headed for significant changes sooner rather than later.
Personally and professionally, things are going very well for me right now, and even so I'm struggling with world events these days. I can only imagine how it's going for people in other circumstances. I'll just say that I hear you, I sympathize, and like everyone else I'm just trying to get through it all.
Last week:
Writing and revising the Kotlin Cookbook
Finished my time with the bootcamp students
This week:
Spring and Spring Boot, online at Safari
NFJS event in Minneapolis
Finish any new recipes on the Kotlin Cookbook