"Directories containing directories and files" seems to have been around forever, but there must have been a first.
History – What Was the First Hierarchical File System?
history
Related Solutions
Augusta Ada King, Countess of Lovelace (1815 - 1852) is credited by most as the first programmer.
The first program was an algorithm to calculate Bernoulli numbers for Charles Babbage's Analytical Engine, and it appeared in her translation notes of Luigi Menabrea's memoir "Sketch of the Analytical Engine Invented by Charles Babbage", more specifically Note G. That said, the math necessary for calculating Bernoulli numbers were known long before Ada's time, however Ada's algorithm is the first instance of a calculating algorithm designed to be executed by a (at the time still hypothetical) machine.
Konrad Zuse (1910 – 1995) is also a solid candidate for the "first programmer" moniker, having invented a floating point binary mechanical calculator with limited programmability, the Z1 (1936) but more importantly the Z3 (1941), a Turing complete electro-mechanical computer.
When it comes to electronic computers, the Atanasoff–Berry Computer (conceived in 1937, operational by 1942) is credited as the first electronic digital computing device, so it's reasonable to think of its designers, John Vincent Atanasoff and Clifford Berry as programming pioneers. The Atanasoff–Berry Computer wasn't programmable though, the first programmable electronic computer was ENIAC (1946).
Although ENIAC's designers John Mauchly and J. Presper Eckert probably did a fair share of programming, most of ENIAC's programming were done by these lovely ladies:
Their names from left to right are Kathy Kleiman1, Jean Bartik, Marlyn Meltzer, Kay Mauchly Antonelli and Betty Holberton at the front. Two of the ENIAC's female programmers, Fran Bilas and Ruth Lichterman, are missing from the photo.
When it comes to digital computers, the first one was Colossus (operational by December 1943), and the project's lead Tommy Flowers (1905 – 1998) should also be considered a programming pioneer, along with Max Newman (1897 – 1984) who was responsible for formulating the requirements for the machine and of course Alan Turing (1912 – 1954), who had designed Bletchley Park's earlier electromechanical cryptanalytical machine, the Bombe (1939), and was influential in Colossus design2.
1 Kathy Kleiman is the founder of the ENIAC Programmers Project and obviously not an ENIAC programmer (too young :)
2 A History of Computing in the Twentieth Century: The Colossus - B. Randell, Newcastle University (PDF)
The first discussions of software engineering began in the mid-1950s, which places it around the same time as the SHARE user group previously mentioned in a now-deleted answer.
The widely accepted beginning to software engineering as a profession was at the NATO Science Committee conference in 1968 in Garmisch, Germany. The conference report (PDF) is often considered to be the very first definition of software engineering. A second conference, held in 1969 in Rome, Italy, was also sponsored by the NATO Science Committee and continued the work of the first (conference report PDF). You could define the attendees of this conference as the first software engineers.
However, there is some evidence that the first person to coin the term "software engineering" was Margaret Hamilton. She started to use the term at MIT during the early days of creating software for the Apollo missions.
Some of the earliest contributors to software engineering include:
- Edsger W. Dijkstra, creator of structured programming (1960s) in addition to numerous contributions to mathematics and computer science
- C.A.R. Hoare, creator or Hoare logic (1969) and Communicating Sequential Processes (1978) in addition to the creation of Quicksort
- Winston W. Royce, author of the paper that formally described the Waterfall model and how it was inappropriate for effectively building large-scale software systems (1970)
- David Parnas, credited with creating information hiding (1972) as well as a strong promoter of professionalism and ethics in software engineering
- Fred Brooks, author of The Mythical Man-Month (1975) and other essays about software project management
- Michael A. Jackson, creator of Jackson Structured Programming (1970s) and Jackson System Development (1980s)
- Edward Yourdon, worked on the structured analysis techniques (1970s) and the Yourdon/Whitehead (1980s) and Coad/Yourdon (1990s) object-oriented analysis/design methodologies
- Victor Basili, author of numerous reports and papers on the software development process and often attributed to starting empirical software engineering, specifically the goal/question/metric approach, the Quality Improvement Paradigm, and the Experience Factory while working at NASA's Software Engineering Laboratory from the mid 1970s through early 2000s
- Barry Boehm, creator of COCOMO (1981), the Spiral Model (1986) COCOMO II (2000), the Spiral Model, and author of numerous papers and books about software development process, software metrics, and software cost models (most notably Software Engineering Economics, 1981)
Searching for "father of software engineering" tends to turn up many different names, since there were many people doing both academic research, analysis of software projects, and applied software engineering work at universities and companies around the world. However, David Parnas (professionalism/ethics), Fred Brooks (software project management), Barry Boehm (metrics and cost), and Victor Basili (empirical software engineering) tend to come up pretty frequently in their respective fields.
Something else to consider is that software engineering is a team activity. Many of the people that I named above were leaders of teams or organizations, their work was supported by any number of people "in the trenches" who might never get credit for being a part of a project or research effort that today is viewed as the beginning of software engineering.
Best Answer
I think Multics introduced the first hierarchical filesystem and presented it at the 1965 Fall Joint Computer Conference. (The reference is one of the papers from that conference, describing the filesystem.)
Unix of course also has an hierarchical filesystem, which it seems to have inherited from Multics.
The wikipedia article on Unix says:
The earliest hierarchical file system with which I had personal experience at the time of its release was ODS-2, introduced with VMS in 1979.