Ebooks File How To Be A Web Developer: A Complete Beginner's Guide On What To Know and Where To Start 1st Edition Radu Nicoara All Chapters
Ebooks File How To Be A Web Developer: A Complete Beginner's Guide On What To Know and Where To Start 1st Edition Radu Nicoara All Chapters
com
https://ebookmeta.com/product/how-to-be-a-web-developer-a-
complete-beginners-guide-on-what-to-know-and-where-to-
start-1st-edition-radu-nicoara/
OR CLICK BUTTON
DOWLOAD NOW
https://ebookmeta.com/product/how-to-be-a-web-developer-a-
complete-beginners-guide-on-what-to-know-and-where-to-start-1st-
edition-radu-nicoara/
https://ebookmeta.com/product/how-to-win-client-business-when-
you-dont-know-where-to-start-a-rainmaking-guide-for-consulting-
and-professional-services-1st-edition-fletcher/
https://ebookmeta.com/product/how-to-be-a-complete-bastard-
edmondson/
https://ebookmeta.com/product/a-friendly-guide-to-software-
development-what-you-should-know-without-being-a-developer-1st-
edition-leticia-portella/
A Friendly Guide to Software Development: What You
Should Know Without Being a Developer 1st Edition
Leticia Portella
https://ebookmeta.com/product/a-friendly-guide-to-software-
development-what-you-should-know-without-being-a-developer-1st-
edition-leticia-portella-2/
https://ebookmeta.com/product/how-to-change-the-science-of-
getting-from-where-you-are-to-where-you-want-to-be-katy-milkman/
https://ebookmeta.com/product/tor-and-the-deep-web-how-to-be-
anonymous-online-in-the-dark-net-the-complete-guide-1st-edition-
phill-vega/
https://ebookmeta.com/product/how-to-be-a-design-student-and-how-
to-teach-them-mitch-goldstein/
https://ebookmeta.com/product/how-to-start-a-blog-1st-edition-
flavio-copes/
How to be a Web
Developer
A Complete Beginner’s
Guide on What to Know
and Where to Start
Radu Nicoara
How To Be a Web Developer: A Complete Beginner's Guide on What to
Know and Where to Start
Radu Nicoara
Berlin, Germany
iii
Table of Contents
iv
Table of Contents
v
Table of Contents
vi
Table of Contents
Index�������������������������������������������������������������������������������������������������213
vii
About the Author
Radu Nicoara has worked in web development
for more than ten years. Being self-taught,
he knows how difficult it is to know what to
study and what practical knowledge you need
to get started. Because of this, he has spent
the past five years organizing and teaching
programming courses in Berlin, where he lives
and works as a senior web engineer.
ix
About the Technical Reviewer
Kenneth Fukizi is a software engineer,
architect, and consultant with experience in
coding on different platforms internationally.
Prior to dedicated software development, he
worked as a lecturer for a year and was the
head of IT at different organizations. He has
domain experience working with technology
for companies in a wide variety of sectors.
When he’s not working, he likes reading up
on emerging technologies and strives to be an
active member of the software community.
xi
CHAPTER 1
Introduction
Welcome to your journey into the world of web development! Since you
picked up this book, you must have some interest in the domain. That
means that you most likely have what it takes to take your first steps in the
fascinating world of programming. This chapter starts with an exploration
of what web development is, how it works, and how you can be a part of it.
I wrote this book to explain all the things that I wished I knew before I
started along the path of changing my career to web development. There
were a lot of ups and downs and hiccups along the way, but to this day
I enjoy the process and am constantly learning something new. And I
sincerely hope you will as well.
4
Chapter 1 Introduction
Common Misconceptions
There are a lot of things that people get wrong about programming in
general, and they revolve mostly around what a programming career
actually means. That is, what you actually do at work.
You must be a whiz at math. In fact, you do not need to be good at
math in order to be a good programmer. I myself was pretty terrible at
math, especially the more complex parts of mathematics, like calculus. You
do not need those things. The only important part is that you can think
logically.
Then, despite what many might say, programming is not boring
and it does not require you to sit in front of a screen all day. In order to
be a good programmer, maybe you just need to code. But to be a great
programmer, you need to build systems that people actually enjoy using
and find valuable. That by definition involves a lot of discussions with user
focus groups, collaboration, and generally being open and talking to other
people. Only this way can you be of great value to your project and your
company. If you do not enjoy talking to people, a programming career will
still fit you, but the extent of how far it can go, and how productive you can
become in it, will unfortunately be limited. You can’t hide in the backroom
and ignore everyone. You need your team’s help, and they need yours.
5
Chapter 1 Introduction
That being said, of course, you will spend a lot of time with your
headphones on, focusing on your task, as well as a lot of time working
from home and doing your job. But in order to be great, you need a decent
amount of soft skills and a healthy inclination toward human interaction.
On another note, you also do not need to memorize all the commands,
and you definitely don’t need to know everything by heart. Nobody does.
The main characteristic that makes you a developer is being able to split
complex tasks into simple structures, which you then put into if/else
statements and for loops. An example of such a logic structure, written in
plain English, is: If the user’s account is disabled, reject the login process.
Or: To each user in the database, send an email.
Imagine programming a piece of code that instructs a car to drive. You
have access to a machine that can only understand left, right, accelerate,
and break. With those four simple commands, you can take a round-the-
world trip. It is the same with when an app. You just need to know the basic
commands.
You are too old/young for this. There is no age that makes you any
better or any worse at programming. This is not sports. As long as you
have some soft skills, and you can learn a bit of coding, you are needed in
the market. That is regardless of your age, sex, religion, or anything else. I
would argue that programming is one of the most inclusive career paths,
because at the end of the day, all that matters is how good your code is,
and how much it helps your end users do the things that they want to do.
You need a degree in computer science. There is also a great need
for people who have studied other fields. You don’t need to get another
degree. Programming in itself is only a means to an end. At the end of
the day, you will build software that some people will need to perform
their jobs and hopefully will also find useful and intuitive. If you have
knowledge and experience in the field that you are building software
for, you will be almost irreplaceable. I once worked with a young lady
who, before switching to IT, worked in Human Resources. Since we were
6
Chapter 1 Introduction
building software exactly for this purpose, she quickly became the go-to
person on the project, and the most knowledgeable among us all. So the
more diverse your experience is, the more you can help.
The Downsides
Since I have talked about the interesting parts of the job, and the common
misconceptions, it’s only right to discuss the potential negative sides of a
programming career as well.
You will always have to learn. Programming is one of those jobs where
it is very easy to get stuck out of the loop. There are always new languages,
new frameworks, and new ways of doing things. I would say that every
two-three years you will change one of the ways in which you are working.
Whether that is the frontend, the backend, the architecture of your app, or
where and how you are deploying, programming means always staying on
top of the wave. That might get tiring at times and can have the potential to
erode your self-confidence.
This also means that you will always find somebody who is better than
you. This comparison applies to everyone in the field. IT is such a large
domain, that there cannot be a single person who knows everything.
You most likely still need some degree. Although it is not absolutely
required, web development is one of those jobs where having a degree
will open many doors for you. But the up side is, as mentioned, you do
not necessarily need to have one in computer science in order to be a
top candidate. A degree in any STEM (Science, Technology, Engineering,
Mathematics) field is usually just as good, and a degree in a more
humanistic domain will still be an advantage. And yes, it is true that you
can still be successful even without a degree. But having one will make
things significantly easier.
7
Chapter 1 Introduction
8
Chapter 1 Introduction
9
Chapter 1 Introduction
Other than that, don’t be afraid to try new things. We are all beginners
in something, when it comes to life in general, and programming is no
different. Every couple of years, technologies tend to change, and better
ways of doing things emerge. Therefore, all of us, no matter how senior we
are, have to learn new concepts and new languages. What makes things
easy is that all of these languages are made by humans, for humans. So if
they did a good job on their side, it is pretty easy to get the hang of things.
Other than the right attitude, to follow this book, you need:
That is pretty much it. For most of these installations, just follow the
Next ➤ Next pattern, but if you hit any snags, a quick text search on your
favorite engine will solve most of your issues.
10
Chapter 1 Introduction
11
Chapter 1 Introduction
I do not mean to trivialize the type of requests that you will receive,
but these examples show you the types of tasks to expect at work. Of
course, the more experience you gain, the more you will be included in the
business discussions.
The purpose of this book is simply to familiarize you with the various
building blocks that will enable you to build what you need.
12
Chapter 1 Introduction
13
Chapter 1 Introduction
About once or twice a year I stumble upon an error that I cannot find
on Stack Overflow. This leaves me with two options: either I try to fix it
myself, or I post a question on Stack Overflow and wait for someone to
help me. But bumping into a new error is highly unlikely, especially at
the beginning of your career. Feel absolutely free to search away. The best
programmers are also the best online searchers.
14
Front End Back End Database (SQL)
HTTP Request
Browser Server Back-end service
(PHP, Java)
HTML Response
Integrations (API)
JavaScript
15
Introduction
Chapter 1 Introduction
Basically, every time that you want to access a web page, you open
your browser and type in the address that you want to visit. This will make
your browser access the server registered for that web address and perform
a so-called handshake. Then the server will take your request, bundle all
the data being sent together by your computer (such as the full URL path,
form data, your cookies, etc.) and decide based on all of these, what needs
to be done with your request.
Once the request is in the hands of the server, it will usually be handled
by the so-called backend. This is the service that is built in order to interact
with the user, usually written in a programming language like PHP, Java,
Python, and so on. If it is the case, this service will then access the database
to retrieve or store additional data (usernames and passwords) or will try
to communicate with other backend services like Google or PayPal using
the APIs provided by the vendors.
Once the backend service has finished processing your request, it will
pack everything up, usually inside an HTML response, and serve it back to
your browser. This includes the data that was requested, as well as the data
needed for display, such as styles, images, and scripts, which your browser
needs to run on your device in order to interact with you.
These scripts are almost exclusively written in JavaScript, and they
contain logic. For example, when a user clicks the Messages button, they
open a popup window and ask the server to display the latest messages for
this user.
16
Chapter 1 Introduction
<html>
<head>
<title>CRM Website</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<h1>My Website Header</h1>
</body>
</html>
Once your system loads the HTML, it will execute the next layer, which
is CSS (Cascading Style Sheets), and which holds data about how the web
page should look. This contains properties such as distances between
elements, colors, backgrounds, and so on. For example, the following code
affects all elements with the custom_element class, but you will learn more
about this in the next chapter.
.custom_element {
background-color: black;
}
However, arguably the most important layer is the logic layer itself,
which is JavaScript. It was initially built in plain JavaScript, and it was
later extended by a library called jQuery, which quickly took over as the
preferred way to develop frontend logic. The jQuery library contained a
number of prewritten functions such as hiding and showing elements,
and sending forms. Now, the most commonly used library is React, which
was initially developed by the Facebook team, and which you will learn in
this book. This framework uses JavaScript to monitor the current state of
17
Chapter 1 Introduction
the page being displayed, and once a certain trigger is activated (such as a
new notification, clicking a button, or new data coming from the server),
it calculates the easiest way to display the changes, without modifying the
entire web page.
The logic layer is responsible for all of the logic inside your page. For
example, going behind the scenes to the server and gathering data in such
a manner that your page does not need to refresh in order to show the
latest data.
The most important part of the JavaScript layer is that it can generate
the other two layers (HTML and CSS) dynamically. That means that within
the execution of your web page on your browser, different parts of the web
page being displayed by your browser will change, appear, or disappear.
Having these abilities led to the one-page applications (also known
as single-page applications or SPAs) that we currently see all over the
Internet. The following code combines HTML and JavaScript:
The backend is everything that happens within the server. Once your
browser reaches out to the server, it will start to compile the data that you
want to send back to the browser. This mostly means fetching some HTML
and JS (JavaScript) pages and serving them, or providing plain data that it has
taken from the database and processed accordingly. This book uses Node.js
as the backend language, but, as I will discuss later, any other option is just as
good. This short code example allows you to connect to the database:
18
Chapter 1 Introduction
Now the question arises: once you finish building your backend, how
do you make it available to other people? Where do you deploy it? And
what is the cloud? In order to answer that, you need to take a trip 20 years
into the past, where if you wanted to host a web page, you would either
do it directly on your computer, or if you could afford it, you would buy a
dedicated computer (server) and keep it somewhere in your basement.
However, with time, it became clear that because of economies of scale,
it made a lot more sense to pay somebody a few bucks a month to go
through this hassle for you. We now have vendors that group thousands of
computers into a single building (called a data center) and sell access to
this gigantic network. This is called the cloud. It’s just basically somebody
else’s computer.
HTML Response
Browser Server
Data JS
CSS
19
Chapter 1 Introduction
HTML Response
Browser Server
CSS JS
The most relevant part of this type of architecture was easy to see when
Facebook changed the messaging system. Before, you needed to go to a
separate tab in order to access Messenger as a standalone application.
But around 2010 they started building Messenger as an integral part of the
experience, so that you could read posts and write comments while still
20
Chapter 1 Introduction
having the Messenger open inside the same page. This was all possible
because, behind the scenes, your browser can talk to the Facebook servers
without the need for you to refresh the page in order to see the latest
messages.
21
Chapter 1 Introduction
React 40.1%
jQuery 34.4%
Angular 23.0%
Vue.js 19.0%
As you can see in Figure 1-5, the backend is where everything changes.
Because the server is completely under control of the developer, the
programming languages that you can use are endless. However, the most
commonly used languages for the backend are PHP, JavaScript, Java,
and Python.
JavaScript 67.7%
Python 44.1%
Java 40.2%
PHP 26.2%
Go 8.8%
22
Chapter 1 Introduction
Summary
A web application is made up of multiple components. The “frontend”
represents everything that runs on the visitor’s device. That is the text
being displayed, and the way the user interacts with the data being sent
back and forth. The “backend” is represented by everything that happens
on the server. That is data manipulation and storage, authentication, and
processing.
As for the languages, they do not matter that much, but you will stick
with JavaScript in this book for the sake of simplicity and of learning
languages that are valuable in the market.
23
CHAPTER 2
SQL Basics
SQL is one of the most important languages when it comes to finding a
job. I have had multiple jobs where my day-to-day work involved writing
complex SQL scripts. So learning SQL means acquiring one of those skills
that takes time to master, but opens a large number of doors.
This chapter teaches you most of what you need to know about
SQL. It takes approximately 2-3 hours in total, but it should take you from
a full beginner to a mid-user level. I have been in charge of interviewing
potential candidates for SQL positions, and I will show you all that you
need to know in order to pass the technical tests.
Imagine you are building a new web app. When it comes to storing
data on your website long-term, you have to use a database. Imagine the
database as an Excel file, where you can use language to interact with the
data. SQL stands for Structured Query Language, and it is a standardized
way of manipulating and interacting with data. There are many types of
databases on the market, including MySQL, Oracle, and Microsoft’s SQL
Server. The difference between all of the offers is minimal in terms of day-
to-day use. In this project, you will use MySQL, as it is easy to install and
free to use.
SQL is a standard language, so anything that you learn about MySQL
will usually apply to any other database that you might use. MySQL
enables you to create tables, insert, update, and retrieve data, and delete
entries.
Note There are also non-SQL solutions that enable you to store
non-structured data. That means that the data being stored does
not need to adhere to a predefined structure, but instead it can hold
all types of objects, containing all types of fields. However, only
16 percent of applications use this approach, as opposed to the
79 percent that use SQL. This chapter focuses on the majority of
use cases.
Installing MySQL
MySQL comes in a bundle called XAMPP. You can download it from
apachefriends.org, and then you have to install the package. Once you
install it, the command interface will appear, where you need to start the
Apache and MySQL services, as shown in Figure 2-1.
28
Chapter 2 SQL Basics
Let’s look at what you see in the command interface, and what every
process that you start up does:
Once the services start, access the following URL from your browser:
http://localhost/phpmyadmin. This will bring up the UI, and from this
moment on, you can start learning SQL (see Figure 2-2).
29
Chapter 2 SQL Basics
30
Chapter 2 SQL Basics
After saving the database, the system will prompt you to start creating
tables. But before you do that, you need to create a logical data scheme for
your application. Based on that, you can create the database layer as well,
and then build the backend on top of it, and finally, the frontend.
With that in mind, this section starts with a general overview of the
types of fields you can choose for a table column. Here are the most
commonly-used ones:
• Text. You use this for long text data, like comments or
paragraphs. The upside of this type is that it can hold
a large amount of data, but the downside is that it is
difficult to search through, and as a result it should only
be used for storage.
31
Chapter 2 SQL Basics
Now that you have seen the most used data types, you have to adapt
them into your structure. Which begs the question—what kind of data
exactly do you want to save into your CRM system? This is exactly the point
where building the web application starts—by sketching the database and
the relationships.
I suggest that you start by having some customers—the companies
that you have contracts with. Then a few contacts will be linked to your
customers, to know exactly who to call if you need anything from one of
your customers. And finally, a place to store the users who will log into the
system, together with their data and their passwords.
This data scheme will look something like Figure 2-4.
You will have a list of users that can log in, then a list of customers, and
for each customer, a list of contacts. Also, a single contact can be assigned
to multiple customers, so this relationship goes both ways. One user
will be assigned one customer, but they will have access to see all of the
customers. Then you create a list of contacts, and then a page where you
can assign a customer to a contact.
Before you start, consider the following standards. These are highly-
used in the industry, and will make things clearer for other people using
your database. Those are as follows:
32
Chapter 2 SQL Basics
user customer
contact
customer_contact_join id – int(8), primary
customer_id - int(8) name – varchar(60)
contact_id - int(8) email – varchar(60)
phone - varchar(30)
createdDate – Datetime
33
Chapter 2 SQL Basics
34
Chapter 2 SQL Basics
You need to add the additional columns manually, as initially you only
have space for four of them. Or you can add them at a later point, from the
Structure tab.
Pay attention to the first column, where you need to select the
checkbox for A_I through which the column is identified as a primary
(unique) key, which also means it will auto increment. This will enable
the database to take care of the ID of each entity by auto-generating it and
checking that it is unique.
Note that the join table does not have a primary key, as it is defined by
the relationship between the two sets of data.
By the end of it, if you click the crm name on the left side of the
navigation, you should have a database looking like in Figure 2-7.
SQL Selects
You will first insert some data into the tables. In order to do that, just select
your tables and go to the Insert tab for each of them.
You need to leave the id column empty, but feel free to populate the
rest of the data. You will see that this will populate the data and generate
the SQL code that the app executes in order to insert the data into
the tables.
35
Chapter 2 SQL Basics
This is a good time to talk about quotes inside SQL. Note the `` back
quotes, which are used for table names and column names, and the ''
single straight quotes, which are used to represent string values. There
are also sometimes "" double quotes, which are used to assign aliases to
tables. You will learn about their functions a bit later.
Now examine the syntax of the previous script. It follows the general
syntax of an SQL query. You have an action that needs to be done, then the
table where this needs to be executed, and then the additional conditions
or values.
Now go to the SQL tab. From there, you can run your queries directly in
text format. Try this:
As you can see in Figure 2-8, the customer with the ID 1 will be
retrieved. That is the nice part about SQL. When you read a query, it is
relatively easy to understand what is happening.
36
Chapter 2 SQL Basics
But this brings us neatly to a question that might have already popped
into your mind. Is SQL case-sensitive? The answer is no. The code would
work in all caps, or all lowercase, and with or without the back quotes
around the table names.
However, the convention is to use CAPS for anything that has to do
with the SQL language, and use lowercase for anything that has to do with
your data. This just makes thing easier to understand.
In addition, the * (star) part tells the engine to select all columns.
For now, it wouldn’t make much of a difference if you only selected a
limited number of columns, but imagine that you have a table with 200
columns, out of which you extract 10,000 rows. The data transfer would get
overwhelming pretty quick.
Therefore, you can select only the columns you’re interested in with
this command:
As you can see in Figure 2-9, only the columns that you want have been
pulled out of the table.
37
Chapter 2 SQL Basics
Another skill you need to understand is how search within strings. You
can always write an SQL query like this, and it will work without any issues:
This will perform an exact match search, which in some cases might
be what you are looking for (such as when you’re searching for an email
address). However, an issue appears when you want to search for text
within the data of a column. For that, you need to use the syntax LIKE
instead of the = operator. It provides you with access to the % wildcard, as
follows.
This SELECT only pull out the customers whose names begin with the
letter V, as shown in Figure 2-10.
Similarly, you could write the following query, which searches the
customers for an address containing the country, Spain. You do not need
to select the column in order to query based on it.
This query
will return all of the customers whose addresses contain the word
Spain, at the beginning, the end, or in the middle of the string.
38
Chapter 2 SQL Basics
Homework
As homework, try to determine what the following queries will return:
Note that when using the AND and OR conditions in the same query, you
should use parentheses, in order to avoid unexpected behavior.
SQL Functions
Inside of an SQL query, you can operate different functions, in order to
retrieve more complex data. For example, imagine that your boss asks you
how many customers you have in the database. The following query will
return the number of rows from the table, shown in Figure 2-11.
As you can see, the name of the column is COUNT(*), which would not
help you a lot if you exported this data and give it to your boss. Therefore,
you can use an alias for the extracted column (see Figure 2-12):
39
Chapter 2 SQL Basics
This is indeed the place where you must use double quotes. Using
an alias simply makes your column easier to understand and a bit more
user-friendly. You don’t do this only for your users, but also for other
developers, if in a few years you (or someone else) have to go back over the
code and change something.
You can also use functions that sum up data, calculate an average
difference, and so on. For example, suppose you also stored the age of your
users inside the database. You could run the following query in order to
determine their median age:
Or, if you have a table with contracts, you could run this query to
retrieve all of your sales for 2022:
As you can see, writing SQL queries is not difficult at all. It takes a bit of
getting used to, that is true. But you will quickly be able to pull out data that
you need without even thinking twice about the code. That is the beauty of
SQL. If you can articulate it, you can put it in code just as easy.
40
Another Random Document on
Scribd Without Any Related Topics
Philips, John H., 12798, Pte., k. in a. 27.9.18
Pitman, Percy, 2972, Drummer, k. in a. 4.12.14
Plenderleith, David, 4978, Pte., k. in a. 9.1.15
Porter, George D., 4051, L.-Cpl., k. in a. 1.11.14
Power, John, 10035, Pte., d. of w. 27.9.16
Power, Martin, 10362, Pte., k. in a. 10.10.17
Power, Michael, 2260, Pte., k. in a. 17.2.15
Power, Michael, 10188, Pte., d. of w. 7.5.18
Power, William, 6043, Pte., d. of w. 17.6.16
Prendergast, Bartholomew, 8617, Pte., k. in a. 31.7.17
Proudfoot, Richard, 4296, Pte., k. in a. 15.3.17
Purcell, Stephen, 7526, Pte., d. of w. 29.3.18
Quigley, Samuel, 3631, L.-Cpl., k. in a. 15.9.16
Quinn, Charles, 11277, Pte., k. in a. 1.9.18
Quinn, John, 5408, Pte., k. in a. 23.10.15
Quinn, Joseph, 2885, Pte., k. in a. 1.11.14
Quinn, Michael, 1810, Pte., d. 24.2.19
Quinlan, Patrick J., 4687, L.-Cpl., k. in a. 8.10.15
Quirke, John, 10464, Pte., k. in a. 15.3.17
Rafferty, Daniel, 4799, Pte., k. in a. 5.2.15
Rafter, John, 3185, L.-Cpl., k. in a. 9.11.14
Raftery, Guy, 3763, Pte., d. of w. 22.5.15
Ralph, Michael, 3777, Pte., k. in a. 25.10.14
Rankin, Thomas, 805, Pte., k. in a. 1.11.14
Reardon, Edward, 2403, Pte., k. in a. 1.11.14
Reardon, James S., 6033, Pte., k. in a. 30.4.15
Redden, Patrick, 4860, Pte., k. in a. 11.9.16
Redmond, James, 6445, L.-Cpl., k. in a. 16.3.17
Regan, John, 11808, Pte., k. in a. 20.1.18
Reid, Albert, 5802, Pte., k. in a. 29.1.16
Reid, Joseph, 436, Pte., d. 20.2.15
Reilly, Francis, 3642, L.-Sgt., k. in a. 17.9.16
Reilly, James, 1068, Pte., k. in a. 8.10.15
Reilly, James, 5740, Pte., d. of w. 9.10.17
Reilly, John, 3754, Pte., k. in a. 31.7.17
Reilly, John, 4086, Pte., k. in a. 1.11.14
Reilly, John, 11007, Pte., d. of w. 9.10.17
Reilly, William, 2635, Sgt., k. in a. 4.8.17
Reynolds, John J., 2042, L.-Cpl., d. of w. 12.9.14
Reynolds, John, 4976, L.-Cpl., k. in a. 15.9.16
Richardson, Ernest, 551, C.S.M., k. in a. 1.9.14
Riordan, Jerom, 3728, Pte., d. of w. 1.11.14
Riordan, Maurice, 2618, Sgt., D.C.M. and bar, k. in a. 15.9.16
Riordan, Timothy, 6058, Pte., k. in a. 17.9.16
Ritchie, David, 5551, Pte., k. in a. 18.5.15
Roane, John, 5159, L.-Cpl., k. in a. 30.11.17
Roberts, Jonathan, 8695, L.-Cpl., k. in a. 15.9.16
Roberts, Patrick, 4398, Pte., k. in a. 1.11.14
Robinson, James, 1236, Pte., k. in a. 6.11.14
Roe, Joseph, 10534, Pte., d. of w. 24.8.16
Rogers, James, 5133, Pte., k. in a. 18.5.15
Rogers, John, 1448, Pte., k. in a. 6.11.14
Rogers, Patrick, 3048, Pte., k. in a. 14.9.14
Rogers, Thomas, 9424, Pte., k. in a. 15.9.16
Ronan, Daniel, 3799, Pte., d. 19.2.19
Rooker, Charles W. H., 9090, L.-Sgt., d. of w. 28.8.18
Rooney, Francis, 1521, Pte., k. in a. 6.11.14
Rooney, Thomas, 1703, d. 14.11.14
Rose, James, 2880, L.-Sgt., k. in a. 27.7.16
Rowlands, John, 2189, Pte., k. in a. 6.11.14
Roy, John, 5989, Pte., k. in a. 18.5.15
Ruane, Garrett, 3561, Pte., k. in a. 18.5.15
Ruffley, John, 7910, Pte., k. in a. 15.9.16
Russell, Gilbert W., 5449, L.-Cpl., d. of w. 21.3.17
Russell, Peter, 8677, Pte., k. in a. 17.9.16
Russell, Thomas, 3944, Pte., k. in a. 1.11.14
Ryall, Charles, 2105, Pte., k. in a. 13.9.17
Ryan, Edward, 3738, Pte., k. in a. 6.11.14
Ryan, Francis, 5590, Pte., k. in a. 8.8.15
Ryan, James, 12129, k. in a. 26.11.17
Ryan, John, 2698, Pte., k. in a. 16.9.14
Ryan, John, 3216, Pte., k. in a. 1.9.14
Ryan, John, 5382, Pte., d. 6.8.15
Ryan, Joseph, 5543, Pte., d. of w. 16.4.15
Ryan, Patrick, 3385, Pte., k. in a. 1.11.14
Ryan, Thomas, 3441, Pte., k. in a. 4.9.14
Ryan, William, 2594, Pte., k. in a. 18.5.15
Ryan, William, 5807, Pte., k. in a. 18.5.15
Ryan, William, 10592, Pte., k. in a. 9.10.17
Sales, John, 2261, Sgt., k. in a. 18.5.15
Salter, Peter, 3382, Pte., k. in a. 1.11.14
Sammons, Henry H., 12674, Pte., k. in a. 27.8.18
Sangster, William, 5005, Pte., k. in a. 15.7.15
Sargent, Robert, 5264, Pte., k. in a. 25.9.16
Saunders, John, 11944, Pte., k. in a. 27.9.18
Scally, Joseph, 3608, Sgt., k. in a. 9.10.17
Scally, Joseph, 5044, Pte., k. in a. 30.11.17
Scanlon, James, 10981, Pte., k. in a. 26.7.17
Scott, William, 10004, Pte., k. in a. 25.9.16
Scully, Michael, 4480, Pte., k. in a. 1.11.14
Sedge, Percy G., 12709, Pte., k. in a. 20.10.18
Sexton, Cornelius, 8512, Pte., d. of w. 23.7.16
Shanahan, William, 642, Pte., k. in a. 1.11.14
Sharp, John T. B., 12524, Pte., d. of w. 29.5.18
Shaw, William J., 10272, Pte., k. in a. 9.10.17
Shea, John, 4309, Pte., d. of w. 16.5.15
Sheehan, Michael, 12088, Pte., d. of w. 28.3.18
Sheehy, John, 11491, Pte., d. of w. 1.8.17
Sheppard, Robert, 1262, L.-Cpl., k. in a. 18.5.15
Sheridan, Nicholas J., 5090, Pte., d. of w. 13.4.15
Sheridan, Patrick, 7977, Pte., k. in a. 11.9.16
Sheridan, William, 5949, Pte., k. in a. 18.5.15
Sherlock, Mathew, 6042, Pte., k. in a. 3.8.15
Sherwood, William R., 3752, Pte., k. in a. 5.11.14
Sherry, Matthew, 5365, Pte., d. 17.6.18
Shields, Henry, 11615, Pte., k. in a. 27.5.18
Shields, Terence, 4517, Pte., k. in a. 1.11.14
Shotton, John, 12756, L.-Cpl., k. in a. 20.10.18
Simpson, Edward, 2025, Pte., k. in a. 1.11.14
Simpson, Robert, 2607, Pte., k. in a. 8.9.14
Singleton, Isaiah, 3400, L.-Cpl., k. in a. 1.11.14
Sloane, John, 1176, Pte., k. in a. 4.9.14
Slowey, Patrick, 1299, Pte., d. of w. 22.4.15
Smith, Benjamin J., 12603, Pte., k. in a. 27.9.18
Smith, John, 2213, Pte., k. in a. 1.11.14
Smith, Richard, 8837, L.-Cpl., k. in a. 17.9.16
Smyth, Gerald C., 4568, Pte., k. in a. 27.10.14
Smyth, John, 4231, Pte., k. in a. 6.11.14
Smyth, Patrick, 10655, Pte., k. in a. 1.12.17
Smyth, Samuel, 10068, Pte., k. in a. 24.9.16
Smythe, Albert, 4480, Pte., k. in a. 1.11.14
Snow, Joseph, 2778, L.-Sgt., k. in a. 26.9.16
Spillane, John, 6055, L.-Cpl., k. in a. 31.7.17
Sprowle, Robert, 3387, Pte., d. of w. 2.11.14
Spragg, William, 4951, Pte., k. in a. 26.3.18
Stanton, John, 11166, Pte., k. in a. 9.10.17
Starr, Denis, 3951, Pte., k. in a. 1.11.14
Stedman, William, 3872, Pte., d. 12.4.15
Steepe, William, 4438, Pte., k. in a. 1.2.15
Stiven, James, 11066, Pte., k. in a. 15.7.17
Stokes, John, 1778, Pte., d. of w. 19.5.15
Stokes, John, 1873, Pte., k. in a. 1.9.14
Streatfield, Walter T., 12909, Pte., M.M., k. in a. 21.10.18
Strickland, John F., 4988, L.-Cpl., k. in a. 1.2.15
Stuart, Eugene, 6092, Pte., d. of w. 10.12.15
Stuart, John, 3044, Pte., k. in a. 1.11.14
Styles, Albert, 5995, Pte., M.M., k. in a. 20.10.18
Sullivan, Cornelius, 4812, Pte., d. of w. 22.5.15
Sullivan, Edward J., 4921, Pte., k. in a. 12.3.15
Sullivan, John, 3749, Pte., d. of w. 28.7.15
Sullivan, John, 8646, Pte., d. of w. 8.10.18
Sullivan, Michael, 11906, Pte., d. of w. 5.12.17
Sullivan, Philip, 1903, L.-Cpl., k. in a. 1.11.14
Sullivan, William, 4783, L.-Sgt., k. in a. 25.9.16
Sutton, John, 1365, Pte., k. in a. 6.11.14
Swanton, Charles, 4098, Pte., d. of w. 17.4.16
Sweeney, Edward, 9471, Pte., d. of w. 16.3.17
Sweeney, John, 5013, Pte., k. in a. 12.10.15
Sweeney, John, 8120, Pte., M.M., k. in a. 9.10.17
Sweeney, Patrick, 6437, Pte., k. in a. 26.9.16
Sycamore, Ernest, 12525, Cpl., d. of w. 18.5.18
Synnott, James, 4677, Pte., k. in a. 23.3.15
Taaffe, John, 371, Pte., d. of w. 6.11.14
Taaffe, William, 5617, Pte., k. in a. 9.10.17
Taggart, Edward, 12451, Pte., k. in a. 19.8.18
Taylor, Daniel, 5994, Pte., d. of w. 3.8.15
Teanby, Harry, 1046, Pte., k. in a. 4.9.14
Tether, Arthur R. C., 12734, Pte., k. in a. 10.10.18
Thompson, James, 9551, Pte., k. in a. 23.2.17
Thorneycroft, John F., 12340, Pte., d. of w. 22.5.18
Thynne, Patrick, 3179, L.-Cpl., k. in a. 17.5.15
Tighe, Patrick, 5470, Pte., k. in a. 17.9.16
Timoney, James, 6556, Pte., k. in a. 3.9.17
Tobin, Francis, 12003, Pte., k. in a. 1.12.17
Tobin, Patrick, 1743, Pte., k. in a. 14.9.14
Togher, James, 6171, Pte., k. in a. 15.9.16
Toomey, William, 5769, Pte., k. in a. 18.5.15
Topping, John, 4164, Sgt., k. in a. 5.2.15
Townsend, Patrick, 4530, Pte., k. in a. 14.9.14
Tracey, William, 5148, Pte., k. in a. 25.2.15
Travers, William, 5521, L.-Sgt., k. in a. 15.3.17
Troy, James J., 3889, Pte., d. of w. 15.12.17
Tuohey, Michael, 11319, Pte., k. in a. 30.4.18
Tuohey, William, 4566, Pte., k. in a. 1.9.14
Tyrrell, Patrick, 9927, L.-Sgt., M.M., d. of w. 28.9.18
Underhill, Ernest J., 12685, Pte., k. in a. 27.8.18
Underwood, Harry, 12758, Pte., d. of w. 22.10.18
Vancroft, Evan, 2335, Pte., k. in a. 3.11.14
Walker, Alfred, 5958, Pte., d. of w. 28.5.15
Walker, Patrick, 6080, Pte., d. of w. 28.9.15
Walker, Thomas, 12569, Pte., k. in a. 26.3.18
Wallace, James F., 1575, L.-Cpl., k. in a. 25.10.14
Wallace, James, 1605, Pte., k. in a. 4.9.14
Wallace, Mark, 10425, Pte., d. of w. 31.3.18
Wallace, Patrick J., 8455, k. in a. 11.9.16
Walpole, George H., 12272, Pte., d. of w. 20.10.18
Walsh, Daniel, 3030, Pte., k. in a. 1.11.14
Walsh, Edward, 3409, Pte., k. in a. 18.11.14
Walsh, James, 4562, Pte., k. in a. 26.10.14
Walsh, Martin, 4572, Pte., k. in a. 1.11.14
Walsh, Nicholas, 10775, Pte., k. in a. 2.8.17
Walsh, Patrick, 10061, Pte., d. of w. 24.9.16
Walsh, Patrick J., 10900, Pte., k. in a. 26.7.17
Walsh, Richard, 4250, Pte., d. of w. 18.12.14
Walsh, Thomas, 7738, Pte., k. in a. 13.7.17
Walsh, William, 5901, Pte., k. in a. 15.9.16
Walsh, William, 9636, Pte., d. of w. 14.12.16
Walshe, Thomas, 9259, Pte., d. of w. 10.10.17
Warde, William, 2032, Pte., k. in a. 18.5.15
Warner, William, 5653, Sgt., d. of w. 1.12.17
Webb, Leonard, 3890, Pte., d. of w. 11.9.14
Wellspring, Owen, 5099, Sgt., k. in a. 2.8.17
Whelan, Edward, 12309, Pte., k. in a. 8.5.18
Whelan, John P., 5095, Pte., d. of w. 17.9.16
Whelan, Martin, 3323, Pte., d. of w. 20.1.15
Whelan, Richard, 6094, Pte., k. in a. 28.6.16
Whelan, Thomas, 5679, L.-Sgt., d. of w. 1.12.17
White, John, 2695, L.-Cpl., M.M., k. in a. 10.10.17
White, William, 8192, Pte., k. in a. 15.9.16
Whitty, John, 10942, Pte., k. in a. 9.10.17
Williams, John, 5464, Pte., k. in a. 6.10.15
Wilmott, William, 5524, Pte., k. in a. 26.3.16
Willoughby, Charles, 1729, Pte., k. in a. 18.5.15
Willoughby, Charles, 9266, Pte., k. in a. 17.6.16
Woods, Joseph H., 10221, Pte., k. in a. 23.2.17
Woods, Robert, 5990, Pte., k. in a. 17.9.16
Woodcock, Ernest E., 12571, Pte., d. of w. 30.3.18
Woodroffe, Robert, 3268, L.-Cpl., k. in a. 1.11.14
Woulfe, Michael, 2486, Pte., k. in a. 1.11.14
Wright, William, 988, Drummer, k. in a. 1.11.14
Wylie, Charles, 4188, Sgt., k. in a. 10.12.16
Wynee, Christopher, 10850, Pte., k. in a. 30.3.18
Wynne, John, 9611, Pte., k. in a. 12.9.17
Yates, Edward H., 11315, Pte., d. of w. 15.4.17
Young, Algernon A. L., 5116, L.-Cpl., d. of w. 22.2.15
Younge, Anthony, 4182, Pte., D.C.M., k. in a. 20.6.16
2 n d B ATTA L I O N I R I S H G UA R D S