3 web dev careers decoded: Front-End vs Back-End vs Full Stack

Ngoc Huynh

You open a new browser tab, type in a URL, and press enter. The site loads instantly. It nearly takes your breath away with its ultra-clean layout, well-constructed pages, and impressive visuals.

The people responsible for every part of that experience? Web developers.

As of November 2014, the Internet contains more than 680 million pages. And counting. Talk about some serious job security for web developers, the people responsible for coding, building, analyzing, and maintaining all those websites.

Websites are now a critical component for any business to stay competitive. And as web development trends and best practices change practically with the season, there’s no shortage of work for developers.

But how do you know exactly what kind of web development work to seek out and train for? If you’ve poked around on job listing sites or browsed through online courses, you’ve probably gathered that web development tends to break down into three main concentrations: front-end, back-end, and full stack.

If you’ve dabbled in HTML, JavaScript, or maybe a little Python, but you’re not quite sure which path to venture out on, this handy breakdown is for you.

Front-End Developer

The front end of a website is the part that users interact with. Everything that you see when you’re navigating around the Internet, from fonts and colors to dropdown menus and sliders, is a combo of HTML, CSS, and JavaScript being controlled by your computer’s browser.

SKILLS AND TOOLS

Front-end developers are responsible for a website’s user-facing code and the architecture of its immersive user experiences. In order to execute those objectives, front-end devs must be adept at three main languages: HTML, CSS, and Javascript programming. In addition to fluency in these languages, front-end devs need to be familiar with frameworks like Bootstrap, Foundation, Backbone, AngularJS, and EmberJS, which ensure great-looking content no matter the device, and libraries like jQuery and LESS, which package code into a more useful, time-saving form. A lot of front-end developer job listings also call for experience with Ajax, a widely used technique for using Javascript that lets pages dynamically load by downloading server data in the background.

Using these tools, front-end developers work closely with designers or user experience analysts to bring mockups, or wireframes, from development to delivery. Strong front-end developers can also accurately identify specific issues in user experience and provide recommendations and codified solutions to influence the design. It’s also important to be able to fluidly partner with other teams across the business to understand specific goals, needs, and opportunities, and then execute on those directives.

It’s a lot of responsibility, but it can be very rewarding. “I’m a technical person, but still a visual person, and being able to manipulate what we see and interact with on digital platforms through markup and code came naturally,” said Mikey Ilagan, a front-end developer with eight years of experience. “To that point, I love being able to make an impact on the user interface, the aspects of an app or website that the user interacts with and sees.”

In all, a front-end dev is responsible for the interior design of a house that’s been built by a back-end dev. The taste and style of the decor is dictated by the homeowner. As Greg Matranga, Director of Product Marketing at Apptix, said of the team of both front-end and back-end developers he oversees, “The developers that work on the front end are sometimes more excited about what they do because they’re really able to leverage their creativity.”

HOW IT TRANSLATES

Everything you’re seeing on this website right now was made possible by a front-end developer. A designer crafted the logo and graphics, a photographer took the pictures, and a copywriter wrote the text. But a front-end dev assembled all of those pieces, translated them into web-speak, and built the experience you have with each page. To take one specific example, scroll up and down on the Udacity homepage. Notice how the “U” disappears and reappears? That’s the handiwork of a front-end developer.

Back-End Developer

So what makes the front end of a website possible? Where is all that data stored? This is where the back end comes in. The back end of a website consists of a server, an application, and a database. A back-end developer builds and maintains the technology that powers those components which, together, enable the user-facing side of the website to even exist in the first place.

SKILLS AND TOOLS

In order to make the server, application, and database communicate with each other, back-end devs use server-side languages like PHP, Ruby, Python, Java, and .Net to build an application, and tools like MySQL, Oracle, and SQL Server to find, save, or change data and serve it back to the user in front-end code. Job openings for back-end developers often also call for experience with PHP frameworks like Zend, Symfony, and CakePHP; experience with version control software like SVN, CVS, or Git; and experience with Linux as a development and deployment system.

Back-end devs use these tools to create or contribute to web applications with clean, portable, well-documented code. But before writing that code, they need to collaborate with business stakeholders to understand their particular needs, then translate those into technical requirements and come up with the most effective and efficient solution for architecting the technology.

“I’ve always preferred back-end development because I love manipulating data,” said long-time back-end developer JP Toto, who’s currently a software developer for Wildbit. “Recently public and private APIs have become an essential part of trading data between mobile devices, websites, and other connected systems. Creating APIs that the public finds useful is a very satisfying part of my job.”

HOW IT TRANSLATES

When you navigated to this website, the Udacity servers sent information to your computer or mobile device, which turned into the page you’re seeing right now. That process is the result of a back-end developer’s work. In addition, if you enroll in a Udacity course or nanodegree, the storage of your personal information—and the fact that each time you return to the site and log in, your data is called up—is attributable to a back-end developer.

Full Stack Developer

There’s often not a black-and-white distinction between front-end and back-end development. “Front-end developers often need to learn those additional back-end skills, and vice versa, especially in the current economy where marketing is thinly resourced,” said Matranga. “Developers need some of that cross-discipline. Oftentimes, you have to be a generalist.”

Enter: the full stack developer. The role was popularized four years ago by Facebook’s engineering department. The idea is that a full stack developer can work cross-functionally on the full “stack” of technology, i.e. both the front end and back end. Full stack developers offer the full package.

“Working on both the server side and client side professionally opens more opportunities,” said Federico Ulfo, Full Stack Developer at Grovo. But, of course, full stack development isn’t without its challenges. “To make an analogy with food, you can be good at cooking or good at baking, but mastering both takes time and experience. And I’m not talking about following a recipe, anyone can do that. I’m talking about having the ingredients to prepare something truly good.”

SKILLS AND TOOLS

Full stack developers work, like back-end devs, on the server side of web programming, but they can also fluently speak the front-end languages that control how content looks on a site’s user-facing side. They’re jacks-of-all-trades.

To illustrate the increasing complexity of full stack development, here’s an example of what a full stack might have looked like in recent years, compared to the current moment:

Regardless of the specific tools, dependent on the project or client at hand, full stack developers should be knowledgeable in every level of how the web works: setting up and configuring Linux servers, writing server-side APIs, diving into the client-side JavaScript powering an application, and turning a “design eye” to the CSS.

Using these tools, full stack developers need to be able to immediately identify the client- and server-side responsibilities of a solution and articulate the pros and cons of various solutions.

HOW IT TRANSLATES

A full stack developer would be responsible for the entire flow of your experience with this blog post, from its load time and layout to its interactiveness and structural underpinnings.

Share the news now

Source : http://blog.udacity.com