Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I know that may sound a little vague, so I\'ll try and explain a little further.

ID: 651908 • Letter: I

Question

I know that may sound a little vague, so I'll try and explain a little further...

After being self employed developer for many years I'm now in search of a commercial web developer role. My only experience with servers and hosting is uploading through FTP and playing around with CPanel/WHM a little. The role's I'm going for are web development PHP, MySQL, HTML, CSS type roles, but in recent interviews I've been asked questions about setting up things on the server, that I had no idea what was being said... which wasn't ideal!

Without knowing more than I do, it's hard to explain what exactly I'm looking to learn, but it's basically just the server elements I should know as a web developer? If you're a web developer, do you have any dealing with the server apart from uploading files, and if so, what? Are things like Subversion(SVN) and version control systems often set up by the web development team, could that be what they were talking about?

Explanation / Answer

This is a big set of questions, but I suspect one that a lot of folks need to address, particularly as they start to advance in a career that started with a heavy front-end focus.

You mention that you are going for a role that includes PHP and MySQL development. These are things that need to execute on the server. Being able to make good technical judgments as a developer requires that you gain an understanding of how these things work on the server and how they interact with the web front-end. So, you clearly need to develop an understanding of the server.

Rather than trying to figure out up front the exact body of knowledge that you might need about the server, I would recommend diving in and building something including installing all of the server side software yourself. A great way to get your feet wet is to install Linux on your computer. You can use something like VirtualBox to let it run alongside your current OS. Install MySQL, install and set up the server for PHP and try to get everything working together. The great thing is, these days, a moderately well equipped laptop can run all of this and be the "server". This could be tough at the beginning, particularly if you don't have experience using Linux and the command line. As a developer, you should at least know enough to be able to get through this exercise and it will give you a jump start in figuring out how to further your knowledge.

There are three areas where you will probably need to get up to speed:

The basics of the Linux operating system. Maybe start with an easy to install distribution like Ubuntu.
Setting up a web server and PHP. Installing Apache is a good place to start. There are other alternatives, but this is where most people start.
Learning the basics of installing and running MySQL. At the very least, as a developer, you will probably need to be able to write DDL to create tables and other structures in the database and you will definitely need to be able to query the database on the server to explore data and ensure what your application is spitting out matches what is in the database.
If you were to go with Ubuntu, you could follow the basic instructions here to get yourself up and running. Note, you will have to do quite a bit of ramp up on Linux basics before starting to install and play with the web servers/database components.

In terms of how developers need to interact with the server, beyond uploading files, I think this varies a lot from organization to organization.

The developers are often dealing with the administration of at least the development environment. Sometimes, it is developers who are setting up the revision control system (for example SVN) and the deployment process (moving code across environments).
To your point, at the very least developers will need to use revision control system that is living on the server.
You will also need to do things like look at the logs on a server to see what messages are being generated to help diagnose and resolve problems.
You may need to work with an infrastructure team to determine things like the network configuration or storage configuration of the server. Often, application issues are a combination of the configuration and the code.
The point is that there is not a single answer for exactly how you will need to touch the server, but in the course of your career, it will certainly go beyond just uploading files via something like FTP. Getting started by learning the basics now will help.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote