diff --git a/generate_toc.py b/generate_toc.py
index 21937ea..03d5699 100644
--- a/generate_toc.py
+++ b/generate_toc.py
@@ -8,6 +8,7 @@ INPUT = [
"learning_python3.md",
"learning_python3_gui.md",
"learning_git.md",
+ "what_is_next.md",
]
CMD = "gh-md-toc"
FILTER = "(#"
diff --git a/learning_git.md b/learning_git.md
index 6c19802..6ced7d7 100644
--- a/learning_git.md
+++ b/learning_git.md
@@ -215,6 +215,8 @@ You can see which branch and which commit that you push.
## Cloning the remote project into a new project
+To arrive at the *startup screen* shown below you need to close all open projects.
+
![screenhot](assets/git_pycharm_clone_00.png)
![screenhot](assets/git_pycharm_clone_01.png)
diff --git a/outline.md b/outline.md
index f0963f8..2df1eab 100644
--- a/outline.md
+++ b/outline.md
@@ -18,147 +18,3 @@
| 14 | |
| 15 | |
-
-Table of Contents
-=================
-
-* [What we'll learn](./learning_python3.md#what-well-learn)
- * [Concepts](./learning_python3.md#concepts)
- * [Syntax](./learning_python3.md#syntax)
- * [Tools](./learning_python3.md#tools)
- * [Writing code](./learning_python3.md#writing-code)
- * [Running code](./learning_python3.md#running-code)
-* [The python3 shell](./learning_python3.md#the-python3-shell)
-* [Installing pycharm](./learning_python3.md#installing-pycharm)
- * [Virtual environments](./learning_python3.md#virtual-environments)
-* [Your first project](./learning_python3.md#your-first-project)
- * [How to execute](./learning_python3.md#how-to-execute)
- * [Simple printing](./learning_python3.md#simple-printing)
- * [Try it](./learning_python3.md#-try-it)
- * [Try it](./learning_python3.md#-try-it-1)
- * [String replacement](./learning_python3.md#string-replacement)
- * [String formatting](./learning_python3.md#string-formatting)
- * [Some links to read up](./learning_python3.md#some-links-to-read-up)
-* [Taking input](./learning_python3.md#taking-input)
- * [Some functions are blocking](./learning_python3.md#some-functions-are-blocking)
- * [Functions can return something](./learning_python3.md#functions-can-return-something)
- * [Try it](./learning_python3.md#-try-it-2)
- * [Functions can take arguments](./learning_python3.md#functions-can-take-arguments)
- * [Try it](./learning_python3.md#-try-it-3)
-* [Taking input and evaluation](./learning_python3.md#taking-input-and-evaluation)
- * [Conditional logic](./learning_python3.md#conditional-logic)
- * [Class string methods](./learning_python3.md#class-string-methods)
- * [Try it](./learning_python3.md#-try-it-4)
- * [Some links to read up on](./learning_python3.md#some-links-to-read-up-on)
-* [Coding challenge - Currency converter](./learning_python3.md#coding-challenge---currency-converter)
-* [Coding challenge - Celsius to Fahrenheit converter](./learning_python3.md#coding-challenge---celsius-to-fahrenheit-converter)
- * [Some links to read up on](./learning_python3.md#some-links-to-read-up-on-1)
-* [A text based adventure game](./learning_python3.md#a-text-based-adventure-game)
-* [Creating your own functions](./learning_python3.md#creating-your-own-functions)
- * [Functions that do something](./learning_python3.md#functions-that-do-something)
- * [Variable scope](./learning_python3.md#variable-scope)
- * [Functions that return something](./learning_python3.md#functions-that-return-something)
- * [Try it](./learning_python3.md#-try-it-5)
- * [Some links to read up on](./learning_python3.md#some-links-to-read-up-on-2)
-* [Coding challenge - Pretty Print](./learning_python3.md#coding-challenge---pretty-print)
-* [Using the standard library](./learning_python3.md#using-the-standard-library)
-* [Coding challenge - Memento Mori calculator](./learning_python3.md#coding-challenge---memento-mori-calculator)
-* [Writing your first library](./learning_python3.md#writing-your-first-library)
- * [Try it](./learning_python3.md#-try-it-6)
- * [How do we write libraries?](./learning_python3.md#how-do-we-write-libraries)
- * [What is __name__ == "__main__"?](./learning_python3.md#what-is-__name__--__main__)
- * [Anatomy of a program](./learning_python3.md#anatomy-of-a-program)
- * [Try it](./learning_python3.md#-try-it-7)
-* [While loop](./learning_python3.md#while-loop)
- * [Try it](./learning_python3.md#-try-it-8)
-* [Coding challenge - Guess the number](./learning_python3.md#coding-challenge---guess-the-number)
- * [Try it](./learning_python3.md#-try-it-9)
-* [Logical Operators](./learning_python3.md#logical-operators)
-* [Lists](./learning_python3.md#lists)
- * [Creating lists](./learning_python3.md#creating-lists)
- * [List methods](./learning_python3.md#list-methods)
- * [Try it](./learning_python3.md#-try-it-10)
- * [Picking elements and slicing lists](./learning_python3.md#picking-elements-and-slicing-lists)
- * [Try it](./learning_python3.md#-try-it-11)
-* [For loop](./learning_python3.md#for-loop)
-* [Coding challenge - Cheerleader chant](./learning_python3.md#coding-challenge---cheerleader-chant)
-* [Coding challenge - ROT13](./learning_python3.md#coding-challenge---rot13)
- * [Try it](./learning_python3.md#-try-it-12)
-* [Coding challenge - Christmas Tree](./learning_python3.md#coding-challenge---christmas-tree)
-* [List comprehension](./learning_python3.md#list-comprehension)
-* [Handling files](./learning_python3.md#handling-files)
- * [Reading from a file](./learning_python3.md#reading-from-a-file)
- * [In-line way](./learning_python3.md#in-line-way)
- * [Pythonic way](./learning_python3.md#pythonic-way)
- * [Writing to a file](./learning_python3.md#writing-to-a-file)
-* [Coding challenge - Login generator](./learning_python3.md#coding-challenge---login-generator)
-* [Dictionaries as data containers](./learning_python3.md#dictionaries-as-data-containers)
- * [Two dimensional lists](./learning_python3.md#two-dimensional-lists)
- * [Dictionaries](./learning_python3.md#dictionaries)
- * [Try it](./learning_python3.md#-try-it-13)
-* [Coding challenge - Task manager](./learning_python3.md#coding-challenge---task-manager)
- * [CSV based task manager](./learning_python3.md#csv-based-task-manager)
-* [Text based databases](./learning_python3.md#text-based-databases)
- * [Try it](./learning_python3.md#-try-it-14)
-* [Now for some useful scripting](./learning_python3.md#now-for-some-useful-scripting)
-* [Creating our own objects](./learning_python3.md#creating-our-own-objects)
- * [First some abstract examples](./learning_python3.md#first-some-abstract-examples)
- * [Try it](./learning_python3.md#-try-it-15)
- * [Magic methods](./learning_python3.md#magic-methods)
- * [Class inheritance](./learning_python3.md#class-inheritance)
- * [Try it](./learning_python3.md#-try-it-16)
-* [Coding challenge - Chalet floor](./learning_python3.md#coding-challenge---chalet-floor)
- * [Now some practical improvements](./learning_python3.md#now-some-practical-improvements)
- * [Improve the login generator](./learning_python3.md#improve-the-login-generator)
- * [Improve the task manager](./learning_python3.md#improve-the-task-manager)
-* [Infinite programs](./learning_python3.md#infinite-programs)
- * [Logic breakdown of a simple game](./learning_python3.md#logic-breakdown-of-a-simple-game)
- * [A non object orientated solution](./learning_python3.md#a-non-object-orientated-solution)
- * [An object orientated solution](./learning_python3.md#an-object-orientated-solution)
- * [Trivial pursuit multiple choice game](./learning_python3.md#trivial-pursuit-multiple-choice-game)
- * [Introduction to the requests library](./learning_python3.md#introduction-to-the-requests-library)
- * [Threading](./learning_python3.md#threading)
-
-Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc)
-
-
-Table of Contents
-=================
-
-* [tkinter](./learning_python3_gui.md#tkinter)
- * [Tkinter helloworld](./learning_python3_gui.md#tkinter-helloworld)
- * [Adding widgets](./learning_python3_gui.md#adding-widgets)
- * [Try it](./learning_python3_gui.md#-try-it)
-* [Coding challenge - Guess the number](./learning_python3_gui.md#coding-challenge---guess-the-number)
- * [MVC design pattern](./learning_python3_gui.md#mvc-design-pattern)
- * [Coding challenge - Login generator with GUI](./learning_python3_gui.md#coding-challenge---login-generator-with-gui)
- * [Coding challenge - Trivial pursuit with GUI](./learning_python3_gui.md#coding-challenge---trivial-pursuit-with-gui)
-* [WXpython](./learning_python3_gui.md#wxpython)
- * [wxpython helloworld](./learning_python3_gui.md#wxpython-helloworld)
- * [wxpython guess the number](./learning_python3_gui.md#wxpython-guess-the-number)
- * [MVC design pattern](./learning_python3_gui.md#mvc-design-pattern-1)
- * [Coding challenge - Login generator with GUI](./learning_python3_gui.md#coding-challenge---login-generator-with-gui-1)
- * [Coding challenge - Trivial pursuit with GUI](./learning_python3_gui.md#coding-challenge---trivial-pursuit-with-gui-1)
-
-Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc)
-
-
-Table of Contents
-=================
-
-* [About](./learning_git.md#about)
-* [Git via bash](./learning_git.md#git-via-bash)
- * [Initialing a git repo](./learning_git.md#initialing-a-git-repo)
- * [What's in this repo](./learning_git.md#whats-in-this-repo)
- * [Adding and tracking content](./learning_git.md#adding-and-tracking-content)
- * [The main workflow](./learning_git.md#the-main-workflow)
-* [Git via Atom](./learning_git.md#git-via-atom)
-* [Git via Pycharm](./learning_git.md#git-via-pycharm)
- * [Starting a version controlled project](./learning_git.md#starting-a-version-controlled-project)
- * [Creating an online repository](./learning_git.md#creating-an-online-repository)
- * [Adding some changes to our local code](./learning_git.md#adding-some-changes-to-our-local-code)
- * [Cloning the remote project into a new project](./learning_git.md#cloning-the-remote-project-into-a-new-project)
- * [Updating the original project](./learning_git.md#updating-the-original-project)
-
-Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc)
-
diff --git a/readme.md b/readme.md
index cf78c2a..40f86c1 100644
--- a/readme.md
+++ b/readme.md
@@ -162,3 +162,16 @@ Learning git
Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc)
+
+What is next
+=================
+
+* [Some random recommendations](./what_is_next.md#some-random-recommendations)
+ * [IDE](./what_is_next.md#ide)
+ * [Syntax](./what_is_next.md#syntax)
+ * [Concepts](./what_is_next.md#concepts)
+ * [Books](./what_is_next.md#books)
+* [Linux](./what_is_next.md#linux)
+
+Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc)
+
diff --git a/what_is_next.md b/what_is_next.md
new file mode 100644
index 0000000..822516c
--- /dev/null
+++ b/what_is_next.md
@@ -0,0 +1,75 @@
+# Some random recommendations
+
+After our twenty days of python together you should have a solid understanding of the world of programming.
+The foundation of all essential concepts should be clear enough to understand code when it is in front of you.
+A blank slate could still pose a challenge but for that, here are some links and recommendations.
+
+## IDE
+
+Maybe try out some other IDE to see if you like the workflow or layout better.
+I'm a big fan of [vim](https://en.wikipedia.org/wiki/Vim_(text_editor)), especially with some good [plugins](https://gitea.86thumbs.net/waldek/linux_course_doc/src/branch/master/modules/qualifying/learning_vim_configuration.md).
+It's not an *easy* editor to learn but the payoff is pretty great.
+For the more *normal* people I would recommend having a look at the following editors, in no particular order.
+
+* [atom](https://atom.io/)
+* [vscode](https://code.visualstudio.com/)
+* [brackets](https://brackets.io/)
+* [spyder](https://www.spyder-ide.org/) for a more scientific approach
+
+Don't hop around too much though.
+If you're a bit bored with pycharm it could be refreshing to *see* your code through a different window.
+
+## Syntax
+
+Start paying attention to the style guides that pop up in your IDE and follow up on them by reading the actual rules.
+It can be good way to discover some do's and don't and help you to make your code more readable.
+I would also recommend you start browsing online for some coding project in a field of your interests.
+The bigger the project, the higher the chance it follows a specific style.
+By reading and trying to understand their code, you'll start to build a better feel how to annotate, structure and make your code more readable.
+As this is a *very* subjective topic I can only point you to projects I like.
+
+* [python-language-server](https://github.com/palantir/python-language-server)
+* [python-osc](https://github.com/attwad/python-osc)
+* [urwid](https://urwid.org/index.html)
+* [natural language toolkit](https://www.nltk.org/)
+
+## Concepts
+
+We touched on *most* of the elementary concepts but we did go over them quite quickly.
+Take your time to review all base concepts with small exercises and try to chain them together into bigger projects.
+Some python specific *new* concepts I would highly advise you to look into are the following.
+
+* [decorators](https://realpython.com/primer-on-python-decorators/)
+* [getters and setters](https://stackoverflow.com/questions/2627002/whats-the-pythonic-way-to-use-getters-and-setters)
+* [concurrency](https://realpython.com/python-concurrency/)
+* [threading vs async vs multiprocessing](https://leimao.github.io/blog/Python-Concurrency-High-Level/)
+* [design patterns](https://python-patterns.guide/)
+* [memory management in python](https://realpython.com/python-memory-management/)
+* [virtual environments](https://docs.python.org/3/tutorial/venv.html)
+
+If you're interested in creating web applications I would start out with [bottle](https://bottlepy.org/docs/dev/), work your way up to [flask](https://www.fullstackpython.com/flask.html) and maybe move over to [django](https://www.djangoproject.com/).
+You'll definitely need to learn [SQL](https://en.wikipedia.org/wiki/SQL) at some point but you can make your life easier by using [sqlalchemy](https://www.sqlalchemy.org/).
+
+If you want to dive deep into data science you'll need get comfortable with [numpy](https://numpy.org/), [pandas](https://pandas.pydata.org/) and [matplotlib](https://matplotlib.org/).
+The easiest way to get comfortable with all of those is probably [jupyter notebook](https://jupyter-notebook.readthedocs.io/en/stable/index.html) which is an IDE that you use in your browser.
+It's quite different from the pycharm you're used to but it's a very good tool to do data analysis.
+
+If robotics is your thing you might want to give [micropython](https://micropython.org/) a go.
+I've never used it myself but I've heard good things about it.
+
+## Books
+
+These are some books I've actually read and enjoyed.
+
+* [mastering python design patterns](https://www.amazon.de/-/en/Kamon-Ayeva/dp/1788837487/ref=sr_1_2?keywords=python+design+muster&qid=1651784267&sprefix=python+des%2Caps%2C82&sr=8-2)
+* [fluent python](https://www.amazon.de/-/en/Luciano-Ramalho-dp-1492056359/dp/1492056359/ref=dp_ob_title_bk)
+* [design patterns](https://www.amazon.de/-/en/Erich-Gamma/dp/9332555400/ref=sr_1_9?keywords=gang+of+four+design+muster&qid=1651784413&sprefix=gang+of+%2Caps%2C68&sr=8-9)
+* [learn python the hard way](https://learnpythonthehardway.org/python3/)
+* [automate the boring stuff](https://automatetheboringstuff.com/)
+
+# Linux
+
+If you enjoyed the experience of the computers at the school you should give [linux](https://en.wikipedia.org/wiki/Linux) a go at home!
+You used a [debian](https://www.debian.org/) machine with [GNOME](https://www.gnome.org/) as a graphical interface.
+If you're really motivated you could read through my [introduction to linux](https://gitea.86thumbs.net/waldek/linux_short) course.
+It's a work in progress and all feedback is welcome.