Editorial: Some Thoughts on Coding and Building Websites

In this editorial, Drew Wilson shares some thoughts on coding websites and dependency on third party code to build them.

As many of you know, I’ve been building the Wiki component of this site for a few months now. What is really neat about this project is just seeing the world of music start to come to life piece by piece. What happens when I create a page for this producer? How does it interlock with other existing pages. After building this for a while, you get to see all these linkages come together. Many pages branch out into other pages and some of those branches circles around and feeds into itself. It takes a while to build something large enough to see that effect, but the end results starts becoming a work of art in and of itself.

One of the techniques I employed is using a text file on the side to house all the blocks of code that I regularly use over and over again. For instance, what is the link for “Ferry Corsten”? Copy and paste the code and edit if necessary. Some might think of this as lazy, but the reality is that if you are re-applying the same blocks of code many many times over, it’s better to seek out an ability to gain a certain degree of efficiency. Of course, one of the things I kept in the back of my mind is remembering how to recreate the code should I no longer have access to that text file. At least build that understanding of how that code works before simply using a cheat sheet.

Well, that reality did hit. Recently, the computer I used to create Wiki pages died out of the blue. I knew that if I was seeing things you shouldn’t be seeing when booting, it’s time to take it in for repairs. So, I started working from another machine. I simply went to the URL, logged in, and carried on largely as if nothing happened. Of course, that text file isn’t present, so when it came time to insert a block of code I typically paste in, I simply re-built it from scratch. I checked the published pages in question after and the code pretty much worked right the first time. Aha! That knowledge kicked in and I wasn’t any worse for ware in spite of the circumstances.

Of course, this raises an interesting thought: How much knowledge should a coder have to begin with? While I was getting educated in the various intricacies of web design, I couldn’t help but notice a number of my fellow students fall into the category of simply taking several working lines of code and pasting it into their projects. Since this was a more design oriented rather than computer science oriented, this was definitely allowed. At the time, I remember advocating that there is real power in being able to build your own code from scratch rather than simply copying someone else’s work. I remember the pushback I got was that, “Well, if it works, who cares?”

My understanding about this debate is that this is a classical debate in coding in general. On the one part of the spectrum are the coders who spend years understanding every line and every bit of code. Meanwhile, on the other side of the spectrum are the people who simply find blocks of working code and incorporate it into their projects. As some would recognize, this is referred to as the script kiddies side of coding. I’ve personally seen the different kinds of arguments that go back and forth that can range from “Get good!” or “Why re-invent the wheel?” and many exchanges that can get quite heated.

I used to be firmly in the camp of learning everything there is to know about coding. In the years since, I’ve definitely softened my stance on that for very practical reasons. In order for me to hold true to that hardcore “learn every line of code”, I would, at minimum, have to know every in and out of the WordPress code. After that, I would have to learn every line of the PHPBB package. On top of that, I would have to know ever in and out of all that Wiki code. In a practical sense, that would take years. What exactly does this accomplish? I might have a stronger grasp of a package when I could have just spent a few weeks installing and configuring the installation packages.

Really, if I wanted to be a purist, I would not even install any packages. In fact, I would probably be sitting here trying to build up the code base for just the method of publishing news material. I would be cutting myself off at the knees by doing that because I wouldn’t be building the credibility I’ve already built amongst users. Instead, I would be more or less wasting my time re-inventing my wheel purely for purist reasons and the end result may not be as great as modern day WordPress distribution packages.

So, a question you might have is, why was I much more of the hardcore coding train of thought type of person all those years ago? Well, simply put, the projects were much more simple in nature. We’re talking about building static HTML websites with CSS code to pretty it up. In that case, the projects were much more simple in nature and it is actually quite reasonable to expect to be able to learn enough to create something half decent that you can spend 5 to 10 minutes browsing through.

Now? With a website like Freezenet, we’re talking about probably thousands upon thousands of hours worth of complex PHP pages designed to be their own Content Distribution Management systems in place. This site really is a very complex website that simply wouldn’t really be possible without the existence of these tools. In short, the project is much more complicated.

Having said that, I haven’t actually lost that coding spirit of building things from the ground up. After all, I spent several weeks with every iteration of the WordPress theme with help from the BlankSlate code base. I can say that such a process can be frustrating at times because it’s amazing how quickly things can break if the code isn’t quite right. The end result is, of course, what you see here today.

Of course, there is something to be said about crafting something relatively basic even in markup languages that are not HTML. Just inserting a link to another page or planning out how the site will look is actually quite rewarding. Plus, after creating something as simple as an article can be enjoyed by anyone around the world with an Internet connection which is a really cool side benefit to it all.

I still remember while working on ZeroPaid that I was asked which view I preferred while writing news articles. When I responded that I prefer the Text view (the view that requires hand-coding), I recall getting a few raised eyebrows. Yes, even to this day, whenever I want to quote something, I literally hand-type out “blockquote” with angle brackets. When I link to other articles on this website, I literally hand type out the “a href” code by hand. Some people think this is extremely weird because that’s what the buttons are for, but that’s always been my personal style.

The same, of course, is said for PHPBB and the Wiki. If I’m going to boldface something, I actually type out the “b” with the square brackets in the forum. When I write out a Wiki page, if I’m going to be typing out references, I actually type out the “ref” tags and everything that is needed to create that reference. In fact, it’s that coding knowledge that allowed me to create the template files in the first place.

Personally, there is that nice sense of satisfaction of publishing something where you actually hand-wrote some of that code. Is it simple code? Sure. Is it easy after a few weeks of using it over and over again? Of course. Even then, even the process is actually quite satisfying. When mistakes do happen (and they will), it’s dead simple for me to fix because I can immediatly tell when I didn’t close a tag properly or when there is a citation error message. So, in that sense, I haven’t really lost that coder satisfaction.

So, which side is more right than the other? I think the simple answer is, “It depends on what you are working on and what your goals are.” That may not be that satisfying of an answer, but I think it is the most accurate answer you will get when debating how much code you should know.

If your goal is to create a simple web forum with nothing too complicated, honestly, simply go through the web forum packages out there and pick one you think you can work with. There’s no shame in relying on something like that in my view. If your goal is to have a WordPress with a custom theme, then I would say it pays to thumb through the codex, learn what you can, and see what you can punch out for a theme. If your goal is to build a website completely from scratch, then you need to get to know HTML, CSS, probably Javascript, and likely a more complex language like PHP. In the end, it totally depends on what your goals are with whatever it is you are working on. I don’t believe there really is a right or wrong answer in this.

One way you can look at people who use pre-existing packages is this: does a pianist have to be able to build a piano from scratch in order to be able to play great music? No. Does it help that they can tune the piano and know all about the upkeep? Absolutely. At the end of the day, it is up to the pianist to be able to offer great performances. Like the pianist, there is no shame in saying, “I can’t build my own WordPress from the ground up, but I can sure write great news articles people are wanting to read.” It fits perfectly within the scope of what I am building and satisfies the needs of the project.

Drew Wilson on Twitter: @icecube85 and Facebook.



2 Comments

  • Yves Schelpe says:

    “One way you can look at people who use pre-existing packages is this: does a pianist have to be able to build a piano from scratch in order to be able to play great music? No. Does it help that they can tune the piano and know all about the upkeep? Absolutely.”
    => I agree there, very good sum up. One can’t simply know everything in this complex IT world, there’s so much software & hardware components. However the basics as SOLID, clear naming and TESTING (unit & integration testing) is necessary of course. Testing is lacking a lot and is very misunderstood sadly.

    • Drew Wilson says:

      Testing is absolutely huge. I know when I developed this theme, I was testing every little change I made along the way and fixing the bugs as they came up as I went along. It was annoying, but definitely needed. All I was doing is just creating my custom code to make the site ultimately work.

      What was weird, however, is that once I placed my code into the WordPress architecture, it actually changed the look slightly. I never understood why because it was simply CSS and HTML code being fed through WordPress instead of a plain HTML/CSS static page, but I definitely needed to move a few pixels around to make it work. Still, glad I tested that before it went live or else I would’ve had a broken site once I installed the upgrade.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.


%d bloggers like this: