Since i started learning to code I have always been under the impression that you should code every project from scratch. For example you are making a project to show off your skills so you code a full html , css and JS site from scratch.
I was recently watching a few youtube videos and they mentioned in the videos that using templates is far from cheating and many developers use them for most websites. I decided to google it on stack overflow etc and again found that a lot of developers were saying they rarely make anything from scratch nowadays.
Is this correct? Do most developers use templates now for a starting point then change it to what they want?
The reason i am asking is i am looking to gain my first junior developer role. I am feeling semi confident in my skills and no doubt that i can tweak sites / templates to suit or do what i need them to. I mainly have problems with building them from scratch to be responsive for example.
If i used templates in projects i made and used them in my portfolio would i be laughed out of the door by the employers or are templates not frowned upon? (just to add when i mean use templates, I mean you would change them a lot not use it as it is)
I know this may be a stupid question but there seems to be a lot of developers supporting the use of them but something makes me feel like its cheating.
For the responsive web certification projects here on FCC, you are expected to come up with the HTML and CSS from scratch. You can always use an existing implementation such as the sample FCC template as a guide however, as long as you don’t copy the whole thing tag-for-tag.
In later certification projects like the web apps, you can use whatever toolkits you wish, and you don’t need to write the HTML from scratch.
In professional work, using templates is just fine. Most pros tend to grow their own templates or at least heavily modify them, but there’s no shame in using a template as long as you don’t rely on them. You should still be able to at least rough a static site with just basic HTML and CSS.
Thank you for the quick response.
I was talking more about the professional side of things. As you have mentioned i completed all of the FCC projects from scratch but i am looking to build some projects quickly to showcase to employers what i can do.
I was more concerned that if i used templates and heavily modify them would that be acceptable or would an employer expect a junior to show them only from scratch projects?
For your personal portfolio work, as long as the site is clean and functional, no one will care. If 90% of the work is done by the template however, it’s not really your work. Ultimately it’s your sense of honor and pride as an artist that should guide you.
I thought that was the case, I always felt like it should be from scratch and i was surprised to see so much talk on forums about templates being so common.
When you are learning at bootcamp / school / University, you are asked to “prove your worth” by your original work, so undisclosed use of templates could be regarded as “cheating”. Even then the “scratch” you are starting from is the result of others work, just as time goes on, the “scratch” includes what has become common place to start with. Be glad that toggling machine code in by hand into the front panel switches (like a PDP-8) is not the “scratch” you have to start with! (Doing it once for work was enough)
The big shock once you get a job is that most of the time that is not how you prove your worth. Instead its how good the solution is, how quickly you developed it and how few problems you have supporting it that really matters. It is really only when it comes to creating the “secret sauce” (the proprietary algorithms and implementation that gives you a competitive edge) that original work shines, but even then how you combine other peoples work to create the solution can be a large part of the “secret sauce”.
In fact the more someone else’s code (templates included) has been around and used by many people, the more likely it is that it will be less buggy than code you have just written. On average the less code you write, the less bugs you write, so there is an advantage in writing no more code than is actually needed. The flip side of the coin is that other peoples code wont be specifically targeted at your problem, so it may have code that is unnecessary or not well suited for your situation adding complexity and the need for rework, also the extra code (that you would not have done if written from scratch) may have bugs still impact your program. Many projects start using pre-canned solutions and then iteratively replace the sections that are discovered to require redesign for the user interface or performance.
When I reuse snippets of public domain code, I add a comment "Thanks to: " in the code. For any commercial code it is wise to have an agreed policy of what licenses are compatible and what is not both at a library and a copy and paste level, and be aware of what attribution is possibly required - be especially careful with GPL as generally you can’t copy and paste from it or directly link in the code without endangering how you license your own code.