This article originally featured in the May 2020 issue of Connect.
コンピューター言語 (konpyu-ta gengo Computer Languages)
by Jay C.
Working in ソフト (sofuto, software) in Japan
I know English, a bit of Japanese, as well as Ruby, C, C+++, HTML, CSS, and JavaScript. For those who don’t know, most of those are computer languages. They’re how a programmer can make a website, program, or application. A computer only understands binary: a language of 0 and 1. In order to communicate with the computer, a programmer has to use languages that can be translated into binary for the computer to use. Programming languages are a middle ground of the way that humans think and the way that computers process information.
Let’s look at the letter A. Laptop and phones can’t actually understand A. To a computer, A is 01000001. That’s binary code for the number 65, which has been assigned to display A on computer screens.
It’s possible to type out that binary code, but it’s definitely not easy for humans to use. So it makes much more sense to use a computer language, like HTML, which the processor can translate into binary for the computer to use.
A lot of people do this type of work at a desk. I work from my bed.
My day starts when I wake up at 9:15a.m. I do my morning routine. I check my messages, emails, and Reddit for either something funny or something newsy. After my eyes have had time to wake up, I’m up. I brush my teeth, do my hair, and get back in bed. It’s time to start work.
I 起動 (kidou, start up) my laptop and prep for my daily check-in. My co-workers will ask me what I’m working on, how my progress is going, and we’ll talk about deadlines and problems and pass the time for 30 to 45 minutes. I 作成 (sakuse, write up) a quick outline of the work I did yesterday to prepare. Now it’s 10:13a.m.. I put on a shirt, take a seat, and pop open Zoom. After a minute, I see the familiar faces of two of my co-workers.
“Hey, guys. Good evening!” I say with a smile.
“And good morning to you!” they reply.
It’s 6:45p.m. in LA, and they are wrapping up their day. If there’s a problem they are stuck on, they’ll have added it to the bug tracker. We’ll talk about what I’ll focus on while they’re sleeping. If the code-gods have been kind, when they wake up those issues will be marked as solved and they’ll see updated code pushes to the various Git branches that I’ve worked on. Everything’s up on the password-protected staging server that we all have access to. Once my code is reviewed and approved, they’ll push it live.
During the day I’m free to choose when and where I work. I’ve just moved to a new city, so I’ll explore cafes and co-working spaces until I find a few that I fancy. Of course with Covid-19, many places are closed. And it’s raining today anyway, so I’ll just stay inside. The living room is warm and dry.
Some might think it takes a lot of self-discipline to work from home. There are no shortages of distractions if that’s what you desire.
But really, I just love to code. The problems are my distractions.
Everything is a puzzle. Big problems are a series of smaller problems. The work is just like an addictive phone game: I keep playing to chase my dopamine hits.
My background is as a contractor, so I’m used to working alone. I work from home, but that doesn’t appeal to everyone. Of course, you could also work in a Japanese company, but that comes with some challenges. If your Japanese skills aren’t high, it would be really difficult to collaborate with coworkers. And, of course, there’s a significant pay difference between American and Japanese companies. You’ll make a lot less money if you work in a Japanese company.
There are other ways to work in Computer Sciences in Japan, however. For six hours on Saturdays, I go to a science-focused school that conducts classes in English, and I teach a small group of Japanese students an advanced programming (プログラミング, puroguramingu) class.There are beginner classes during the week, but I’m not available to teach that because I need to be able to do any last-minute work for my job in LA.
According to my boss, Japanese schools will be required to offer programming classes in the coming years. She sees this as an opportunity to expand her business. But it’s also an opportunity for people living here, who might want to transition to teaching computer science in Japanese schools. Given the current situation, it’s a natural time for people to increase their technology skillset. If that sounds interesting to you, the first things you should look at are the three fundamental languages that everything on a computer is made with: HTML, CSS, and Javascript.
The Basics
A typical web application is broken up into front-end and back-end. The front-end is what you, the 利用 (ryousha, user), see.
If you’re looking at Instagram from the web browser on your computer, what you’re seeing is the result of many lines of code written in HTML, CSS, and Javascript. HTML is where the content is, like words and pictures. CSS places and formats that context with color and other visual design elements. Javascript enables the web page to execute actions, like clicking a button.
Each of those languages has thousands of libraries and tools built on top of and around them. Some come and go like a quick fad (remember JNCO jeans?), and some stick around . . . but at the core of all are those languages. But if you’re looking at Instagram on your phone, a different set of technologies are used. Android and iOS use different languages, and rarely will you find a 開発者 (kaihatsusha developer) specializing in both sets.
The Tools
No matter what front-end you’re looking at, they’re all communicating with the same back-end. The “business logic”, as they say, is responsible for the stuff you don’t see. The building, shifting, combining, searching, and storing of the raw data. There are many many many options for the tech that you can use to build your back-end with. The big languages are PHP, Ruby, Python, Java, and C#. On top of that, you’ll have thousands of techs and tools for each.
There are enough flavors to make Baskin Robins blush. The particular front-end and back-end technologies chosen for a project is called the “tech stack.” If you’re a new startup, you’ll need to find Full-Stack Developers, who are familiar with both the front-end and back-end of your tech stack.
Now Make It Social
Maybe it’s natural that the most popular jobs worked over the internet are the same jobs that helped to create it. Especially in its infancy, the typical software developer role was held mostly by introverted, shy people who loved to nerd out. But they also loved to share their work, and craved to tinker with and build upon others’. And so, they built a suite of tools to accomplish this socially-entangled-yet-distant work in the comfort of their own home. SVN evolved into Git, which is used to collaboratively 修正 (shuusei, edit) shared codebases. Unit-tests act as gatekeepers. Each new code commit is rigorously tested. If there is a single failure, then the code is rejected. After being approved, the code just needs a standardizing polish. Just like the unique tilt in your handwriting and the way you write your “y,” each programmer has a slightly different writing style for their code. So a syntax program re-formats it for consistency.
You can’t remove the human element from this. Throughout the process, trackers provide the entire team direction—a shared to-do list of features and bugs. When everyone has agreed on a stopping point, a stamp is placed and it’s packaged up. Version 1.0, tagged. These are the Continuous-Integration tools that make up the framework of our collaborative, remote software teams. They scale from tiny three-member teams like me and my friends in LA, all the way up to the thousands that work at Google, Facebook, Apple, and Netflix.
I’ve heard a lot of chatter during these quarantine times.
Many people are realizing that working from home is not only possible, but preferable to a daily commute. It’s better for the environment, and in many cases for our mental and physical health.
For most people, there’s a good middle-ground to be found between the two. Collaborative tools are the key to making it all work. The person who knows your role best is you. Think about what these tools would look like, and if you’re feeling an entrepreneurial itch, hire a graphic designer to draw up a UI for it. Pitch it to some venture capitalists, and then hire me to build it for you. 🙂
Jay C. is a guy who spends way too much time on his computer, but also loves it. He remembers his dad’s good advice: “One of the hardest things you’ll need to find in life is balance.” and “The biggest hurdle you’ll ever have to jump is from ear to ear.” Still working on both . . .