Home > Tutorials > 6 Tips for the Transition From Destkop Programming to Web Development

6 Tips for the Transition From Destkop Programming to Web Development

April 7th, 2009

When I was learning web development, I had already been programming desktop applications for a quite some time. However, it did not come to me quite as easily as simply picking up a new programming language.

The largest roadblock was attempting to fit the web programming paradigm into my existing picture of application development. If you’re new to programming, this should not be an issue since you are basically a blank slate. But if you’re already a programmer, hopefully you find this helpful.

Here are six things that would have helped me out while learning web development. Oh…and I’m bringing back the count DOWN.

6) Learn the basics of relational databases

Most useful websites are really nothing more than easy and intuitive interfaces for databases and files. Some popular options are Microsoft SQL Server, PostgreSQL, and MySQL. All of these are what can be considered different “flavors” of SQL. They all have the same basic functionality and each brings it’s own set of bells and whistles.

I’d recommend PostgreSQL and MySQL because they have the advantage of being completely free.

Some very basic things that you will need to do in a database include:

Creating a schema
Creating a table
Dropping a table
Modifying a table
Creating a primary key
Creating a foreign key
Inserting data
Updating data
Deleting rows of data
Retrieving rows of data
Retrieving columns of data
Retrieving cells of data

This is by no means an exhaustive list of database topics, but you can definitely get the ball rolling with these concepts.

5) Forget what you’ve learned about data persistence and control flow

In the desktop app world, the state of the application data and objects are maintained in memory for as long as needed. This isn’t quite how it works in the web world. A web application is very decentralized.

As you know, browsers request information from a remote server and receive a text response in the form of HTML, javascript code, etc. This response is the output of a server side script being executed. But there is not a “running program” per se. Aside from what is stored in the database, the application maintains no state. Once the application script is executed, the application instance is terminated. A new instance is created on each request to the server.

Information such as a user’s logged in status is carried between these instances in a storage space called the session.

Crazy picture, right? And we haven’t even started talking about client side code yet! For the purposes of starting web development, it’s a good idea to start off by learning how old-fashioned Web 1.0 pages work. Fancy Web 2.0 pages simply build upon these principals by shifting more work to the browser and minimizing server submissions.

4) The languages themselves are simple. The hard part is the system

I’ve occasionally heard desktop application programmers scoff at web programming as “simple”. In a sense, this is correct. The languages of web development are considerably less complicated than a language such as C++. But the complexity comes from the fact that many different programming languages are interconnecting.

As a web programmer, you are tracing control through a bare minimum of two languages: HTML and your server side scripting language. But if you wanted to do anything even half way interesting, you will be using no less than five: HTML, a scripting language, CSS, SQL, and javascript.

If any one of these languages had the same level of complexity as C++, then software engineer suicide rates would certainly rise to a level rivaling poets and dentists!

3) Learn about SSH and FTP

If you’ve lived your whole life in a Windows world or have not had much network experience, then you may not be familiar with secure shell (SSH) or file transfer protocol (FTP).

Often times, you will have to modify a configuration file on the server or maybe upload some files. If you run linux, then you’ve got this compatibility right out of the box. However, in Windows, you have to download some tools in order to accomplish this.

Similar to Telnet, SSH is a way for two computers to exchange data. More specifically, they allow you command line access to a server. The difference between the two is that SSH is, as the name suggests, secure. That means that in addition to the web or IP address, you will also need a username and password. The best free option for SSH on Windows is a tool called PuTTY.

Download PuTTY here.

FTP, again, as the name suggests, is a way to transfer whole files to the server. There are several FTP options for Windows. However, I use the tool called WinSCP because it plugs in quite seamlessly to PuTTY as well as another of my favorite tools, Notepad++.

Download WinSCP here.

2) Start without a framework (ESPECIALLY Microsoft .NET)

Frameworks are great. They allow programmers to focus more on getting the job done as opposed to reinventing the wheel. However, if you plan on making full use of that wheel, but don’t fully understand how it works, then you’re likely to end up using it as a coffee table when you really wanted to ride west.

When you use a framework, so much of the work is done for you that much of the underpinnings of web programming will pass you by. That is why I strongly recommend steering clear of all frameworks. Especially Microsoft’s Visual Studio products for the beginner. Sure, you will be able to do some cool things pretty quickly. However, you would have only a superficial understanding of how it works. And debugging can be a nightmare if you don’t know what’s going on under the hood.

Just think about it this way. When you were in school, do you think you would have been able to learn your multiplication table very well if they handed you a calculator from day 1? As an adult, we use them freely because we fully understand the concept of multiplication. Learning is not our goal. Being productive is.

And the number 1 tip is…(drum roll please).

1) Bookmark W3Schools.com

This website is one of the single greatest resources of information on the topic. Nearly any and all web development technologies are represented in its hundreds of short and simple tutorials.

It’s not only great for learning. The short and snappy coverage of topics makes it a great reference source as well.

While you are working on honing your web development skills, there will be several times that you will ask yourself things such as “what were the order of the parameters for this method again?” or “what was the HTML attribute that allows me to center the content?” W3Schools will have your answer.

In fact, if I have a question on a topic, I’ll often enter the topic into Google followed by “w3schools”.

W3Schools.com

Check this resource out, and I promise you will love it!

Hmm….I suddenly have the urge to grow a beard and start selling OxyClean. Odd…

No related posts.

David Granado Tutorials , , , , , , , , , ,

  1. No comments yet.
  1. No trackbacks yet.