100% found this document useful (1 vote)
13 views

How to be a Web Developer: A Complete Beginner's Guide on What to Know and Where to Start 1st Edition Radu Nicoara instant download

The document promotes a beginner's guide to web development by Radu Nicoara, which aims to teach essential skills for aspiring web developers. It emphasizes practical learning through building a Customer Relationship Manager application and addresses common misconceptions about programming careers. Additionally, it provides links to various related ebooks and resources for further exploration in the field of software development.

Uploaded by

wazirauhchu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
13 views

How to be a Web Developer: A Complete Beginner's Guide on What to Know and Where to Start 1st Edition Radu Nicoara instant download

The document promotes a beginner's guide to web development by Radu Nicoara, which aims to teach essential skills for aspiring web developers. It emphasizes practical learning through building a Customer Relationship Manager application and addresses common misconceptions about programming careers. Additionally, it provides links to various related ebooks and resources for further exploration in the field of software development.

Uploaded by

wazirauhchu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 82

Download the full version and explore a variety of ebooks

or textbooks at https://ebookmass.com

How to be a Web Developer: A Complete Beginner's


Guide on What to Know and Where to Start 1st
Edition Radu Nicoara

_____ Follow the link below to get your download now _____

https://ebookmass.com/product/how-to-be-a-web-developer-a-
complete-beginners-guide-on-what-to-know-and-where-to-
start-1st-edition-radu-nicoara-2/

Access ebookmass.com now to download high-quality


ebooks or textbooks
We have selected some products that you may be interested in
Click the link to download now or visit ebookmass.com
for more options!.

How to be a Web Developer: A Complete Beginner's Guide on


What to Know and Where to Start 1st Edition Radu Nicoara

https://ebookmass.com/product/how-to-be-a-web-developer-a-complete-
beginners-guide-on-what-to-know-and-where-to-start-1st-edition-radu-
nicoara/

A Friendly Guide to Software Development: What You Should


Know Without Being a Developer 1st Edition Leticia
Portella
https://ebookmass.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 Leticia Portella

https://ebookmass.com/product/a-friendly-guide-to-software-
development-what-you-should-know-without-being-a-developer-leticia-
portella/

How to Do Research: And How to Be a Researcher Robert


Stewart

https://ebookmass.com/product/how-to-do-research-and-how-to-be-a-
researcher-robert-stewart/
Vaccines: What Everyone Needs To Know 1st Edition Edition
Kristen A. Feemster

https://ebookmass.com/product/vaccines-what-everyone-needs-to-
know-1st-edition-edition-kristen-a-feemster/

Jihad: What Everyone Needs to Know: What Everyone Needs to


Know ® (What Everyone Needs To KnowRG) Asma Afsaruddin

https://ebookmass.com/product/jihad-what-everyone-needs-to-know-what-
everyone-needs-to-know-what-everyone-needs-to-knowrg-asma-afsaruddin/

How to Be a Genius : Your Brilliant Brain and How to Train


It, New Edition John Woodward

https://ebookmass.com/product/how-to-be-a-genius-your-brilliant-brain-
and-how-to-train-it-new-edition-john-woodward/

A Practical Guide to Autism: What Every Parent, Family


Member, and Teacher Needs to Know 2nd Edition Fred R.
Volkmar
https://ebookmass.com/product/a-practical-guide-to-autism-what-every-
parent-family-member-and-teacher-needs-to-know-2nd-edition-fred-r-
volkmar/

The Essential Entrepreneur: What It Takes To Start, Scale


And Sell A Successful Business 1st Edition Richard Turner

https://ebookmass.com/product/the-essential-entrepreneur-what-it-
takes-to-start-scale-and-sell-a-successful-business-1st-edition-
richard-turner/
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

ISBN 978-1-4842-9662-2 e-ISBN 978-1-4842-9663-9


https://doi.org/10.1007/978-1-4842-9663-9

© Radu Nicoara 2023

This work is subject to copyright. All rights are solely and exclusively
licensed by the Publisher, whether the whole or part of the material is
concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in
any other physical way, and transmission or information storage and
retrieval, electronic adaptation, computer software, or by similar or
dissimilar methodology now known or hereafter developed.

The use of general descriptive names, registered names, trademarks,


service marks, etc. in this publication does not imply, even in the
absence of a specific statement, that such names are exempt from the
relevant protective laws and regulations and therefore free for general
use.

The publisher, the authors, and the editors are safe to assume that the
advice and information in this book are believed to be true and accurate
at the date of publication. Neither the publisher nor the authors or the
editors give a warranty, expressed or implied, with respect to the
material contained herein or for any errors or omissions that may have
been made. The publisher remains neutral with regard to jurisdictional
claims in published maps and institutional affiliations.

This Apress imprint is published by the registered company APress


Media, LLC, part of Springer Nature.
The registered company address is: 1 New York Plaza, New York, NY
10004, U.S.A.
Any source code or other supplementary material referenced by the
author in this book is available to readers on GitHub
(https://github.com/Apress). For more detailed information, please
visit https://www.apress.com/gp/services/source-code.
Table of Contents
Part I: Getting Started
Chapter 1:​Introduction
The Purpose of the Book
Why Would You Want to Code?​
Common Misconceptions
The Downsides
Why Listen to Me?​
What Will You Need?​
What Is Web Development?​
What You Will Do at Work
What Is the Proper Attitude?​Impostor Syndrome
How to Find the Things That You Need
How Does a Web Application Work?​
Frontend, Backend, and the Cloud
Classic Websites vs Single Page Applications
The Talk About Programming Languages
Summary
Part II: The Tech Stack
Chapter 2:​SQL Basics
Installing MySQL
Database Structure and Creation
SQL Selects
Homework
SQL Functions
SQL Joins
Indexes
Homework (5-15 Mins)
Summary
Chapter 3:​HTML and CSS
HTML
CSS
Bootstrap
Homework
Summary
Chapter 4:​GraphQL and JavaScript
GraphQL
JavaScript
Functional Programming
Constants and Variables
Functions
Shorthand if Statements
Arrays
Destructuring and Spread
Promises
Summary
Chapter 5:​The Backend
The Setup (Optional)
Homework
Your First Query
Setting Up the ORM
Homework
Your First Mutation
Homework
Summary
Chapter 6:​The Frontend
The Figma UX/​UI
The Setup
The Static Page
Creating the Popup
Homework (30-40 Min)
Creating React Components
Homework (10 Min)
Linking the Backend and the Frontend Using Apollo
Using Mutations to Create a Customer
Homework
Summary
Chapter 7:​Going Fullstack
The Design Ticket
The New Feature Ticket
Homework
Summary
Chapter 8:​Automated Testing
Testing Concepts
Unit Testing
Test Driven Development
Integration Tests
End-to-End Testing
Homework
Summary
Chapter 9:​Other Frameworks and Technologies
Creating a Login System
Login Systems
Cookies
MD5
Other Technologies You Should Know About
Open Source
GIT
Azure/​Amazon Cloud Providers
Docker
NoSQL
JIRA
WordPress
Summary
Part III: Landing Your First Role
Chapter 10:​Your First Job
Creating a Portfolio
Networking and Volunteering
Freelancing
Writing a Good Resume
Finding and Applying for a Job
Interviews
Summary
Chapter 11:​Working on a Team
Team Structure
The Lifecycle of a Feature
How You Develop
Summary
Chapter 12:​Project Management Methods
The Agile Methodology
Summary
Part IV: In Summary
Chapter 13:​Conclusions
References
Index
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.
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.
Part I
Getting Started
© The Author(s), under exclusive license to APress Media, LLC, part of Springer
Nature 2023
R. Nicoara, How to be a Web Developer
https://doi.org/10.1007/978-1-4842-9663-9_1

1. Introduction
Radu Nicoara1
(1) Berlin, Germany

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.

The Purpose of the Book


This book is written for absolute beginners in the realm of web
development. I plan to teach you about all the essential skills needed
for modern-day web development, the way that it is set up in the
largest and most established companies. What I want to do in this book
is take you from a full beginner and teach you the skills needed to begin
your first week as a newly hired web developer. That means showing
you the ins and outs of the various skills needed for software
developers to be good at their jobs. These skills are, of course, how to
code, where to start, and how to think, but also what to do when you
are stuck, the way that development teams work, and the various
terminologies and technologies used in modern-day web development.
The main plan is that you’ll learn to build a Customer Relationship
Manager (CRM) application using a modern technology stack. This is an
application in which you store contact data about your customers, and
some data about the contracts that you have with them.
Building this app will enable you to learn about the topics in
context, so that you can avoid having to learn abstract concepts, which
are difficult to understand without a concrete example. Going into web
development myself, I often found the topics confusing and honestly a
bit boring, just to have it all cleared up when I started actually
implementing them. Therefore, this book takes a bit of a reverse
approach, where you’ll implement concepts while you learn them.
But of course, feel free to adapt the project to whatever you feel like
doing. Hopefully, by the end of the book, you will have a fully working
program, and enough knowledge to be able to start some other
personal projects that you have, or even start applying for jobs.

Why Would You Want to Code?


Coding is a tool that can be used as is, or it can help you get better
results at whatever else you have a passion for. Imagine programming
as a life skill. Similar, for example, to knowing a foreign language or
knowing how to drive. You can continue doing other things in life, but a
lot more doors open along the way when you have the right skillset.
Plus, coding has the added benefit of always being able to offer you a
well-paying job. Most of the time it is enough to leave your CV privacy
set to public in order to start receiving job offers.
The most important part for me is the following: I wrote this book
as an overview about what web development is, and as an introduction
to the career that I chose. It is a guided tour into what coding is and
what it requires. The main purpose of the book, however, is for you to
have fun and learn some new things.
I condense three years of computer science courses into a single
book, so I do skip a number of steps. Feel free to research them on your
own time while reading this book, if they spark your curiosity. What I
aim to do by the end of our time together is bring you to a level where
you are good enough to start developing web applications on your own.
I started the same way. Just with an overview, and then slowly I got
deeper and deeper into various topics. That helped me take my first
steps and build my first websites. But one thing I noticed in the
beginning was that I had a lot of misconceptions about what a
programming job actually entailed. The next section takes a brief look
at these misconceptions.

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.
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 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.
Staying on the topic of hiring, although there is a large amount of
open positions in the field, there is also a lot of competition. Maybe not
as much as in other fields, like music or HR, but you definitely won’t be
able to simply march into an interview from your first job application.
You will still need a bit of patience to find a nice job. This, however,
tends to be less of a problem as you progress throughout your career.
After having six-seven years of experience, you will find that you don’t
even need to apply, as you will get unsolicited job offers on a regular
basis.
There are no guarantees. Just because you get into a domain like IT,
or no matter the specialty that you choose, there is no guarantee that
you will automatically earn a good salary, or that you will always find a
remote job. It might be significantly easier, but you will still have to
fight for it. There is also no certification, no degree, and no credentials
that will guarantee a job. You need to be prepared to send about 100
job applications, and go through at least 10 interviews, before you get
an offer. If this happens, just know that you are not doing anything
wrong. You are simply competing against a large number of people. And
the better the job, the bigger the competition. Including the
international one.
You will probably need to start small. Whether that is working in a
startup, or starting from the first level, you will be a junior for a few
years. That might be a bit frustrating, especially if you are switching
careers from a domain where you are already relatively established. I
discuss this a bit more in the later chapters, but you will most likely not
be starting directly into a well-paid job.
I do not want to discourage you in any way by saying this. I just
want to set realistic expectations about the current state of affairs in
the IT job market. If you manage to get through the rough part, you will
find that at the end you will have a fun, well paid career, with good
prospects into the future. This book is written to guide you along the
way.

Why Listen to Me?


I was first exposed to programming in college, out of a curiosity that I
had. I wanted to know how passwords were stored, so that when I
come back to a website, they remembered me. I started learning more
and more about it on YouTube and created some fun websites. This lead
later to an offer to work as a web developer full time. It was the first
time that it had crossed my mind that such a job existed. At that job is
where I learned all the programming concepts in a more serious
manner.
However, the one thing that I lacked was structure. As a result, I
ended up learning a lot more things than were necessary in order to do
my job. This of course, over time, helped me become a better and more
knowledgeable developer. But I wished that I had somebody to show
me what was worth learning and what not, so that I could get to where I
wanted to go faster.
In the meantime, I have gathered more than 12 years of experience
in the domain of web development, and as a result, I decided to write
this book. It’s a guide about what is worth your while learning, and
what you can skip until you get more experience. You might end up
loving programming, or you just might not understand what the fuss is
all about. All that I want from you is that you give it an honest try. The
best thing you can do in life is explore new things.

What Will You Need?


The most important thing that you need in order to start developing is
your curiosity. Since you decided to pick up this book, you already have
crossed this particular milestone. Along the years, you will keep
encountering new technologies, new ways of doing things, and new
frameworks. Curiosity about them will keep you motivated to stay up to
speed.
There is a saying that development is about slowly failing at your
task until it finally works. So besides curiosity, patience to not give up is
another important virtue.
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:
A computer with Internet access. It does not have to be a good
computer—an old laptop will do just fine. But the Internet
connection is a must.
Install VSCode. This is a free text editor that you can download from
code.visualstudio.com.
Install Node.js from nodejs.org. This will be your main way of
interacting with the code.
Install XAMPP from apachefriends.org. You need this for the
database layer.
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.
What Is Web Development?
This section looks at what exactly web development is. It covers the
parts of a web application and explains how it is set up and developed.
That means how everything works, as well as what you need to do as a
developer to get there. In addition to this, this section discusses what a
web developer job involves.

What You Will Do at Work


This section starts by covering what exactly a programmer does at
work, so that you have a better idea what to expect if you choose to go
down this path.
As the name suggests, web development means creating web
applications. The most difficult part of this process is the initial setup. I
estimate that 60 percent of the hard work goes into a project even
before you have your first response on a web page. After that, you have
a working example of a feature, which you generally can just copy from.
The initial setup is also sometimes called POC (proof of concept),
meaning that you get everything to work just enough so that you can
have a small demo. From this point, you start setting up your entire
web application. Because of this, the initial setup is usually done by
people with a bit more experience, since it is a relatively difficult step.
I will, of course, go through setting up everything in the book’s
project and explain how all the pieces fit together. But in a corporate
environment, in the vast majority of the cases, these parts will already
be set up. This means that the most common requests that reach your
team look like this:
We need to create a way for our users to leave comments.
We need additional fields in our online form.
Just as we save data on page X about our customers, we need a Y
page to save data about our suppliers.
When I click this, I want this other thing to pop up.
After I save my data, I want to get a notification that lets me know if
the operation was successful.
Write a test that checks if this user has access to this part of the app.
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.

What Is the Proper Attitude? Impostor Syndrome


Programming is at the same time a relatively easy endeavor and a
relatively difficult task. I know this sounds contradictory, but it is true.
This means that, on the one hand, you can easily get into programming
and start building things on your own, but on the other hand, nobody is
an expert at anything.
You will begin a project, figure out that you don’t even know where
to start with a certain thing, begin searching for solutions, try a couple
until it works, and then 15 minutes later, you will have to start Googling
all over again.
Even after all of these years, I still would have significant difficulties
doing any work without searching for even the most trivial of examples
every five minutes.
For that reason, I want to convince you of the following points:
Trust yourself. Just like long distance running, the key is not to give
up, but to go at your own pace. As long as you are ambitious enough
to go through a page of search results and continue searching, you
are more than half the way through to becoming a programmer.
Don’t compare your speed with other people’s. We all are good at
different things, and it is exactly this diversity that makes our teams
strong and resilient. Everyone will feel like an impostor sometimes.
From beginners working in a startup, to senior engineers working at
well established companies, we all sometimes doubt ourselves. Just
keep on going and have fun doing it.

How to Find the Things That You Need


Searching for what you need is the most important part of being a
programmer. There is no one person who knows everything by heart,
for the simple fact that languages and frameworks keep changing and
evolving. That is why a good searching ability is an integral part of your
day-to-day job. Although most of it involves simply searching around
the web, here are some tips on how to do it better:
If your questions are about a certain programming language, or how
to correctly use any type of operation within it, try
W3Schools.com. I personally use it relatively often, and I have to
say that it is one of the best refreshers or crash courses into any
language, be it PHP, HTML, JavaScript, or React. In fact, I advise you to
look at this website either way, as it is a great resource for learning.
If you have general questions about how to implement a feature, how
the setup should be done, where to put your files, or how to start
your project, try reading the documentation of the language or the
framework that you chose. Out of all the technologies that you’ll use
in this book, React’s documentation is pretty much on point, easy to
follow, and also easy to understand.
If you have a specific question or find a specific error, simply Google
the error that you receive. Searches like: “Error: cannot cast string to
integer” or “How to parse an array in JavaScript” will most likely take
you to Stack Overflow, probably the world’s biggest online
programming community. In my day-to-day job, I perform searches
like these at least ten times a day.
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.

How Does a Web Application Work?


There is a certain procedure that each web page needs to follow, in
order for the data to be transferred from the server to your device and
displayed properly. Figure 1-1 shows a small schematic on how a
normal web page loads.
Figure 1-1 A general web application architecture
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.

Frontend, Backend, and the Cloud


The frontend is the entire bundle of processes that happen in your
browser once the data has been provided by the server. The first layer
being served is HTML (HyperText Markup Language), which contains
the unformatted data inside your web page, and additionally all the
links to the scripts that are required for proper rendering. Imagine this
layer as the data included inside a Word document. It mostly contains
paragraphs, headers, lists, and various links to images, scripts, and
other pages. An example of HTML website code is the following:

<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 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:

// this button will be hidden once you click it


<input type="button" onclick="this.hidden=true"
value="Click to hide"/>

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:

// Connect to the database and pull all customers


import DataBaseConnection from "settings";
const connection = new DataBaseConnection();
const customers = await
connection.manager.find(Customer);
connection.close();
return customers;
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.

Classic Websites vs Single Page Applications


Until about 2010, a web application worked in the following way: you
would go to the landing page of a website, and your browser would
reach the server. The server would then generate a custom web page
already filled in with all of your data and provide it to you (see Figure 1-
2). If you, for example, clicked a link to see your customer’s details, your
browser would navigate away into a new page and the process would
repeat itself.

Figure 1-2 A classic web request

The disadvantage of this approach is that you always had to


navigate away from your web page in order to load data. This could
become a problem, for example, if you were already filling in a data
form to submit to a different department, but you were just missing just
one piece of data. In such an architecture, your best bet was to open a
new tab and start searching for what you needed.
Now you can use the single page application. You now send an initial
browser request to the server, but will receive an empty page. This page
contains the basic skeleton of your web application, which will start to
get rendered. The major difference is where the data comes from. It is
loaded into separate AJAX (Asynchronous JavaScript and XML) calls,
which load your data one by one. Once the data comes back from the
server, the HTML code being rendered by your web page changes
dynamically. This, of course, means that you can have pseudo-separate
pages of your application working in parallel in the same web browser.
Figure 1-3 contains a small schematic of such an application.

Figure 1-3 The schematic of a single page application

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 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.

The Talk About Programming Languages


You will rarely find people to be more opinionated than developers
when they talk about programming languages. This section discusses
them as well, to see what all the fuss is about.
First of all, how different are all these languages? Well, not very
different at all. The most difficult part of programing is learning your
first language, because that is when you learn about data structures,
classes, algorithms, loops, and so on. After that point, switching to a
new programming language is pretty easy and can reasonably be
achieved within a few days.
For the frontend, you do not have a choice in languages, but you do
have a choice in frameworks. HTML, CSS, and JavaScript are the only
standardized way to interact with all of the possible browsers, so you’ll
use these languages as they are. However, for CSS one of the most used
frameworks is Bootstrap, which offers you a set of prebuilt components
and styles, like menus, image formatting, alerts, and so on.
For JavaScript, up until a few years ago, jQuery was the most
commonly used framework, being very well attuned to creating static
pages with some internal functionality. However, because of its lacking
support for single page applications, its popularity has waned. Most
new websites are built in React, a framework used by companies like
Facebook, Netflix, Dropbox, and Reddit, to name a few. The advantage of
React is that it is a powerful framework that enables you to easily build
and reuse big chunks of your code. The downside however is that it is
notoriously difficult to learn. Alternatives are Vue.js and Angular, but
they all use similar logic. See Figure 1-4.

Figure 1-4 Current use of frontend frameworks [1]

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.

Figure 1-5 Current backend language use. Some projects contain multiple
languages [2]
The most popular backend language at the moment is JavaScript,
and you have to use JavaScript for the frontend either way. Since you
already have to know it, why not use it for your backend as well?
That being said, you will use JavaScript for this project of creating a
Customer Relationship Management system, both for the frontend and
the backend. For the frontend, you will use React, as it is the most
popular platform by far, and for backend, you will use Node.js, which is
the server-side framework for JavaScript, for the same reason.

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.
Part II
The Tech Stack
© The Author(s), under exclusive license to APress Media, LLC, part of Springer
Nature 2023
R. Nicoara, How to be a Web Developer
https://doi.org/10.1007/978-1-4842-9663-9_2

2. SQL Basics
Radu Nicoara1
(1) Berlin, Germany

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.

One powerful resource for this module that I recommend is


w3schools.com/sql, where you can find the vast majority of the
resources that I talk about here, in a simple and condensed form. I have
already mentioned this website, and it is for a good reason. It is an
excellent resource for brushing up on your skills in any language.

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.
Figure 2-1 Admin command interface of XAMPP
Let’s look at what you see in the command interface, and what every
process that you start up does:
Apache is a web server that enables you to interact with the
database using a user interface (UI). It basically compiles HTML and
PHP code and provides it to the web browser. If you were to learn
PHP, you would do it using the Apache service as well.
MySQL is a service that runs in the background. It listens on port
3306 on your computer (this will matter later), and you can normally
interact with it using the command line. But since that is really
cumbersome, you will be using the UI in these examples.
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).

Figure 2-2 UI of phpMyAdmin tool

Database Structure and Creation


First start with the concept of a database itself. What is a database? In a
fundamental way, a database is simply a collection of tables. The reason
that people organize tables in databases, and not just lay them around,
is the same reason they put files into folders. It brings structure to the
entire project, enables hosting multiple apps on a single server,
facilitates the split of access, and it also avoids issues with conflicting
names.
Now create a new database called CRM. In order to do that, just go to
the Database tab, as shown in Figure 2-3, and create a new one.

Figure 2-3 Location of the Database tab in the phpMyAmin UI

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:
Integer. This holds whole numbers like 1,2,3… It is also the default
used for the ID that each entity receives, as it can be auto-
incremented.
Varchar. A variable character is the data type you use for short
strings like email addresses, passwords, and names.
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.
Date and DateTime. This is data that you use for events, like
creation date, last login, and so on.
Boolean. This holds data of type true or false, and is mostly used
for status checks, such as whether a user was deleted.
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.

Figure 2-4 Tables in the database

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:
Table names should always be singular. So use customer instead of
customers.
Do not use spaces or dots in names. Either use underscores _ to
reference other tables or simply camelCase.
Every table should have a column that is an ID, auto-incremented, to
be used as the unique identifier.
Every column that links from the current entity into another one
should have a name that follows this pattern:
TableName_ColumnName
The length of the column should be as small as you can reasonably
expect it to be.
That brings you to the structure defined in Figure 2-5.

Figure 2-5 Table structure and content

Relationships in data structures are of two types: one-to-many


(1:M), or many-to-many (M:M). This is also called cardinality. In this
case, you have a 1:M relationship between customers (1) and users (M),
so that means that each user is assigned only one customer, but each
customer has multiple users. Therefore, in the user table, you write
the ID of the customer that it belongs to by using the customer_id
column as a foreign key to note the ID of the customer that it is
attributed to.
However, a many-to-many relationship cannot be saved into the
database directly by using a foreign key, as that can only store one
relationship. A many-to-many relationship can only be achieved
through a secondary table, also called a pivot table. This table only
holds the data regarding the relationship between the two tables, which
is customer and contact in this example. Note how the tables are
named with singular nouns.
Now you can create the tables. Go to
http://localhost/phpmyadmin again and open the crm
database to create the first table. Your screen should now look similar
to what you see in Figure 2-6.

Figure 2-6 Creating a table in phpMyAdmin

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.

Figure 2-7 Result of table creation

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.

INSERT INTO `customer` (`id`, `name`, `address`,


`dateCreated`) VALUES
(NULL, 'Volkswagen', 'Germany', '2022-02-07
21:29:20),
(NULL, 'Volvo', 'Sweden', '2022-02-07 21:29:20);

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:

SELECT * FROM customer WHERE id=1

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.

Figure 2-8 Result of a SELECT statement

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:

SELECT id, name FROM customer WHERE id<5

As you can see in Figure 2-9, only the columns that you want have
been pulled out of the table.

Figure 2-9 Result of a SELECT with a WHERE clause

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:

SELECT id, name FROM customer WHERE name='Seat'

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.

SELECT id, name FROM customer WHERE name LIKE 'V%'


This SELECT only pull out the customers whose names begin with
the letter V, as shown in Figure 2-10.

Figure 2-10 Result of the SELECT with a wildcard

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

SELECT id, name FROM customer WHERE address LIKE


'%Spain%'

will return all of the customers whose addresses contain the word
Spain, at the beginning, the end, or in the middle of the string.

Homework
As homework, try to determine what the following queries will return:

SELECT * FROM customer WHERE id BETWEEN 1 AND 10;


SELECT * FROM customer WHERE id = 1 OR id > 10;
SELECT * FROM customer WHERE name LIKE 'BMW%' AND
(id = 1 OR id > 10);
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.

SELECT COUNT(*) FROM customer

Figure 2-11 Result of a count function

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):

SELECT COUNT(*) AS "Total Customers" FROM customer

Figure 2-12 Result of a count with an alias


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:

SELECT AVG(age) AS "Average Age" FROM user

Or, if you have a table with contracts, you could run this query to
retrieve all of your sales for 2022:

SELECT SUM(total_billed) AS "Annual Sales" FROM


contracts WHERE date BETWEEN '01-Jan-2022' AND
'31-Dec-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.

SQL Joins
This might be the most complicated problem of SQL, and the part that
most people have issues understanding. Imagine you have the following
problem: You have a number of users, and each user is assigned to a
certain customer. Holidays are coming, so you ask user to send a letter
to the customer to whom they are assigned. This means that you need
to pull a list of all the users, together with the addresses of their
assigned customers.
In order to do that, you need to do a JOIN operation. This is a way
in which you can pull related data from two different tables at the same
time. First of all, you need to understand the types of joins, which are
illustrated in Figure 2-13.
Figure 2-13 Different types of joins
The type of join basically represents the relationship between data
that is getting get pulled, and also explains which data should get
excluded in the selection. The large majority of joins are LEFT JOINS,
so if you ever don’t know which one to use, try a LEFT JOIN first.
Now for the syntax. You start with a simple SELECT statement from
the base table, and then you join into the second table, by explaining
the condition between the two tables. Therefore, the join will look like
this:

SELECT * FROM
TABLE_1 LEFT JOIN TABLE_2
ON TABLE_2.COLUMN = TABLE_2.ANOTHER_COLUMN

Pay attention here. You always have a table on the left side of the
JOIN keyword, and always a table on the right side of the keyword.
This also means that one column of first table needs to be left of the =
operation, and one column of the second table needs to be on the right
of the = operation.
That makes the query, based on the database, look like this:

SELECT * FROM
user LEFT JOIN customer
ON user.customer_id = customer.id
Other documents randomly have
different content
“I can’t think it,” said Rob, after a pause; “I’ve tried, and I can’t.
But, suppose all you say is true as far as this; suppose he asked her
to free him, because he loved another, and suppose she was so
grieved and mortified at this, that in her own sudden fit of angry
jealousy,—you know she had a quick temper, also,—suppose she
picked up the dagger and turned it upon herself, as she had
sometimes said she would do.”
Kitty listened attentively. “It might be so,” she said slowly; “you
may be nearer the truth than I. But I do believe that one of us must
be right. Of course, this leaves the written paper out of the question
entirely.”
“That written paper hasn’t been thoroughly explained yet,”
exclaimed the young man. “Now, look here, Miss French, I’m not
going to wait to be officially employed on this case, though I am
going to offer Carleton my legal services, but I mean to do a little
investigating on my own account. The sooner inquiries are made,
the more information is usually obtained. Can you arrange that I
shall have an interview with Miss Dupuy?”
“I think I can,” said Kitty; “but if you let it appear that you’re
inquisitive she won’t tell you a thing. Suppose we just talk to her
casually, you and I. I won’t bother you.”
“Indeed you won’t. You’ll be of first-class help. When can we see
her?”
While they had been talking, other things had been happening in
the drawing-room. The people who had been gathered there had all
disappeared, and, under the active superintendence of Miss Morton,
the florist’s men who had put up the decorations were now taking
them away. The whole room was in confusion, and Kitty and Mr.
Fessenden were glad to escape to some more habitable place.
“Wait here,” said Kitty, as they passed through the hall, “and I’ll
be back in a moment.”
Kitty flew upstairs, and soon returned, saying that Miss Dupuy
would be glad to talk with them both in Madeleine’s sitting-room.
XIII
AN INTERVIEW WITH CICELY

This sitting-room was on the second floor, directly back of


Madeleine’s bedroom, the bedroom being above the library. Miss
Dupuy’s own room was back of this and communicated with it.
The sitting-room was a pleasant place, with large light windows
and easy chairs and couches. A large and well-filled desk seemed to
prove the necessity of a social secretary, if Miss Van Norman cared
to have any leisure hours.
Surrounded by letters and papers, Cicely sat at the desk as they
entered, but immediately rose to meet them.
Kitty’s tact in requesting the interview had apparently been
successful, for Miss Dupuy was gracious and affable.
But after some desultory conversation which amounted to
nothing, Fessenden concluded a direct course would be better.
“Miss Dupuy,” he said, “I’m a detective, at least in an amateur
way.”
Cicely gave a start and a look of fear came into her eyes.
“I have the interests of Schuyler Carleton at heart,” the young
man continued, “and my efforts shall be primarily directed toward
clearing him from any breath of suspicion that may seem to have
fallen upon him.”
“O, thank you!” cried Cicely, clasping her hands and showing
such genuine gratitude that Fessenden was startled by a new idea.
“I’m sure,” he said, “that you’ll give me any help in your power.
As Miss Van Norman’s private secretary, of course you know most of
the details of her daily life.”
“Yes; but I don’t see why I should tell everything to that Benson
man!”
“You should tell him only such things as may have a bearing on
this mystery that we are trying to clear up.”
“Then I know nothing to tell. I know nothing about the mystery.”
“No, Cicely,” said Kitty, in a soothing voice, “of course you know
nothing definite; but if you could tell us some few things that may
seem to you unimportant, we—that is, Mr. Fessenden—might find
them of great help.”
“Well,” returned Cicely slowly, “you may ask questions, if you
choose, Mr. Fessenden, and I will answer or not, as I prefer.”
“Thank you, Miss Dupuy. You may feel sure I will ask only the
ones I consider necessary to the work I have undertaken. And first
of all, was Miss Van Norman in love with Carleton?”
“She was indeed, desperately so.”
“Yet she seemed greatly attached to her cousin, Mr. Willard.”
“That was partly a cousinly affection, and partly a sort of
coquetry to pique Mr. Carleton.”
“And was Carleton devoted to her?”
“Must I answer that?” Cicely’s eyes looked troubled.
“Yes, you must.” Fessenden’s voice was very gentle.
“Then he was not devoted to her; in fact, he loved another.”
“Who is this other?”
“Dorothy Burt, his mother’s companion, who lives at the Carleton
home.”
“Did Miss Van Norman know this?”
“Yes, she learned of it lately, and it broke her heart. That is why
she was so uncertain and erratic in her moods; that is why she
coquetted with Mr. Willard, to arouse Schuyler Carleton’s jealousy.”
“This throws a new light on it all,” said Fessenden gravely. “And
this Miss Burt—did she return Carleton’s regard?”
“I don’t know,” said Cicely, and her agitation seemed to increase,
though she tried hard to conceal it. “Of course Miss Van Norman
didn’t speak openly of this matter, but I knew her so well that I
easily divined from her moods and her actions that she knew she
had a rival in Mr. Carleton’s affections.”
“Then he cared more for her in time past?”
“Yes, until that girl came to live with his mother. She’s a
designing little thing, and she just twisted Mr. Carleton round her
finger.”
“Do you know her personally, Miss Dupuy?”
A look of intense hatred came over Cicely’s expressive face.
“No! I wouldn’t meet her for anything. But I have seen her, and I
know perfectly well that Mr. Carleton cares for her more than he did
for Miss Van Norman.”
“Yet he was about to marry Miss Van Norman.”
“Yes; because they were engaged before he saw the Burt girl.
Then, you see, he didn’t think it honorable to refuse to marry her,
and she——”
“He had asked her, then, to give him back his freedom?”
“Yes, he had. And Miss Van Norman very rightly refused to do
so.”
“Oh, Cicely,” cried Kitty, “do you know this, or are you only
surmising it?”
“I know it, Miss French. In her sorrow over the matter, Miss Van
Norman often confided in me as in a friend.”
“And you were a good friend to her, I’m sure,” said Fessenden
heartily. “Now, Miss Dupuy, do you think it could have been possible
that Mr. Carleton came here late last night to ask Miss Van Norman
once again to release him from the marriage?”
“He might have done so,” said Cicely in a noncommittal tone. “He
was very much annoyed at her behavior with Mr. Willard in the
afternoon.”
“But that was on purpose to annoy him?”
“Yes, and it succeeded.”
“How do you know all this?”
“Miss Van Norman intimated as much just before dinner, when
we were here alone. She feared Mr. Carleton was so angry he
wouldn’t come to dinner at all.”
“And he didn’t.”
“No, he didn’t.”
“But, Miss Dupuy, it would scarcely be possible to think that if he
did return later to ask his release—it would not be possible to think
that on Miss Van Norman’s refusal to release him he—was so
incensed against her that——”
“Oh, no, no!” cried Cicely. “Of course he didn’t kill her! Of course
he didn’t! She killed herself! I don’t care what any one says—I know
she killed herself!”
“If so,” said Fessenden, “we must prove it by keeping on with our
investigations. And now, Miss Dupuy, will you tell me what was your
errand when you returned to the library late last night, when the two
doctors were alone there in charge of the room?”
“I didn’t!” declared Cicely, her cheeks flaming and her blue eyes
fairly glaring at her interrogator.
“Please stick to the truth, Miss Dupuy,” said Fessenden coldly. “If
you don’t, we can’t credit any of your statements. You opened the
door very softly, and were about to enter, when you spied the
doctors and withdrew.”
“I went to get that paper,” said Cicely, somewhat sulkily.
“Why did you want that?”
“Because it was mine. I had a right to it.”
“Then why didn’t you go on in and get it? The doctors’ presence
need have made no difference.”
“I don’t know why I didn’t! I wish you’d stop asking questions!”
“I will, in a moment. You are sure you wrote that paper
yourself?”
“Of course I am!” The answer was snapped out pertly.
“And you wrote it meaning yourself? You didn’t write it with the
intent that it should be taken for Miss Van Norman’s message?”
Cicely eyes dropped involuntarily. Then she raised them, and
stared straight at Fessenden. “What do you mean?” she asked
haughtily.
“Just what I say. Was that written paper an expression of your
own heart’s secret?”
It must have been because of Fessenden’s magnetism, or
compelling sympathy, but for some reason Cicely took no offense at
this, and answered simply, “Yes.”
“Strange,” mused Rob, “how that man won so many women’s
hearts.”
“No, it isn’t strange,” said Cicely, also in slow, thoughtful tones.
And then, suddenly realizing the admission she had made, and
seeing how she had revealed her own secret she flew into a rage.
“What do you mean?” she cried. “I didn’t refer to Mr. Carleton.”
“Yes, you did,” said Fessenden, so quietly that again Cicely was
silent, and Kitty sat surprised almost to breathlessness.
“There is to be only truth between us,” went on Rob. “You did
mean Mr. Carleton, by the letter ‘S’; but have no fear, your secret
shall be respected. Now we will have only the truth—remember that.
So please tell me frankly at what time you saw Mr. Carleton come
into the house last night?”
“Just a few moments before half-past eleven.” Cicely said this
glibly, as if reciting a carefully-conned lesson.
“Wait a moment—you forget that Mr. Hunt fixed the time at
quarter after eleven, and that he saw you looking over the baluster
at the same time.”
With an agonized cry of dismay, Miss Dupuy fainted into utter
unconsciousness.
Perplexed and baffled in his inquiries, Fessenden saw that for the
moment Miss Dupuy’s physical condition was of paramount
importance, and at Kitty’s request he rang for Marie. Even before
she came the others had placed Cicely gently on a couch, and when
the maid arrived Fessenden left the room, knowing that the girl was
properly cared for.
Going downstairs again, he was about to make his adieux to Mrs.
Markham and leave the house, when Kitty French, coming down
soon after him, asked him to stay a few minutes longer.
The sight of her pretty face drove more serious thoughts from his
mind, and he turned, more than willing to follow where she led. “Oh,
whistle, and I’ll come to you,” he whispered. But Kitty had weighty
information to impart, and was in no mood for trifling. They found a
quiet corner, and then Kitty told him that Cicely had regained
consciousness almost immediately, but that just before she did so,
she cried out sharply, “They must not think Schuyler did it! They
must not!”
“And so,” said Kitty, astutely, “you see, it’s as I told you. Mr.
Carleton did kill Maddy, and Cicely knows it, but she doesn’t want
other people to find it out, because she’s in love with him herself!”
Rob Fessenden gave his companion an admiring glance.
“That’s good reasoning and sound logic,” he said; “and I’d
subscribe to it if it were anybody but old Schuyler. But I can’t and
won’t believe that man guilty without further evidence than that of a
fainting, hysterical woman.”
“Everybody seems to be in love with Mr. Carleton,” said Kitty,
demurely.
“You’re not, are you?” said Rob, so quickly that Kitty blushed.
“No, I’m not,” she declared. “He’s a stunning-looking man, and
that superior, impassive way of his catches some women, but I don’t
care for it. I prefer a more enthusiastic temperament.”
“Like mine,” said Rob casually.
“Have you a temperament?” said Kitty saucily. “It isn’t at all
noticeable.”
“It will be, after you know me better. But Miss French, since
you’ve raised this question of Miss Dupuy’s evidence, let me tell you
what it means to me. Or, rather, what it seems to point to, for it’s all
too vague for us to draw any real conclusions. But, as a first
impression, my suspicion turns toward Miss Dupuy herself rather
than Carleton.”
“Cicely! You don’t mean she killed Maddy! Oh, how can you?”
“Now, don’t fly into hysterics yourself. Wait a minute. I haven’t
accused her at all. But look at it. Miss Van Norman was certainly
killed by Carleton, or by some one already in the house. It has been
proved that nobody outside could get in. Now if the criminal is some
one in the house, we must consider each one in turn. And if by
chance we consider Miss Dupuy first, we must admit a motive.”
“What motive?”
“Why, that of a jealous woman. Miss Van Norman was just about
to marry the man Miss Dupuy is in love with. Perhaps—do have
patience, I’m merely supposing—perhaps she has vainly urged Miss
Van Norman to give him up, and, finding she wouldn’t do so, at the
last minute she prevented the marriage herself,—putting that paper
on the table to make it appear a suicide. This would explain her
stealthy attempt to regain possession of the paper later.”
“Why should she want it?”
“So that it couldn’t be proved not to be in Miss Van Norman’s
writing.”
“It’s ingenious on your part,” said Kitty slowly, “but it can’t be
true. Cicely may be in love with Schuyler, but she wouldn’t kill Maddy
because of that.”
“Who can tell what a hysterical, jealous woman will do?” said
Rob, with the air of an oracle. “And moreover, to my mind, that
explains her half-conscious exclamation of which you just told me.
When she said, ‘They must not think Schuyler did it,’ it meant that
she knew he didn’t do it, but she didn’t want suspicion to rest on
him. That’s why she insists it was a suicide.”
So in earnest was Fessenden that Kitty felt almost convinced
there was something in his theory.
“But it can’t be,” she said, at last, with an air of finality. “It
wouldn’t be possible for Cicely to do such a thing! I know her too
well!”
“Then, Miss French, if that, to you, is a logical argument, you
must admit mine. It wouldn’t be possible for Carleton to do such a
thing! I know him too well!”
Kitty had to smile at the imitation of the strong inflections she
had used, and, too, she had to admit that one opinion was as
permissible as the other.
“You see,” went on Rob quietly, “we’re not really assuming Miss
Dupuy’s guilt, we’re only seeing where these deductions lead us.
Suppose, for the moment, that Miss Dupuy did, during that half-hour
in the library, have an altercation with Miss Van Norman, and just
suppose,—or imagine, if you prefer the word,—that she turned the
dagger upon her friend and employer, wouldn’t her subsequent acts
have been just as they were? At Mr. Carleton’s alarm, she came
downstairs, fully dressed; later she tried to remove secretly that
written paper; always at serious questioning she faints or flies into
hysterics; and, naturally, when suspicion comes near the man she
cares for, she tries to turn it off. And then, too, Miss French, a very
strong point against her is that she was the last one, so far as we
know, to see Miss Van Norman alive. Of course, the murderer was
the last one; but I mean, of the witnesses, Miss Dupuy was the
latest known to be with Miss Van Norman. Thus, her evidence
cannot be corroborated, and it may or may not be true. If she is the
guilty one, we cannot expect the truth from her, and so we must at
least admit that there is room for investigation, if not suspicion.”
“I suppose you are right,” said Kitty slowly; “a man’s mind is said
to be more logical. A woman depends more on her intuition. Now,
my intuition tells me that Cicely Dupuy can not be the guilty one.”
“At risk of tiresome repetition,” returned Fessenden, “I must say
again that that is no more convincing than my ‘intuition’ that
Carleton can not be the guilty one.”
Kitty’s smile showed her quick appreciation of this point, and Rob
went on:
“Though suspicion, so far, is cast in no other direction, it is only
fair to consider all the others in the house. This will, of course, be
done in due time. I approve of Mr. Benson, and I think, though his
manners are pompous and at times egotistical, he has a good mind
and a quick intelligence. He will do his part, I am sure, and then, if
necessary, others will be brought into the case. But, as Carleton’s
friend, I shall devote all my energies to clearing him from what I
know is an unjust suspicion.”
And then Rob Fessenden went away. Mrs. Markham asked him to
remain to dinner, but he declined, preferring to go home with
Carleton. He said he would return next morning, and said too that
he meant to stay in Mapleton as long as he could be of any service
to any of his friends.
This decision was, of course, the result of his great friendship for
Carleton, and his general interest in the Van Norman case, but it was
also partly brought about by the bewitching personality of Kitty
French and the impression she had made on his not usually
susceptible heart.
And being master of his own time, Fessenden resolved to stay for
a few days and observe developments along several lines.
XIV
THE CARLETON HOUSEHOLD

Mrs. Carleton’s dinner table that evening presented a very


different atmosphere from the night before.
The hostess herself was present only by a strong effort of will
power. Mrs. Carleton had been greatly overcome by the shock of the
dreadful news, and, aside from the sadness and horror of the
tragedy, she was exceedingly disappointed at what seemed to her
the ruin of her son’s future.
The Carletons were an old and aristocratic family, though by no
means possessed of great fortune.
The alliance, therefore, with the wealth of the Van Norman
estate, and the power of the Van Norman name, seemed to Mrs.
Carleton the crowning glory of her son’s career, and she had been
devoutly thankful when the wedding-day was set.
Though stubbornly unwilling to believe it, she had of late been
forced to notice the growing attachment between Schuyler and her
own companion, Miss Burt, and had it not been for the surety of the
approaching wedding, she would have dismissed the girl. But so
certain was she that her son’s ambitions, like her own, were centred
on the Van Norman name, she could not believe that Schuyler would
let himself become greatly interested in Dorothy Burt.
But she did not allow for that mischievous Imp of Romance who
plays havoc with hearts without saying “by your leave.”
And partly because of her own dainty charm, partly because of
her contrast to Madeleine’s magnificence, Dorothy Burt crept into
Schuyler Carleton’s affections before either of them realized it, and
when they did discover the surprising fact, it did not seem to dismay
them as it should have done.
But it troubled them; for Schuyler well knew that honor,
expediency, and good judgment all held him bound to Miss Van
Norman, and Dorothy Burt knew it equally well.
And, whether or not with an ulterior motive, she had made no
claim on him from the first. She had admitted her love for him, but
in the same breath had avowed her appreciation of its hopelessness.
Even if he hinted at a possible transfer of his allegiance, she had
hushed him at once, saying it was impossible for him to do
otherwise than to be true to his troth, and that he must forget her,
as she should—try to—forget him.
This nobility on her part only made Carleton love her more, and
though continuing to admire his beautiful fiancée, his real affection
was all for little Dorothy.
She came to dinner that night, soft and lovely in a simple white
frock, her pathetic eyes wide open in grief and sorrow, her rosebud
mouth drooping and tremulous at the corners.
Fessenden watched her. Without appearing to do so, he noted
every expression that flitted across her baby face.
And he was greatly disturbed.
The night before he had paid slight attention to her. To be sure,
Miss Van Norman had spoken her name in the afternoon, but it had
meant little to him, and, thinking of her merely as Mrs. Carleton’s
companion, or secretary, he wasn’t sure which, he had been
conventionally polite and no more. But to-night she was a factor in
the case, and must be reckoned with.
As Fessenden watched her, he saw, with a growing conviction, as
sure as it was awful, that she was relieved at Miss Van Norman’s
death.
Gentle, tender little girl as she seemed, it was nevertheless true
that the removal of the obstacle between Carleton and herself gave
her only joy. She tried to hide this. She cleverly simulated grief,
horror, surprise, interest,—all the emotions called forth by the
conversation, which unavoidably pursued only one course. In fact,
Miss Burt took her cue every time from Mrs. Carleton, and expressed
opinions that invariably coincided with hers.
It began to dawn upon Fessenden that the girl was unusually
clever, the more so, he thought, that she was consciously concealing
her cleverness by a cloak of demure innocence, and careful
unostentation. Never did she put herself forward; never did she
show undue interest in Schuyler, personally.
Fessenden reasoned that the game being now in her own hands,
she could afford to stand back and await developments.
Then came the next thought: how came the game so fortuitously
into her own hands? Was it, even indirectly, due to her own
instigation?
“Pshaw!” he thought to himself. “I’m growing absurdly suspicious.
I won’t believe wrong of that girl until I have some scrap of a hint to
base it on.”
And yet he knew in his own heart if Dorothy Burt had wanted to
connive in the slightest degree in the removal of her rival, she was
quite capable of doing so, notwithstanding her very evident effect of
pretty helplessness.
“When an excessively clever young woman assumes an utterly
inefficient air,” he thought, “it must be for some undeclared
purpose;” and he felt an absurd thrill of satisfaction that though Kitty
French was undeniably clever, she put on no ingénue arts to hide it.
Then Kitty’s phrase of “a clinging rosebud” came to his mind, and
he realized its exceeding aptness to describe Dorothy Burt. Her
appealing eyes and wistful, curved mouth were enough to lure a
man who loved her to almost any deed of daring.
“Even murder?” flashed into his brain, and he recoiled at the
thought. Old Schuyler might have been made to forget his fealty; he
might have been unable to steel his heart against those subtle
charms; he might have thrown to the winds his honor and his faith;
but surely, never, never, could he have committed that dreadful
deed, even for love of this angel-faced siren.
“Could she?”
The words fairly burned into Fessenden’s brain. The sudden
thought set his mind whirling. Could she? Why, no, of course not!
Absurd! Yes, but could she? What? That child? That baby-girl? Those
tiny, rose-leaf hands! Yes, but could she?
“No!” said Fessenden angrily, and then realized that he had
spoken aloud, and his hearers were looking at him with indulgent
curiosity.
“Forgive me,” he said, smiling as he looked at Mrs. Carleton. “My
fancy took a short but distant flight, and I had to speak to it sternly
by way of reproof.”
“I didn’t know a lawyer could be fanciful,” said Mrs. Carleton. “I
thought that privilege was reserved for poets.”
“Thank you for a pretty compliment to our profession,” said Rob.
“We lawyers are too often accused of giving rein to our fancy, when
we should be strapped to the saddle of slow but sure Truth.”
“But can you arrive anywhere on such a prosaic steed?” asked
Miss Burt, smiling at his words.
“Yes,” said Rob; “we can arrive at facts.”
What prompted him to speak so curtly, he didn’t know; but his
speech did not at all please Miss Burt. Her color flew to her cheeks,
though she said nothing, and then, as Mrs. Carleton rose from the
table, the two ladies smiled and withdrew, leaving Rob alone with his
host.
“It’s all right, old boy, of course,” said Carleton, “but did you have
any reason for flouting poor little Dorothy like that?”
“No, I didn’t,” said Fessenden honestly and apologetically. “I
spoke without thinking, and I’m sorry for it.”
“All right—it’s nothing. Now, Rob, old fellow, you can’t deceive
me. I saw a curious expression in your eyes as you looked at Miss
Burt to-night, and—well, there is no need of words between us, so
I’ll only tell you you’re all wrong there. You look for hidden meanings
and veiled allusions in everything that girl says, and there aren’t any.
She’s as frank and open-natured as she can be, and—forgive me—
but I want you to let her alone.”
Fessenden was astounded. First, at Carleton’s insight in
discovering his thoughts, and second, at Carleton’s mistaken
judgment of Miss Burt’s nature.
But he only said, “All right, Schuyler; what you say, goes. Would
you rather not talk at all about the Van Norman affair?” Fessenden
spoke thus casually, for he felt sure it would make it easier for
Carleton than if he betrayed a deeper interest.
“Oh, I don’t care. You know, of course, how deeply it affects me
and my whole life. I know your sympathy and good-fellowship.
There’s not much more to say, is there?”
“Why, yes, Carleton; there is. As your friend, and also in the
interests of justice, I am more than anxious to discover the villain
who did the horrid deed, and though the inquest people are doing all
they can, I want to add my efforts to theirs, in hope of helping
them,—and you.”
“Don’t bother about me, Rob. I don’t care if they never discover
the culprit. Miss Van Norman is gone; it can’t restore her to life if
they do learn who killed her.”
Fessenden looked mystified.
“That’s strange talk, Schuyler,—but of course you’re fearfully
upset, and I suppose just at first it isn’t surprising that you feel that
way. But surely,—as man to man, now,—you want to find and punish
the wretch that put an end to that beautiful young life.”
“Yes,—I suppose so;” Carleton spoke hesitatingly, and drew his
hand across his brow in the same dazed way he did when in the
witness box.
“You’re done up, old man, and I’m not going to bother you to-
night. But I’m on the hunt, if you aren’t, and I’m going ahead on a
few little trails, hoping they’ll lead to something of more importance.
By the way, what were you doing in those few minutes last night
between your entering the house and entering the library?”
Carleton stared at his guest.
“I don’t know what you mean,” he said.
“Yes, you do. You went in at eleven-fifteen, and you called for
help at eleven-thirty.”
“No,—it didn’t take as long as that.” Carleton’s eyes had a far-
away look, and Rob grasped his arm and shook him, as he said:
“Drop it, man! Drop that half-dazed way of speaking! Tell me,
clearly, what did you do in that short interval?”
“I refuse to state,” said Carleton quietly, but with a direct glance
now that made Fessenden cease his insistence.
“Very well,” he said; “it’s of no consequence. Now tell me what
you were doing last evening before you went over to the house?”
At this Carleton showed a disposition to be both haughty and
ironical.
“Am I being questioned,” he said, “and by you? Well, before I
went to Miss Van Norman’s I was walking in the rose-garden with
Miss Burt. You saw me from your window.”
“I did,” said Rob gravely. “Were you with Miss Burt until the time
of your going over to the Van Norman house?”
“No,” said Carleton, with sarcastic intonation. “I said good-night
to Miss Burt about three-quarters of an hour before I started to go
over to Miss Van Norman’s. Do you want to know what I did during
that interval?”
“Yes.”
“I was in my own room—my den. I did what many a man does
on the eve of his wedding. I burned up a few notes,—perhaps a
photograph or two,—and one withered rose-bud,—a ‘keepsake.’
Does this interest you?”
“Not especially, but, Schuyler, do drop that resentful air. I’m not
quizzing you, and if you don’t want to talk about the subject at all,
we won’t.”
“Very well,—I don’t.”
“Very well, then.”
The two men rose, and as Carleton held out his hand Rob
grasped it and shook it heartily, then they went to the drawing-room
and rejoined the ladies.
The Van Norman affair was not mentioned again that evening.
All felt a certain oppression in the atmosphere, and all tried to
dispel it, but it was not easy. Uninteresting topics of conversation
were tossed from one to another, but each felt relieved when at last
Mrs. Carleton rose to go upstairs and the evening was at an end.
Fessenden went to his room, his brain a whirlwind of conflicting
thoughts.
He sat down by an open window and endeavored to classify
them into some sort of order.
First, he was annoyed at Carleton’s inexplicable attitude. Granting
he was in love with Miss Burt, he had no reason to act so
unconcerned about the Van Norman tragedy. And yet Schuyler’s was
a peculiar nature, and doubtless all this strange behavior of his was
merely the effort to hide his real sorrow.
But again, if he were in love with Miss Burt, his sorrow for the
loss of Madeleine was for the loss of her fortune and not herself.
This Fessenden refused to believe, but the more he refused to
believe it, the more it came back to him. Then there was his new
notion, that came to him at dinner, about Miss Burt. Carleton said
she was the ingenuous, timid girl she looked, but Rob couldn’t
believe it. Executive ability showed in that determined little chin.
Veiled cunning lurked in the shadows of those innocent eyes. And
the girl had a motive. Surely she wanted her rival out of her way.
Then she had said good-night to Schuyler nearly an hour before he
went over to Madeleine’s. Could she have—but, nonsense! Even if
she had been so inclined, how could she have entered the house?
Ah, that settled it! She couldn’t. And Fessenden was honestly glad of
it. Honestly glad that he had proved to himself that Miss Burt—
lovely, alluring little Dorothy Burt—was not the hardened criminal for
whom he was looking!
Then it came back to Schuyler. No! Never Schuyler! But if not he,
then who? And what was he doing in that incriminating interval, and
why wouldn’t he tell?
And then, idly gazing from his window Rob saw again two figures
walking in the rose-garden. And they were the same two that he had
seen there the evening before.
Schuyler Carleton and Dorothy Burt were strolling,—no, now they
were standing, standing close to each other in earnest conversation.
Rob was no eavesdropper, and of course he couldn’t hear a word
they said, but somehow he found it impossible to take his eyes from
those two figures.
Steadily they talked,—so engrossed in their conversation that
they scarcely moved; then Schuyler’s arm went slowly round the
girl’s shoulders.
Gently she drew away, and he did not then again offer a caress.
Rob sat looking at them, saying frankly to himself that he was
justified in doing so, since his motive effaced all consideration of
puerile conventions. If that girl were really the designing young
woman he took her to be,—more, if she could be the author, directly
or indirectly, of that awful crime,—then Fessenden vowed he would
save Schuyler from her fascinations at the risk of breaking their own
lifelong friendship.
After further rapt and earnest conversation, Carleton took Miss
Burt gently in his arms and kissed her lightly on the forehead. Then,
drawing her arm through his own, they turned and walked slowly to
the house.
A few moments later Rob heard the girl’s light footsteps as she
came up to her room, but Carleton stayed down in the library until
long after all the rest of the household were sleeping.
XV
FESSENDEN’S DETECTIVE WORK

Next morning Rob went over to the Van Norman house with a
clearly developed plan of action. He declared to himself that he
would allow no circumstance to shake his faith in his friend, that he
would hold Carleton innocent of all wrongdoing in the affair, and that
he would put all his ingenuity and cleverness to work to discover the
criminal or any clue that might lead to such a discovery.
Although some questions he had wished to ask Cicely Dupuy
were yet unanswered, Fessenden had discovered several important
facts, and, after being admitted to the house, he looked about him
for a quiet spot to sit down and tabulate them in black and white.
The florist’s men were still in the drawing-room, so he went into the
library. Here he found only Mrs. Markham and Miss Morton, who
were apparently discussing a question on which they held opposite
opinions.
“Come in, Mr. Fessenden,” said Mrs. Markham, as he was about
to withdraw. “I should be glad of your advice. Ought I to give over
the reins of government at once to Miss Morton?”
“Why not?” interrupted Miss Morton, herself. “The house is mine;
why should I not be mistress here?”
Fessenden repressed a smile. It seemed to him absurd that these
two middle-aged women should discuss an issue of this sort with
such precipitancy.
“It seems to me a matter of good taste,” he replied. “The house,
Miss Morton, is legally yours, but as its mistress, I think you’d show
a more gracious manner if you would wait for a time before making
any changes in the domestic arrangements.”
Apparently undesirous of pursuing the gracious course he
recommended, Miss Morton rose abruptly and flounced out of the
room.
“Now she’s annoyed again,” observed Mrs. Markham placidly.
“The least little thing sets her off.”
“If not intrusive, Mrs. Markham, won’t you tell me how it comes
about that Miss Morton inherits this beautiful house? Is she a relative
of the Van Normans?”
“Not a bit of it. She was Richard Van Norman’s sweetheart, years
and years and years ago. They had a falling-out, and neither of
them ever married. Of course he didn’t leave her any of his fortune.
But only a short time ago, long after her uncle’s death, Madeleine
found out about it from some old letters. She determined then to
hunt up this Miss Morton, and she did so, and they had quite a
correspondence. She came here for the wedding, and Madeleine
intended she should make a visit, and intended to give her a present
of money when she went away. In the meantime Madeleine had
made her will, though I didn’t know this until to-day, leaving the
place and all her own money to Miss Morton. I’m not surprised at
this, for Tom Willard has plenty, and as there was no other heir, I
know Madeleine felt that part of her uncle’s fortune ought to be used
to benefit the woman he had loved in his youth.”
“That explains Miss Morton, then,” said Fessenden. “But what a
peculiar woman she is!”
“Yes, she is,” agreed Mrs. Markham, in her serene way. “But I’m
used to queer people. Richard Van Norman used to give way to the
most violent bursts of temper I ever saw. Maddy and Tom are just
like him. They would both fly into furious rages, though I must say
they didn’t do it often, and never unless for some deep reason.”
“And Mr. Carleton—has he a high temper?”
Mrs. Markham’s brow clouded. “I don’t understand that man,”
she said slowly. “I don’t think he has a quick temper, but there’s
something deep about him that I can’t make out. Oh, Mr. Fessenden,
do you think he killed our Madeleine?”
“Do you?” said Fessenden suddenly, looking straight at her.
“I do,” she said, taken off her guard. “That is, I couldn’t believe
it, only, what else can I think? Mr. Carleton is a good man, but I
know Maddy never killed herself, and I know the way this house is
locked up every night. No burglar or evil-doer could possibly get in.”
“But the murderer may have been concealed in the house for
hours beforehand.”
“Nonsense! That would be impossible, with a house so full of
people, and the wedding preparations going on, and everything.
Besides, Mr. Hunt would have heard any intruder prowling around;
and then again, how could he have gone out? Everything was bolted
on the inside, except the front door, and had he gone out that way
he must surely have been heard.”
“Well reasoned, Mrs. Markham! I think, with you, we may dismiss
the possibility of a burglar. The time was too short for anything
except a definitely premeditated act. And yet I cannot believe the
act was that of Schuyler Carleton. I know that man very well, and a
truer, braver soul never existed.”
“I know it,” declared Mrs. Markham, “but I think I’m justified in
telling you this. Mr. Carleton didn’t love Madeleine, and he did love
another girl. Madeleine worshipped him, and I think he came last
night to ask her to release him, and she refused, and then—and
then——”
Something about Mrs. Markham’s earnest face and sad,
distressed voice affected Fessenden deeply, and he wondered if this
theory she had so clearly, though hesitatingly, stated, could be the
true one. Might he, after all, be mistaken in his estimate of Schuyler
Carleton, and might Mrs. Markham’s suggestion have even a
foundation of probability?
They were both silent for a few minutes, and then Mr. Fessenden
said, “But you thought it was suicide at first.”
“Indeed I did; I looked at the paper through glasses that were
dim with tears, and it looked to me like Madeleine’s writing. Of
course Miss Morton also thought it was, as she was only slightly
familiar with Maddy’s hand. But now that we know some one else
wrote that message, of course we also know the dear girl did not
bring about her own death.”
Mrs. Markham was called away on some household errands then,
and Fessenden remained alone in the library, trying to think of some
clue that would point to some one other than Carleton.
“I’m sure that man is not a murderer,” he declared to himself.
“Carleton is peculiar, but he has a loyal, honest heart. And yet, if not,
who can have done the deed? I can’t seem to believe it really was
either the Dupuy woman or the Burt girl. And I know it wasn’t
Schuyler! There must have been some motive of which I know
nothing. And perhaps I also know nothing of the murderer. It need
not necessarily have been one of these people we have already
questioned.” His thoughts strayed to the under-servants of the
house, to common burglars, or to some powerful unknown villain.
But always the thought returned that no one could have entered and
left the house unobserved within that fatal hour.
And then, to his intense satisfaction, Kitty French came into the
room.
“Good morning, Rose of Dawn,” he said, looking at her bright
face. “Are you properly glad to see me?”
“Yes, kind sir,” she said, dropping a little curtsey, and smiling in a
most friendly way.
“Well, then, sit down here, and let me talk to you, for my
thoughts are running riot, and I’m sure you alone can help me
straighten them out.”
“Of course I can. I’m wonderful at that sort of thing. But, first I’ll
tell you about Miss Dupuy. She’s awfully ill—I mean prostrated, you
know; and she has a high fever and sometimes she chatters rapidly,
and then again she won’t open her lips even if any one speaks to
her. We’ve had the doctor, and he says it’s just overstrained nerves
and a naturally nervous disposition; but, Mr. Fessenden, I think it’s
more than that; I think it’s a guilty conscience.”
“And yesterday, when I implied that Miss Dupuy might know
more about it all than she admitted, you wouldn’t listen to a word of
it!”
“Yes, I know it, but I’ve changed my mind.”
“Oh, you have; just for a change, I suppose.”
“No,” said Kitty, more seriously; “but because I’ve heard a lot of
Cicely’s ranting,—for that’s what it is,—and while it’s been only
disconnected sentences and sudden exclamations, yet it all points to
a guilty knowledge of some sort, which she’s trying to conceal. I
don’t say I suspect her, Mr. Fessenden, but I do suspect that she
knows a lot more important information than she’s told.”
“Miss Dupuy’s behavior has certainly invited criticism,” began
Rob, but before he could go further, the French girl, Marie, appeared
at the door, and seemed about to enter.
“What is it, Marie?” said Kitty kindly. “Are you looking for me?”
“Yes, mademoiselle,” said Marie, “and I would speak with
monsieur too. I have that to say which is imperative. Too long
already have I kept the silence. I must speak at last. Have I
permission?”
“Certainly,” said Fessenden, who saw that Marie was agitated, but
very much in earnest. “Tell us what you have to say. Do not be
afraid.”
“I am afraid,” said Marie, “but I am afraid of one only. It is the
Miss Morton, the stranger lady.”
“Miss Morton?” said Kitty, in surprise. “She won’t hurt you; she
has been very good to you.”
“Ah, yes, mademoiselle; but too good. Miss Morton has been too
kind, too sweet, to Marie! It is that which troubles me.”
“Well, out with it, Marie,” said Rob. “Close that door, if you like,
and then speak out, without any more beating around the bush.”
“No, monsieur, I will no longer beat the bush; I will now tell.”
Marie carefully closed the door, and then began her story:
“It was the night of the—of the horror. You remember, Miss
French, we sat all in this very room, awaiting the coming of the
great doctor—the doctor Leonard.”
“Yes,” said Kitty, looking intently at the girl; “yes, I know most of
you stayed here waiting,—but I was not here; Doctor Hills sent Miss
Gardner and me to our rooms.”
“Yes; it is so. Well, we sat here, and Miss Morton rose with
suddenness and left the room. I followed, partly that I thought she
might need my services, and partly—I confess it—because I trusted
her not at all, and I wished to assure myself that all was well. I
followed her,—but secretly,—and I—shall I tell you what she did?”
Kitty hesitated. She was not sure she should listen to what was,
after all, servants’ gossip about a guest of the house.
But Fessenden looked at it differently. He knew Marie had been
the trusted personal maid of Miss Van Norman, and he deemed it
right to hear the evidence that she was now anxious to give.
“Go on, Marie,” he said gravely. “Be careful to tell it exactly as it
happened, whatever it is.”
“Yes, m’sieur. Well, then, I softly followed Miss Morton, because
she did not go directly to her own room, but went to Miss Van
Norman’s sitting-room and stood before the desk of Miss Madeleine.”
“You are sure, Marie?” said Kitty, who couldn’t help feeling it was
dishonorable to listen to this.
“Please, Miss French, let her tell the story in her own way,” said
Rob. “It is perhaps of the utmost importance, and may lead to great
results.”
Then Marie went uninterruptedly on.
“She stood in front of the desk, m’sieur; she searched eagerly for
papers, reading and discarding several. Then she found some, which
she saw with satisfaction, and hastily concealed in her pocket. Miss
Morton is a lady who yet has pockets in her gowns. With the papers
in her pocket, then, Miss Morton looks about carefully, and, thinking
herself unobserved, creeps, but stealthily, to her own room. There—
m’sieur, I was obliged to peep at the key-hole—there she lighted a
fire in her grate, and burned those papers. With my eyes I saw her.
Never would I have told, for it was not my affair, but that I fear for
Miss Dupuy. It is in the air that she knows secrets concerning Miss
Van Norman’s death. Ah, if one would know secrets, one should
question Miss Morton.”
“This is a grave charge you bring against the lady, Marie,” said
Fessenden.
“Yes, monsieur, but it is true.”
“I know it is true,” said Kitty; “I have not mentioned it before, but
I saw Miss Morton go to Madeleine’s room that night, and afterward
go to her own room. I knew nothing, of course, of the papers, and
so thought little of the whole incident, but if she really took papers
from Madeleine’s desk and burned them, it’s indeed important. What
could the papers have been?”
“You know she inherited,” began Fessenden.
“Oh, a will!” cried Kitty.
“Marie, you may go now,” Rob interrupted; “you did right to tell
us this, and rest assured you shall never be blamed for doing so. You
will probably be questioned further, but for the present you may go.
And thank you.”
Marie curtseyed and went away.
“She’s a good girl,” said Kitty. “I always liked her; and she must
have heard, as I did, so much of Cicely’s chatter, that she feared
some sort of suspicion would fall on Cicely, and she wanted to divert
it toward Miss Morton instead.”
“As usual, with your quick wits, you’ve gone right to the heart of
her motive,” said Rob; “but it may be more serious than you’ve yet
thought of. Miss Morton inherits, you know.”
“Yes, now,” said Kitty significantly, “since she burnt that other
will.”
“What other will?”
“Oh, don’t you see? The will she burnt was a later one, that
didn’t give her this house. She burnt it so the earlier one would
stand.”
“How do you know this?”
“I don’t know it, except by common sense! What else would she
take from Maddy’s desk and burn except a will? And, of course, a
will not in her favor, leaving the one that did bequeath the house to
her to appear as the latest will.”
“Does this line of argument take us any further?” said Rob, so
seriously that Kitty began to think.
“You don’t mean,” she whispered, “that Miss Morton—in order to
——”
“To receive her legacy——”
“Could—no, she couldn’t! I won’t even think of it!”
“But you thought of Miss Dupuy. Miss French, as I told you
yesterday, we must think of every possible person, not every
probable one. These suggestions are not suspicions—and they harm
no one who is innocent.”
“I suppose that is so. Well, let us consider Miss Morton then, but
of course she didn’t really kill Maddy.”
“I trust not. But I must say I could sooner believe it of a woman
of her type than Miss Dupuy’s.”
“But Cicely didn’t either! Oh, how can you say such dreadful
things!”
“We won’t say them any more. They are dreadful. But I thought
you were going to help me in my detective work, and you balk at
every turn.”
“No, I won’t,” said Kitty, looking repentant. “I do want to help
you; and if you’ll let me help, I’ll suspect everybody you want me
to.”
“I want you to help me, but this story of Marie’s is too big for me
to handle by myself. I must put that into Mr. Benson’s hands. It is
really more important than you can understand.”
“I suppose so,” said Kitty, so humbly that Rob smiled at her, and
had great difficulty to refrain from kissing her.
XVI
SEARCHING FOR CLUES

Believing that Marie’s information about Miss Morton was of deep


interest, Rob started off at once to confer with Coroner Benson
about it.
As he walked along he discussed the affair with himself, and was
shocked to realize that for the third time he was suspecting a
woman of the murder.
“But how can I help it?” he thought impatiently. “The house was
full of women, and not a man in it except the servants, and no
breath of suspicion has blown their way. And if a woman did do it,
that unpleasant Morton woman is by far the most likely suspect. And
if she was actuated by a desire to get her inheritance, why, there’s
the motive, and she surely had opportunity. It’s a tangle, but we
must find something soon to guide us. A murder like that can’t have
been done without leaving some trace somewhere of the criminal.”
And then Fessenden’s thoughts drifted away to Kitty French, and he
was quite willing to turn the responsibility of his new information
over to Mr. Benson. On his way to the coroner’s office he passed the
Mapleton Inn. An impulse came to him to investigate Tom Willard’s
statements, and he turned back and entered the small hotel.
He thought it wiser to be frank in the matter than to attempt to
obtain underhand information. Asking to speak with the proprietor
alone, he said plainly:
“I’m a detective from New York City, and my name is Fessenden.
I’m interested in investigating the death of Miss Van Norman. I have
no suspicions of any one in particular, but I’m trying to collect a few
absolute facts by way of making a beginning. I wish you, therefore,
to consider this conversation confidential.”
Mr. Taylor, the landlord of the inn, was flattered at being a party
to a confidential conversation with a real detective, and willingly
promised secrecy in the matter.
“Then,” went on Fessenden, “will you tell me all you know of the
movements of Mr. Willard last evening?”
Mr. Taylor looked a bit disappointed at this request, for he
foresaw that his story would be but brief. However, he elaborated
the recital and spun it out as long as he possibly could. But after all
his circumlocution, Fessenden found that the facts were given
precisely as Willard had stated them himself.
The bellboy who had carried up the suitcase was called in, and
his story also agreed.
“Yessir,” said the boy; “I took up his bag, and he gimme a
quarter, just like any nice gent would. ’N’en I come downstairs, and
after while the gent’s bell rang, and I went up, and he wanted ice
water. He was in his shirt sleeves then, jes’ gittin’ ready for bed. So I
took up the water, and he said, ‘Thank you,’ real pleasant-like, and
gimme a dime. He’s a awful nice man, he is. He had his shoes off
that time, ’most ready for bed. And that’s all I know about it.”
All this was nothing more nor less than Fessenden had expected.
He had asked the questions merely for the satisfaction of having
verbal corroboration of Tom’s own story.
With thanks to Mr. Taylor, and a more material token of
appreciation to the boy, he went away.
On reaching the coroner’s office, he was told that Mr. Benson was
not in. Fessenden was sorry, for he wanted to discuss the Morton
episode with him. He thought of going to Lawyer Peabody’s, who
would know all about Miss Van Norman’s will, but as he sauntered
through one of the few streets the village possessed, he was rather
pleased than otherwise to see Kitty French walking toward him.
She greeted him with apparent satisfaction, and said chummily,
“Let’s walk along together and talk it over.”
Immediately coroner and lawyer faded from Rob’s mind, he
willingly fell into step beside her, and they walked along the street
which soon merged itself into a pleasant country road.
Fessenden told Kitty of his conversation at the inn, but she
agreed that it was unimportant.
“Of course,” she said, “I suppose it was a good thing to have
some one else say the same as Tom said, but as Tom wasn’t even in
the house, I don’t see as he is in the mystery at all. But there’s no
use of looking further for the criminal. It was Schuyler Carleton, just
as sure as I stand here.”
Kitty very surely stood there. They had paused beneath an old
willow tree by the side of the road, and Kitty, leaning against a rail
fence, looked like a very sweet and winsome Portia, determined to
mete out justice.
Though he was himself convinced that he was an unprejudiced
seeker after truth, at that moment Robert Fessenden found himself
very much swayed by the opinions of the pretty, impetuous girl who
addressed him.
“I believe I’m going to work all wrong,” he declared. “I can’t help
feeling sure that Carleton didn’t do it, and so I’m trying to discover
who did.”
“Well, why is that wrong?” demanded Kitty wonderingly.
“Why, I think a better way to do would be to assume, if only for
sake of argument, as they say, or rather for sake of a starting-point
—to assume that you are right and that Carleton is the evil-doer,
though I swear I don’t believe it.”
Kitty laughed outright. “You’re a nice detective!” she said. “Are
you assuming that Schuyler is the villain, merely to be polite to me?”
“I am not, indeed! I feel very politely inclined toward you, I’ll
admit, but in this matter I’m very much in earnest. And I believe, by
assuming that Carleton is the man, and then looking for proof of it,
we may run across clues that will lead us to the real villain.”
Kitty looked at him admiringly, and for Kitty French to look at any
young man admiringly was apt to be a bit disturbing to the young
man’s peace of mind.
It proved so in this case, and though Fessenden whispered to his
own heart that he would attend first to the vindication of his friend
Carleton, his own heart whispered back that after that, Miss French
must be considered.
“And so,” said Rob, as they turned back homeward, “I’m going to
work upon this line. I’m going to look for clues; real, material,
tangible clues, such as criminals invariably leave behind them.”
“Do!” cried Kitty. “And I’ll help you. I know we can find
something.”
“You see,” went on Fessenden, his enthusiasm kindling from
hers, “the actual stage of the tragedy is so restricted. Whatever we
find must be in the Van Norman house.”
“Yes, and probably in the library.”
“Or the hall,” he supplemented.
“What kind of a thing do you expect to find?”
“I don’t know, I’m sure. In the Sherlock Holmes stories it’s
usually cigar ashes or something like that. Oh, pshaw! I don’t
suppose we’ll find anything.”
“I think in detective stories everything is found out by footprints.
I never saw anything like the obliging way in which people make
footprints for detectives.”
“And how absurd it is!” commented Rob. “I don’t believe
footprints are ever made clearly enough to deduce the rest of the
man from.”
“Well, you see, in detective stories, there’s always that ‘light
snow which had fallen late the night before.’”
“Yes,” said Fessenden, laughing at her cleverness, “and there’s
always some minor character who chances to time that snow
exactly, and who knows when it began and when it stopped.”
“Yes, and then the principal characters carefully plant their
footprints, going and returning—over-lapping, you know—and so Mr.
Smarty-Cat Detective deduces the whole story.”
“But we’ve no footprints to help us.”
“No, we couldn’t have, in the house.”
“But if it was Schuyler——”
“Well, even if,—he couldn’t make footprints without that
convenient ‘light snow’ and there isn’t any.”
“And besides, Schuyler didn’t do it.”
“No, I know he didn’t. But you’re going to assume that, you
know, in order to detect the real criminal.”
“Yes, I know I said so; but I don’t believe that game will work,
after all.”
“I don’t believe you’re much of a detective, any way,” said Kitty,
so frankly that Fessenden agreed.
“I don’t believe I am,” he said honestly. “With the time, place,
and number of people so limited, it ought to be easy to solve this
mystery at once.”
“I think it’s just those very conditions that make it so hard,” said
Kitty, sighing.
And so completely under her spell was Fessenden by this time
that he emphatically agreed with her.
When they reached the Van Norman house they found it had
assumed the hollow, breathless air that invades a house where
death is present.
All traces of decoration had been removed from the drawing-
room, and it, like the library, had been restored to its usual
immaculate order. The scent of flowers, however, was all through the
atmosphere, and a feeling of oppression hovered about like a heavy
cloud.
Involuntarily Kitty slipped her hand in Rob’s as they entered.
Fessenden, too, felt the gloom of the place, but he had made up
his mind to do some practical work, and detaining Harris, who had
opened the door for them, he said at once, “I want you to open the
blinds for a time in all the rooms downstairs. Miss French and I are
about to make a search, and, unless necessary, let no one interrupt
us.”
“Very good, sir,” said the impassive Harris, who was becoming
accustomed to sudden and unexpected orders.
They had chosen their time well for the search, and were not
interrupted. Most of the members of the household were in their
own rooms; and there happened to be no callers who entered the
house.
Molly Gardner had gone away early that morning. She had
declared that if she stayed longer she should be downright ill, and,
after vainly trying to persuade Kitty to go with her, had returned
alone to New York.
Tom Willard and Lawyer Peabody were in Madeleine’s sitting-
room, going over the papers in her desk, in a general attempt to
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.

More than just a book-buying platform, we strive to be a bridge


connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.

Join us on a journey of knowledge exploration, passion nurturing, and


personal growth every day!

ebookmasss.com

You might also like