Internship Guide

Onboarding

erhalten einen ersten Eindruck ihrer Mitarbeiterinnen und Mitarbeitern Anzeigen
kennen den Ablauf und die Ziele des Praktikums Anzeigen
haben das Laptop Setup erledigt Anzeigen
kennen das Büro der Renuo AG Anzeigen

Firmeninterne Abläufe

verstehen ihre Rolle als Praktikant oder Praktikantin als Bubble-Buster Anzeigen
kennen die firmeninternen Werte, Strukturen, Prozesse und Aktivitäten Anzeigen

2.1 Werte

2.1.1 Werte der Renuo AG

kennen die Werte der Renuo und wissen, wie sie diese im Alltag vertreten können Anzeigen
wissen, wo diese in der Renuo AG bewerkstelligt werden Anzeigen
verstehen und verwenden die Begriffe "Qualität und Präzision", "Verantwortung", "Fairness und Transparenz", "Neue Wege" und "Zusammen" Anzeigen
handeln und arbeiten den Werten entsprechend im Arbeitsalltag Anzeigen
kennen moralische Überlegungen, die wir uns in der Vergangenheit gemacht haben Anzeigen

2.1.2 Clean Code

kennen die Regeln des "Clean Codes" von Robert C. Martin und können nach deren Prinzipien programmieren Anzeigen

2.1.3 Clean Coder

wissen, wieso sich Vertiefen lohnt Anzeigen
kennen die Verhaltensregeln für professionelle Programmierer gemäss dem Buch "Clean Coder" von Robert C. Martin Anzeigen

2.1.4 Lightning Talks

halten mindestens einen Lightning Talk zu einem in ihrem Interessengebiet liegenden und aktuellen Thema Anzeigen

2.1.5 Open Source

erstellen mindestens einen Pull-Request für ein Open Source Projekt, das nicht von Renuo kontrolliert wird Anzeigen

2.2 Firmenspezifische Strukturen, Aktivitäten und Prozesse

kennen die firmenspezifischen Aktivitäten und Prozesse und nehmen aktiv an ihnen teil Anzeigen

2.2.1 Aufbau der Renuo AG

kennen die Kernkompetenzen der Renuo Anzeigen
können einer Drittperson präzise Auskunft geben, worin die Renuo stark ist und in welchen Geschäftsfeldern sie nicht aktiv ist Anzeigen
kennen die Rollen und Funktionen der Mitarbeiterinnen und Mitarbeiter Anzeigen

2.2.2 Working Groups

übernehmen Verantwortung für ihren Aufgabenbereich und erledigen ihre Aufgaben zuverlässig Anzeigen
wissen, welche Working Groups in der Firma vorhanden sind Anzeigen
kennen die Aufgabenbereiche der Working Groups Anzeigen
nehmen an mindestens einem Meeting der Geschäftsleitung als Beisitz teil Anzeigen
nehmen gelegentlich aktiv an den wg-engineering Meetings teil und bringen ihr Wissen mit ein Anzeigen

2.2.3 General Meeting

wissen, wann das General Meeting stattfindet Anzeigen
können die Funktion vom General Meeting nennen Anzeigen
nehmen am General Meeting teil Anzeigen

2.2.4 Kundenkontakt

können die Bürotür öffnen und professionell begrüssen Anzeigen
können das Telefon professionell beantworten Anzeigen
können professionelle Mails schreiben Anzeigen

2.2.5 Administration

können korrekt Arbeitszeit buchen Anzeigen
haben Ferien- und Arbeitsplanung unter Kontrolle Anzeigen

Renuo Workflow

verstehen, was es braucht, um Kundenwünsche zu realisieren Anzeigen

3.1 Tickets verwalten

wissen, wie man ein Kunden-Ticket aufnimmt und richtig einordnet Anzeigen
kennen die verschiedenen Stadien eines Kunden-Tickets aufgrund des Redmine Workflow der Renuo AG Anzeigen
können ihren Sprint selbständig verwalten Anzeigen
wissen, aus welchen Komponenten eine Offerte für ein neues Kundenprojekt besteht Anzeigen
können zwischen Kunden-Anforderungen und Entwickler-Anforderungen unterscheiden (FURPS) Anzeigen

3.2 Entwickler-Prozesse

können eine Codeänderungen zum Produktiv-Einsatz bringen Anzeigen
verschaffen sich alles nötige Kontextwissen vor der Umsetzung eines Kundenwunsches Anzeigen
wissen, wo die Spezifikationen eines Änderungswunsches einsehbar sind Anzeigen
wissen, woher der schon bestehende Code des Projektes zu beziehen ist Anzeigen
können überprüfen, ob sich ihre Codeänderungen korrekt in das bestehende System einfügen (z. B. mittels Linting, Tests) Anzeigen
wissen, wie sie ihre Codeänderungen ins Git einchecken Anzeigen
wissen, wo sie überprüfen können, ob sie die von der Continuous Integration vorgegebenen Qualitätsregeln erfüllen Anzeigen
wissen um das Vier-Augen-Prinzip bei jeglicher Codeänderung (Reviews) Anzeigen
wissen, wie man sicherstellen kann, dass ein Deployment erfolgreich war Anzeigen
können neue Features gemäss der Priorität des Kunden entwickeln Anzeigen

3.3 Projekt aufsetzen

wissen, wo die firmeninterne Guideline zur Erstellung von Ruby on Rails Projekten zu finden sind Anzeigen
können ein Ruby on Rails Projekt gemäss dem Setup-Guide von der Renuo AG aufsetzen. Anzeigen
können ein Projekt nach der firmeninternen Guideline erstellen Anzeigen

Projektmanagement

kennen die in der Renuo AG verwendeten Konzepte der agilen Softwareentwicklung Anzeigen

4.1 Scrum

4.1.1 Scrum Theorie

kennen die Definition von Scrum Anzeigen
kennen die Arbeitsweise von Scrum Anzeigen
können nach diesem Vorgehensmodell der agilen Softwareentwicklung arbeiten Anzeigen
wissen, wie Scrum in der Renuo angewendet wird Anzeigen
kennen Unterschiede zwischen Scrum nach Lehrbuch und der Anwendung bei der Renuo Anzeigen

4.1.2 Daily Standup

kennen den Ablauf vom Daily Standup Anzeigen
wissen, wann die Stand-up Zeiten sind Anzeigen
nehmen am Daily Standup teil Anzeigen
können die Vor- und Nachteile vom Daily Standup nennen Anzeigen

4.1.3 Scrum Meeting

wissen, wann das Scrum Meeting stattfindet Anzeigen
kennen den Ablauf und die Dauer eines Sprints Anzeigen
wissen, was ein Sprint Goal ist Anzeigen
kennen die Funktion vom Sprint Review und Sprint Retrospective Anzeigen
kennen die Funktion vom Planning Anzeigen
wissen, was die Ziele des Plannings, Reviews und Retros sind Anzeigen
kennen die Scrum Events Anzeigen

4.1.4 Unterschiedliche Rollen im Scrum

kennen den Aufbau des Scrum Teams und können dessen Rollen beschreiben Anzeigen
können die Rolle des Project Owner beschreiben Anzeigen
können die Rolle des Scrum Master beschreiben Anzeigen
können die Rolle des Entwicklungsteams beschreiben Anzeigen

4.2 Kanban

kennen Kanban als Vorgehensmodell der Softwareentwicklung Anzeigen
können die Vorgehensweise von Kanban erklären Anzeigen
können einige Vorteile von Kanban nennen Anzeigen
können den Unterschied zwischen Scrum und Kanban erklären Anzeigen
wissen, wie Kanban in der Renuo AG umgesetzt wird ("Scrumban") Anzeigen

Programmiersprachen und Frameworks

können Features mit den Haupttechnologien der Renuo AG umsetzen Anzeigen

5.1 Ruby on Rails

können bestehende Ruby on Rails Applikationen unterhalten Anzeigen
können neue Features in bestehenden oder neuen Applikationen implementieren Anzeigen
kennen Slim Templates in den Rails-Views Anzeigen
können ERB-Templates in den Rails-Views nutzen Anzeigen
verstehen Turbo als integrative Frontend Lösung von Rails Anzeigen
haben ihr Wissen zu Ruby on Rails repetiert und vertieft Anzeigen
kennen und verstehen Active Record Models Anzeigen
kennen Rails Associations und können diese anwenden Anzeigen
können die Struktur der Datenbank mit Hilfe von Active Record Migrations verändern Anzeigen
können Active Record Validations und Active Record Callbacks anwenden Anzeigen
kennen und verstehen Action View Anzeigen
kennen die Layout-Eigenschaften von "Action View" und "Action Controller" Anzeigen
können "content_for" blocks benutzen Anzeigen
kennen den Begriff "Partials" und können deren Funktion erklären Anzeigen
können die Funktion von "View Helpers" erklären und kennen Beispiele dazu Anzeigen
wissen, wie Controllers funktionieren Anzeigen
können die Begriffe "Session", "Flash", "Callbacks" und "Cookie" erklären und anwenden Anzeigen
wissen, wie das Routing in einer Rails Applikation gehandhabt wird Anzeigen
können eine neue Rails Applikation gemäss den Rails Guides erstellen Anzeigen
können eine neue Rails Applikation mit einer Datenbank verbinden Anzeigen
kennen die Struktur einer Rails Applikation Anzeigen
wissen was eine Asset Pipeline ist Anzeigen
wissen was I18n ist Anzeigen
wissen, wie man Internationalization mit Rails umsetzt. Anzeigen

5.1.1 Ruby

verstehen Ruby als Programmiersprache Anzeigen
können aufzeigen, welche Unterschiede sie im Vergleich zu einer ihnen bekannten Programmiersprache bemerkt haben Anzeigen
verstehen RubyGems als Ruby-Ökosystem Anzeigen
können Ruby in Projekten einsetzen Anzeigen
wissen, was Enumerables und Arrays sind und können diese anwenden Anzeigen
kennen die Ruby-Datentypen "Numeric", "Strings" und "Booleans" und können sie einsetzen Anzeigen
kennen die Ruby-Datentypen "Hash" und "Array" Anzeigen
kennen und verstehen der Ruby Docs zu "Hash" Anzeigen
kennen und verstehen der Ruby Docs zu "Numeric", "Float", "Integer", "String" und "Symbol" Anzeigen
wissen um das "Enumerable"-Modul in Ruby Anzeigen
können erklären, was "Blocks" in Ruby sind Anzeigen
können Sonderfälle durch das Auslösen von Exceptions behandeln Anzeigen

5.1.2 Guidelines

kennen die Ruby on Rails Guidelines Anzeigen
können ein Feature den Guidelines entsprechend implementieren Anzeigen
kennen die firmeninternen Ruby on Rails Coding- und Konfigurations-Guidelines Anzeigen

5.1.3 MVC

wissen, für was das Akronym MVC steht Anzeigen
kennen die Grundprinzipien von MVC Anzeigen
kennen die Bedeutung von "Model" Anzeigen
kennen die Bedeutung von "View" Anzeigen
kennen die Bedeutung von "Controller" Anzeigen
wissen, wie die Begriffe "Model", "View" und "Controller" in Zusammenhang stehen Anzeigen

5.1.4 Tools

kennen DatoCMS als Headless CMS Anzeigen

5.2 Flutter

können an einem bestehenden Flutter-Projekt mitarbeiten Anzeigen
kennen die Vor- und Nachteile gegenüber PWAs, WebViews und reinen Swift/Java-Apps Anzeigen
kennen Dart (die Programmiersprache) Anzeigen

5.3 JavaScript

wissen, welche Rolle JavaScript im Web spielt Anzeigen
können JavaScript in einem Projekt integrieren Anzeigen
können JavaScript anwenden Anzeigen
können mit JavaScript eine dynamische Webseite erstellen Anzeigen
können Loops, Conditionals, Functions, Arrays, Objects, Closures und Prototypes mit JavaScript implementieren Anzeigen
wissen, wie Vererbung mit JavaScript funktioniert Anzeigen

5.3.1 jQuery

verstehen jQuery als JavaScript Library Anzeigen
kennen die Basics von jQuery Anzeigen
können Elemente mit jQuery modifizieren und die Interaktion mit den Benutzern verbessern Anzeigen
können jQuery mit native Selectors ersetzen Anzeigen

5.3.2 Ajax

wissen, für was das Akronym Ajax steht Anzeigen
können erklären, wofür Ajax eingesetzt wird Anzeigen
kennen die Fetch-API Anzeigen
können eine Webseite asynchron aktualisieren Anzeigen
können verschiedene Request-Methoden anwenden Anzeigen
können Daten einem Server schicken Anzeigen
können Promises im Zusammenhang mit Ajax verwenden Anzeigen

5.3.3 JSON

wissen, für was das Akronym JSON steht Anzeigen
verstehen JSON als kompaktes Unicode-Datenformat Anzeigen
wissen, was JSON ist und in welchem Zusammenhang es mit Ajax steht Anzeigen
wissen, dass JSON vor allem für den Austausch von Daten gebraucht wird Anzeigen
können JSON- Objekte de-/serialisieren Anzeigen

5.3.4 TypeScript

verstehen TypeScript als kompilierte Programmiersprache Anzeigen
können TypeScript in Projekten einsetzen Anzeigen
kennen Unterschiede zu ECMAScript sowie Vor- und Nachteile von TypeScript Anzeigen
können Unterschiede zwischen TypeScript und JavaScript erklären Anzeigen

5.3.5 Node

haben Grundkenntnisse über Node Anzeigen
verstehen Node als eigenständiges JavaScript-Ökosystem, das ohne Web-Browser funktioniert Anzeigen
können Node-Versionen mit asdf verwalten Anzeigen
können Pakete mit Yarn und npm installieren Anzeigen

5.3.6 Stimulus

kennen das Frontend-Framework Stimulus Anzeigen
können Stimulus in ein Rails-Projekt einbinden und verwenden Anzeigen

5.3.7 Frameworks

kennen elementare Konzepte aus den gängigsten Frameworks Anzeigen
wissen, welche grossen Firmen welche Frameworks vorwärts treiben Anzeigen
können den Begriff "Component" erklären und kennen dessen Bedeutung in Angular und React Anzeigen
können den Begriff "Data Binding" erklären und kennen dessen Bedeutung in Angular und React Anzeigen
können den Begriff "Dependency Injection" erklären und kennen dessen Bedeutung Anzeigen
kennen das Two-Way Data Binding von Angular Anzeigen
kennen Dependency Injection von Angular Anzeigen
kennen Components in Angular und React Anzeigen
kennen den Rendering-Ablauf von React Anzeigen

5.3.8 Bundlers

wissen für was man JavaScript-Bundlers einsetzt Anzeigen
kennen verschiedene Lösungen (webpack, esbuild, sprockets) zum Einsatz als JavaScript-Publishing-Pipeline Anzeigen
kennen Importmaps als Null-Build-Alternative zu JS-Bundling Tools Anzeigen

5.3.9 PWA

wissen was eine PWA ist Anzeigen
kennen den Begriff PWA und haben erste Versuche damit gemacht Anzeigen
kennen Vor- und Nachteile beim Einsatz einer PWA (z. B. Einschränkungen in iOS) Anzeigen

Testen

können die Software auf die Erfüllung von vordefinierten Anforderungen testen Anzeigen

6.1 Test-driven development (TDD)

wissen, für was das Akronym TDD steht Anzeigen
kennen die Vorgehensweise von TDD Anzeigen
sind in der Lage, Software-Tests vor den kleineren, zu testenden Komponenten zu erstellen Anzeigen
kennen die Vorteile und Gefahren von TDD Anzeigen
kennen die Unterschiede zwischen Test-first und TDD-Methoden Anzeigen
beherrschen die testgetriebene Entwicklung Anzeigen
wenden die Methode von TDD im Arbeitsalltag an Anzeigen
sind in der Lage, verschiedene und auch grössere Komponenten mit TDD zu entwickeln Anzeigen

6.2 Ruby Tests (RSpec, Capybara)

wissen, wie man RSpec-Tests schreibt und können damit ihren Code überprüfen Anzeigen
wissen, wie man RSpec im Projekt integriert Anzeigen
wissen, wann RSpec-Tests eingesetzt werden Anzeigen
kennen die Syntax von RSpec Anzeigen
kennen den Aufbau eines Rspec Tests Anzeigen
können ihre Rails Applikation mit Hilfe von RSpec testen Anzeigen
verwenden FactoryBot für die Erstellung von Testdaten Anzeigen
verwenden Webmock für Attrappen einfacher externer Dienste Anzeigen
verwenden VCR für Attrappen komplexer externer Dienste Anzeigen
wissen um die Stärken und Schwächen von Webmock und VCR Anzeigen

6.3 JavaScript Tests (Jest)

wissen, wann JavaScript Tests eingesetzt werden Anzeigen
wissen, wie man JavaScript-Tests schreibt und können damit ihren Code überprüfen Anzeigen
wissen, wie man ein JavaScript-Testframework in das Projekt integriert (z. B. Jest) Anzeigen
können JS-Code Unit-testen Anzeigen
kennen die Syntax von Jest Anzeigen
können das Verhalten ihrer Anwendung mit Hilfe von JavaScript-Tests prüfen Anzeigen

6.4 Testarten

können verschiedene Testarten benennen und wissen, wann diese zum Einsatz kommen (Test-Pyramide) Anzeigen
wissen, welche Testarten in Rails verwendet werden Anzeigen
können die Component-, Integration-, System- und Exploratory- Tests beschreiben und erklären, wann diese zum Einsatz kommen Anzeigen

6.4.1 Unit-Tests

können Unit-Tests anwenden Anzeigen
können erklären, wann Unit-Tests zum Einsatz kommen Anzeigen
kennen die Charakteristika von guten Unit-Tests Anzeigen

6.4.2 Component-Tests

können Component-Tests anwenden Anzeigen
können mindestens einen Component-Test aufzählen Anzeigen
wissen, was ein Component-Test ist und wann man diesen einsetzt Anzeigen

6.4.3 Integration-Tests

können erklären, wann Integration-Tests zum Einsatz kommen Anzeigen

6.4.4 System-Tests

können erklären, was System-Tests sind und wann sie zum Einsatz kommen Anzeigen

6.4.5 Acceptance-Tests

können Acceptance-Test anwenden Anzeigen
wissen, was ein Acceptance-Test ist und wann dieser zum Einsatz kommt Anzeigen
kennen den Unterschied zwischen Unit-Tests und Acceptance-Test Anzeigen

6.4.6 Smoke-Tests

können Smoke-Tests unter Beachtung verschiedener Betriebssysteme und Browser (sowohl diverse Web-, als auch mobile Browser) durchführen Anzeigen

6.5 Linting

wissen, was Linter sind und wozu diese eingesetzt werden Anzeigen
wissen, wie sie bei uns eingesetzt werden Anzeigen
können Linter in einem Projekt einbinden Anzeigen
wissen um die Vor- und Nachteile von Auto-Fixern Anzeigen

6.6 Testabdeckung

wissen, wozu man die Testabdeckung eines Projektes misst Anzeigen
wissen, was die Code-Testabdeckung bedeutet Anzeigen
wissen, wie man die Coverage misst (SimpleCov, LCov, etc.) Anzeigen
wissen, wieso 100% Code-Coverage Vertrauen schafft Anzeigen

Deployment und Betrieb

7.1 Portabilität

wissen, was es für möglichst portable Applikationen braucht Anzeigen
kennen 12factor und beachten dessen Regeln bei ihren Applikationen Anzeigen
wissen, wo sich bei einer Applikation Benutzerdaten, Konfiguration und Programmcode befinden Anzeigen

7.2 Docker

können die Rails-Konsole in einem Docker-Container aufrufen Anzeigen
verstehen das Konzept von Docker-Containern Anzeigen
kennen die wichtigsten Docker-Befehle Anzeigen
können anhand eines Basis-Images einen Service betreiben Anzeigen
wissen, wieso Docker keine virtuelle Maschine ist Anzeigen

7.3 Logs und Metriken

können den Zustand einer Applikation anhand von Logs und Metriken beurteilen Anzeigen
kennen die Dateipfade, wo Logs geschrieben werden Anzeigen
können sich Zugriff auf Logs einer laufenden Applikation beschaffen Anzeigen
kennen Web-Services, die Logs und Metriken aufarbeiten und durchsuchbar präsentieren Anzeigen

User Interfaces (UI)

kennen die Komponenten einer Webseite Anzeigen
befassten sich mit der Gestaltung von User Interfaces Anzeigen

8.1 HTML

kennen die Funktion von HTML in einer Webseite Anzeigen
können eine HTML Seite nach dem aktuellen Standard erstellen Anzeigen
wissen, was das Akronym HTML bedeutet Anzeigen
können erklären, wieso HTML eine Auszeichnungssprache ist Anzeigen
können erklären, wieso die ersten beiden Buchstaben im Akronym HTML für "Hypertext" stehen Anzeigen
kennen Neuerungen von HTML5 gegenüber HTML4 und XHTML Anzeigen

8.1.1 Rolle

wissen, welche Rolle HTML im Web spielt Anzeigen

8.1.2 Aufbau

kennen den Aufbau eines HTML Dokuments Anzeigen
wissen, welche Inhalte in den Head und welche in den Body gehören Anzeigen
können Elemente und Attribute ihrer Bedeutung entsprechend einsetzen Anzeigen

8.1.3 HTML-Tags

können erklären, wie die hierarchische Struktur eines HTML-Dokuments zu Stande kommt Anzeigen
wissen, wie ein HTML-Tag aufgebaut ist Anzeigen
kennen die neuen HTML5-Elemente Anzeigen
können einen Link in ein HTML-Dokument einfügen Anzeigen

8.1.4 Unicode und Zeichenkodierung

wissen, dass Unicode ein internationaler Standard für Zeichencodierung ist Anzeigen
kennen UTF-8 als am weitesten verbreitete Kodierung für Unicode-Zeichen Anzeigen
können erklären, was mit Zeichencodierung gemeint ist Anzeigen
wissen, dass eine Zeichencodierung eine eindeutige Zuordnung von Schriftzeichen und Symbolen innerhalb eines Zeichensatzes erlaubt Anzeigen
wissen, was Plaintext ist Anzeigen

8.2 CSS

kennen die Funktion von CSS in einer Webseite Anzeigen
können ein CSS Dokument nach dem aktuellen Standard erstellen Anzeigen
wissen, was das Akronym CSS bedeutet Anzeigen
kennen Erneuerungen von CSS zu CSS3 Anzeigen
können die Gestaltung des Inhalts eines HTML-Dokuments mit CSS verändern Anzeigen

8.2.1 Rolle

wissen, welche Rolle CSS im Web spielt Anzeigen

8.2.2 Guides

kennen SMACSS als CSS-Entwurfsmuster Anzeigen
kennen BEM als CSS-Entwurfsmuster Anzeigen

8.2.3 Selektoren

kennen verschiedene Arten von Selektoren Anzeigen
wissen, wie Selektoren eingesetzt werden Anzeigen
können verschiedene Selektoren miteinander verbinden Anzeigen

8.2.4 SCSS

wissen, was das Akronym SCSS bedeutet Anzeigen
verstehen die Funktionsweise von SCSS Anzeigen
können die Unterschiede von SCSS zu CSS nennen Anzeigen
kennen die Vorteile von SCSS Anzeigen
können SCSS in ein Projekt einbinden Anzeigen
kennen weitere Skriptsprachen für CSS, wie beispielsweise LESS, und können Unterschiede benennen Anzeigen

8.2.5 Flexbox

wissen, was Flexbox ist Anzeigen
können Flexbox einsetzen Anzeigen

8.2.6 CSS-Grid

wissen, was CSS-Grid ist Anzeigen
können CSS-Grid einsetzen Anzeigen

8.2.7 CSS-Frameworks

können verschiedene Frontend-Frameworks benennen Anzeigen
kennen die Vorteile von Bootstrap Anzeigen
können Bootstrap in ein Projekt integrieren Anzeigen
kennen die verschiedenen Einsatzmöglichkeiten von Bootstrap Anzeigen
kennen die verschiedenen Funktionalitäten von Bootstrap Anzeigen
wissen, dass Bootstrap mit JavaScript verwendet werden kann Anzeigen
kennen Tailwind als alternative zu Bootstrap Anzeigen
kennen den Begriff "Designsystem" Anzeigen

8.3 Responsive Web-Design

wissen, wie man Webseiten auf die Eigenschaft des jeweils benutzten Endgeräts anpasst Anzeigen
wissen, was man unter "Responsive Webdesign" versteht Anzeigen
kennen den "Mobile-First" Ansatz und können dessen Vorgehensweise beschreiben Anzeigen
können einige Vorteile des Mobile-First Ansatz benennen Anzeigen
benutzen Media Queries zur Gewährleistung von Responsive Webdesign Anzeigen

8.4 User Interface (UI) Techniken

können eine Webseite oder ein neues Feature ansprechend gestalten Anzeigen
kennen UI-Grundlagen, um ein Interface benutzerfreundlich zu gestalten Anzeigen
wissen, wie sie Inhalte einer Website mit Tiefen, Farben und Kontrasten hierarchisch anordnen können Anzeigen
kennen Grundlagen zur Verwendung von Schriftarten Anzeigen

Netzwerkprotokolle

9.1 IP / TCP / UDP

Die Praktikanten und Praktikantinnen wissen, welche Rollen die Protokolle IP, TCP und UDP im Netzwerk-Stack spielen.

wissen, dass QUIC mit UDP arbeitet Anzeigen
können den Unterschied zwischen einer TCP-Paket und einem UDP-Datagram erklären Anzeigen
wissen, dass TCP eine Verbindung aufbaut Anzeigen
wissen, dass ein Netzwerk-Port zu einem Computer-Prozess gehört Anzeigen

9.2 HTTP / HTTPS

kennen das HTTP-Protokoll und seine Rolle und Einsatzgebiete im World Wide Web Anzeigen
kennen den Aufbau einer URL Anzeigen
kennen den Aufbau und das Format eines HTTP-Requests Anzeigen
wissen, wie ein HTTP-Request zustande kommt Anzeigen
kennen die verschiedenen Request-Methoden (GET, POST, etc.) und deren Funktionalitäten Anzeigen
kennen die verschiedenen HTTP-Statuscodes und wissen, was diese bedeuten Anzeigen
kennen das MIME Multipart-Format Anzeigen

9.2.1 HTTP

wissen, wofür das Akronym HTTP steht Anzeigen
verstehen das HTTP-Protokoll als Transportmittel für die Übertragung von Webseite-Bestandteilen Anzeigen
kennen die Versionsunterschiede zwischen 0.9, 1.0, 1.1 und 2 Anzeigen

9.2.2 HTTPS

kennen den Unterschied zwischen HTTPS und HTTP Anzeigen
kennen die Einsatzbereiche von HTTPS Anzeigen
verstehen wie TLS und Domain-validated Certificates zusammenhängen Anzeigen
wissen, wie HSTS eingesetzt wird, um unverschlüsselte Webseiten-Aufrufe zu verhindern Anzeigen

9.3 SSH

wissen, was SSH ist und können damit arbeiten Anzeigen
wissen, dass das Akronym SSH für "Secure Shell" steht Anzeigen
wissen, wie sie eine verschlüsselte Netzwerkverbindung mit einem entfernten Gerät herstellen können Anzeigen
wissen, was ein Private- und ein Public Key ist und welcher von beiden besonders schützenswert ist Anzeigen
wissen, wie man SCP für Dateitransfers verwendet Anzeigen

9.4 DNS

wissen, wie DNS funktioniert Anzeigen
wissen, welche Stationen eine DNS-Abfrage passiert Anzeigen
können `dig` und `nslookup` verwenden Anzeigen
kennen die häufig verwendeten Record-Typen Anzeigen
kennen die Rolle des Registrars Anzeigen
wissen, wo sich die `hosts`-Datei befindet und um deren Zweck Anzeigen
wissen, wie Domain-Namen mit TLS zusammenhängen Anzeigen

9.5 SMTP

wissen was SMTP ist und können damit arbeiten Anzeigen
wissen, wie man Empfänger konfiguriert (TO, CC, BCC) Anzeigen
wissen um Spam-Erkennungs-Heuristiken Anzeigen
wissen, wozu SPF nützlich ist Anzeigen

10 Tools

kennen und verwenden die in der Firma gängigen Tools Anzeigen

10.1 Redmine

verwenden Redmine und kennen dessen Anwendungsbereiche Anzeigen
wissen, welche Daten im Wiki zu finden sind Anzeigen
können das Wiki auf Redmine anpassen Anzeigen
können Tickets erstellen und verwalten Anzeigen
können ihre Zeiteinträge mit Redmine Tracky erfassen Anzeigen
können Zeiteinträge in Redmine korrigieren Anzeigen

10.2 Git und Github

verwenden Git und kennen dessen Anwendungsbereich Anzeigen
haben einen ersten Commit deployed: Sich selbst auf der Website hinzugefügt Anzeigen

10.2.1 Git

verstehen Git als verteiltes Versionierungssystem Anzeigen
können ein Projekt mit Hilfe von Git verwalten Anzeigen
können Konflikte nach dem Zusammenführen durch manuelles Editieren der betroffenen Datei lösen Anzeigen
kennen Gitflow als Best Practice für die Branch-Strukturierung Anzeigen
verstehen, was Git ist und für was es eingesetzt werden kann Anzeigen
können ein neues Repository anlegen (git init) Anzeigen
können ein Repository auschecken (git clone) Anzeigen
können Änderungen vorschlagen (git add) Anzeigen
können die geänderten und vorgeschlagenen Änderungen sichten (git status) Anzeigen
können Änderungen bestätigen (git commit) Anzeigen
können Änderungen hochladen (git push) Anzeigen
können einen neuen Branch erstellen, löschen oder zu einem anderen Branch wechseln (git checkout) Anzeigen
können ein aktuelles Repository mit den neuesten Änderungen aktualisieren (git pull) Anzeigen
können einen Branch mit einem anderen zusammenführen (git merge) Anzeigen

10.2.2 GitHub

wissen, für was Github benutzt wird Anzeigen
können nach einem Repository suchen Anzeigen
können einen Pull-Request erstellen und einer anderen Person zuweisen Anzeigen
können ein Review für einen Pull-Request geben Anzeigen
können ein Repository forken Anzeigen

10.3 Google Suite

kennen die Office-Tools der Google Suite Anzeigen
kennen Google Calendar Anzeigen
kennen Google Docs Anzeigen
kennen Google Sheets Anzeigen
kennen Google Slides Anzeigen
kennen Google Mail Anzeigen
wissen um die Scripting-Funktionalität der Google Suite (Apps Script) Anzeigen

10.4 RubyMine

kennen und nutzen RubyMine als Entwicklungsumgebung Anzeigen
kennen Vorteile von RubyMine gegenüber anderen Entwicklungsumgebungen Anzeigen

10.5 Chrome DevTools

wissen, wo Chrome DevTools zu finden sind Anzeigen
nutzen Chrome DevTools als Debugging-Umgebung Anzeigen
können dadurch ihren Workflow verbessern Anzeigen

10.6 Postman

kennen und nutzen Postman Anzeigen
wissen, wie man mit Postman authentisierte HTTP-Requests absetzt Anzeigen

10.7 Deploio

kennen und nutzen Deploio Anzeigen
wissen, für was Deploio eingesetzt wird Anzeigen
verstehen Deploio als Hoster von Webapplikationen Anzeigen
können ein neues Projekt auf Deploio hinzufügen Anzeigen
wissen, wie Umgebungsvariablen bei Deploio hinzugefügt werden können Anzeigen
können wiederkehrende Tasks in Deploio konfigurieren Anzeigen

10.8 Semaphore

kennen und nutzen Semaphore Anzeigen
können die Semaphore-Konfigurationsdatei lesen und erklären Anzeigen
können anhand der Logs einen Build debuggen Anzeigen

10.9 Sentry

kennen und nutzen Sentry Anzeigen
kennen die wichtigsten Funktionen und Kennzahlen in einem Issue Anzeigen
können die Kritikalität einer Sentry-Issue selbst oder mit Fremdhilfe richtig einschätzen Anzeigen
können eine Sentry-Issue aufgrund ihrer Kritikalität weiterverarbeiten (Ticket, ignorieren, postpone) Anzeigen

10.10 Newrelic

kennen Newrelic und können es anwenden Anzeigen
kennen die wichtigsten Funktionen von Newrelic Anzeigen
können anhand der Daten aus NewRelic eine Performance-Analyse machen Anzeigen
erkennen Problemstellen eines Projekts und kennen Gegenmassnahmen Anzeigen

10.11 AWS

kennen und nutzen AWS Anzeigen
kennen die von uns am häufigsten verwendeten AWS-Services Anzeigen
kennen S3 Anzeigen
kennen CloudFront Anzeigen
kennen IAM Anzeigen
wissen was Lambda ist Anzeigen
können mithilfe der Renuo CLI einen S3 Bucket aufsetzen Anzeigen

10.12 Cloudflare

kennen und nutzen Cloudflare Anzeigen
können eine Subdomain zu renuoapp.ch hinzufügen Anzeigen
können eine Domain auf Cloudflare verwalten Anzeigen
kennen mögliche Problemstellen von Cloudflare (Caching, RocketLoader..) Anzeigen

10.13 Sendgrid, Sparkpost und Mailtrap

kennen verschiedene Mail-Services Anzeigen
kennen Sendgrid als Variante um Mails aus einer App zu schicken Anzeigen
kennen Sparkpost als Variante um Mails aus einer App zu schicken Anzeigen
kennen Mailtrap als sicheres Email-Testing auf Staging und in der Entwicklung Anzeigen

10.14 Unix Tools

verstehen wie ZSH Completion funktioniert Anzeigen
kennen die wichtigsten Unix-Tools Anzeigen
kennen einige wichtige Unix-Commands Anzeigen
kennen SCP um Files via SSH in beide Richtungen zu transportieren Anzeigen
kennen den grep-Befehl um Dateien oder Datenströme zu filtern Anzeigen
kennen less zur Visierung von Daten Anzeigen
kennen vim zur Bearbeitung von Daten Anzeigen

10.15 Terminal

können mit der Kommandozeile Befehle ausführen Anzeigen
verstehen Shell als Schnittstelle zwischen Benutzer und Computer Anzeigen
kennen die wichtigsten Shell-Befehle Anzeigen
können ein Shell-Script schreiben Anzeigen

11 Security

kennen die Sicherheitsrisiken von Webanwendungen Anzeigen
können Sicherheitsfehler vermeiden und Risiken minimieren Anzeigen

11.1 OWASP

wissen, für was das Akronym OWASP steht Anzeigen
können die OWASP Top10 Sicherheitsrisiken beschreiben und erklären Anzeigen
kennen die Schwachstellen der Sicherheitsrisiken und können erklären, wie diese vermieden werden können Anzeigen
kennen Beispiele zu den OWASP Top10 Sicherheitsrisiken Anzeigen
können ausgewählte Sicherheitsrisiken der OWASP Top10 vorstellen und mit Beispielen unterlegen Anzeigen

11.2 Verschlüsseln und signieren

kennen die gängigen Verschlüsselungsalgorithmen Anzeigen
kennen das Prinzip der Hash-Algorithmen Anzeigen
kennen die Vor- und Nachteile, sowie die Einsatzbereiche verschiedener Algorithmen Anzeigen
wissen, wie Signaturalgorithmen mit Verschlüsselungsalgorithmen zusammenhängen Anzeigen

11.3 Passwort

können mit Passwörtern und anderen sensiblen Daten umgehen Anzeigen
wissen, wie man sichere Passwörter wählt Anzeigen
wissen, wie man Passwörter sicher speichert Anzeigen

11.4 Sicherheitsrisiken in einer Ruby on Rails Applikation

wissen, wo Sicherheitsrisiken einer Ruby on Rails Applikation entstehen können und kennen Beispiele dazu Anzeigen
kennen Möglichkeiten, um die Sicherheitsrisiken zu minimieren Anzeigen

11.5 OAuth

verstehen wie OAuth im Groben funktioniert Anzeigen
kennen den Ablauf eines OAuth-Requests Anzeigen
wissen was "zugelassene OAuth-Applikationen" sind Anzeigen
erkennen wichtige OAuth-Provider wie Facebook, Google, Microsoft und GitHub als eventuelles Identifikationsmittel bei eigenen Applikationen Anzeigen

11.6 CORS und CSP

verstehen die wichtigsten Konzepte von Cross-Origin Resource Sharing (CORS) und Content Security Policy (CSP) Anzeigen
wissen, was ein "Preflight-Request" ist Anzeigen
wissen, was ein "Origin" ist Anzeigen
wissen, was der Unterschied zwischen CORS und CSP ist Anzeigen

12 Shortcuts

verwenden Shortcuts, um ihren Workflow zu verbessern Anzeigen
kennen die am häufigsten gebrauchten Shortcuts für Chrome Anzeigen
kennen die am häufigsten gebrauchten Shortcuts für RubyMine Anzeigen
kennen die am häufigsten gebrauchten Shortcuts für das Terminal Anzeigen
kennen die am häufigsten gebrauchten Shortcuts für Vim Anzeigen
kennen die am häufigsten gebrauchten Shortcuts für macOS Anzeigen

13 Datenbanken

wissen, was ein Datenbankmanagementsystem ist Anzeigen
kennen verschiedene Datenbankmanagementsysteme Anzeigen
verstehen die Grundlagen von SQL Anzeigen
können einfache Datenbankabfragen durchführen Anzeigen
können Daten von einer bestehenden Datenbank hinzufügen, verändern oder löschen Anzeigen
können eine Datenbank kreieren und verändern Anzeigen
können Daten einer Datenbank mit Hilfe von SQL aggregieren, summieren und zählen Anzeigen
können den Tabellen Beschränkungen auferlegen Anzeigen
kennen Join Queries und können diese anwenden Anzeigen

14 Scalability und Performance

berücksichtigen die Skalierbarkeit und Performance bei der Implementierung eines Features Anzeigen

14.1 Scalability

wissen, was mit dem Begriff Scalability gemeint ist und legen bei der Umsetzung eines Features ein Augenmerk darauf Anzeigen
kennen skalierbare Algorithmen Anzeigen
kennen Skalierungsfaktoren Anzeigen
verstehen das N+1 Problem und können Verbesserungsvorschläge nennen Anzeigen
kennen den Lösungsansatz der Rails Guides für das N+1 Problem Anzeigen

14.2 Performance

wissen, was mit dem Begriff Performance gemeint ist und legen bei der Umsetzung eines Features ein Augenmerk darauf Anzeigen
kennen und verstehen die Big-O-Notation Anzeigen
wählen passende Datenstrukturen für die Verbesserung der Performance Anzeigen

15 Überfachliche Kompetenzen

sind vollwertige Mitarbeiter der Renuo AG Anzeigen
können an den anstehenden Projekten des Teams mitarbeiten Anzeigen
finden den Übergang zur unprivilegierten Mitarbeit im Renuo-Alltag Anzeigen
buchen am Ende keine Zeit mehr auf das Praktikum-Ticket Anzeigen

15.1 Personale Kompetenzen

kennen ihre Stärken und Schwächen und können diese einsetzen, beziehungsweise verbessern Anzeigen
können konzentriert arbeiten Anzeigen
führen einen bewussten Umgang mit Mobiltelefon oder anderen privaten Ablenkungen (z. B. Mails) (Trennung Privates/Geschäftliches) Anzeigen
erledigen die ihnen übertragenen Arbeiten zuverlässig Anzeigen
können mit ungewohnten und neuen Situationen umgehen Anzeigen
wissen, wo sie um Hilfe und Unterstützung fragen können Anzeigen
übernehmen Verantwortung für ihr Handeln Anzeigen
kennen die Stärken und Schwächen ihres Lern- und Sozialverhaltens Anzeigen
kennen ihre Stärken und können diese situationsadäquat einsetzen Anzeigen

15.2 Soziale Kompetenzen

tragen mit ihrem Verhalten zu einem guten Arbeitsklima bei Anzeigen
können sich aktiv an der Zusammenarbeit mit anderen Mitarbeiterinnen und Mitarbeitern beteiligen Anzeigen
achten auf andere Meinungen und können darauf eingehen Anzeigen
können sich in andere Mitarbeiterinnen und Mitarbeiter versetzen Anzeigen
können respektvoll mit anderen Mitarbeiter/innen agieren Anzeigen
sind in der Lage, ein konstruktives Feedback zu geben Anzeigen
können benennen, was sie am heutigen Tag gelernt haben Anzeigen
können eine Präsentation vor den Mitarbeiterinnen und Mitarbeitern halten Anzeigen

15.3 Methodische Kompetenzen

verwenden methodische Kompetenzen im Alltag Anzeigen
begegnen Schwierigkeiten mit Zuversicht Anzeigen
suchen aktiv Hilfe, wenn sie blockiert sind Anzeigen
kennen verschiedene Problemlösungsstrategien Anzeigen
wissen, welche Problemlösestrategien sie bevorzugt anwenden Anzeigen
können Arbeitsprozesse durchführen, dokumentieren und reflektieren Anzeigen
optimieren ihre täglichen Prozessabläufe selbständig Anzeigen

16 Learning Week

nehmen aktiv an der Renuo Learning Week teil Anzeigen
bereiten mindestens einen Inhalt für die Learning Week vor Anzeigen

17 Praktikantenprojekt (Kundenprojekt)

setzen ein Kundenprojekt gemäss den Anforderungen eines Kunden um Anzeigen
können den Ablauf eines Projektes grob planen Anzeigen
können Features gemäss ihrer Planung in ihre Applikation implementieren Anzeigen
können einen Projektaufbau skizzieren und überarbeiten Anzeigen
können ein Meeting mit dem Kunden vorbereiten und durchführen Anzeigen
können ein Meeting protokollieren Anzeigen
können eine Offerte erstellen Anzeigen
können ein kleines Kundenprojekt administrieren Anzeigen

18 IPA

kennen und verstehen die Fragestellung ihrer IPA Anzeigen
können ihre IPA gemäss der Fragestellung planen und durchführen Anzeigen
können ihre Durchführungsphase reflektieren Anzeigen
absolvieren und bestehen ihre individuelle praktische Arbeit (IPA) Anzeigen
schliessen die IPA mindestens mit der Note 5.0 (gut) ab Anzeigen

19 SwissSkills

nehmen am SwissSkills Qualifikationsverfahren in der Kategorie "Web Technologies" teil Anzeigen
nehmen an den EuroSkills teil Anzeigen
sind für das Qualifikationsverfahren der ICT Regionalmeisterschaft gelistet Anzeigen

20 Zusätzliches Material

20.1 Generell

wissen wie Logik-Gatter funktionieren (anhand des Computerspiels "Turing Complete") Anzeigen
Linkliste sindresorhus Anzeigen
Linkliste zudochkin Anzeigen
Linkliste First Principle Thinking Anzeigen
Microsoft Web Dev for Beginners Anzeigen

20.2 Clean Code / Refactoring

Refactoring Guru: Code Smells + Refactorings & Design Patterns Anzeigen
DRY vs. DAMP Anzeigen
Rules of Thumb (especially "Rule of Three") Anzeigen
7 Patterns to Refactor Fat ActiveRecord Models Anzeigen
each_with_object vs. reduce/inject Anzeigen

20.3 Bücher

Renuo EBooks Anzeigen
Renuo Prints-Liste Anzeigen
Thinking, Fast and Slow von Daniel Kahneman Anzeigen
Führen Leisten Leben von Fredmund Malik Anzeigen

20.4 Ruby/Rails

Ruby lernen mit Ruby Monk Anzeigen
Ruby lernen mit Ruby Koans Anzeigen
Ruby lernen mit Why's (Poignant) Guide to Ruby Anzeigen
Buch "Agile Development with Rails 5" lesen Anzeigen
Rails Concerns: DHH - Put chubby models on a diet with concerns Anzeigen
DCI in Ruby: Mike Pack - The right way to code DCI in Ruby Anzeigen
Kapitel 4 und 5 von Beginners Guide to Rails Testing of codewithjason Anzeigen
Advanced Callbacks: 5 Rails Callbacks Best Practices Used at Gusto Anzeigen
Thoughtbot It's About Time (Zones) Anzeigen
ActiveRecord: includes: Under the hood of the includes method in Rails Anzeigen
Rails Presenters Anzeigen
Rubyvideo.dev: Eine Sammlung von Aufnahmen aus Ruby-Konferenzen Anzeigen

20.5 Shell, SSH

Shell lernen und Text dazu lesen Anzeigen
Text "SSH: What and How" lesen und Tutorial lösen Anzeigen

20.6 Functional Programming

Den Unterschied zwischen deklarativen und imperativen Paradigmen verstehen Anzeigen
Die Themen "Pure Functions", "Currying", "Function Composition", "Immutability" und "Side Effects" im Buch Composing Software lesen Anzeigen
Sich Gedanken über die JS-Funktionen .map/.forEach/.reduce/.filter… etc machen und in einem Projekt im Sinne des funktionalen Programmieren anwenden Anzeigen

20.7 Elixir/Phoenix

Learn Elixir (learnxinyminutes) Anzeigen

20.8 Efficiency

Shortcuts zu RubyMine konsultieren Anzeigen
Die Pomodoro Technik Anzeigen

20.9 Testing

Cucumber Testing Anzeigen
Buch "Effective Testing with RSpec 3" Anzeigen
Buch Testing Rails von thoughtbot Anzeigen

20.10 Security

Vertiefung in die OWASP Top10 Sicherheitsrisiken Anzeigen
Idempotenz: The two generals' problem Anzeigen

20.11 APIs

Best Practices for Designing a Pragmatic RESTful API Anzeigen

20.12 Diverses

Reasons to use BEM Anzeigen
Best Websites a programmer should visit Anzeigen
Diverse Coding Aufgaben Anzeigen
Learning Week Block vorbereiten Anzeigen