The workshop is a tiny twenty-by-fifteen foot space. Dark wooden tables make a U-shape along one side of the room, and drawers line the opposite wall. Empty fruit drink bottles are stacked on the floor beside the bookcases, forming a pyramid that stretches up to the ceiling. Here, the bottles anxiously await the moment when an unsuspecting victim waves their hand a little too vigorously, springing the trap they have set up.
A single window looks out upon a busy street, revealing a smoked meat vendor. All other windows covered with blinds, keeping the harsh sunlight out of the eyes of those gathered in the space. They sit in close quarters. One wrong motion of a stool, and someone’s foot is trod upon. The imperator sits in the back. His throne is filled with plush fabrics, and he is surrounded by three magic mirrors. His right-hand-man sits by the door, strong and determined. The apprentices sit in the center, a small construct their only weapon. For two months, they must work hard to survive in this dangerous world, living by their triumphs - and dying by their mistakes.
I jest, of course.
My summer at Lingco Language Labs has been by no means a cake-walk, but neither have I been facing down tyrannical bosses or pretentious coworkers. It has been an experience unlike any other I have had before, and one I am unlikely to have again.
Oh boy, was I in for a treat
I was excited to begin working at Lingco. This was to be my first “real” programming experience. I have worked on projects for school, but never on anything of this scope. By that, I mean a fully-realized web application to improve language education in classrooms at all levels. Having found success at Michigan State University, Lingco brought on three interns from the Hacker Fellows program to help bolster the application software and implement new features for the fall. I was ready to learn a lot and contribute to a project actively enjoyed by a large community. Most importantly, I was ready to become a more experienced programmer.
Outfitted with a laptop, I worked through a few tutorials to learn about the more common web application technologies - mainly HTML, CSS, and React. Each presented their own unique difficulties. HTML and CSS were not difficult to pick up. What I found difficult was how the different elements interacted with one another and why
With practice and plenty of online resources, I began to understand more about the logistics of programming the user-interface, and found it to be enjoyable. When I was assigned to update the marketing website, I was excited to put my new-found knowledge to the test. I worked alongside the COO to develop a plan. This detailed what we and some third parties thought needed to be changed in order to best market Lingco. Preliminary ideas were drafted, and I got to work.
That is when the hammer came down. No design changes. Only edit the text. I understood the reasoning, and knew that I had jumped the gun, but it was still difficult to not feel like I had failed in some way. I set to my task, thinking about that lost opportunity to improve not just the company’s image, but also myself.
Turning Rough into Rewarding
Learning React was difficult. Even after walking through tutorials, the scope of the project was so immense that I felt lost before even starting a task. I attempted a few problems, and was lucky enough to have the assistance of the other interns to help me make more sense of the information. Yet I continued to struggle completing assignments on my own. My manager was incredibly understanding. When I told him that things were “rough,” he reassured me that my low completion rate was nothing to be ashamed of, and that we would work towards turning rough into rewarding. However, despite trying to implement a work plan, my pace was still too slow for what the company needed at that moment.
As my coworkers began to tackle longer and more difficult assignments together, I thought about all the things I could not do. Those bits of magic they did with a practiced ease, I watched fizzle away and die, despite consulting the Tome of Google and Scroll of Stack Overflow. The feeling of failure grew stronger. What had started as a torrent of possibilities quickly became a mud pit, and I wanted to keep my head down until July 27th rolled around.
I do not know what sparked a change in my thinking. Maybe it was my desire to learn more about web design. Perhaps it was forcing myself to do a half hour of programming every night. Or maybe it was as simple as realizing that I was close to the end of this experience. With only a week to go in my internship, I did not want the summer to have been overshadowed by being focused on my shortcomings.
I kept punishing myself with thoughts of “You will never be able to do what they can,” when instead I should have been telling myself “I may not understand how this functions right now, but with time I will come to figure it out.” That’s how I came to learn about HTML and CSS with time. They are not the most prestigious of languages, but before coming to Lingco, I knew next to nothing about them. I was barely aware of version control or how to use the command line. I never questioned how animations functioned on a website; now I do it all the time! Even though these are small improvements, they are still impactful improvements.
I learned at my summer at Lingco Language Labs. I learned a lot - and not just about programming. To all the people I have worked, thank you. I have a long road ahead of me, but I am going to work harder to become a better programmer. And one day, I will - just maybe - figure out React.
Now, about disabling that fruit juice trap...