We train on Lisp: God's own programming language
Lisp has been hailed as the world's most powerful programming language. But only a few programmers use it because of its cryptic syntax and reputation for being appropriate for only those in academia or for Artificial Intelligence (AI) programming. This is rather unfortunate, since Lisp isn't hard to grasp. With Lisp, you get the functional programming edge.
Currently, only the top percentile of programmers use Lisp; so if you want to be among the créme de la créme, we are the right people to contact.
Power corrupts. Lisp is power. Study it hard. Be evil. And plan for world domination! [Insert crazy laugh here]
Any language that obeys the central principles of Lisp is considered a Lisp dialect. However, the vast majority of the Lisp community uses two Lisps: ANSI Common Lisp (often abbreviated CL) and Scheme. At codeCraft, we are crazy about the ANSI Common Lisp dialect, the slightly more popular of the two. You have two programmes to choose from on ANSI Common Lisp:
This is a 3 day hands-on session aimed at welcoming you to the world of Functional Programming and quickly getting you started with Lisp. It also gives you an overview of the advanced topics in Lisp.
These topics (among others) are discussed exhaustive in the interactive sessions:
- The Functional Programming edge. We discuss how functional programming is vitally important, and help you exploit its advantages to the full by making it clear what those advantages are. It is the dominant paradigm in Lisp.
- Welcome to Lisp. Lisp Primitives, Conditions, Iterations, Functions, Input and Output, Working with Streams
- Lists. Lists are one of the fundamental data structures in Lisp. In the earliest dialects they were the only data structure: the name Lisp originally stood for LISt Processor. But Lisp has long since outgrown this acronym. Lisp is a general-purpose programming language with a wide variety of data structures.
- Specialized Data Structures. Here we discuss arrays (including vectors and strings), structures, hash tables, and instances.
- Recursion. Recursion is the act of defining an object or solving a problem in terms of itself. A careless recursion can lead to an infinite regress. Properly used, recursion is a powerful problem solving technique, both in artificial domains like mathematics and computer programming, and in real life. We teach you how to think recursively.
- Lambda. In Lisp, you can create a function without giving it a name. The ability to pass around functions as if they were just plain old pieces of data is incredibly valuable. Once you get used to doing this, you open up all kinds of conceptual possibilities in the design of your programs.
- Closures. A closure is a collection of closed-over variables retained by a function. Closures are important because they let a function capture and retain lexical bindings.
- Macro basics. Holy Cow! Programs writing programs!
is a 5 day hands-on session that discusses all the topics covered in Lisper
, plus takes a deep plunge into the advanced topics.
These are the additional advanced topics discussed in the last two days of the course:
- Macros. Macros are programs that write programs. If you ever were to enter The Matrix, you'd be happy that you were a Lisp maestro. Think Agent Smith (the dark-glasses wearing AI program in the movie) turning into a self-replicating computer virus. If, for a second, you ignore the fact that he was the antagonist in the movie, and that nobody likes computer viruses (well, almost nobody), and focus instead on the concept of programs that can actually write programs, we are sure you'll love Macros. It takes you one step closer to your plans of world domination.
- CLOS. Common Lisp Object System allows you to build very sophisticated object-based systems. If you care to code with a strongly object-oriented mindset, you will probably find all the OOP language functionality you need in Common Lisp. CLOS has many advanced object-oriented features that you won't find in many other places. Because of this, CLOS has often been used as a research tool for studying OOP ideas.
- Graphical programming in Lisp. The name says it all.
- Algorithm implementation in Lisp. Express your algorithms in ANSI Common Lisp.
- Metal to the Pedal. Lisp is really two languages: a language for writing fast programs and a language for writing programs fast. In the early stages of a program you can trade speed for convenience. Then once the structure of your program begins to crystallize, you can refine critical portons to make them faster.
- Lazy Evaluation. Delaying evaluation of procedure arguments until the last possible moment until they are required by a primitive operation is called lazy evaluation. The benefits are manifold: performance increases due to avoiding unnecessary calculations, avoiding error conditions in the evaluation of compound expressions, the capability of constructing potentially infinite data structures, and the capability of defining control structures as abstractions instead of as primitives, reduction in memory footprint.
Who teaches the course?
is a hard-core hacker, if there was one. He always thinks programs, and holds a piece of code in his head all the time. He is from the Unix world - a student of the Unix culture and a zealous practitioner of the Unix design philosophy. He is also a technology writer. His Lisp series of articles gets featured in the magazine Linux For You
on a regular basis. Every now and then, he manages to talk a bunch of unsuspecting potential programmers into letting him train them in Lisp. It's not rare to find people stumble out after the training session zombified, or with tears running down their faces. "Those are tears of joy!" he will patiently explain.
||Rate per trainee (USD)
||Rate per trainee (INR)
||3 days (24 hours)
||5 days (40 hours)
This training fee is applicable for training in Bangalore, India at our facility. Get in touch with us at connect@codeCraft.in for on-site training or training in other locations. Also, we'll charge back travel and any other expenses incurred by codeCraft.
We are awful at price negotiations. We draw a blank as soon as you initiate a negotiation and you might wonder why are we staring at you thoughtlessly. Now you know.
- You get indian or continental breakfast (your pick), a hot lunch, and continuous beverages and snacks every day.
- codeCraft Training Kit.
- Internet connectivity and power during the training sessions. Goes without saying.
- A stylish codeCraft T-shirt, Sweatshirt, or Hoodie (choose one). If we like you, we'll add personalized dog-tags to your package. If you could share some whacky jokes, we might throw in a Lisper or a Lisperati badge - depending upon the course you signed up for.
- An impressive Certificate of Completion you'd be proud to show-off.
What should I bring?
Your Laptop. Don't forget the charger. It could be a Mac OS X, Linux, or a Windows machine. One week prior to the training, we'll send out detailed set-up instructions for installing what you need for the course.
Get in touch
to know more about us or drop in a mail to connect@codeCraft.in
to register for upcoming training events. Feel free to bug us with any question you might have.