Frage an die Erfahrenen Entwickler insbesondere C#-Entwickler?

Erst einmal hallo in die Runde und ich hoffe, euch geht es gut.

Vorgeschichte:

Ausbildung im Januar 2024 erfolgreich abgeschlossen als Fachinformatiker für Anwendungsentwicklung, während der Ausbildungszeit keinen Mentor / Ausbilder gehabt, der Fragen beantworten konnte, geschweige denn eingearbeitet hat. Von Tag eins an war mein Job eher im an Druckern stehen (war eine Druckerei) und im Lager Papiere einholen und daneben dann noch Programmieren in C# mit WinForms für die kaufmännischen Abteilungen, um deren Arbeit zu automatisieren. Meistens musste ich die Arbeit mit nach Hause nehmen, mir dort noch Gedanken machen und das lösen und daneben eben auch noch die Ausbildungsthemen aneignen, sei es schulisch die Theorie oder eben für die IHK-Prüfung die Theorie. Das heißt, ich habe von 8 bis 17 Uhr gearbeitet und war dann so gegen 18 Uhr zu Hause, habe geduscht und gegessen und so gegen 19 Uhr angefangen zu lernen bis 22-23 Uhr, dann schlafen und Repeat.

Hätte ich einen Mentor gehabt oder ein Entwicklerteam, würde ich sogar noch sagen, okay, ich habe viel Wissen erlangt in der Zeit, war hart, aber Lehrjahre sind keine Herrenjahre, wie man so schön sagt. Jedoch wurde mir eben nichts gezeigt, es kamen eher Sprüche wie "du bist ja immer noch nicht fertig, du musst doch nur ein paar Buchstaben da rein tippen, so schwer kann es nicht sein" oder alle 10 Minuten stand einer hinter mir und räusperte sich. Ach ja, ich habe in einem Großraumbüro gearbeitet, welches direkt am Lager bei den großen Druckern stand, also durchgehend Lärm wie von einem Rasenmäher, und dann versucht euch mal als Azubi dort zu konzentrieren und alle 10-15 Minuten merkt ihr, dass jemand über die Schulter guckt und ihr wisst genau, die verstehen das sowieso nicht, weil das einfache EDV-Mitarbeiter waren.

Grundlagen in die Programmierung und C# VisualStudio usw. die ganze Welt des Entwicklers musste ich mir eigenständig per w3schools ChatGpt und Google aneignen also das wofür eigentlich eine Ausbildung da gewesen wäre. Meine Aufgaben waren dann, Desktop-Apps zu schreiben für Mitarbeiter, die nicht so fit mit Computern sind. Diese sollten eine Excel/Xml/CSV-Datei einspielen und alles andere sollte dann das Programm erledigen und eine umsortierte und umgemappte Datei wieder ausgeben, womit die Kollegen dann weiterarbeiten können.

Für die Erfahrenen unter euch ist das sicher Kindergartenstoff und ihr kennt LINQ, um so durch Daten zu suchen, Datenbanken mit Entity Framework usw. ABER bedenkt, dass ich ein Azubi war, der nie etwas vom Programmieren wusste, ich muss nun alles ergoogeln und dann ist man eben bei Schleifen und Anweisungen und fängt an, Tabellen mit Schleifen usw. zu durchsuchen, was eine gute Übung ist, keine Frage, jedoch sollte man auch mit der Zeit gehen und wenn man ausbildet, auch dem Azubi sagen, hör mal, mach eine Tabelle so, damit du verstehst, was da wirklich passiert, aber effektiver nutze LINQ oder nutze dies oder das. Aber ich hatte eben keinen. Der Ausbilder, den ich hatte, hat vor über 10 Jahren das letzte Mal in Visual Basic programmiert und die einzige Hilfe, die von ihm kam, war "ja, musst du googeln" und "hier ein VB-Projekt von mir, ist zwar was Kleines, aber C# und VB sind identisch".

Gegenwart:

Da ich so gebrandmarkt war von C#, habe ich irgendwie einen Hass dagegen entwickelt und dachte mir, du fängst jetzt nach der Ausbildung an, neu zu lernen, fang mit HTML, CSS, JavaScript an und dann schaust du dir React an, gesagt, getan. Jedoch ist der Arbeitsmarkt so gesättigt von Junioren und Quereinsteigern, gerade im Frontend-Bereich, dass ich nun weit über 100 Bewerbungen geschickt habe und mangels Erfahrung in praxisnahen Projekten abgelehnt werde oder die suchen Studenten, die im Bachelor oder Master sind.

Eigentliche Frage:

An die C#-Entwickler: Der .NET-Kosmos ist ja riesig und WinForms ist veraltet, eigentlich hätte man mir in der Ausbildung sagen sollen, mach es mit WPF, aber die kannten das nicht und es hieß, wir haben schon immer damit Programme erstellen lassen, das bleibt so. Würdet ihr sagen, ich soll mich erneut an C# setzen?

Ich bin auch mit Personaldienstleistern in Kontakt und die sagen auch, Frontend Web ist überfüllt und du hast viele Konkurrenten, bleib bei C#. Und wenn ja, was wäre so das Sinnvollste in diese Richtung, sicher nicht WinForms.

Mein Ranking wäre:

  • Grundlagen nochmal auffrischen und festigen
  • LINQ
  • ASP .NET Core
  • Entity Framework

Falls ihr aber sagt, lass die Finger von C#, fang mit Python an, weil auf dem TIOBE-Index ist das immer auf Rang 1 und immer mehr Unternehmen gehen dahin, oder mach Java, dann bin ich auf eure Begründungen gespannt.

Eigentlich wollte ich mich kurz fassen, aber ich denke, so hat man etwas mehr Einsicht, in welcher Lage ich mich befinde. Eventuell ist ja jemand einen ähnlichen Weg gegangen, ich bin für jede Antwort dankbar.

programmieren, Java, Anwendungsentwicklung, berufseinsteiger, C Sharp, Python, Softwareentwicklung
Bash Script um DNS umzustellen?

Habe einmal ein Bash Script und eine .Desktop Verknüpfungen auf meinem Arch KDE und wollte bei Doppelklick auf die Verknüpfungen zb Updaten oder DNS auf 8.8.8.8 oderr Automatisch Umstellen.

(Ich kann auch via KDE Connect das ganze Starten und ohne EIngabe abschließen mit sudo pacman -Syu --noconfirm && yay -Syu --noconfirm)

Aber bei toggle_dns funktioniert das leider nicht mit dem gelieferten Code von ChatGPT (siehe Unten) und ich kann garkein Bash, nur "normale" programmiersprachen wie JavaScript oder PHP. Mit Python würde ich es vielleicht hinkriegen aber das ist doch viel aufwendiger jetzt die IDE erneut zu installieren als mit Bash.

Wenn es das gibt wollte ich eine KDE eigene Benachrichtigung in welchen Modus es jetzt gewechselt ist zb : DNS auf Automatisch umgestellt oder DNS auf 8.8.8.8 Umgestellt statt ein Terminal was ich dann noch per hand schließen muss.
Kann mir jemand weiterhelfen den Code zu reparieren ?

toggle_dns.sh :

#!/bin/bash

# Datei und Schnittstelle für die DNS-Konfiguration
RESOLV_CONF="/etc/resolv.conf"
INTERFACE="Netzwerkschnittstelle_von_euch"

# Funktion zum Setzen des DNS-Servers auf 8.8.8.8
set_dns() {
  echo -e "nameserver 8.8.8.8\noptions edns0" | sudo tee $RESOLV_CONF > /dev/null
  sudo systemctl restart NetworkManager
  notify "DNS wurde auf 8.8.8.8 gesetzt."
}

# Funktion zum Zurücksetzen des DNS-Servers auf automatisch
reset_dns() {
  sudo rm -f $RESOLV_CONF
  sudo systemctl restart NetworkManager
  notify "DNS wurde auf automatisch gesetzt."
}

# Funktion zum Senden einer KDE-Benachrichtigung
notify() {
  message=$1
  kdialog --passivepopup "$message" 5
}

# Überprüfen, ob der DNS-Server bereits auf 8.8.8.8 gesetzt ist
if grep -q "8.8.8.8" $RESOLV_CONF; then
  echo "DNS ist derzeit auf 8.8.8.8 gesetzt. Umschalten auf automatisch."
  reset_dns
else
  echo "DNS ist derzeit automatisch konfiguriert. Umschalten auf 8.8.8.8."
  set_dns
fi

Bild zum Beitrag
PC, Server, Computer, Internet, Windows, WLAN, Technik, Linux, IT, programmieren, Java, JavaScript, Ubuntu, Cplusplus, Bash, C Sharp, DNS, Gnome, Informatik, KDE, Programmiersprache, Python, Script, Shell, Arch Linux, Rust, Debian, PowerShell, KDE Plasma, node
Customtkinter "master" Parameter beim erstellen von einem Textfeld?

Hey,

ich habe eine Klasse erstellt die ein Hauptfenster erstellt und möchte aus einer anderen klasse einen Textfeld erstellen der sich auf das Hauptfenster bezieht.
So wie ich es verstanden habe braucht man dafür den Parameter "master" um vorzugeben in welchem Fenster nun der Textfeld angezeigt werden soll.
Leider funktioniert das bei mir nicht so richtig. Hat jemand davon Ahnung und kann mir meinen Fehler zeigen?
lieben Dank! :)

main.py

import view
import controller
import customtkinter as ctk

class Main(view.MainWindow):
   def __init__(self):
       super().__init__()
       self.main_window = view.MainWindow()
       self.main_window.set_size("1680", "900")
       self.main_window.set_title("YourTerminal")
       controller.InputBoxMain()# Nach meinem Verständnis muss hier der Master-Parameter angegeben werden. Wie übergebe ich diesen?

   def run(self):
       self.main_window.get_window().mainloop()

if __name__ == "__main__":
    app = Main()
    app.run()

view.py

import customtkinter as ctk


class MainWindow:
   def __init__(self):
       self.window = ctk.CTk()

   def set_size(self, width, height):
       self.window.geometry(f"{width}x{height}")

   def set_title(self, title):
       self.window.title(title)

   def get_window(self):
       return self.window

class WindowTemplate:
   def __init__(self):
       self.window = ctk.CTkToplevel()

   def set_size(self, width, height):
       self.window.geometry(f"{width}x{height}")

   def set_title(self, title):
       self.window.title(title)

   def get_window(self):
       return self.window

# der master Parameter gibt an wo diese Box angezeigt werden soll
class InputBoxTemplate:
    def __init__(self, master):  # Wie übergebe ich den master Parameter?
        self.master = master
        self.box = ctk.CTkEntry(self.master)

    def set_size(self, width, height, y, x):
        self.box.place(width=width, height=height, pady=y, padyx=x)

    def set_placeholder(self, placeholder):
        self.box._placeholder_text(f"{placeholder}")

controller.py

import view
import customtkinter as ctk
import main
class InputBoxMain(view.InputBoxTemplate, main.Main):
    def __init__(self):
        super().__init__()
        self.master = ctk.CTk()
        self.window = view.InputBoxTemplate(self.master)# Oder der Master-Parameter wird hier übergeben? Hier versuche ich master auf ctk.CTk zu beziehen. Das ist das Haupfenster.
        self.window.set_size(200, 200, 10, 10)
        self.window.set_placeholder("Hier steht der Placeholder")

Hier die Fehlermeldung falls relevant:

Traceback (most recent call last):

 File , line 1, in <module>

  import view

 File , line 2, in <module>

  import main

 File , line 2, in <module>

  import controller

 File " line 4, in <module>

  class InputBoxMain(view.InputBoxTemplate, main.Main):

            ^^^^^^^^^^^^^^^^^^^^^

AttributeError: partially initialized module 'view' has no attribute 'InputBoxTemplate' (most likely due to a circular import)

Code, Programmiersprache, Python, Python 3, Objektorientierte Programmierung, Tkinter, Pycharm

Meistgelesene Beiträge zum Thema Python