Work Day 49: Training and more training…

…or, am I EVER going to figure out all this stuff?

This morning we had another CodeAcademy continuing training session — this time for client-side JavaScript testing. We worked through Mocha and Jasmine examples, with our takeaway being to modify the code to add to the constructor, and experiment with different tests. While I can understand this kind of testing, I’m still struggling with my Java JUnit testing for my user story. I cannot get my JUnit test to work in Eclipse. In looking at it, and comparing to other JUnit tests in our code, I think I’m missing a few things, and oddly, my test isn’t “tracking”—I’m getting an error saying the class isn’t “found.” As it is, though, none of the JUnit tests are working for my setup, so my issues may run a bit deeper than just a few misplaced @Test indicators.

I decided to eat crow and work through a Pluralsight video on JUnit testing. I’m also going to try to make a push to work through more of the Udemy course, as they do cover JUnit testing further along in the course. I even bought a book on JUnit testing (Pragmatic Unit Testing in Java 8 with JUnit by Jeff Langr—God Bless Amazon…). Hopefully with all this and having my mentor help me out (I’m going to need help setting up Spring anyway), I’ll muddle through.

All this setup and testing for a few lines of code change…it’s just unbelievable!

Work Day 27: Continuing Ed…

…or, attempting to remember my JavaScript.

Today we had our first in-depth continuing ed session with our Code Academy instructor. He’s going forward with more JavaScript instruction, but he’s introducing us to Object-Oriented programming concepts which we can hopefully apply to our respective language quagmires. I was skeptical at first, but JavaScript OOP does seem to be similar to Java and Gosu OOP. My only beef is that, doing this via Skype, I couldn’t see our instructor’s double-display very well on my work monitors. He was demonstrating running different jobs, which I couldn’t see, while I was frantically trying to remember HOW (I finally remembered to “NPM Install”—DUH). It looks like I’m going to have a lot of W3 School reviewing to do to fully understand everything. I may just work from home on class days from now on—I have a large monitor that SMOKES my work ones. Also, there will be less background noise to contend with. Today, near my cube there was some sort of meet-and-greet going on that was getting rather loud.

Fun fact: There IS a difference between a code inspection and a code review! The code inspection is actually a function in Guidewire (Menu—Analyze—>Inspect Code…). I did this and managed to uncover some issues that had nothing to do with my changes. One issue had to do with PCF methods that really should be classes—this is more of a tech debt issue. We won’t mention the fact that <code> in a PCF should be separate, anyway. It’s the same blasphemy as having inline code in HTML. As my elderly Uncle Jim used to say, “It just isn’t DONE!” I asked about the errors, and our Tech Lead explained that I should just include screenshots with some notes explaining my findings, and let the code reviewer determine what is and isn’t an issue. I think this is the Tech Lead equivalent of “Don’t worry your pretty little head about a thing!” Although our Tech Lead is a woman and very nice, so I’m sure she didn’t mean it like that…I think…

The good news is that my boss, who was on copy for the code review request, is ecstatic that I’ve actually done some real work, as opposed to peering at documentation, doing exercises, and falling asleep in front of Pluralsight videos.

Work Day 25: Fun with GUnit Testing

I’m in GUnit testing hell. My mentor is back. In answer to my confusion he explained that l needed to do a GUnit test, if the pcf code I changed uses Java and Gosu utility classes. It took me a good hour or so to trace through to see where these classes were—sure enough, the pcfs use several utility classes.

I’m not entirely sure I set everything up correctly for the test. All the utility classes are part of Java or Gosu “packages” which l don’t think you put under “gtest.” There was one class not in that category, which appeared to already be in the gtest path. I painstakingly followed all the directions to set up an “All Tests” GUnit run in Guidewire. There were a total of 1008 tests to run—35 failed. I’m not sure what the hell that even means. I suspect I’m going to need to meet with my mentor to figure all this out. There is some sort of mechanism to ignore certain tests, if not applicable. I’m hoping that was the issue—that I just needed to exclude certain non-applicable tests (and not that I’ve managed to screw up the entire application with my two small changes).

I also realized after the fact that I should have written a test to include that would have tested my ACTUAL change. I thought that this was an all-encompassing test, and that my change would be tested with everything else by osmosis or something. If you held a loaded gun at my head, I couldn’t begin to figure out how to write one. I looked at one of the gtest files and it was so confusing I almost fell into a dead faint.

I have this horrible feeling that figuring this out is going to involve another Pluralsight video…

Work Day 19: A Class Act

On Friday, I did some more work with coderbyte. I figured out how to take each of the exercises and make some standalone Java classes. It gave me a bit more insight into how the syntax works. I tried to figure out how to take these same exercises and create them in Gosu, but that was one big goose egg. The Gosu Reference Guide is almost impossible to follow when it comes to looking up how to do a certain type of function/method. I do want to ultimately crack this, though, so that I can understand Gosu better. Unfortunately, Gosu is not a language where you can google your way to a solution. The entire thing is locked down tighter than Fort Knox.

I was going to watch the Pluralsight Spring Batch video, but I didn’t. I do still need to understand how that whole process works, if I’m going to be able to function on my team. We do have a lot of user stores that deal with integration.

On a more exciting note, my Saturday was spent at the New England Fiber Festival!

https://www.easternstatesexposition.com/events/2019/fiberfestival

We had a fantastic time! I confess there were yarn purchases. I bought eight skeins of stunningly beautiful yarn to make a sweater for myself. I picked a simple pattern that a) will look good on me, and b) will be a no-brainer to work on as I spend my upcoming months cracking code.

SW Merino – Bulky

%100 Superwash Merino

108 yds

Hand Dyed – “Brew”

www.yarnhygge.com

Work Day 17: Back to School!

…but all the other kids are WAY ahead of me.

Our first continuing ed session with our instructor was abbreviated. He’s having computer issues, so we mainly walked high-level through the object-oriented JavaScript code he’s got out in GitHub. We’re supposed to review this, and try to run it on our machines before our next session—later on, we’ll be doing more involved work, I’m sure. It looks like I’m going to have to get Node.js loaded onto my work laptop, as we’ll be using that. I’m not sure how well that’s going to interact with the rest of the apps on my computer. I think I’m going to ask my mentor and The Alum for their thoughts. I could possibly just do all the continuing ed work on my home laptop to be on the safe side…I’m going to load a copy of his GitHub code there anyway.

We also spent a good deal of time going over how we all are doing in our new jobs. Some people are doing very well, as either a) they don’t need Java, and/or b) they have people they can shadow. I’m at a standstill, as I’m still learning Java and Gosu, which is going GLACIALLY slowly. Honestly, I’m getting the most bang for my buck from the Udemy course at home, but it’s not very fast-paced. Some people in class have had good success using the online CodeAcademy site. I’m tempted to check it out, but realistically, between Udemy, Tutorialspoint, Pluralsight (zzzz…), studying our current code, and trying to learn Gosu (and somewhere in here I have to learn Spring Batch), I think I have enough going on. If I try to add one more learning tool, I’m pretty sure my head is going to explode.

This afternoon, a good friend pointed out that I should give myself a break. If nothing else, I’ve only had a decent work laptop on which to do ANYTHING for a short time now.

I hate feeling useless, though.

Work Day 15: Is anyone HERE???

Friday was very quiet at work. Everyone was either working from home or taking a day off. When I came back to work from Code Academy, I decided to not work from home for a while, as I wanted to be in the office to be able to consult with my coworkers and mentor in person if I needed help. Honestly, though, on a Friday, that’s completely useless. I’m tempted to go back to my old schedule.

I spent the day diving into Gosu, Pluralsight (fell asleep again) and Tutorialspoint. I swear, Tutorialspoint is the best find ever! They have exercises you can do. I figured out that some classes are repeats, so instead of blindly doing each exercise as a stand-alone, I’ve been combining exercises in the class referenced. It’s a bit harder, but it’s giving me more of an understanding of the process.

For Gosu, I managed to get rid of the multiple versions of Scratchpad, and use it successfully—I discovered that the Gosu Reference document, in its 400+ pages, has exercises you can do in the scratchpad. I also found another online Gosu reference: http://gosu-lang.github.io They also have an online scratchpad/“play” area where you can practice coding: http://gosu-lang.github.io/play.html

I have a ghastly busy weekend afoot, but I’m taking Monday off, so I’m planning to plow through more of the Udemy course. I’d try to do the Udemy course at work, but I have my home computer set up for it with a higher version of Java—I’d probably have to schlep the home laptop in, in addition to my huge new laptop. And then I’d need to go see a chiropractor…

Speaking of my unspeakably busy weekend, I got the baby sweater done! I just have to scan it for kitty fur and wrap it up for the shower today. I’d wash it, but it’s too late for that—I’m going to instruct the prospective mother to do so before she has her little tyke wear it. It came out nicely, if I do say so myself!

Work Day 10: No matter what job you have…

There’s no escaping bureaucracy.

In the continuing saga of getting up to speed, I found out that, yes, I was completely correct about the git config command I need to enter to accomodate large file names. However…I can’t do any config commands because I don’t have admin rights to my laptop. I went onto our tech support site to put in a ticket for this, and found out that my laptop is STILL under the name of the tech who built it. The guy who deployed it has no idea why it would still be in the build guy’s name. He suggested I wait until Monday and try again, when perhaps the system will have caught up and actually show that I am the user of MY OWN LAPTOP. Also, my manager is out until Monday, and I really didn’t want to explain to his Friday stand-in why I’m requesting admin rights to a laptop that, apparently, is not under my name.

Oh, and I’m also waiting for the docking station. The deployment guy ordered it and is waiting for it to come in. This means I’m still using the laptop without the dual work monitors, which can be tricky when one is doing things where two screens are much easier.

I’ve managed to make it through the w3schools site and SoloLearn for Java. I’m still wading through the Pluralsight videos. I’m liking the Udemy class, but I’m having a bit of a challenge trying to find time in my (now) busy personal life to fit this in. I’m pondering letting some things go that really don’t apply anymore. I really want to be successful as a developer, and I’m not going to be able to do that if I have to deal with other things in my life that keep me from learning what I need to or from doing my coding practice. Unfortunately, people just see that I’m out of formal training now and that I should be available for anything.

I am, of course, ALWAYS available for knitting and crocheting!

Work Day 7: 100%, Baby!!!

I just got word today that the new laptop is DONE! They just have to make an appointment with me to deploy it. I know what you’re thinking…it’s a laptop. What is there to “deploy”? I think they have to put in my new docking station and whatnot. I don’t care…I don’t care if a ceremony involving Voodoo chants is involved—I’m getting RID of the old hunk of junk that sounds like a jumbo jet when it fires up.

I could be pushy and call, but while I’m waiting for them to call to deploy, I’m making sure stuff is backed up to my network drive. I’ve also been chugging away with Pluralsight and SoloLearn. I’ve been doing more reverse engineering on completed user stories and checking ones still in the backlog.

Of course, I’m somewhat nervous because you know what this means:

I’m going to have to start doing REAL work. 😱😅

Work Day 3: Waiting…

I looked up the status on my laptop through our tech site, and it’s apparently 17.62% complete. That’s a slight improvement over the 14.48% it was at yesterday.

More Pluralsight today. Fun times. The good news is that The Alum pointed me in the direction of Simon Allardice’s video “What is Programming?” We did view this one for our Code Academy pre-work, but she reminded me that there is a section on object-oriented programming. It did help me to better understand the quagmire that is Classes, Objects, etc. for Java. I peaked ahead on W3 Schools, and apparently there are also “packages” but I’m trying not to think about that right now…

I’ve also been looking at our enterprise GitHub to better understand the code. May we pause here to say that our application code is NOTHING like the tiny bit of code for the classroom assignments. By that, I mean if you decided to print out our GitHub, you’d probably take out the forest for an entire state, and that’s for ONE repository. There are several repos for our application. I couldn’t tell you how all this code interacts and relates to the site. In an effort to make some sense of it, I’ve been taking past user stories for our Agile team and trying to reverse engineer them, to see what was changed. The simplest one I’ve found so far was changed in two jobs—most changes involve at least four jobs. I think, once I get my laptop and can set up my environment, I’m going to need to have someone walk me through the code, to explain how it’s working.

From what I can figure out so far, the code appears to be aligned with the major sections of the application—natch. The repos appear to be aligned to the database groups/schemas. I’m familiar with those, as I’ve done lots of database-querying as a BA. What I may do next is to get out the data mapping documents to see if I can align the field names with the fields in the application.

Tomorrow is my big presentation. I’m going to be showing my mentor, The Alum, and my manager my final project from class. Needless to say, I’m going to need to bring in my own home computer…I suspect that running a client and server on my present work machine would be…less than successful…

Work Day 1: It’s a miracle…

…I remembered where I sit!

I need to rethink this blog post numbering system. Otherwise, we’re going to be up to Work Day #5,432…

My big return today from Code Academy to my department was sort of an anti-climax. I got there around 7:30 a.m. and hardly anyone was in yet. As several people were either working from home or off on PTO, not many more showed up. After three months in a classroom with 15 other people, it was entirely too quiet! Also, in my absence, the cubicle elves apparently decided to give us higher walls, so I couldn’t even tell at first if ANYONE was in the office.

The good news is that my laptop request is approved and will be built once the machine comes in. My mentor—and, in the interest of anonymity I’ll just call the Code Academy alum helping me with my setup as “the Alum”—recommended some documentation and Pluralsight Java tutorials until my new laptop arrives…I’m supplementing this with w3schools.com. Our instructor is going to set up training when we start meeting for our ongoing education, but that’s weeks from now. I want to get up and running as soon as possible with Java. I’m also going to have to learn Gosu.

I’m meeting with my mentor tomorrow to see if there’s ANYTHING I can with my current laptop—short of tossing it out the window.