Coding used to feel distant to me—something technical that only computer science people could learn. I tried free CodeCamp for a while, learned some HTML and CSS, but couldn't apply it to anything practical. The exercises were simple, but looking at real website code (you know, when you right-click and select "inspect") was overwhelming.
Yet in just 7 months from May 2024 until now, Tea developed over 50 code files of various types—from Windows batch scripts and AppScript to Python using Selenium, CSV, Pandas—to solve real-world problems and automate repetitive tasks. Calculating roughly, the workload these scripts handle equals about 2.5 full-time people, or nearly 100 hours per week.
Sounds fancy and impressive, but it's not that complicated. Let me explain.
In the past, to write software, a coder needed to know hundreds or thousands of commands, each with a different function. To execute complex programs, coders had to know as many commands as possible in case they'd need them someday. In other words, you had to know a LOT and hope that when facing real problems, you'd know which command to use for maximum efficiency.
There was a time I dreamed of developing software. I looked online to see how long it would take to code a complete program. Disappointment flooded in when I learned it takes 2-3 years just to learn one programming language—and that's still not enough to build a complete software product. You'd only handle one part of software development and still depend on others for front-end, back-end, etc. So discouraging!
When ChatGPT emerged in 2021, it was truly a turning point.
Now people don't need to memorize all programming languages anymore. You just describe your idea to ChatGPT, and it can develop your program in any programming language.
Start with a specific problem: Usually, programming courses teach very foundational, basic knowledge. This knowledge is important, but meaningless if it's not relevant. It's like: "What you're saying is great, but how does it relate to me?" That's why when I took courses from the beginning, I'd give up after lessons 1 and 2 (probably due to my impatient, easily-bored nature). So if I could do it over, Tea would start with a specific problem, like:
- Create a series of Google Drive folders based on a list in an Excel file, then send links to these folders to corresponding email addresses in that file.
- Rename all files in each subfolder, adding the folder name as a prefix for easy identification when sharing files.
- Automatically count words written daily/weekly/monthly and send automated email reminders to meet writing goals.
Before ChatGPT, if you asked a programmer friend, they might respond: "You'll need to learn JavaScript, then develop AppScript, then how to use/connect Google's API to your code..." You couldn't just ask them to code it for you as a demo to learn from. Anyone willing to teach like that would charge serious money—both for writing custom code to your requirements AND for teaching you how to make similar programs.
Now it's completely free. Just throw the above tasks into ChatGPT, and it answers thoroughly, writes the code, provides examples, and if you don't understand a line, explains that specific line.
There will be times you'll encounter foundational knowledge or basic concepts that require dedicated study time to understand. But it's not too late to learn then, right? Plus, you'll have more motivation to learn because understanding it sooner means solving problems sooner and faster.
A concrete example: At one point, Tea was developing multiple code pieces simultaneously. Tracking changes without proper version control meant copy-pasting into computer notes, labeling as version 1, version 2, keeping whatever worked to return to that version later. Then I asked online forums and ChatGPT and learned that professionals don't do it that way—they use Git, storing different versions on GitHub. Progress is updated and backed up using commands, making it quick and clean without messy copy-pasting. So I spent a whole day learning how to use Git and upload to GitHub. It took considerable time but I always had motivation to understand quickly so I could return to continue developing my project.
Maybe because I love languages, Tea likes to think of programming languages as... languages. They have grammar and vocabulary just like regular languages. Vocabulary includes different commands—for example, in AppScript there are commands to open files, close files, copy data, paste data, rename files, create folders, delete files... or in Selenium there are commands to open new tabs, close tabs, click, scroll up, scroll down, fill in blank fields... Grammar is the syntax to link those commands together—like doing what first, what second, doing A for how many times before meeting condition X, then executing B to close the code.
To master this language, you need to know enough vocabulary and enough grammar to link that vocabulary together.
That's why applying language learning methods like English to learning programming and software design works really well! For example, no matter how much vocabulary and grammar you learn, if you don't use it, you'll forget. But if you only know a few things but use them constantly, use them repeatedly until you encounter situations where they're not enough, then go online and learn a bit more to cover what you need—that's when you remember forever, remember clearly. When you hear or read those "words," you immediately know what people are talking about.
To speak English or any language well, first you need to be able to speak, right? So to program truly amazing software, first you need to understand the language, but understand it at a usable level, not just know it superficially then forget.
A basic programming team, as Tea understands, usually has a leader and a team of coders. The leader typically won't sit and write, typing each line of code directly. Mostly they'll develop concepts, direct and guide team coders with each person writing different code sections. Then the leader reviews for errors, checks if things can be optimized further, and either the leader or a team member compiles the code, combining different parts together.
Just like in a factory—to make a table, one person makes the table legs, another makes the tabletop, someone screws them together... while the master craftsman might only handle critical steps or just observe and guide.
AI tools nowadays can, to a relative degree, replace the work of coders sitting and typing each line of code to develop parts. We don't need people who know thousands of lines of code in dozens of programming languages to write those component codes anymore. So coding teams now have two development directions:
- The leader sees ChatGPT can write component code, cuts staff, sits alone and instead of emailing employees, types prompts for ChatGPT to write, then compiles the code themselves or keeps one member to compile the code. Done. A team of 8 people before now becomes just 2.
- Each coder now holds the development capacity of an entire coding team from before, so this team is more effective and productive than ever. One team alone brings revenue equal to an entire company before, and company revenue increases tenfold. However, this requires coders to develop thinking and other skills beyond coding, like listening to customers, understanding needs, discovering problems, designing solutions... Anyone who only knows code and knows it really well is... a bit problematic.
Of course this is just an over-simplified perspective—simplified so that I and others not working in tech can understand. This issue has many more angles to analyze; in reality it's not as simple as this.
Tea believes that in a few years from now, most people will know how to develop software, because everyone has an excellent, amazing teacher—ChatGPT—right beside them providing detailed guidance, hand-holding instruction, even playing the role of a "coder" in your "one-person team," while you yourself are a leader describing problems, supervising and adjusting to fit actual needs.
Anyone can learn to create code snippets to serve personal work needs. For example, accountants can make code to automatically aggregate accounting data, export financial reports, automatically send emails to clients as desired. Singers can make programs to manage shows, book schedules, invoice clients... and especially teachers like Tea can automate grading, sending assignments, thereby having more time to focus on learning cooler things to teach students.
Of course, the above tasks already have ready-made software solutions (called SaaS) like Calendly (scheduling), MISA (accounting), eInvoice (invoicing), but there are still small daily tasks that consume lots of time while they could be automated by simple code snippets. Knowing how to code isn't about replacing those solutions, but supplementing where they're lacking.
It's not too late to start learning, everyone!!