Web Developer Job Duties
Your job as a Web developer is to present your clients' products and services to a wide audience by creating attractive, functional websites. You will likely be asked to identify potential site users and design a website to appeal to these constituents. Your work may include meeting with clients to discuss their desires for a website or discuss how to keep their website functioning and up to date. You might construct the layout of a website, creating a visually interesting home page and user-friendly design. You may also write the content for the website.
After a website is up and running, you'll make sure that the site is functional on all Web browsers, periodically testing and updating it as needed. A client may also need you to include interactive capabilities on their site using Visual Basic or Java programming languages.
Where You Work
Web developers may work for large corporations, small companies or as freelancers. Most positions will have you working 40 hours a week, while others - especially freelance positions - enjoy flexible schedules. Occasionally, you may be required to work during the weekend or other non-standard business hours in order to perform website maintenance or in the case of an emergency.
Other Skills
You need to have a familiarity with technology and understand how computers and web servers operate. You will also need to be familiar with many software programs, Web applications and Web programming languages, such as hypertext markup language (HTML), Ruby on Rails and C++. Since this is a very client-based, project-oriented field, you must be able to communicate effectively, set goals and meet deadlines. You must also be creative and have a grasp of art and design principles.
The key take-aways here are:
Developers often work on behalf of clients who are trying to get their product or service out onto the web.
The work is typically very project-focused and involves collaborating with a team of people who help coordinate the client's needs with the end product.
Not all devs work for external clients... The "client" could just be your tech company, organization, government etc. who needs a website or web application built
It's a lot of fun, you actually get to build things that people use, and you get to play with lots of new toys. What's not to love?
Important Distinctions
Front End:
"Front End" typically refers to the stuff that you actually see on the website in the browser. This covers how the content is presented including all the little user interface elements like menus and dropdowns and transitions and modals.
front end developer will often focus heavily on understanding HTML, CSS, and Javascript since these languages live in the browser. They aren't necessarily focused on making things look "pretty" (which is often left to a designer), but rather making sure that the information is presented effectively and the user's interaction with the web page is as smooth as possible. These days we're executing more and more code in the browser itself.
Back End:
"Back End" typically refers to the guts of the application which live on the server. The back end is more focused on making sure all the right data gets sent out to the browser. It's the portion of iceberg below the surface... lots of stuff needs to go correctly to hand off data to the front end so it can be displayed.
Google may be a relatively straightforward search engine from our point of view, but they employ an army of engineers to make sure that all the moving parts you don't see are working properly.
Full Stack:
"Full Stack" developers marry the two sides into one. While each "end" involves learning a significant amount of information, a full stack developer can comfortably speak both database and browser. These days the trend is to seek developers with a great working knowledge of both ends (which is what we're teaching here).
Web Sites and Web Applications
Not everyone can agree what differentiates the two, but generally web sites are more about displaying static (unchanging) content and web applications require a "smart" server running code (that you're going to learn to write) to produce dynamic content.
For a more concrete example, think of going to a regular web site as just opening a document (say, an e-book) from your hard drive. Your computer will locate it, open it, and display it for you.
Going to a site run by a web application is the same principle but the e-book is no longer just sitting there waiting to be opened. Your request for the e-book is caught by a sneaky little application which checks what you're asking for and then dynamically generates your e-book for you, fully customized (okay, maybe it just has an extra line that says "this e-book was opened on" and then today's date).
That's more or less the difference between a server just serving up a static HTML file and dynamically generating one by using a bit of Ruby on Rails code.