The world of programming can be difficult for outsiders to grasp. For instance, if you don't have programming experience, you might not know which language is the best for beginners to learn.

However, the misconceptions about programming go even further. Though terms like "software engineer," "web developer," and "programmer" get thrown around, there are some key differences about their work that you should know. Let's examine what makes programming and web development so vastly different.

Different Focuses

While both types of professionals type lines of code to make things happen on a computer, their focuses are vastly different. Programmers vary in what they make, but typically create brand-new computer applications or add on to existing software. Web developers, on the other hand, deal specifically with building and maintaining websites.

To understand the distinction, consider the role of a web designer. The designer creates the mock-up of a website and might plan its feature set. This person doesn't need to write any code to accomplish this, though. They might use programs like Adobe Dreamweaver to block out the website design, or build a model in Photoshop.

Web developers bridge the gap between these web designers and programmers. While a web designer comes up with an idea for the website, the web developer builds it to their specifications. In this project, a programmer's role might be creating a new tool to help process the website visitor's requests. In the long run, a programmer would move on after his app was completed, while the web developer would probably be responsible for updating and maintaining the site.

Another important point is the scope of each professional's work. In a business environment, a programmer might be tasked with expanding proprietary software that a company has used for years.

Thus, they might spend a lot of time figuring out the code for older applications and trying to add new features to them, since a company doesn't want to throw away software essential to its business. When it comes to website design, it's rare to surgically add new parts when a company wants a new website. For websites, it's more efficient to start from scratch.

They Use Different Languages

As you probably know, there are dozens of different programming languages, all with different strengths and purposes. Someone building mobile apps will use a different language than someone building a web application -- we've already discussed how to choose the right web programming language.

A web developer uses HTML (which isn't really a programming language) to organize text and CSS (also not a true programming language) to customize how that text displays. Then, they use JavaScript for client-side work (like checking to see if you've left the password field blank when signing in) and PHP for server-side behavior (such as searching for a term that the user entered). Of course, there are other languages used in web development as well, such as Ruby.

On the other hand, a programmer could use any number of languages to build the application that he or she needs. Depending on the situation, a programmer could use C#, Java, C++, Python, C, or any other number of choices to build an application.

An important implication of these differences is that web programmers have to regularly keep up with changes in the languages they use. A textbook on web programming written in 2015 could be severely out of date by now due to rapid developments in those languages. Thus, web programming classes often teach via online resources instead of books.

In contrast, a textbook written on C in 1985 could still be fairly effective in teaching students that language, because it hasn't changed much in decades. Of course, there are some stylistic standards and best practices that an old resource might miss, but nowhere near the level of web development.

Differences in Implementation

You might not think it, but the languages discussed above actually perform very different functions behind the scenes.

Programming languages like Java and C++ are high-level languages, which means that typing a line of C++ code is heavily abstracted from the actual machine instructions that it turns into when you compile it. Writing in low-level languages, like assembly code, would be extremely tedious and difficult. These lower levels of code closely deal with hardware, so you must specify moving data in and out of specific memory registers.

For instance, have a look at this example assembly code to print "Hello, World" from LMU's computer science website:

            global  _start

    section .text
_start:
    ; write(1, message, 13)
    mov rax, 1 ; system call 1 is write
    mov rdi, 1 ; file handle 1 is stdout
    mov rsi, message ; address of string to output
    mov rdx, 13 ; number of bytes
    syscall ; invoke operating system to do the write

    ; exit(0)
    mov eax, 60 ; system call 60 is exit
    xor rdi, rdi ; exit code 0
    syscall ; invoke operating system to exit
message:
    db "Hello, World", 10 ; note the newline at the end

In C++, typing this simple line would perform the same function:

        std::cout << "Hello, World";

We can see that when the code programmers type actually compiles, the machine processes it into a computer-readable form to create a working application. This contrasts significantly with most web development work, which doesn't need to be compiled. There is the exception of some "web based applications" which compile and run on the web server but display on the client machine -- but this is where the area between application programmers and web developers gets gray.

Web Language Processing

Earlier, we mentioned that HTML and CSS are not true programming languages. Rather, HTML is a markup language and CSS is a style sheet language. Their syntax describes what's on the page and how it's organized (HTML) and how it looks (CSS). They're for presentation, while a programming language is functional. You can test this yourself -- create a text document on your computer called test.html with some basic HTML code, like this:

        <h2>This demonstrates why <i>HTML is not a programming language</i>, but rather a <u>markup</u> language.</h2>

Save it and open it in your browser of choice, and you'll see that the HTML you specified already took effect inside your browser. No code compiled; your browser just knows how to interpret HTML. Compare this with a short C++ program that outputs "Hi!" to the screen -- you can't make that code do anything without a compiler like you'd find in online tools or in Visual Studio.

In Short

It's fair to say that web developers are a subset of programmers, because similar methods and skills are in place for both positions. Web developers use skills and tools that programmers wouldn't, such as graphic design utilities and video editing software. Also, web developers are typically in contact with their clients more often than a programmer. A programmer created Mozilla Firefox, but a web developer built Mozilla.com.

If you want to get started with programming, Microsoft's free development tools are a good place to start. If you're leaning towards web development, we can help you choose between front-end and back-end web development.