Skip to main content

Welcome to the Web

As I've mentioned before, I'm not entirely new to development. I've been developing desktop applications for the past several years. Although I'd had a small amount of exposure to web development before, I'd never done anything in-depth enough to be familiar with the foundational complexities of developing fully-functional web applications. Now that I'm three weeks into a high-intensity academy for training in front-end web development, I thought I'd share my impressions so far of how it compares to desktop development.
IT'S VERY DIFFERENT!
Obviously, there's a little more to it than that but it's really just been a huge eye-opener every day to be introduced to more and more tools that are used to develop an application. In my experience with desktop applications, you generally stick to a small handful of technologies on any given project. 

For example, to create a fully-functional desktop application, you need nothing more than, say, C#. If you decide that you need to persist some data, you can get a database involved, such as Microsoft SQL Server. Yep, that's usually about as organizationally complicated as it gets and, at this point, you would have potentially created some enterprise level software using nothing but those two tools. If you need to call out to a web service, maybe you get some XML involved. If you need to interface with an application in the Microsoft Office suite, maybe you get some COM involved. But again, none of these are necessary.

And then there's web development. Although it is true that you could publish a web page with nothing more than an HTML document, I'm going to focus on what I'd call meaningful development. If you throw in some CSS, you're getting closer to meaningful development but you might still be somewhere in the neighborhood of the Space Jam website - a 1996 gem of web wonderment. If you actually want to start making true web applications, please refer to the below screenshot for some of what's going to be involved:


Yeah... There's a lot going on there. Bare with me as I take you through this tangled "web" of technologies (see what I did there?). I'll embolden and italicize the key terms to give a better visual representation of the complexity.

To create the structure of your web page, you'll need to utilize HTML. Then you'll want to add some stylistic formatting to the page to make it visually appealing - this is where CSS comes in. Then you'll find out that CSS is a convoluted and seemingly incomplete mess, so you'll utilize Sass to bring order to the madness. If you want to take your Sass to the next level, you can take advantage of the Bourbon mixin library. Since a web application is completely useless if it's not dynamic, you'll need to throw in plenty of JavaScript. To spice up your HTML document manipulation, you'll use jQuery, a feature-rich JavaScript library. Then there's the seemingly endless array of other JavaScript libraries/frameworks - Underscore, Backbone, Ember, Moment, etc. You'll need something to manage all of these packages and serve up your page, such as Grunt, which will utilize a package.json file. And of course, the tool used to manage these tools is installed by another tool called the Node.js Package Manager which is used to manage packages such as Grunt (did I use the word "tool" yet??).

I think you get the idea. And the plethora of acronyms is making my head hurt, so I'll stop there. Honestly, one of the most challenging things so far has been simply understanding the tools available, which ones are the most useful, and how to connect them all up. Not to mention, the toolset changes all the time. People are releasing new libraries, finding new and better ways to accomplish previously tedious tasks, etc. There's no doubt that it's going to be a lifelong undertaking to stay competitive in the wonderful world of web - and I couldn't be more excited about it.

Comments

  1. My head just exploded.....Looks like you found your development mojo again :)

    ReplyDelete
    Replies
    1. Haha, I hear ya. Definitely, it's been a blast so far.

      Delete

Post a Comment

Popular posts from this blog

Review of the New Macbook

I finally got a chance to give the new MacBook a whirl and decided to share my thoughts about it. I very rarely feel compelled to review products or services. Like the average consumer, I typically only review things when they’re so fantastic that I think they’re a real game-changer or, conversely, when they’re so terrible that I think it’s very likely they’ll be a game-ender. Unfortunately, this review will be the latter - let’s begin:

The Big Question Admittedly, I was skeptical about the new MacBook from the get-go. Despite my skepticism, I really do like to give everything a fair chance, so I tried to keep as open of a mind as possible. Rather than focusing on any specific feature of the MacBook and making an uninformed decision about whether or not I would like it, I instead simply pondered the question “who is this designed for?” Unfortunately, after spending some time with it in person, I’m no closer to answering that question.

And that really is the big question - the only on…

MailSnail Series

Starting in August of 2015, I began building a company called MailSnail with my friend and co-founder, Matt Bertino. To follow along with my personal thoughts on the ins and outs of the company, experiences, lessons learned, technical details, etc., please check out the posts below. I’ll continue to add new posts here as I publish them.

Post 1: Starting a Company
Post 2: Building a Product
Post 3: Launching a Product

Building a Product

This is the second post in a series I’m writing about a company I’m starting up (or have started, depending on when you’re reading this). You can read other posts in the series here.
As I’ve talked about here, I’m starting a company called MailSnail. In this post, I want to share the ins and outs of how we’ve built the product (i.e. the actual web application).

The Buzzwords I’ve tried my hardest to make this post as approachable as I possibly can for anybody and everybody. I don’t want this to be something that is only interesting to folks who know what HTTP stands for or can rattle off it’s associated status codes. So for my non-tech readers, please bare with me for this one section and keep on reading.

For my fellow tech-nerds, I figured you might not care so much about the minute implementation details but rather are just more interested in a list of all of the pieces of our tech-stack (because you already know the implications of each in their use). So here’s the quick and dirty …