Orientation and First Weeks
My first few weeks were spent on mostly bug fixing, something not displaying properly on the website, or a line of writing that needed to be changed. That introduced me to my biggest challenge in the beginning, finding anything. You've got a massive nest of files in VSCode all with descriptive names sure, but it's hard to know exactly where a single line of text appears amidst the ten levels of nested React components that make the website. Not to mention the arcane programs and console commands I'd been dictated to get the whole thing running.
That's not to say it was a bad experience, everyone on the team was super helpful and kind towards my infinite questions which also helped me to get to know everybody and there was an understanding that I was learning that helped to take the pressure off. It felt very grounded. While I had this vast sea of skills to pick up starting from the very basics, it was expected that I might take a few hours to find the one line of code I had to change and then change it. In the future I could remember how I found it, and find it faster.
Learning and Adaptation
Starting out, and continuing throughout my experience I received tons of feedback. I would post my code up for review and sometimes have to go through over twenty edits before it finally got approved. Sometimes it would be small things that I could immediately understand as errors, but equally often it was something to do with readability or "best practice". I think it was important for my skill development to ask about the underlying thinking behind these sorts of edits, and I would often ask my colleagues something like "How would I tell if I needed to make this kind of edit in the future?" or "What is your thought process for wanting it done this way?". I learned lots from these kinds of questions.
A large percentage of my time at this job has gone towards understanding the structure of a large code base, compared to the time spent on the more problem solving aspect of coding. An important skill that is difficult to learn in class, but impossible to avoid at a job is how to read what someone else's code is doing. Developing this skill has been my primary method of improvement over this semester as once a problem is isolated and well understood, most of web development boils down to putting things in the right place. I haven't used a single loop my entire time here.
Accomplishments and Challenges
The biggest challenge of my co-op experience this semester has been understanding how different systems connect to each other. It's usually easy if you are fully embedded in one area, React for example, a JS web development framework, everything fits together in a mostly intuitive way. But once I started having to connect disparate areas of code, for example a webpage built with React which triggers a call to an in-house API which ferries the request to an external companies API it became more difficult. I think this is because it required a shallow understanding of a douzen small interlocking parts, instead of deep knowledge in one narrow area. I constantly found myself at the bottom of a steep learning curve.
The challenge of course is what makes it so exciting when beyond all reason and after much pain, everything starts to work exactly how you wanted it to. This was the case for my largest ongoing project in formatting and building out a webpage 80% on my own. This required front end work to align all the visual elements, have them play nicely with each other and fit on the screen where they were supposed to be. It required wiring up all the buttons and functions to link where they were supposed to go, or do what they were supposed to do. And it required all these elements to work seamlessly as it was intended to eventually be shipped out as a professional website.
There was a lot to figure out and fine tune, small errors that I might have overlooked for a personal project would make the page appear unprofessional and needed to be ironed out. I am proud of the work I did on that page. Working at this company has really given me a respect for webpages I did not have before.