Basic necessities in a development platform:
- Computer
- Internet access
- Web browser
- File management – either GUI and/or command line commands.
- Text editor
- Source management and distribution system
- Collaboration applications
While those are the basics, you will likely also need:
- Web hosting service
- Interactive Development Environment (IDE)
- Remote development shell
Common platforms:
I’ll not bother to describe all the many programs needed for each of these platforms since that will be found in the Development Tools page. Rather, I’ll discuss some of the unique attributes of each and how they relate. You have probably already chosen a favorite platform, but may also be considering some alternatives.
Linux
Almost all web hosting servers are running Linux so ultimately if you are going to do full stack development you will need to learn Linux. Many developers have chosen to also use Linux as their local work computer. We will discuss hosting servers a little later on this page, but for now we will consider Linux as a local development computer.
Linux of course can be installed on PC’s and Macintoshes. It can be installed in a virtual machine on either of those platforms. It also can run native on Windows using Cygwin which gives an existing Windows user the ability to use both Windows apps and Linux apps interchangeably. That also eases the Linux learning curve.
MacOS is based on Unix and the Mac Terminal app depends on Unix (Linux) shells for line mode interactive commands. There are many different shells available to choose from, but the most commonly used one in my experience is BASH.
If you choose to run Linux as your native OS then you will almost always use a graphical user interface.
Windows
With Windows you naturally have a graphical interface including Windows Explorer, a web browser like InternetExplorer or Edge, an interactive command line tool like PowerShell or cmd.exe. Using your browser there are applications galore that you can download and install.
In addition as mentioned above you can also install Cygwin and get lots of Linux goodies as well.
Macintosh
As mentioned above MacOS is really UNIX under the covers. The Terminal window runs many different UNIX shells. Many common development tools are available for download and install and ready for use.
However, since Terminal gets you into the core of UNIX there are many UNIX, and Linux package managers available that will let you install just like you are in Linux. Homebrew is one option. Just Google ‘package managers for mac‘
Web hosting servers
Most servers are virtual machines in a cloud server farms. These are almost always headless meaning there is no display or keyboard. You must access these using some form of secure shell. Checkout a google of ‘ssh‘. ssh and many programs that use it require secure certificates to be generated and installed on your local machine. I will have a whole ‘How to’ page dedicated to secure networking.
With multiple developers working to build a hosted server, there are two indispensable tools. One, just mentioned is an SSH client that allows interactive terminal access as though the developer was directly typing on a terminal attached to the server machine. I have discovered an app called Termius that does this very well. It also serves as a secure file transfer program (SFTP). I have dedicated a page specifically for this tool and how it can be used. Termius as a secure interactive shell and file transfer client.
How about you?
Give all of those options you probably already have a development platform of some sort and it’s now time to talk about it. I need to know about your setup, your needs, and your questions. I have a ‘Tell me about your development setup‘ challenge page that you can use to tell me all about it. So, go there and tell me.