Comedy:
- The Young Ones
- Red Dwarf
- Bottom
- The Office (UK)
- Coupling
- Peep Show
- Little Britain
- Roseanne
- 3rd Rock From the Sun
- Futurama
- 30 Rock
- Arrested Development
- Broad City
- Joe Pera Talks with You
Science Fiction:
- Star Trek: TNG
- Firefly
- The Expanse
- Battlestar Galactica (2004)
- Travellers
- Real Humans/Äkta Människor
- Foundation
Drama:
- Six Feet Under
- Breaking Bad
Anime:
- Golden Boy
Dutch:
- Rembo & Rembo
- Zaai
- Dunya & Desie
- Jiskefet
- All Stars
Nobody creates a website completely from scratch. If the point is to learn, then by all means, go ahead and implement everything from scratch. That'll be very educational. However, assuming the point is to deliver a working solution to the travel company this year or next year, you're going to want to use existing libraries and frameworks to do some of the heavy lifting, organize your code and make your life easier.
There are more or less two ways to implement a website that is not just a bunch of static HTML pages, though in practice a lot of websites will fall somewhere in between these two extremes:
Single page applications, while popular and hip nowadays, are overkill for a lot of websites. They are also an advanced topic, that requires you to have most of the knowledge involved in the classic approach. Therefore, I will mostly discuss the classic approach in this post.
Any website is going to have code and markup that is sent to the client and code that runs on the server. For the client side you'll need to learn:
For the server side you'll need to learn:
To organize your code on the server, learn and use some sort of MVC framework like Laravel, Symphony, Django or Ruby on Rails. This will help keep your code clear by separating the template (view) from the code that talks to the database (model) and the code that processes that data (controller).
I imagine a travel agency might need:
Regarding general programming knowledge, of course you'll want to learn the basics like variables, conditionals, loops, functions, objects etc... Beyond that, I suggest you also look into design patterns. These are commonly understood ways of solving different programming problems. I recommend learning patterns from both object oriented programming and functional programming. IMO you should use immutable data and functional programming whenever it's not too much of a hassle and performs well enough. If you do need mutability or statefulness, use objects and OOP patterns.
Furthermore, at some point you'll want to learn the basics regarding data structures and computational complexity and big O notation. As far as data structures go, in practice you'll mostly use lists/arrays and hash-maps/dictionaries. It's good to know how fast different data structures perform different operations like inserting/removing elements or looking up values. You'll want to know the computational complexity of these operations. You'll also want to be able to know the computational complexity of the algorithms you create. For example, if a function needs to look at all the elements in a list once, it needs to do n steps and the computational complexity is O(n), where n is the length of the list. If a function needs to compare every element in a list to every other element in a list, it needs n * n steps and the computational complexity would be O(n^2). The latter would get slow very quickly on long lists.
If you find yourself writing a lot of JavaScript, consider using TypeScript. While adding types to your code will seem like a hassle at first, in the long run it'll catch a lot of problems at compile time and make it easier to debug your code.
Some people might suggest using the jQuery or Underscore libraries when writing JavaScript. While both were very useful at some point in the past, nowadays most of their functionality is included in modern JavaScript. This makes them mostly redundant unless you're targeting really old browsers.