This post was written by intern Olivia Shi. Also check out her thoughts on her first experience with professional software development.
When teachers said to me that I would be coding in different languages as a software engineer to make the computer execute the tasks I wanted, I never fully understood what they meant. At the time, as someone who was bordering on becoming trilingual, I knew what it meant to learn a new language. To me, it meant sitting in the classroom with books filled with Chinese vocabulary and short stories, lacing together different characters that would form a sound my 同学们 (classmates) could understand. It meant listening to my учитель (teacher) spew instructions at us and hoping to catch a few key words that I recognized.
Coding was completely different! I never had to learn new characters or symbols to string together into a sentence and I never had to panic when I wanted to ask to use the restroom but I didn’t know how! (It’s “я могу пойти в ванную?” or “我可以去厕所吗?” if you’re curious) Of course I could understand the difference between coding languages in terms of syntax and declaring variables, but in the end, all I had to do was use English and math to tell the computer what to do. If x is less than y, do this; else, do this. It made sense to both me and the computer, what else was there to be said?
In the first project I completed, I was introduced to this idea of a flow of communication between languages. I was given a table and at the tops of the columns that contained numbers, I was to display a sum. In the Python file, I parsed through each row of each column to add each value in order to calculate the sum. It was exactly like doing the math in my head except in this case, my head was the computer. Great, I did the math but no one knows that until I say something out loud. This is where the front end code comes into play. Using HTML and Jinja, I am able to take this mental math and put it out into the world. The HTML file is my mouth and at the tops of every column that has a number, it announces the sum in the way that I want it to.
Seeing the relationship between front and back end coding made me realize and appreciate the similarities and differences. Thinking of the two as completely different processes eliminates the idea of a partnership and the importance of understanding both components to create something valuable. Sure you can have the greatest thoughts but without a voice or action, no one knows about the next best invention you’ve come up with. It works the other way too where you could constantly be talking or doing things but without meaningful thought behind each sentence or action, they start to jumble into fluff. In both cases, nothing progresses and you’re left with two separate cases of inefficiency.
Working on these small projects with 4Degrees has brought a new perspective of software engineering to me. This field is filled with people skilled in different languages whether it be C++, Java, Ruby, and so on, but these can all be learned and mastered in their own way, whether it be classes, bootcamps, or even Google searching. What is more important is the hidden language between gaining information and communicating it, which can only be done through understanding the flow between both. As the cliches like to put it: Teamwork 使梦想 работу! (Teamwork makes the dream work!)