Programmieren & Softwareentwicklung

2.480 Mitglieder, 27.596 Beiträge

Wie sollte ich am besten Programmieren lernen? (Einsteiger, 32 Jahre alt, keine Erfahrung)?

Hallo zusammen, ich bin 32 Jahre alt und möchte Programmieren lernen – ich bin absoluter Einsteiger ohne Vorkenntnisse. Ich interessiere mich besonders für Sprachen wie C++, Python oder JavaScript, weil ich verstehen möchte, wie Programme, Spiele oder sogar KI funktionieren. Bisher habe ich nur ganz einfache Dinge gemacht (wie if, while, cout) – aber ich weiß nicht genau, wie ich richtig anfangen und sinnvoll weitermachen soll. Deshalb meine Fragen an euch: 1. Wie sollte man als kompletter Anfänger am besten lernen? (Online-Kurse, Bücher, YouTube, eigene Projekte?) 2. Was sind gute Einsteigerprojekte, die man schaffen kann, auch ohne viel Vorwissen? 3. Wie bleibt ihr motiviert, wenn man etwas nicht versteht oder es schwer wird? 4. Gibt es gute deutschsprachige oder englische Ressourcen, die ihr mir empfehlen könnt? Ich bin bereit, Zeit und Geduld zu investieren – mein Ziel ist es, irgendwann eigene Programme schreiben zu können oder vielleicht sogar beruflich in

Verkettete Listen in Java CD?

import java.io.BufferedReader; import java.io.FileReader; import java.util.LinkedList; import java.util.Random; public class PlaylistReader { public static void main(String[] args) { LinkedList<Titel> playlist = new LinkedList<Titel>(); BufferedReader br = null; try { br = new BufferedReader(new FileReader("titel.txt")); String name = br.readLine(); // Name der CD aus erster Zeile String line = ""; while ((line = br.readLine()) != null) { String[] parts = line.split(";"); int cdNr = Integer.parseInt(parts[0].replaceAll("\\D+", "")); int trackNr = Integer.parseInt(parts[1]); String interpret = parts[2]; String title = parts[4]; String duration = parts[5]; Titel t = new Titel(cdNr, trackNr, interpret, name, title, duration); playlist.add(t); } br.close(); Random rand = new Random(); int index = rand.nextInt(playlist.size()); Titel zufallstitel = playlist.get(index); System.out.println(zufallstitel.getName()); System.out.println("CD " + zufallstitel.getCdNr()); System.out.println("Titel Nr.: " + zufallstitel.getTrackNr()); System.out.println("Interpret: " + zufallstitel.getInterpret()); System.out.println("Titel: " + zufallstitel.getTitle()); System.out.println("Spielzeit: " + zufallstitel.getDuration()); } catch (Exception e) { System.out.println("Fehler beim Einlesen der Datei: " + e.getMessage()); } } } public class Titel { private int cdNr; private String duration; private String interpret; private String name; private String title; private int trackNr; public Titel(int cdNr, int trackNr, String interpret, String name, String title, String duration) { this.cdNr = cdNr; this.trackNr = trackNr; this.interpret = interpret; this.name = name; this.title = title; this.duration = duration; } public int getCdNr() { return cdNr; } public void setCdNr(int cdNr) { this.cdNr = cdNr; } public String getDuration() { return duration; } public void setDuration(String duration) { this.duration = duration; } public String getInterpret() { return interpret; } public void setInterpret(String interpret) { this.interpret = interpret; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getTrackNr() { return trackNr; } public void setTrackNr(int trackNr) { this.trackNr = trackNr; } }

Zeichenketten in Java umdrehen?

public class ZeichenkettenUmkehr { // Methode zur Umkehr der Zeichenkette mithilfe eines Stacks public static String umkehrenMitStack(String eingabe) { Stack<Character> stack = new Stack<>(); // Zeichen einzeln auf den Stack legen for (char zeichen : eingabe.toCharArray()) { stack.push(zeichen); } // Zeichen vom Stack lesen (LIFO) -> umgekehrte Reihenfolge StringBuilder umgekehrt = new StringBuilder(); while (!stack.isEmpty()) { umgekehrt.append(stack.pop()); } return umgekehrt.toString(); } public static void main(String[] args) { Scanner scanner = new Scanner(System. in ); // Eingabedialog System. out .print("Bitte geben Sie eine Zeichenkette ein: "); String eingabe = scanner.nextLine(); // Methode aufrufen und Ergebnis ausgeben String umgekehrt = umkehrenMitStack (eingabe); System. out .println("Umgekehrte Zeichenkette: " + umgekehrt); scanner.close(); } }

PPM Code für ein Farbbild?

Hey Leute, ich muss in Informatik ein PPM Bild erstellen. Dafür muss ich einen Code wie diesen hier erstellen und ein Bild kreieren: P3 5 8 255 255 255 255&#xa0;255 255 255&#xa0;255&#xa0;0&#xa0;0&#xa0;255 255 255&#xa0;255 255 255 255 255 255&#xa0;255&#xa0;0&#xa0;0&#xa0;255&#xa0;0&#xa0;0&#xa0;255&#xa0;0&#xa0;0&#xa0;255 255 255 255&#xa0;0&#xa0;0&#xa0;255&#xa0;0&#xa0;0&#xa0;255&#xa0;0&#xa0;0&#xa0;255&#xa0;0&#xa0;0&#xa0;255&#xa0;0&#xa0;0 &#xa0;0&#xa0;0 255&#xa0;&#xa0;0&#xa0;0 255&#xa0;&#xa0;0&#xa0;0 255&#xa0;&#xa0;0&#xa0;0 255&#xa0;&#xa0;0&#xa0;0 255 &#xa0;0&#xa0;0 255&#xa0;255 255&#xa0;0&#xa0;&#xa0;0&#xa0;0 255&#xa0;255 255&#xa0;0&#xa0;&#xa0;0&#xa0;0 255 &#xa0;0&#xa0;0 255&#xa0;&#xa0;0&#xa0;0 255&#xa0;&#xa0;0&#xa0;0 255&#xa0;&#xa0;0&#xa0;0 255&#xa0;&#xa0;0&#xa0;0 255 &#xa0;0&#xa0;0 255&#xa0;255 255&#xa0;0&#xa0;&#xa0;0&#xa0;0 255&#xa0;255 255&#xa0;0&#xa0;&#xa0;0&#xa0;0 255 &#xa0;0&#xa0;0 255&#xa0;&#xa0;0&#xa0;0 255&#xa0;&#xa0;0&#xa0;0 255&#xa0;&#xa0;0&#xa0;0 255&#xa0;&#xa0;0&#xa0;0 255 Ich habe im Internet schon gesucht und nach fertigen Codes geschaut habe aber leider keine gefunden. Ich brauche welche mit mindesten 9x6 am besten wäre 16x8. Größer als 20x20 geht nicht. Außerdem brauche ich unterschiedliche Farb Nuancen im Bild. Also nicht nur 255 0 0, sondern zum Beispiel 240 55 15, oder so. Kennt sich jemand damit aus und hat einen fertigen Code? Danke schon mal im Voraus LG Sophie :)

Wie kann ich zwei MFRC522-RFID-Reader gleichzeitig mit einem Raspberry Pi 3 Model B verwenden?

Hallo zusammen, ich versuche seit über einem Monat, zwei MFRC522-RFID-Reader gleichzeitig mit meinem Raspberry Pi 3 Model B (Version 1.2) zu betreiben, leider ohne Erfolg. Mein Ziel ist es, dass beide Reader parallel arbeiten und unabhängig voneinander Tags erkennen und auslesen können. Ich verwende Python mit dem spidev -Modul und habe jedem Reader eine eigene SPI-Schnittstelle zugewiesen: Reader 1: SPI0 (Bus 0, Device 0), RST auf GPIO25 Reader 2: SPI1 (Bus 1, Device 0), RST auf GPIO17 Beide Reader sind korrekt verkabelt. SPI1 ist über Device Tree aktiviert, und ich verwende keine gemeinsamen CS-Pins. Ich habe eine eigene Klasse für MFRC522 geschrieben, um jeweils ein SPI-Device und einen RST-Pin zu verwenden. Hier ist der relevante Python-Code: python import spidev import RPi.GPIO as GPIO import time class MFRC522: &#xa0; &#xa0; def __init__(self, spi_bus, spi_device, rst_pin): &#xa0; &#xa0; &#xa0; &#xa0; self.spi = spidev.SpiDev() &#xa0; &#xa0; &#xa0; &#xa0; self.spi.open(spi_bus, spi_device) &#xa0; &#xa0; &#xa0; &#xa0; self.spi.max_speed_hz = 1000000 &#xa0; &#xa0; &#xa0; &#xa0; self.spi.mode = 0 &#xa0; &#xa0; &#xa0; &#xa0; self.rst = rst_pin &#xa0; &#xa0; &#xa0; &#xa0; GPIO.setwarnings(False) &#xa0; &#xa0; &#xa0; &#xa0; GPIO.setmode(GPIO.BCM) &#xa0; &#xa0; &#xa0; &#xa0; GPIO.setup(self.rst, GPIO.OUT) &#xa0; &#xa0; &#xa0; &#xa0; GPIO.output(self.rst, 1) &#xa0; &#xa0; &#xa0; &#xa0; self.reset() &#xa0; &#xa0; def reset(self): &#xa0; &#xa0; &#xa0; &#xa0; GPIO.output(self.rst, 0) &#xa0; &#xa0; &#xa0; &#xa0; time.sleep(0.1) &#xa0; &#xa0; &#xa0; &#xa0; GPIO.output(self.rst, 1) &#xa0; &#xa0; &#xa0; &#xa0; time.sleep(0.1) &#xa0; &#xa0; def send(self, addr, val): &#xa0; &#xa0; &#xa0; &#xa0; self.spi.xfer2([(addr << 1) & 0x7E, val]) &#xa0; &#xa0; def read(self, addr): &#xa0; &#xa0; &#xa0; &#xa0; val = self.spi.xfer2([((addr << 1) & 0x7E) | 0x80, 0]) &#xa0; &#xa0; &#xa0; &#xa0; return val[1] &#xa0; &#xa0; def scan_for_tag(self): &#xa0; &#xa0; &#xa0; &#xa0; self.send(0x01, 0x0C)&#xa0; # PCD_TRANSCEIVE &#xa0; &#xa0; &#xa0; &#xa0; self.send(0x0D, 0x87)&#xa0; # BitFramingReg &#xa0; &#xa0; &#xa0; &#xa0; self.send(0x0C, 0x26)&#xa0; # Request idle &#xa0; &#xa0; &#xa0; &#xa0; time.sleep(0.01) &#xa0; &#xa0; &#xa0; &#xa0; return self.read(0x0A) != 0&#xa0; # FIFOLevelReg &#xa0; &#xa0; def get_uid(self): &#xa0; &#xa0; &#xa0; &#xa0; self.send(0x0D, 0x87) &#xa0; &#xa0; &#xa0; &#xa0; self.spi.xfer2([0x93, 0x20])&#xa0; # Anticollision &#xa0; &#xa0; &#xa0; &#xa0; time.sleep(0.01) &#xa0; &#xa0; &#xa0; &#xa0; resp = self.spi.xfer2([0x93, 0x20] + [0]*5) &#xa0; &#xa0; &#xa0; &#xa0; uid = resp[2:6] &#xa0; &#xa0; &#xa0; &#xa0; return ':'.join([hex(x)[2:].upper().zfill(2) for x in uid]) &#xa0; &#xa0; def cleanup(self): &#xa0; &#xa0; &#xa0; &#xa0; self.spi.close() &#xa0; &#xa0; &#xa0; &#xa0; GPIO.cleanup(self.rst) # Konfiguration der Reader reader1 = MFRC522(spi_bus=0, spi_device=0, rst_pin=25)&#xa0; # SPI0 reader2 = MFRC522(spi_bus=1, spi_device=0, rst_pin=17)&#xa0; # SPI1 try: &#xa0; &#xa0; print("Starte RFID-Scanner (STRG+C zum Beenden)") &#xa0; &#xa0; while True: &#xa0; &#xa0; &#xa0; &#xa0; if reader1.scan_for_tag(): &#xa0; &#xa0; &#xa0; &#xa0; &#xa0; &#xa0; uid1 = reader1.get_uid() &#xa0; &#xa0; &#xa0; &#xa0; &#xa0; &#xa0; print(f"Reader 1 UID: {uid1}") &#xa0; &#xa0; &#xa0; &#xa0; if reader2.scan_for_tag(): &#xa0; &#xa0; &#xa0; &#xa0; &#xa0; &#xa0; uid2 = reader2.get_uid() &#xa0; &#xa0; &#xa0; &#xa0; &#xa0; &#xa0; print(f"Reader 2 UID: {uid2}") &#xa0; &#xa0; &#xa0; &#xa0; time.sleep(0.5) except KeyboardInterrupt: &#xa0; &#xa0; print("\nBeende...") finally: &#xa0; &#xa0; reader1.cleanup() &#xa0; &#xa0; reader2.cleanup() Das Problem: Keiner der beiden Reader erkennt zuverlässig Tags. Der zweite reagiert manchmal, oft aber gar nicht oder liefert keine UID. Ich habe bereits unterschiedliche Polling-Intervalle, Resets und sogar die Versorgungsspannung überprüft, aber ohne Erfolg. so habe ich meine MFRC522 Reader angeschlossen: Hat jemand Erfahrung damit oder Ideen, wie ich beide MFRC522 zuverlässig gleichzeitig betreiben kann? Gibt es vielleicht Timing-Probleme, Konflikte zwischen den SPI-Bussen oder brauche ich spezielle Initialisierung? Ich bin für jede Hilfe dankbar!
Bild zum Beitrag

Glaubt ihr wirklich an die "Alleskönnende KI"?

Sobald man sich damit tatsächlich mal auseinandersetzt mit Personen, die weder Investoren sind, noch ein Offensichtlichen Vorteil haben würden wenn diese LLMs als besser dargestellt werden als sie schon sind, findet man schnell raus, dass das ein Witz ist. Siehe: Die Maintainer von einer sehr bekannten Software bekommen KI Generierte CVEs, die zum großteil einfach scheiße erzählen , oder dass ein Programmierer, selbst nachdem er ein CVE gefunden hat, und es 100 mal durch eine KI gejagt hat, um spezifisch diese zu finden, diese nur 8 mal gefunden hat, und davon 28 mal etwas falsches geschrieben hat. Und auch Anwälte müssen keine Angst vor ihrem Job haben Und dann kommt der ganze scheiß mit AI Art, die von weißen Hetero cis Männern als "Die Lösung für Leute, die kein Geld haben, oder Körperlich behindert sind", beschrieben wird. Obwohl es bisher keine einzige solche Person gab, die sowas tatsächlich bestätigen konnte. Ach, und das beste: Das ganze ist Wirtschaftlich nicht mal halbwegs Nachhaltig Oder spezifischer für AGI: https://www.wheresyoured.at/optimistic-cowardice/ Dazu noch, dass diese KI Aktiv das ganze wissen auf unserer Welt verschmutzt und mehr Strom, Speicherplatz, Wasser, CO2, und Platz verbraucht als irgendwas anderes, und dabei auch ein Global Unregulierten Sklavenmarkt entstehen lässt , fragt man sich aber ernsthaft, wieso es noch Menschen gibt die noch nicht darauf gekommen sind, mal tatsächlich anzusehen, wie die Nutzer dieser KI, die davon Profitieren sollen, tatsächlich davon Profitieren.
Ich kenne die Nachteile, sehe KI aber als etwas mit Potential75%
KI selber ist in seiner Kapitalistischen Form eine Gefahr.17%
Ich glaube daran, dass KI alles kann8%
12 Stimmen