Zum Inhalt springen

Ein Mal pro Jahr fordern wir Euch heraus!

Von März 2024 bis Juli 2024 wurde die ti&m Coding Challenge exklusiv für Studierende durchgeführt. Jeden Monat gab es eine neue spannende Aufgabe: Von der Zahlensuche über eine Graphen-Challenge mit Dijkstra bis hin zur CSS- und HTML-Quest. Folge uns auf LinkedIn falls du informiert sein willst, wenn die Challenge 2025 live geht.

Wenn du deine Fähigkeiten jetzt zum Spass testen möchtest und wissen willst, ob du die richtigen Lösungen hast, schicke deine Antworten einfach an marketing@ti8m.ch. Wir melden uns dann gleich bei dir. Und wer weiss… Vielleicht gibts ja ein Give-Away Package für dich wenn deine Antworten richtig gut sind!

Und so hat es funktioniert

Die Rätsel wurden zu Beginn des Monats veröffentlicht, und die Teilnehmer hatten bis zum Monatsende Zeit, ihre Lösungen einzureichen.

Aufgabe entdecken

Skills auspacken

Lösung einreichen

Tolle Preise gewinnen

#1 Challenge: Zahlensuche

#1 Challenge: Zahlensuche

Zeitaufwand: Ca. 20-30 Minuten

Wir beginnen unsere Challenge-Serie mit drei Herausforderungen, um deine Problemlösungsfähigkeiten zu testen. Jede etwas schwieriger als die vorherige. Jede oder jeder der sich mit Software befasst, sollte in der Lage sein, ausgehend von einer kleinen Aufgabe ein Skript zu schreiben, das dieses Problem löst. Mathematische Aufgaben und Folgen eignen sich sehr gut für diesen Zweck, da wir ähnliche Aufgaben lösen müssen, wenn wir «Business Logik» schreiben, und wir uns Gedanken darüber machen müssen, wie wir mit den grossen Datenmengen umgehen, die während der Laufzeit eines Programms anfallen können.

Stell dir die Frage: Musst du immer alles selbst programmieren oder hat dir schon jemand einen Teil der Arbeit abgenommen? Stell dir die richtigen Fragen, bevor du dich an deine erste Programmieraufgabe wagst.

Tipp: "hack an app" ist die Art und Weise, wie ti&m junge Talente unterstützt. Wir organisieren IT-Projektwochen für Kinder zwischen 11 und 14 Jahren, in denen sie in die Welt der IT eintauchen und in nur vier kurzen Tagen lernen, ihre eigene App zu entwickeln.

ti&m Coding Challenge 2024 März

Hier sind deine Aufgaben!

01

Frage 1.1

Nenne die erste Stelle in PI, in der das Gründungsjahr von «hack an app» vollständig enthalten ist. Nenne nur die erste Ziffer als Lösung, zähle ab der ersten Stelle nach dem Komma.

02

Frage 1.2

Nenne die erste Stelle in einer FibonacciFolge (Start bei 0, 1, …), in der das Gründungsjahr von «hack an app» vollständig enthalten ist. Zähle alle Ziffern bis zum Gründungsjahr. Nenne nur die Position der ersten Ziffer als Lösung, zähle keinen Abstand oder Komma zwischen den Zahlen der Folge.

03

Frage 1.3

Wieviele 8-stellige Primzahlen gibt es, die das vollständige Gründungsjahr von «hack an app» beinhaltet. (z.B.’99201251’).

#2 Challenge: JavaScript Quiz

#2 Challenge: JavaScript Quiz

Zeitaufwand: Ca. 10-20 Minuten

Unsere zweite Challenge ist nun online. JavaScript ist eine der Schlüsseltechnologien des World Wide Web. Mehr als 97% aller Websites verwenden sie. Man kann also sagen, dass es ziemlich wichtig ist. Wir haben uns einen Spass daraus gemacht, drei interessante oder knifflige Funktionen zu finden, die du entschlüsseln musst. Und wieder ist jede etwas schwieriger als die Vorherige. Und um es noch ein bisschen schwieriger zu machen, musst du nicht nur die Antwort berechnen, sondern auch begründen. Wähle die richtige Antwort aus unserer Auswahlliste und erkläre, warum diese Funktion genau diese Antwort liefert.

Coding Challenge 2 April JavaScript Quiz

Frage 2.1: Confusing Arrays

Fangen wir ganz einfach an. Dies ist also eine grundlegende Funktion von JavaScript - warum gibt die Konsole diese Antwort?

A) Die Funktion legt fest, dass alle Zahlen, die durch 3 geteilt werden können, herausgefiltert werden, dann werden die verbleibenden Zahlen mit 2 multipliziert und anschließend addiert. (1*2 + 2*2 + 4*2 + 5*2 = 24)

B) In der Funktion wird die Eingabe nach dem "for each" nie neu zugewiesen, was bedeutet, dass wir am Ende einfach alle Zahlen zusammenzählen.

C) Der Filter verändert das Array direkt, aber "for each" gibt nur ein verändertes Array zurück und ändert die Werte von dem Original Array nicht. Am Ende wird nur der Filterteil auf das Array angewendet, das dann 1+2+4+5 = 12 zusammenzählt.

Frage 2.2: Destructuring Objects

Okay, jetzt machen wir es etwas schwieriger und schauen, ob du die Struktur dieser Funktion entschlüsseln kannst. Wir haben drei Objekte (in diesem Fall Mitarbeiter), die alle ein bestimmtes Alter haben. Führe die Funktion aus und wähle die richtige Erklärung für deine Antwort.

A) Das Alter von Tobias, Timon und Tom wird einfach zusammengezählt.

B) Ein Set erlaubt keine Duplikate, d.h. Tobias und Timon werden nur einmal gezählt.

C) Da wir ein Set verwenden, werden alle Duplikate entfernt. Da wir Objekte verwenden, werden nur die Einträge entfernt, die genau die Gleichen Referenzen haben. Dies bedeutet, dass Timon zweimal in das Array eingefügt werden kann, da es 2 verschiedene Referenzen gibt.

Frage 2.3: Fun with Dates

Okay, jetzt wird es schwieriger. Hier haben wir eine Funktion, die auf den ersten Blick ganz einfach aussieht, oder? Einfach Tag, Monat und Jahr eingeben. Aber die Antwort sieht etwas anders aus. Warum ist das so?

A) Dies ist eine relative Funktion. Wir befinden uns im Jahr 2024, 19 Jahre nach der Gründung von ti&m. Die Funktion teilt also das Gründungsdatum durch die Anzahl der Jahre, die das Unternehmen bereits im Geschäft ist, und gibt so das Gründungsdatum relativ zur Anzahl der Geschäftsjahre an.

B) getYear ist eine veraltete Funktion, die nur die Differenz zwischen dem Jahr 1900 und dem Datum zurückgibt. getMonth gibt den Index des Monats zurück, beginnt aber mit 0. getDay gibt den Tag der Woche zurück

C) Wir erstellen das Date-Objekt falsch, was am Ende zu einer falschen Datumsausgabe führt. Der korrekte Weg, ein Datum zu erstellen, ist: new Date(February 1, 2005 00:00:00')

#3 Challenge: Shortest path mit Dijkstra

#3 Challenge: Shortest path mit Dijkstra

Zeitaufwand: Ca. 40-60 Minuten

Du hast sicher Challenge 1 und 2 erfolgreich gemeistert! Jetzt wird's knifflig! Bist du ready?

Manchmal müssen wir den schnellsten Weg durch ein Labyrinth von Möglichkeiten finden. Bestimmte Algorithmen können dies modellieren, zum Beispiel wenn man ein Verkehrsnetz oder verschiedene Internetprotokolle modelliert.  Wir haben ein paar Übungen für dich, mit denen du deine Problemlösungsfähigkeiten testen kannst. Findest du den kürzesten Weg?

ti&m Coding Challenge 2024 Mai

Frage 3.1

Sarah aus unserem Büro in Zürich hat heute einen vollen Tag. Zuerst hat sie ein persönliches Meeting mit ihren Kollegen für ein Innovationsprojekt in Zürich, dann hat sie ein Kundentreffen in Basel und nutzt die Gelegenheit, um im Basler Büro vorbeizuschauen und mit dem Basler Team zu zu plaudern. Schliesslich fährt sie zur IoT Hack Night ins Berner Büro, um den Abend mit einer IoT Challenge bei Pizza und Bier ausklingen zu lassen.

Wie kommt Sarah am schnellsten vom ti&m-Büro in Zürich zum ti&m-Büro in Bern, wenn sie vorher bei ihren Kolleginnen und Kollegen im ti&m-Büro in Basel vorbeischaut und Hallo sagt?

Dijkstra Challenge 1 Update

Frage 3.2

Ein neuer Mitarbeiter eines Kundenunternehmens hat eine unsichere E-Mail geöffnet und nun ist das gesamte System mit einem Wurm infiziert. Das Sicherheitsteam von ti&m muss sich Zugang zu allen Computern verschaffen und sie einzeln säubern. Die Zeitkosten für die Übernahme der Kontrolle sind durch den Bogen angegeben. 
 
ti&m verlässt sich darauf, dass du die Kontrolle über alle Geräte zurücknimmst, aber keine Angst, du bist nicht allein! Du kannst jederzeit einen oder mehrere ti&m-Kollegen bitten, dir bei den anderen Nodes zu helfen, während du an deinem Node arbeitest - wichtig für den Kunden ist nur, dass es so schnell wie möglich erledigt wird.

Frage:  Wie lange dauert es mindestens, um die Kontrolle über alle Geräte wiederzuerlangen? Diese sollte der Zeit des längsten Weges entsprechen (denn in dieser Zeit haben deine Kollegen bereits alle anderen Geräte geräumt)

Dijkstra Challenge 2 Update

Bonus-Tipp für Frage 3.2:

Brauchst du einen Tipp?: Im Beispiel kannst du den kniffligen Teil sehen. Es gibt zwei Wege, um von S nach B zu gelangen. Die Zeit, um in B anzukommen, ist im Beispiel 1 links (7) kürzer als im Beispiel 2 rechts (9). Das ist der kürzeste Weg. Allerdings sind die Gesamtkosten (die Summe aller Bögen, die zum Erreichen aller Knotenpunkte verwendet werden) im Beispiel 1 links (10) höher als im Beispiel 2 rechts (9). 

Dijkstra Challenge 3

#4 Challenge: Security Challenge

#4 Challenge: Security Challenge

Zeitaufwand: Ca. 15-25 Minuten

Diesen Monat dreht sich alles um das Thema Sicherheit und wir haben eine besondere Herausforderung für die sichere Codeüberprüfung für dich. Die Fähigkeit, den Quellcode zu lesen und die Sicherheit einer Anwendung zu verbessern, ist entscheidend. Gibt es Logikfehler, Sicherheitslücken oder Schwachstellen? Mal sehen, ob du herausfinden kannst, wo die Schwachstellen liegen und wie du sie beheben würdest.

Deine Fragen:

4.1) Welche Zeile würde bei einem Code Review besonders auffallen (häufige Schwachstelle bei Datenbankzugriffen) ?

4.2) Was würde ein Hacker eingeben damit er alle UserName aus der Datenbank aus lesen kann?
1. True’ or ‘1=1
2. ‘True’ or ‘1=1
3. True’ and ‘1=1

4.3) Was ist grundsätzlich falsch umgesetzt?
1. Prepared statement wurde falsch benutzt. 
2. Eine andere Methode von java.util.Scanner muss eingesetzt werden.
3. executeQuery benötigt einen oder mehrere Parameter.

code-challenge4.

#5 Challenge: CSS & HTML

#5 Challenge: CSS & HTML (Letzte Challenge)

Zeitaufwand: Ca. 10-20 Minuten

Im Bereich der Softwareentwicklung ist es wichtig, alle Teile einer Anwendung entwickeln und verstehen zu können – sei es das Backend, das Frontend oder die Infrastruktur. Das Frontend spielt eine entscheidende Rolle für die Benutzererfahrung, da es den ersten Eindruck vermittelt, den die Benutzer von einer Website erhalten. Wir haben ein kleines Puzzle erstellt, das dich durch verschiedene Bereiche unserer Website führt. Lade die Datei herunter, folge den Hinweisen, beantworte alle Fragen.

(Die Challenge ist auf Englisch.)

So reichst du deine Antworten ein.

Willst du wissen, ob du es richtig gemacht hast? Dann sende die Antworten einfach an marketing@ti8m.ch und wir melden uns bei dir. 

Wenn du dich richtig angestrengt hast, wartet vielleicht ein tolles Give-away-Paket auf dich!

Employer Branding

Jennifer Harstad

Melde dich direkt bei uns, wenn du Fragen hast.