Copy-Paste Coding Culture
-
I have to admit that I'm guilty of this... I need to solve a problem, so I Google, find a working solution and paste it into my code. It works, but you don't necessarily understand the solution. On the one hand having answers so easily available speeds up development, but on the other it makes for developers that don't really understand what they are doing?
Me copy and paste code? I'm so hardcore I disable Intellisense.
-
I have to admit that I'm guilty of this... I need to solve a problem, so I Google, find a working solution and paste it into my code. It works, but you don't necessarily understand the solution. On the one hand having answers so easily available speeds up development, but on the other it makes for developers that don't really understand what they are doing?
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt
-
I have to admit that I'm guilty of this... I need to solve a problem, so I Google, find a working solution and paste it into my code. It works, but you don't necessarily understand the solution. On the one hand having answers so easily available speeds up development, but on the other it makes for developers that don't really understand what they are doing?
The problem is not to Copy-Paste or not (I do it too)... The problem is accepting code into your application, you do not understand fully... To look up a solution to a new problem is probably the best way to learn, but to not research it to the very end is a crime!
Skipper: We'll fix it. Alex: Fix it? How you gonna fix this? Skipper: Grit, spit and a whole lotta duct tape.
-
I have to admit that I'm guilty of this... I need to solve a problem, so I Google, find a working solution and paste it into my code. It works, but you don't necessarily understand the solution. On the one hand having answers so easily available speeds up development, but on the other it makes for developers that don't really understand what they are doing?
I will use a "developed control" without looking too hard (or even at all :-O ) at the source code, provided it's from a source that I trust. But I won't copy'n'paste code - even small snippets - without understanding how it does what it does. If I don't, then I'm in the position of "then a miracle occurs" and I can't fix it in response to changes, or do it again next time something similar occurs. I do not understand the "grab random code from the internet and hope it works" mentality - it just seems counterproductive in the long term to me. I don't think it does "speed up development" - it gets you out of a hole right now, but drops you in a bigger one later on!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
-
I have to admit that I'm guilty of this... I need to solve a problem, so I Google, find a working solution and paste it into my code. It works, but you don't necessarily understand the solution. On the one hand having answers so easily available speeds up development, but on the other it makes for developers that don't really understand what they are doing?
As others say I'll also copy/paste code, clean it up, but I always take the time to properly understand [and improve to better fit the situation]. I'll never accept black boxes inside my source. If it's a somewhat significant "borrow" I'll leave a comment/partial url in my source referring back to where I found it and the authors name - even if I subsequently / substantially rewrite it. Why? starting from real/complete and working example: can try it, test it, and see what breaks it. once it's initially working then I'll refer to the dry msdn docs to fully understand the methods / return values / got-yas etc. After that very often I'll do a rewrite (and re-test) now that I have the "inner-mechanicals" in my head - to ensure I really do understand what's happening (and just in case it later breaks).
Installing Signature... Do not switch off your computer.
-
Me copy and paste code? I'm so hardcore I disable Intellisense.
You use an IDE? Shit, I used to write code in EDLIN. :)
System.ItDidntWorkException: Something didn't work as expected. A guide to posting questions on CodeProject
Click this: Asking questions is a skill. Seriously, do it.
Dave Kreskowiak -
I will use a "developed control" without looking too hard (or even at all :-O ) at the source code, provided it's from a source that I trust. But I won't copy'n'paste code - even small snippets - without understanding how it does what it does. If I don't, then I'm in the position of "then a miracle occurs" and I can't fix it in response to changes, or do it again next time something similar occurs. I do not understand the "grab random code from the internet and hope it works" mentality - it just seems counterproductive in the long term to me. I don't think it does "speed up development" - it gets you out of a hole right now, but drops you in a bigger one later on!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
OriginalGriff wrote:
I do not understand the "grab random code from the internet and hope it works" mentality - it just seems counterproductive in the long term to me.
I think that may stem from the mistaken belief that there is only ever one way to do something. A sure sign of someone who doesn't have much, if any, experience understanding algorithms and/or writing code.
System.ItDidntWorkException: Something didn't work as expected. A guide to posting questions on CodeProject
Click this: Asking questions is a skill. Seriously, do it.
Dave Kreskowiak -
OriginalGriff wrote:
I do not understand the "grab random code from the internet and hope it works" mentality - it just seems counterproductive in the long term to me.
I think that may stem from the mistaken belief that there is only ever one way to do something. A sure sign of someone who doesn't have much, if any, experience understanding algorithms and/or writing code.
System.ItDidntWorkException: Something didn't work as expected. A guide to posting questions on CodeProject
Click this: Asking questions is a skill. Seriously, do it.
Dave KreskowiakI know what you mean, and that just makes it even weirder - since it seems to be a "yoof thing" and they grew up in a much more "no-wrong answers" education system than we did. Or at least I did - there was one right answer and you were supposed to know it rather than work it out for yourself in pretty much all subjects.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
-
You use an IDE? Shit, I used to write code in EDLIN. :)
System.ItDidntWorkException: Something didn't work as expected. A guide to posting questions on CodeProject
Click this: Asking questions is a skill. Seriously, do it.
Dave KreskowiakEDLIN? Back in the day they only used zeroes, ones were too expensive.
-
I have to admit that I'm guilty of this... I need to solve a problem, so I Google, find a working solution and paste it into my code. It works, but you don't necessarily understand the solution. On the one hand having answers so easily available speeds up development, but on the other it makes for developers that don't really understand what they are doing?
It is not entirely the fault of the coders... I remember being able to find manuals accurately documenting APIs and giving examples of how to use them. Now, if I can even find the necessary documentation for something, it is just as likely to be incomplete as inaccurate. I have to rely on web searches to find code snippets where documentation does not exist.
-
I have to admit that I'm guilty of this... I need to solve a problem, so I Google, find a working solution and paste it into my code. It works, but you don't necessarily understand the solution. On the one hand having answers so easily available speeds up development, but on the other it makes for developers that don't really understand what they are doing?
I'm guilty of the opposite - if I don't understand a "borrowed" solution, I'll pretty much take it apart and rebuild it until I do, so in the end, even though I have a solution that I finally understand, I often feel that I really, really, should've "just moved on" and saved myself a lot of time.
-
I have to admit that I'm guilty of this... I need to solve a problem, so I Google, find a working solution and paste it into my code. It works, but you don't necessarily understand the solution. On the one hand having answers so easily available speeds up development, but on the other it makes for developers that don't really understand what they are doing?
WTF!!!!??? Do you? Jesus Christ, that sucks. You useless lazy F*&^$*%*r
-
It is not entirely the fault of the coders... I remember being able to find manuals accurately documenting APIs and giving examples of how to use them. Now, if I can even find the necessary documentation for something, it is just as likely to be incomplete as inaccurate. I have to rely on web searches to find code snippets where documentation does not exist.
I completely agree with this. I really, really miss having authoritative documentation - i.e. complete and accurate.
-
I have to admit that I'm guilty of this... I need to solve a problem, so I Google, find a working solution and paste it into my code. It works, but you don't necessarily understand the solution. On the one hand having answers so easily available speeds up development, but on the other it makes for developers that don't really understand what they are doing?
Yes, mankind hasn't developed because everybody invented their own version of the wheel. We have developed because we are capable of putting things together to create new things. I copy and get inspiration from other code a lot, otherwise I wouldn't be able to keep my deadlines. I do review and try to understand the code that I copy. Sometimes I need to alter it for my specific purposes but it already saves me a ton of time not having to read all the documentation. On the other hand I'm also putting my solutions out there for others to use.
-
I have to admit that I'm guilty of this... I need to solve a problem, so I Google, find a working solution and paste it into my code. It works, but you don't necessarily understand the solution. On the one hand having answers so easily available speeds up development, but on the other it makes for developers that don't really understand what they are doing?
-
I know what you mean, and that just makes it even weirder - since it seems to be a "yoof thing" and they grew up in a much more "no-wrong answers" education system than we did. Or at least I did - there was one right answer and you were supposed to know it rather than work it out for yourself in pretty much all subjects.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
The absolute plethora of "What is the exact/right way to do this thing" questions on here, or everywhere else for that matter is perfect evidence of this. I call it the "One Solution to Rule them All" approach, most others call it only knowing how to use a hammer. Even more so, I laugh at the abundance of "Exam Cheat Sheets" you can easily find online now too, just go download one, memorize the thing, then pass with flying colors the next day, none of this "OH SHIT My final exam is due tomorrow, last minute studying and panic anymore :-)", I passed my UNI course back in the day... just. or so I'm told. :-)
STILL CRAZY - The BEST and only way to be!
-
I completely agree with this. I really, really miss having authoritative documentation - i.e. complete and accurate.
-
I have to admit that I'm guilty of this... I need to solve a problem, so I Google, find a working solution and paste it into my code. It works, but you don't necessarily understand the solution. On the one hand having answers so easily available speeds up development, but on the other it makes for developers that don't really understand what they are doing?
It is one thing to copy and drop code into our apps without regard to the entire scope of it's functionality. Quite another to take another's demonstration of how to do something in code and learn from it to develop your own rendition of the process and thereby considering the full ramifications of what your needing to do, verses what the reference source does. One is simply shortcutting yourself, the other is enhancing the scope of your abilities.
-
I will use a "developed control" without looking too hard (or even at all :-O ) at the source code, provided it's from a source that I trust. But I won't copy'n'paste code - even small snippets - without understanding how it does what it does. If I don't, then I'm in the position of "then a miracle occurs" and I can't fix it in response to changes, or do it again next time something similar occurs. I do not understand the "grab random code from the internet and hope it works" mentality - it just seems counterproductive in the long term to me. I don't think it does "speed up development" - it gets you out of a hole right now, but drops you in a bigger one later on!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
I do the same. If I understand the code, I type in a subset of the online version without all the dead code padding that invariably will be there. As an example, in Winforms when opening a connection, most code wraps the implicit SqlDataAdapter.Fill with explicit conn.Open and conn.Closed. I am fine with just the implicit. Of course, I also document my code, transfer Class information to Word documents for easy re-accessing, and test the bejabbers out of it.
-
It is one thing to copy and drop code into our apps without regard to the entire scope of it's functionality. Quite another to take another's demonstration of how to do something in code and learn from it to develop your own rendition of the process and thereby considering the full ramifications of what your needing to do, verses what the reference source does. One is simply shortcutting yourself, the other is enhancing the scope of your abilities.