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
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
or textbooks at https://ebookmass.com
_____ 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/
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/
https://ebookmass.com/product/a-friendly-guide-to-software-
development-what-you-should-know-without-being-a-developer-leticia-
portella/
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/
https://ebookmass.com/product/jihad-what-everyone-needs-to-know-what-
everyone-needs-to-know-what-everyone-needs-to-knowrg-asma-afsaruddin/
https://ebookmass.com/product/how-to-be-a-genius-your-brilliant-brain-
and-how-to-train-it-new-edition-john-woodward/
https://ebookmass.com/product/the-essential-entrepreneur-what-it-
takes-to-start-scale-and-sell-a-successful-business-1st-edition-
richard-turner/
Radu Nicoara
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 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.
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.
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.
<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:
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.
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
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).
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.
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.
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.
This is a good time to talk about quotes inside SQL. Note the ``
back quotes, which are used for table names and column names, and
the '' single straight quotes, which are used to represent string values.
There are also sometimes "" double quotes, which are used to assign
aliases to tables. You will learn about their functions a bit later.
Now examine the syntax of the previous script. It follows the
general syntax of an SQL query. You have an action that needs to be
done, then the table where this needs to be executed, and then the
additional conditions or values.
Now go to the SQL tab. From there, you can run your queries
directly in text format. Try this:
As you can see in Figure 2-8, the customer with the ID 1 will be
retrieved. That is the nice part about SQL. When you read a query, it is
relatively easy to understand what is happening.
As you can see in Figure 2-9, only the columns that you want have
been pulled out of the table.
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.
Similarly, you could write the following query, which searches the
customers for an address containing the country, Spain. You do not
need to select the column in order to query based on it.
This query
will return all of the customers whose addresses contain the word
Spain, at the beginning, the end, or in the middle of the string.
Homework
As homework, try to determine what the following queries will return:
SQL Functions
Inside of an SQL query, you can operate different functions, in order to
retrieve more complex data. For example, imagine that your boss asks
you how many customers you have in the database. The following
query will return the number of rows from the table, shown in Figure 2-
11.
As you can see, the name of the column is COUNT(*), which would
not help you a lot if you exported this data and give it to your boss.
Therefore, you can use an alias for the extracted column (see Figure 2-
12):
Or, if you have a table with contracts, you could run this query to
retrieve all of your sales for 2022:
As you can see, writing SQL queries is not difficult at all. It takes a
bit of getting used to, that is true. But you will quickly be able to pull
out data that you need without even thinking twice about the code.
That is the beauty of SQL. If you can articulate it, you can put it in code
just as easy.
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
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
ebookmasss.com