"你能学到的最灾难性的事情就是你的第一门编程语言"
Quote meaning
Learning your first programming language can be a bit of a double-edged sword. On one hand, it opens up a whole new world of possibilities. On the other, it can set you up for some pretty disastrous habits.
Let’s break it down. When you first dive into coding, everything is new. You’re like a kid in a candy store, but you’ve no idea what’s good or bad for you. You pick up habits, sometimes without realizing it. If your first language is something like Python, which is pretty forgiving, you might think that’s how all languages work. But then you jump to something stricter, like C++, and suddenly you’re in shock. The leniency you enjoyed in Python isn’t there anymore, and you're now dealing with errors and issues you never anticipated.
Historically, this idea is relevant because programming languages have evolved massively. Back in the day, people started with languages like BASIC or Fortran, which were quite low-level compared to today’s standards. They had to manage memory manually and write code that was very close to how computers actually process instructions. Nowadays, many start with high-level languages that do a lot of the heavy lifting, which can create a gap in understanding when moving to more complex or lower-level programming.
To illustrate this with a real-life example, let’s look at a software engineer named Alice. She started with JavaScript, which is forgiving and very flexible. She got used to its loosely-typed nature and dynamic features. Alice then decided to try her hand at C#. She was faced with a statically-typed language with strict syntax rules. Her code, which worked flawlessly in JavaScript, was riddled with errors in C#. It was a rough transition. She had to unlearn many habits and rewire her brain to think in terms of types and rigorous structure.
So, how do you apply this wisdom? Think about approaching your first language with the awareness that it’s just the beginning. Don’t get too attached to its quirks. Try to learn concepts that are universal to programming – like logic, control structures, and data manipulation – rather than language-specific shortcuts. Be prepared to adapt and re-learn as you go.
Imagine you’re learning to play the guitar. If the first guitar you pick up is a super expensive, custom-tuned one, you might get used to its perfect sound and ease of play. But if you then switch to a more standard guitar, you might struggle because you never learned the basics properly. Similarly, in programming, starting with a language that does too much for you can lead to a steep learning curve later on.
A relatable scenario might be trying to learn to drive. If you start with an automatic car, you might find it smooth and convenient. But say you have to switch to a manual car someday. You’d have to deal with the clutch, gear shifts, and a whole new set of challenges. It’s not impossible, but it requires adapting and learning from scratch.
So, when you’re learning your first programming language, keep in mind that it’s just the start of a journey. Be open to new languages and paradigms. Each one you learn will make you a stronger, more versatile programmer. And remember, every expert was once a beginner, navigating these same challenges. Happy coding!
Let’s break it down. When you first dive into coding, everything is new. You’re like a kid in a candy store, but you’ve no idea what’s good or bad for you. You pick up habits, sometimes without realizing it. If your first language is something like Python, which is pretty forgiving, you might think that’s how all languages work. But then you jump to something stricter, like C++, and suddenly you’re in shock. The leniency you enjoyed in Python isn’t there anymore, and you're now dealing with errors and issues you never anticipated.
Historically, this idea is relevant because programming languages have evolved massively. Back in the day, people started with languages like BASIC or Fortran, which were quite low-level compared to today’s standards. They had to manage memory manually and write code that was very close to how computers actually process instructions. Nowadays, many start with high-level languages that do a lot of the heavy lifting, which can create a gap in understanding when moving to more complex or lower-level programming.
To illustrate this with a real-life example, let’s look at a software engineer named Alice. She started with JavaScript, which is forgiving and very flexible. She got used to its loosely-typed nature and dynamic features. Alice then decided to try her hand at C#. She was faced with a statically-typed language with strict syntax rules. Her code, which worked flawlessly in JavaScript, was riddled with errors in C#. It was a rough transition. She had to unlearn many habits and rewire her brain to think in terms of types and rigorous structure.
So, how do you apply this wisdom? Think about approaching your first language with the awareness that it’s just the beginning. Don’t get too attached to its quirks. Try to learn concepts that are universal to programming – like logic, control structures, and data manipulation – rather than language-specific shortcuts. Be prepared to adapt and re-learn as you go.
Imagine you’re learning to play the guitar. If the first guitar you pick up is a super expensive, custom-tuned one, you might get used to its perfect sound and ease of play. But if you then switch to a more standard guitar, you might struggle because you never learned the basics properly. Similarly, in programming, starting with a language that does too much for you can lead to a steep learning curve later on.
A relatable scenario might be trying to learn to drive. If you start with an automatic car, you might find it smooth and convenient. But say you have to switch to a manual car someday. You’d have to deal with the clutch, gear shifts, and a whole new set of challenges. It’s not impossible, but it requires adapting and learning from scratch.
So, when you’re learning your first programming language, keep in mind that it’s just the start of a journey. Be open to new languages and paradigms. Each one you learn will make you a stronger, more versatile programmer. And remember, every expert was once a beginner, navigating these same challenges. Happy coding!
Related tags
Beginner Coding Computer science Education Learning Programming Software development Technology
MORE QUOTES BY Alan Kay