This course will follow a self directed learning model. Think of this as working as a junior engineer. You'll have projects that you are responsible for and weekly meetings with your co-working group.
This course is focussed on writing JavaScript libraries. A library is a package of code that solves a specific problem. Libraries are used to build products. Any time you've created a project using npm the node_modules folder contains hundreds or even thousands of packages.
Creating libraries of code boost your development process by storing code that you don't want to write over over again.
Large libraries, like React, incorporate other libraries. Why write all of that boilerplate code again?
Think about all of the packages that you use? Make a list of them? Here's a few to get your started:
A library is best when it does one thing well, or solves a single problem. A library can be small just a few lines of code.
Everything these days is built on libraries.
Creating libraries is the best way to share code. This applies to open source software and to private projects.
This term you are responsible for creating three libraries. I have a couple suggested subjects for libraries that you can write or you can substitute your own ideas if you like.
Each library you write must meet the following requirements. All of these requirements are what would required for profesional level project.
You will write three libraries
- You write the code
- Published to npm
- Includes unit tests
- Documentation
- TypeScript
Here are a couple of alternative assignments you can tackle. You have to write three libraries but you can substitute writing unit tests or publishing to npm for one of the items below. You can also do these for extra credit!
- Continuous Integration
- Bundling
In the last week of class you will create a library from a supplied spec. Think of this as a practical take home type interview question.
This project will be scoped to the time available. It will include:
- Writing code to solve supplied problem
- Include unit tests
Build any of all of these libraries. These are listed in order of difficulty.