PDA

View Full Version : Copying - Then afterwards your a Coder?


est1984
04-01-2010, 05:34 PM
Why do people seem to assume by copying other peoples coding work, and implementing their own stuff or changing the text deem them to be a Coder?

I mean for example, I know loads about web programming, but I haven't really put it to practice yet but I am on course too, but I don't go around saying to anyone that I am a web designer or a coder. But then you have other people that think they can go one step better than you by nicking programming from another website and then producing a replica not that you know it is one until you find where they may have got it from.

Am I holding myself back from advancing myself from being a programmer by sticking to to my guns and not stealing code. I don't know how to go about this, should I be encouraged to steal programming, or should I start afresh myself. I can only see more advantages by having your own code implemented. But then on the other hand all sumone has to do is steal your code and put it on their work and vola they can do exactly the same as you... I would like experienced persons opinions please.

brad211987
04-01-2010, 08:20 PM
Stealing is a harsh word ;)

I wouldn't force yourself to never use code that someone else wrote, because sometimes its just easier to take a program/library that is already written, modify it to your needs and use it. In my opinion, you should certainly try your best to understand the code you are using, which is where some may fall short. Eventually, someone is going to maintain the program you write, and if you don't understand it, then chances are no one else is going to understand how you used it.

So in a nutshell, I say "steal" code that works and that you understand and learn from it. You'll find yourself adapting code to make it better, and even writing more code yourself with that approach. Don't blindly use anything.

est1984
04-03-2010, 12:33 PM
Ah so the key is to build a library of variety of code.

How do you guys organise your libraries?

Would you recommend going to uni and doing web development or software engineering?

Or would it be sufficient to keep plugging away at it in my own time.

brad211987
04-03-2010, 01:08 PM
If you want to make a career out of it, I would recommend a degree. The primary reason is that it takes a great deal of work to thoroughly self-teach yourself all of the concepts and ideas that you will get with a degree in something like software engineering. It can certainly be done, but I think a formal education of the topics is more effective in the long run.

Personally, I've self taught a good deal of programming languages, design patterns, math, algorithms etc.. but found that formalizing that knowledge in a classroom helped even more. It also makes for slightly easier courses if you have already made yourself familiar with the topics.

I'm not completely sure how to answer your question on organizing libraries but here is how my typical development process runs for small projects, it should give you the basic idea:

Once I have a clear picture of what the project is intended to do, I usually take aim at finding what parts of the project I will struggle with, or more specifically what tasks do I not know how to do already, for example when I had never used Hibernate for database access in Java it was at the top of this list. Once those items are identified, I begin researching, mostly digging around on Google for code examples. When I've found an example that is simple enough for me to copy down to a quick test, I do exactly that. I will usually start customizing the example until it covers all of the features that I want to implement in my project, then I save that example off into a project that I keep a bunch of examples in, and begin implementing that part of my project. This way I always have the example to look back to.

In software engineering terms, this is a form of "Throwaway Prototyping" using example code from the internet as a base for a prototype. Most of the time the examples are useless in terms of the task you are trying to accomplish, but they give you the basic knowledge on how to proceed.

A bit long winded, but thats my thoughts on it anyway :thumbsup:

pigpen
04-15-2010, 02:45 AM
To answer your question in your title, obviously just by copying you aren't a coder. I know people who can tinker with code and are more like "hackers" in the sense they can download code and make some small adjustments, but can't make it from scratch. Lots of people using CMS programs are like that, like with WordPress, Drupal,etc.

I myself always preferred to do everything from scratch, because I learned better that way. I made my own CMS systems, frameworks, etc.

This is great for learning, to build up your own personal library.

However when you start working professionally, you often don't have the luxury of time to do everything from scratch, so it's often better to use an already made script, libraries, CMS, etc and then modify it.

But having the knowledge of making something from scratch will let you be able to modify existing code so much faster. Starting with an existing script, will lessen your time.

This is the same way with libraries, like with JavaScript is faster to use various libraries like jQuery and learn it's API.

I've been a big fan now of using Frameworks, like CodeIgniter, Yii for PHP, Django for Python, ASP.NET and C#, as it lets me use those libraries so I don't have to reinvent the wheel every time.

Believe me. It was tough to let go, but once I starting seeing everything as tools, from a simple file browsing script, to a Framework that could automating scaffolding, etc, I started to work much faster.

Also working at various Web studios, sharing libraries with other coders made me more proficient and made me a better programmer.

In short, I wouldn't worry about other people. Just improve yourself.