2 - Project Setup

Project Setup: Introduction #

Warning: Work in Progress
We are still working to improve this page before releasing it to students. It may change considerably before first release. If you can see this message, congrats, you have been introduced to this material early to provide feedback!

Use the edit page button at the bottom of this lesson to directly submit changes for consideration.

It is now time for use to move to a desktop environment and and get you setup with a more efficient programming environment. And the Clojure language!

Before now we have been evaluating code in the browser using a language called scheme to introduce you to the basics of a programming language. We would have liked to have you introduced to Clojure right away but we did not find an easy way to do that in the browser.

In this section we will cover…

  1. What a project template is
  2. How it is run
  3. How to use a code library and namespaces
  4. The procedure to compile it
  5. How to use the REPL

If we lived in an ideal world we would save this entire section for another course, and keep you evaluating code in the browser. However we would be too limited in what we are able to do. You will learn faster once we get you setup and running with what is called the REPL but more on that later.

Note our focus for this course is on how to use the tools rather than how the tools work. There is a higher class of developers that actually design the programming languages & compilers that we use to build our programs with. This is like the difference between being a carpenter versus the manufacturer of the screwdriver or hammer. These are different disciplines with some overlapping skills.

For example, many programmers spend their entire careers without understanding how a compiler actually works. You can go a long way with just understanding how to use the tools we will talk about in the rest of this section.

This again comes back to the fundamental concept of abstraction. If an abstration is done well we don’t need to worry about it.

Cool Things to Note #

  1. With REPL we are getting you started with a fully functional testing environment right away. Typically this is restricted until you take an entire course on testbenches and test driven development. Many times this is a specific role on the development team.
  2. With the Project Template and our development setup you are using cutting-edge industry level tools. All of the structures we are learning about here are used to build large industry applications from companies like Walmart and Netflix. Typically Project templates are not covered in an intro to programming course.
  3. You are at the cutting edge of progress. The next set of tools we will be adding were only created within the last few years.