Skip to content

Instantly share code, notes, and snippets.

@sizovs
Created May 17, 2023 10:09
Show Gist options
  • Save sizovs/b7e1978efed162c2624ed64736a6314b to your computer and use it in GitHub Desktop.
Save sizovs/b7e1978efed162c2624ed64736a6314b to your computer and use it in GitHub Desktop.
Core Design Principles

Hi Venkat

To create the best possible course offering, I'll need some input from you:

1. Date

Please let me know a date in November or December when you're available in the EU/Berlin timezone to run the course from 9:00 to 17:00. Say, 23-24 November.

2. A brief description of the course

Please share a brief description of the course: for whom is this course, what people will learn, and how the learning process will be organized. 5-10 sentences should be enough.

3. Buzzwords

Please list principles, practices, and patterns covered in the course. I'll need that list to come up with a marketable description.

4. Programming language(s)

Please list programming language(s) in which people will be able to complete exercises. Ideally we should cover Java, C#, and JS/TS. If we can it acccessible to other "tribes" – even better.

5. Prep / setup requirements

Please let me know what are the prep / setup requirements (if any).

6. Tools

Please let me know if Zoom/Slack combo works for you. Zoom is for video, whereas Slack allows attendees to chat, share links, and exchange experiences.

I'll handle the rest.

Thank you!

@venkats
Copy link

venkats commented May 21, 2023

Hi Eduards,

Here are the details:

  1. Date

Here are some possible dates:

November 1, 2, 6, 7, 8, 9
December 21, 22

  1. A brief description of the course

Software Design in Practice

In this hands on, practical course, learn to create lightweight design using fundamental software design principles and prudent use of some common design patterns. Instead of delving into theory, we will take an example driven approach where we will take some sample problems and approach the design. We will apply software design principle and patterns in order to create lightweight, easier to change, and highly relevant design.

What will you learn:
-create lightweight design
-plan for extensibility
-use appropriate design principles
-find when and how to use patterns
-evolve and evaluate different design options

Who should attend:
-programmers
-technical leads
-hands on architects
-technical managers

The course has a good balance between live-coding lectures and hands-on labs.

  1. Buzzwords

Please list principles, practices, and patterns covered in the course. I'll need that list to come up with a marketable description.

Lightweight design
Evaluate trade-offs
Extensibility and reusability
Avoiding duplication
Evolutionary design

  1. Programming language(s)

Please list programming language(s) in which people will be able to complete exercises. Ideally we should cover Java, C#, and JS/TS. If we can it acccessible to other "tribes" – even better.

The examples will be presented in Java, C#, Python, and JavaScript. Attendees are expected to pair up and work jointly to solve the lab exercises. They can choose a language of their choice. The instructor is polyglot and is familiar with about a dozen languages and will be delighted to discuss design options in different languages of the attendee's choice.

  1. Prep / setup requirements

Please let me know what are the prep / setup requirements (if any).

-Git client
-IDE for your favorite languages
-Any necessary compilers or packages for the language of your choice

  1. Tools

If possible I would like to use Zoom only. We can have attendees use the chat feature within Zoom and that works quite well.

Thank you

Venkat

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment