One of the things that has been absolutely fantastic about the web is how much information we can publish and how much we can access it at any given time. I don’t know many who would disagree with that.
Even more so, for those who are interested in learning how to write software, there are various articles, podcasts, videos, tutorials, and so on all of which aim to teach a person the skills they need in order to actually get from not knowing how to write code, but knowing how to do so in a productive manner.
One of the downsides of this – and even more generally, open source – is that breeds this copy-and-paste mentality that completely undermines the very thing that it’s trying to teach: that is, how to write code.
Copy and Paste Programmers
I think that anyone who has been programming for an extended amount of time knows that writing code – or software development – is ultimately about problem-solving.
The tools, languages, platforms, and all of that jazz transcend what it is that’s being done in order to solve a problem that either has yet to be solved in an academic sense, or that aims to solve a problem for someone else.
Whatever the case may be, one of the problems that comes with such wide information is that people will use-and-abuse it. To be clear, this is not a call to shut down QA sites, stop tutorials, or stop bloggers who share that kind of information, but is is a critique of those who take advantage of the system in order to “better” themselves when, in reality, ultimately hurt themselves and give professional developers a bad reputation.
When a person opts to copy and paste the solution to a problem that another person has provided without actually taking time to understand the problem at hand, it disrespects the time and effort others have put into learned the given system’s API.
This is not to say that using libraries, third-party tools, or sharing code is bad. On the contrary, really. This is about those who would rather right-click-copy and right-click-paste into their IDE without actually understanding what’s going on with the code.
I think that most people who end up falling onto this slippery slope genuinely want to know how to write code, but it’s an intimidating thing to do, isn’t it? On top of that, it takes a long time to learn.
Regardless, when it comes to copy and pasting, you’re undermining your own ability to learn. Why not try to understand what the code is doing? Why not try to write it yourself? Study it, trace it, try to understand it, and – at the very least – ask a question as to how it works the way that it does.
Otherwise, you’re undermining your own ability to learn and to learn the very things that you might otherwise be able to turn into a profession.
3. Problem Solving
It’s already been said that so much of programming – or development – is really about problem solving, but if you’re in the habit of copy and pasting other people’s code into some type of workable solution for another person, you’re not problem solving.
You’re stitching together someone else’s solution and passing it off as your own.
Why do that? With things are the way they are right now, you have the resources and the ability to learn how to do this. Yes, it takes time, and yes it can be challenging, and yes it’s likely a never ending journey (ask anyone who’s a programmer right now), but the the thing is that you eventually find yourself at a place where you’re able to understand a problem and provide a solution.
Copy and pasting cannot do that.
Not About the Sites
I place no fault or blame on sites and services like this. After all, I’m all for educating other people in whatever way they learn best, and if we’re able to educate one another is proper ways to go about writing code or building software, then why not?
For whatever it’s worth, I love the plethora of sites and services that we have right now. I know it helps thousand and thousands of people educate themselves.
Instead, the people who spend more time browsing QA sites, tutorial sites, and open source repositories for the sake of trying to piecemeal a product of your own together without really understanding what it is that you’re doing hurts you, but also damages your credibility, and prevents you from being the type of programmer that you actually want to do.y