Great to commence my programming lessons and document my first steps on this blog.
Setting up the Coding Environment
To write code, the programmer needs to set up the coding environment. This can be done on the local PC or on a virtual server which can also be shared using cloud computing. Examples of cloud machines are
- Amazon’s EC2 (AMI)
- Digital Ocean’s Droplets
- Google Cloud
- Microsoft Azure
The virtual machine is basically an online computer, allowing the programmer use similar resources they would use locally, but without the limitations of their computer. Virtual machines which are hosted on powerful services provide a more ideal and efficient space for programs to be designed and run.
As virtual machines do not usually have their own graphic user interface, the programmer still needs to communicate via a local PC usually with the terminal. You may also use Github to move files from EC2 or any virtual machine to your local machine and vice versa.
Benefits of virtual servers include faster provisioning of applications and resources, improved disaster recovery and business continuity, and minimized or eliminated downtime. Virtualization also increases IT productivity, agility, efficiency, and responsiveness. Additional benefits of virtual servers include reduced operating costs and capital, and simplified data center management.
Via the terminal/command line, the programmer establishes a secure shell (SSH) which allows the programmer communicate and log into a computer over a network to execute commands in a remote machine. SSH is a secure protocol, so it uses public-key encryption for authentication. The SSH is usually present in command lines/terminals using the port 22.
Other protocols to take note of are Telnet and HTTP. The SSL is a certificate that is used to secure the HTTP shell – giving it the HTTPS tag.
CDN – Content Delivery Networks.
The main purpose of many software programs is to deliver content to the user and retrieve information as well. When you are delivering and retrieving information from a small collection of users, a unit local host can handle the exchange favourably. However, when this small collection starts to grow to a wider user base, programmers need to figure out the fastest and most efficient way to deliver an retrieve information for the user. This is why Content Delivery Networks are important.
According to Cloudflare
A content delivery network (CDN) refers to a geographically distributed group of servers which work together to provide fast delivery of Internet content.
A CDN allows for the quick transfer of assets needed for loading Internet content including HTML pages, javascript files, stylesheets, images, and videos. The popularity of CDN services continues to grow, and today the majority of web traffic is served through CDNs, including traffic from major sites like Facebook, Netflix, and Amazon.
A properly configured CDN may also help protect websites against some common malicious attacks, such as Distributed Denial of Service (DDOS) attacks.
Locally, this can mean shifting content requests across a host of computers, while representing it under a single IP. It also means that if one host computer is attacked, the rest can pick up without the website losing its status.
The benefits of CDNs include that they provide faster load times, reduce bandwidth costs, increase content availability and redundancy as well as security.
Setting up your code editor
Coding means sending instructions to the computer to perform an action. Therefore, a text editor is needed to receive this information from the programmer. While a simple text editor like a notepad can be used, more sophisticated editors have been created that make programming easier, better, faster, and generally more efficient, especially with today’s demands.
A text editor is simply a computer program and a tool used for editing plain text. An IDE, Integrated Development Environments, on the other hand, is a full-fledge software environment that consolidates basic developer tools required to build and test software.
Among good IDEs are Pycharm, XCode, Visual Studio etc. Good text editors are SublimeText, Notepad etc.
For this programming journey, we will use VS Code.
VS Code
Visual Studio Code is a streamlined code editor with support for development operations like debugging, task running, and version control. It aims to provide just the tools a developer needs for a quick code-build-debug cycle and leaves more complex workflows to fuller featured IDEs, such as Visual Studio IDE.
VS code is a simple file explorer allowing you manage your code files. It also integrates with git to enable version control, and other plugins that improves your development experience. VS Code has a code editor, for sending instructions to your software, and a terminal, for sending instructions to your pc and git.
VS Code offers you your chosen language as it has capabilities for most languages.
Tips on Your VS Code Steps
- Set up your Vs Code on your pc – by simply downloading the program and installing it.
- Determine a golder to store your work on your pc/virtual machine. This folder will include all the folders related to a specific project.
- Be very organised with your files. Organisation is key to allow easy tracking, search, and retrieval of vital and connected documents/files.
- Examine product design, and determine what tools you will use to implement them. You can also do this on the go. Then install the necessary plugins to optimise your programming experience.
Database
Perhaps, the second most important thing to take note of when setting up your environment for coding is your database. Databases are for storing information used in running the application such as user information like usernames, passwords, etc, and other specific variables. A database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. A database is usually controlled by a database management system (DBMS). A database management system (DBMS) is a software package designed to define, manipulate, retrieve and manage data in a database.
According to Oracle, data within the most common types of databases in operation today is typically modeled in rows and columns in a series of tables to make processing and data querying efficient. The data can then be easily accessed, managed, modified, updated, controlled, and organized. Most databases use structured query language (SQL) for writing and querying data. SQL is a programming language used by nearly all relational databases to query, manipulate, and define data, and to provide access control. Although SQL is still widely used today, new programming languages are beginning to appear.
Excel is a simple spreadsheet that can store information for a few users. When large information needs to be stored, then proper databases need to be used. Some of these are SQL databases such as PostgresSQL, Microsoft SQL Server, Oracle Database, MySQL.
There are different types of databases which includes relational databases (Microsoft SQL Server, Oracle Database, MySQL, PostgreSQL and IBM Db2), distributed, object-oriented (Wakanda, ObjectStore), noSQL (Apache Cassandra, MongoDB (also a document database), CouchDB, and CouchBase), data warehouse, cloud (Microsoft Azure SQL Database, Amazon Relational Database Service, Oracle Autonomous Database), centralized, open source etc.
When the right programming environment has been set up, the writing your first software starts to become easier.