Emanum / programmingResources

A personal list I give people that ask for tech advice

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Programming resources

A personal list I give people that ask for tech advice

Introduction video: https://www.youtube.com/watch?v=66tfvFeALBQ

Programming basics

Start with an "all in one tool" to focus on actual coding and not on setting up your environment.

https://www.jetbrains.com/academy/

personal recommendation: start with Python or Java for basics. Conditoins, loops, functions, classes, etc. But ever language is fine.

If you use python Juptyer Notebook is a good way to start. It is a web based tool where you can write python code and execute it. It is very beginner friendly and you can see the result of your code right away. You can also use it to write text and format it with markdown. If you do not want to install anything you can use google colab. It is basically the same as Juptyer Notebook but you do not need to install anything. You can just use it in your browser. While it is targeted for data science it is also a good way to start with python. https://colab.research.google.com/notebooks/intro.ipynb

Datastructures

You should know the basics of datastructures. What is a list, what is a map, what is a set, etc. Watch this video: https://www.youtube.com/watch?v=ouipSd_5ivQ&ab_channel=ByteByteGo

Algorithms

While this is hardly depended on what you want to achive. Beeing able to implement basic and more advanced algorithms is a good way to train your coding skills in general and check if you understood programming concepts (loops, conditions, etc.) and datastructures.

A famous collection is https://github.com/TheAlgorithms where you can find implementations of many algorithms in many languages. If you come across any named algorithm there is a good chance that you find an implementation there.

Tools

Besides programming itself it is important to know the basics of your tools and some operating system basics.

Git

Git is a version control system. It is used to track changes in your code and to collaborate with others.

https://docs.github.com/de/get-started/quickstart/git-and-github-learning-resources

Editors/IDEs

While there is no need to "learn" a tool like an editor or IDE be sure to know how to use it properly, be fast and convient with it. It is your main tool and you should know how to use it.

OS basics

Learn some basics of the command line. Each programm (you write) is in the end nothing more than an executable file that is run on the command line. Every GUI is just build on top of a command line. While you do not need to use it for your daily work it is good to know the basics. How to navigate through folders, how to create files, how to run programs, what are environment variables, what is a working directory,

Maybe try to run a simple program you wrote on the command line. "python.exe myprogram.py" or "java.exe --jar myprogram.jar" or "node.exe myprogram.js" or "myprogram.exe" or whatever.

Advanaced topics

Databases

Learn basics SQL. It is used in most databases and is a good starting point. At this point it does not matter which DB you use. Postgres, MySQL, MariaDB, etc. are all fine. What is a table. How to create table, insert data, update data, delete data, etc.

Dependency toolchain / ecosystem

Each language is nothing without it's ecosystem. This includes package managers, build tools, etc. For example in Java you have Maven and Gradle. In Python you have pip. In JavaScript you have npm and yarn. This allows you to reuse available packages and libraries and to build your own packages and libraries. You can basically stick it together like lego bricks if you don't want to reinvent the wheel or build some complex stuff.

Jetbrains IDEs or VSCode usually offer a dialog 'new project' where you can select a template for your project. This will create a basic project with a build tool and some basic configuration. This is a good starting point. Then you can just copy paste the dependencies you need from maven repo/npm repo/... and add them to your build tool configuration.

Web Basics

Learn HTML and CSS. It is not programming but it is the basis of the web. You should know how to create a simple website with HTML and CSS.

Bigger framework

When you know some basics you can choose any bigger framework depending on what you want to do. Frontend, backend, ... Examples: Spring, React, Vue, ...

useful/funny YouTube channels

Fireship
https://www.youtube.com/@Fireship

Compact funny yet informative videos about various topics.

Byte Byte Go https://www.youtube.com/@ByteByteGo

Explains different tech concepts (HTTPs, Datastructures, Architecture, ... ) Good information source but probably hard to understand for beginners. If you want to unterstand a certain topic it might be a good start.

About

A personal list I give people that ask for tech advice