Still over a week before the lectures will start again on 25 September. Yet already I know that this fifth term will be my busiest term ever (and I have had some pretty intense ones).
I have been working nearly five weeks now at that consulting firm, and am slowly getting the feeling that I’m about to get my head back above water. For a long while though I was really desperately struggling with what I had let myself in for. You see, once a year the company is inviting students for a day or two in which they get to know the firm and the work of an IT consultant. They solve programming problems in small groups and are observed doing so. The idea is to find out how they cooperate, communicate, analyse problems, find and present solutions, and of course to assess their programming skills, which, though evidently not in themselves sufficient, are the essential backbone of successful IT consulting.
For some years the firm has had a Java/Spring example application for this event, and the students had to find and fix bugs, implement methods, refactor, add some functionality here and there, and so on. But recently that project has been considered a bit long in the tooth. So they had the idea that they needed something new and hip to attract more potential candidates. Preferably something involving new technologies such as speech assistants or sensorics, something from the Internet of Things area. And something with a catchy headline, such as “smart cities.”
But then nobody really had the time to think up something completely new.
Which is where I come in. They had this great idea that I, being myself a student, would be just the man to figure out what students find attractive. And doable. And then do it.
Meaning not only did I suddenly find myself with the responsibility for designing, from scratch, an event and a suitable software project, which veritably called for the squaring of the circle. At least one circle, that is. Because on the one hand this event should include shining new technologies and be considered attractive and challenging by the target audience. On the other hand, it must be doable by people whose sole programming experience is usually doing business logic and some persistence in Java. And it must be possible to complete it within the allotted time frame for the event, 5 hours total. That’s minus welcoming, explaining, discussing interim solutions, and wrapping up. So there goes the chance to have people hack some cool intelligent high-tech stuff.
In the end I willy-nilly settled for something comparatively conservative, a routing software for different “smart” means of transport (foot, bike, rental bike, public transport, any combination of those). Still, that gives me the chance to include a Java/Spring backend with some business logic, access several public APIs, do an Android app, and, as the final high-tech highlight, some speech control. I suspect that my employer expected something a little more impressive, but at least this is doable, and there is something in there for everyone.
And then of course I had to do it.
Programming the Java backend was no big deal. That’s what I’m good in, and in fact, after more than a week of mainly thinking, checking websites (what makes a city smart? what kind of data is publicly available?), and conceptualizing, actually starting to code was kind of a relief. You know, I still just love it.
Of course, getting all the HTTP stuff to work took some time–afterall, I was both requesting rather complex data from public APIs and offering it in my own ReST controller, and I have only very little experience with JSON parsing and all that. But it may be that I am already at a point where my general understanding of the concepts is enough for me to just boldly try things and often be surprised that they actually work, sometimes on the first attempt. I am no longer just messing around.
On the other hand, I had never done a mobile app in my life. After I got the backend to work, I spent a full seven days watching video tutorials on Android programming. Quite helpful, mind you–I really took away a good understanding of the key concepts. Which still didn’t mean I could actually do it. But again, while Android was completely new to me a couple of weeks ago, programming isn’t. And essentially Android is Java. Like with Java, there’s a lot of boilerplate for comparatively standard concepts (in both cases I wonder why this all stuff can’t come wrapped in a high-level library), but unlike with Java it’s my impression that in Android there is usually one correct way of doing things, and that way works. So while some things baffled me for some hours (and even then the solution, when it finally dawned on me, immediately made sense), most worked right out of the box. In fact I was surprised how fast I saw results–in its key concepts, the app was done after a couple of days, after which I advanced to making it more useful and prettier. I can’t say I have ever acquired a skill so immediately useful so quickly.
So while the whole thing was quite overwhelming for a while (and in order to make it less so, I outsourced the speech control part to another student employee), after a couple of weeks it actually began to feel good. Not just learning a new skill and creating something, but seeing how acquiring new concepts gets increasingly easier the more you are at home in what you’re doing. It took me over a year before I wrote anything even remotely useful in Java. It took just a couple of weeks with Android.
And by the by I am also beginning to feel quite at home at the new work place. It’s probably no great surprise that one should get used to something new after five weeks, even if at first it felt intimidating. And still, I think I could have picked a worse place to start my second working life. People are genuinly kind and constructive, the general mood is really quite relaxed, and I am learning interesting new things every day.
Meanwhile, I was regularly checking the UAS website for updates on the winter term class schedule, which this time was out early in a provisional form, but particularly late to be complete. Literally until yesterday a fifth term core lecture (architecture of information systems) and its accompanying practicum were missing from the schedule, so it was impossible to make plans, or tell my employer on which days I would be able to come to work during the term. Let alone to know which practicum group to choose when the race in the computer system will open come next Monday. Also, we were quite confused by the fact that the distributed systems practicum will be in the same time slot as some of the “compulsory choice” modules. I pestered the professor who makes the schedule about that, and she pointed out that it was hard to fit all our fifth term courses and all those modules (which can be attended by fourth-, fifth- and sixth-term students) in the schedule. Yet it should be possible, for each mandatory choice module, to find one practicum group that didn’t overlap, since while being in the same time slot, neither the modules nor the practica will meet every week.
I find it hard to imagine how she manages to come up with a schedule at all, given these constraints. The problem does sound pretty NP-complete to me! In any case, neither is the result this time making any of us happy. The architecture lecture is Monday night (4 to 7 pm). The practicum will be Tuesday night. And three of the four seminars are also after 4 pm. Mine is on Friday. Which means that three days in the week I won’t be able to pick up our older kids after school so that my wife will have to collect all three. At the same time, I won’t have a single day in the week in which I can work the agreed 8 hours at my new job, because on both days on which there are no courses morning or afternoon (Tuesday and Friday) I now have one in the evening. It’s a mess.
Working two days, studying full-time, and having three kids–there is still no saying whether or not I, or rather we, will be able to pull this off. That so far I haven’t been able to complete my seminar presentation on functional programming, now scheduled for the fourth term week, makes me rather suspicious. It’s really no big deal, I just haven’t had the time yet. I tried to work on it whenever I could, 10 minutes here and 15 minutes there. The professor had asked us to submit an outline on term start, and a few days ago I just about managed to send him one containing my provisional chapter and subchapter titles. To be honest, I thought that was enough detail at this point, but his reply seemed to hint that he had expected more. Can’t say this has ever happened to me during this course of studies. So far I have regularly overfulfilled the expectations.