Do you want to create a portfolio of work to help you get that first job?
Are you learning a new language, and want some structure to guide you?
Portfolio Builder is a series of exercises to demonstrate your abilities in a new programming language.
The list of exercises is below. The details of each exercise (follow the links) are in folder exercises.
I'll be gradually completing these exercises in many languages. This is both for my own edification and to provide example solutions. These examples are in folder solutions followed by the language name and then the exercise name.
You will need to create your own repository for your solutions. You don't need to fork from this repo, it's just a reference to read from.
Some of these exercises cannot be completed in all programming languages; for instance, some languages have no GUI support. Just complete what you can.
After the first few exercises, the rest are not strictly ordered by difficulty. Some languages will be better suited to some exercises, and some programmers will find some concepts easier to understand. Feel free to skip around, this is your practice time!
Let's get started!
01 Console: Hello, World execute a program
02 Console: FizzBuzz use loops and conditionals
10 Console: Happy Numbers functions, flow controls, and unit tests
11 Console: Diagnostics timing metrics, sorting algorithms, random numbers, and recursion
20 Console: Input/Output take console input, respond with output
30 Console: Data Pipeline data pipelines, read from file, write to file
40 Console: Regular Expressions
50 Console: ?
60 Console: Multi-threading
70 REST API: Fruits Inventory
80 GUI: Binary Calculator
90 GUI: Drag-n-Drop Diagram
(Why do the exercise numbers have gaps? So that more can be added later without disrupting the numbers that are already being referenced.)
I keep my own programming language notes here. I've found the practice of keeping notes really helpful over the years, and recommend you find a method that works well for you.