Exploring this Job
The best way to find out more about this career is to learn programming languages that are frequently used by back-end developers. These include Python, Ruby, PHP, Java, and Node.js. The following online learning platforms offer free or low-cost classes in coding: Code Academy (https://www.codecademy.com), edX (https://www.edx.org), Coursera (https://www.coursera.org), and Khan Academy (https://www.khanacademy.org). You should also take programming classes in high school.
Learn as much as you can about artificial intelligence (AI) and machine learning (a form of AI), which developers are increasingly incorporating into software.
Other ways to explore this career include watching videos about programming on YouTube; participating in IT-related summer exploration programs that are offered by colleges and universities, park districts, and high schools; conducting information interviews with back-end developers; and getting involved in programming and other IT-related competitions, including the World Artificial Intelligence Competition for Youth (https://www.waicy.org) and competitions offered at Kaggle (https://www.kaggle.com).
Back-end developers design, develop, and troubleshoot and repair the components (server, software application, and database) that connect and interact with the user interface of a Web site or app. The server is hardware that receives requests from the user of the software. A server can consist of one computer or many computers. The application runs on the server and is programmed to listen for requests from users and send the appropriate data back or complete other requests. It uses server-side scripts to communicate between the server and the database. The database stores and organizes all of the data for the application and any data generated by the user.
Back-end developers don’t work in organizational silos. They collaborate with front-end developers and other IT professionals to create a fully functioning Web site or app. An e-commerce transaction is a good example of this relationship. When the customer views information about a particular product, he or she is doing so as a result of the coding and Web development that has been completed by the front-end developer. But when the customer clicks on a product link to obtain more information, buy the product, or login to the company’s Web site, these actions are only successful because of the work of back-end developers. He or she has designed and built frameworks or the architecture of the system and written the code that allows the application to receive the request for more information about the product, for example, send it to the server to access the information, which is collected from a database, and then returned to the potential customer—all, ideally, in a matter of a second or two. The back-end developer also writes the code and creates the systems that connect the customer who wants to buy a product with the credit card provider and creates code that saves what a user has purchased in the past and recommends similar products.
The front- and back-end software components must work together seamlessly. Otherwise, users will not be able to buy products, access information, login to their account, and complete other tasks. As a result, back-end developers spend a lot of time trying to optimize site performance (search functionality, page loading, etc.) and looking for ways to improve site infrastructure. They collect and analyze data to ensure that systems are working correctly. They also troubleshoot bugs and errors and devise solutions.
Additional duties for back-end developers include meeting with other IT professionals to develop new software or to scale up or develop a company’s existing back-end infrastructure, working with computer security specialists to ensure that current and proposed back-end systems are not vulnerable to hackers, writing reports and giving presentations that provide information and updates to managers and executives regarding current and new product development, and preparing and maintaining technical documentation.