Mein Problem als Anwendungsentwickler?

Hallo,

ich bin ausgelernter Fachinformatiker für Anwendungsentwicklung.
Meine Ausbildung habe ich dieses Jahr abgeschlossen und ich hatte vor meiner Ausbildung auch keinerlei Vorerfahrung was Programmierung angeht.

In meiner Ausbildung habe ich mich immer wieder schwer getan die Prinzipien hinter dem Code zu verstehen.
Das heißt ich konnte ihn schon irgendwie anwenden, aber wenn mich jemand gefragt hat "erklär mir mal den Unterscheid von dem und dem" hatte ich darauf meist keine Antwort.

In meiner Ausbildung gab es auch nicht viel mit Grundlagen erlernen, wir wurden quasi schnell bereit gemacht um an der Software der Firma zu arbeiten.

Das Problem was ich heutzutage habe: Ich verstehe oft die Hintergründe von verschiedenen Zeugs in der Programmierung nicht.

Ich kann quasi die Sachen anwenden, aber genau erklären könnte ich es nicht.

Ein Beispiel: Ich bin momentan in einer neuen Firma angestellt, und bin Aufgrund von mangelnder Projekte in ein internes Mobile-App Projekt gesteckt worden.
In dem Projekt bin ich ganz alleine und habe auch schon eine Lauffähige App entwickelt, wo auch bereits ein Prototyp draußen ist.
(Ich hatte vorher noch nie etwas mit Mobile-App-Entwicklung zutun gehabt, das habe ich mir in der Zeit alles selbst erlernt).
Allerdings verstehe ich den Code selber nicht so ganz. Ich könnte jetzt auch keinem anderen erklären, wofür was genau ist.
Es sind quasi Codeschnipsel die ich aus dem Internet genommen habe und dann einfach nur angepasst habe.

Ich habe das Gefühl, dass mich das zu einem schlechten Programmierer macht, und ich wollte gerne wissen, was ich eurer Meinung nach tun muss, um ein richtig guter Programmierer zu werden.

Was kann ich in meinem jetzigen Stand dafür tun?

Software, IT, programmieren, Informatik
Python: wann sind slice-Operationen an Arrays vorteilhaft?

Ich habe in Python versucht, eine doppelte Schleife über ein 2D Array (Variante 1) durch "array slice" Operationen (Variante 2) zu optimieren, stelle aber fest, dass dies nichts bringt, sondern die Rechenzeit sogar etwas größer wird.

Ich dachte eigentlich, dass man wo immer möglich slice Notation verwenden sollte, da dies schneller ist. Scheinbar kann man das aber nicht so einfach sagen.

Wann sind slice Operationen schneller bzw. von Vorteil? Leserlicher wid der Code ja nicht, aber dass er sogar langsamer wird überrascht mich nun doch ein wenig...

Der Code:

import numpy as np
import numpy.ma as ma
import time


def test():

 
  f = np.array([
    [0,  0,  0,  0,  0,  0,   0], 
    [0,  1,  3,  6 , 4,  2,   0], 
    [0,  2,  4,  7 , 6,  4,   0],   
    [0,  0,  0,  0,  0,  0,   0]
    ], dtype=float)
     

  u = np.array([
    [0,  0,  0,  0,  0,  0,   0], 
    [0,  0.5, 1,  0, -1, -0.5,  0], 
    [0,  0.7, 1.1, 0, -1, -0.4,  0], 
    [0,  0,  0,  0,  0,  0,   0], 
    ], dtype=float)
     
   
  # calculate : variant 1
  x = np.zeros_like(f)
   
  maxcount = 100000
   
  start = time.time()

  for count in range(maxcount):
    for i in range(1,u.shape[0]-1):
      for j in range(1,u.shape[1]-1):
        if u[i,j] > 0: 
          x[i,j] = u[i,j]*(f[i,j]-f[i,j-1])
        else:
          x[i,j] = u[i,j]*(f[i,j+1]-f[i,j])
         
  end = time.time()
  print("used time for variant 1:", end-start)
         
              
   
  # calculate : variant 2

  y = np.zeros_like(f)  

   
  start = time.time()
   
  for count in range(maxcount):
    maskl = (u[1:-1, 1:-1] > 0)
    maskr = ~maskl 
    diff = f[1:-1, 1:] - f[1:-1, 0:-1]
     
    yy = (y[1:-1, 1:-1])
    uu = (u[1:-1, 1:-1 ])
     
    yy[maskl] = uu[maskl] * (diff[:, :-1])[maskl]
    yy[maskr] = uu[maskr] * (diff[:, 1: ])[maskr]
   
  end = time.time()
  print("used time for variant 2:", end-start)
   
  np.testing.assert_array_equal(x, y)


test()

Die Ausgabe:

D:\python\animation>python test.py
used time for variant 1: 1.0328729152679443
used time for variant 2: 1.3058593273162842

D:\python\animation>python test.py
used time for variant 1: 1.1189219951629639
used time for variant 2: 1.3527190685272217

D:\python\animation>python test.py
used time for variant 1: 1.066974401473999
used time for variant 2: 1.3022441864013672
programmieren, Python, numpy, Python 3
JavaScript Server API Hilfe?

Hallo,

meine Aufgabe:

wenn ich zum Beispiel bei login: babyshark2 schreibe und bei password: 123, und dann auf "send" drücke, dann werden ja diese Daten und zusätzlich noch isLogin: false auf Backend Server geschickt. Wenn ich aber beim zweiten Mal nochmal diese inputs mit den gleichen Daten ausfülle (babyshark2, 12) und dann aber auf "login" drücke, dann sollte das Programm zwischen alle Loginnamen genau diesen Loginname (babyshark2) finden, und falls das Passwort auch richtig ist, dann sollte das isLogin: auf true gesetzt werden. Aber ich verstehe gar nicht wie ich das weitermachen soll. Bitte helft mir!

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CRUD</title>
  <link rel="stylesheet" href="./style.css">
  <script defer src="./script.js"></script>
</head>
<body>
  <form class="form">
    <input id="loginInput" type="text" placeholder="Login">    
    <input id="passwordInput" type="password" placeholder="Password">    
    <button id="sendButton">Send</button>
    <button id="loginButton">Login</button>
    <p class="p">If you want to delete an Item press the button "Delete" twice to confirm it!</p>


    <div id="userTable"></div>
  </form>
</body>
</html>
JAVASCRIPT IST IN DEN KOMMENTAREN; DA ES HIER NICHT PASST!

MfG

MrOsmo

Software, HTML, IT, Webseite, programmieren, JavaScript, HTML5, Code, Informatik, Programmiersprache, Webentwicklung, Frontend
javascript api probleme?

Hallo,

guckt euch mal meinen Code an.

JAVASCRIPT:

// INPUT
const login = document.getElementById("loginInput");
const password = document.getElementById("passwordInput");
const button = document.getElementById("sendButton");


// FETCH
const url = "https://crudcrud.com/api/4b3acc467d8c47d8a608bb9820171935/todos"



const dataRender = (array) => {
  if (array === undefined) {
    console.log("Loading results...");
  } else {
    let dataList = array.map((item) => {
      return `
      <div class="users">
        <p>${item.login}</p>
        <button onclick="deleteRequest(${item.id})">Delete</button>
        </div>
        `;
    });
    const getHtml = document.getElementById("userTable");
    getHtml.innerHTML = dataList.join("");
  }
};


const fetchData = async () => {
  try {
    const response = await fetch(url);
    const data = await response.json();
    dataRender(data);
  } catch (error) {
    console.error(error);
  }
};



fetchData();


const postRequest = async () => {
  const data = {
    login: login.value,
    password: password.value,
    isLogin: false,
  };


  try {
    const response = await fetch(url, {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify(data),
    });


    const results = await response.json();
    console.log(results.message);
  } catch (error) {
    console.error(error);
  }


};


button.addEventListener("click", postRequest);


const deleteRequest = async (id) => {
  try {
    const response = await fetch(`${url}/${id}`, {
      method: "DELETE",
      headers: {
        "Content-Type": "application/json",
      }
    })
    const results = await response.json()
    console.log(results.message);
  }
  catch (error) {
    console.error(error);
  }
}

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CRUD</title>
  <script  defer src="./script.js"></script>
</head>
<body>
  <form>
    <input id="loginInput" type="text" placeholder="Login">    
    <input id="passwordInput" type="password" placeholder="Password">    
    <button onclick="" id="sendButton">Send</button>


    <div id="userTable">
      
    </div>
  </form>
</body>
</html>

Mein Ziel:

Wenn ihr auf das button "Send" drückt, dann erscheint ja der value von dem input "login" auf HTML (innerHTML heisst das glaube ich). Und zusammen mit dem value erscheint auch ein anderer Button namens "Delete". Mein Ziel ist es, dass wenn ich auf "Delete" drücke, dann sollte das item aus Backend-Server und aus HTML gelöscht werden. Aber das klappt bei mir die ganze Zeit nicht. Einfacher ist es wenn ihr meinen Code einfügt und selber mal den Code testet, dann werdet ihr verstehen, was ich machen will.

Bitte helft mir! Ich sitze schon wirklich lange dranrum und ohne Erfolg!

Dankeschön im Voraus!

MfG

MrOsmo

Software, App, HTML, IT, Webseite, programmieren, JavaScript, HTML5, Code, Informatik, Programmiersprache, Webentwicklung, Frontend
C++ - "Funktion nimmt keine 0 Argumente." Behebung?

Schönen guten Abend!

Das Problem ist etwas anders als in der Frage, jedoch ist es für mich schwer dies in einem Satz zu erklären. Nun erstmal mein C++ Quellcode zum Verständnis:

#include <iostream>


int numbCount(int count);


int main()
{
	int num1 = numbCount();
	int num2 = numbCount(2);

  ...

}
  
  int numbCount(int count = 1) 
  {
  	int userNumb;
  	std::cout << "Please enter the " << count << ". integer: ";
  	std::cin >> userNumb;
  
  
  	return userNumb;
  }

Also, wie man sehen kann hat meine Funktion numbCount() Parameter. Außerdem bevorzuge ich es die Funktionsdefinition unter der Main() Funktion zu schreiben.

int numbCount(int count);

int main()
{
...
}

int numbCount(int count = 1)
{
...
}

Somit muss ich die Funktionsdeklaration über der Main() Funktion "erwähnen", damit ja der Compiler weiß, dass die Definition noch kommt. Dies scheint in diesem Fall bei einer Funktion mit Standardparameter für VS ein Problem darzustellen - Fehler "numbCount: function does not take 0 arguments".

Wenn ich jedoch die Funktionsdefinition von "numbCount()" über die Main() Funktion packe, funktioniert alles normal.

int numbCount(int count = 1)
{
...
}

int main()
{
...
}

Habe bereits versucht den Parameter in der "erwähnten" Funktionsdeklaration zwischen den runden Klammern ebenfalls einzufügen, also

int numbCount(int count = 1);

jedoch kommt dann der Fehler 'numbCount': redefinition of default argument: parameter 1

FRAGE:
Gibt es eine Möglichkeit in einer Funktion Standardparamter (also wenn kein Wert in Funktionsaufruf zwischen Klammern angegeben -> standardm. Wert 1) zu haben aber trotzdem die Funktionsdefinition unter der Main() Funktion zu belassen?

int numbCount(int count);

int main()
{
    int num1 = numbCount(); // Kein Wert angegeben - Std. Wert 1
    int num2 = numbCount(2);
}

int numbCount(int count = 1)
{
...
}

Vielen Dank und einen schönen Abend! :)

Computer, Software, Programm, programmieren, Anwendung, Funktion, Cplusplus, Anwendungsentwicklung, Argumente, Code, CPP, Fehlerbehebung, fehlercode, Programmiersprache, Softwareentwicklung, Visual Studio, Fehlermeldung, Parameter
Lenovo ThinkPad T410: Gelegentlich lässt es nicht einschalten!? (Hardwareproblem? Vielleicht auch Anmeldeproblem bei Linux Mint 21.2?)?

Hallo,
Wenn ich den Laptop einfach zuklappe, oder auch mich abmelde, passiert es immer häufiger, dass ich ihn nicht mehr anbekomme! Das heisst, er gibt keine Reaktion von sich. Ich stecke dann dis CMOS-Batterie aus und ein und drücke auf den Einschaltknopf und den "ThinkVantage-Button". Immer wieder und halte sie gedrückt. Und ich stecke den Netzstecker aus und ein und schiebe den Akku hinein und ziehe ihn wieder heraus. Dies alles abwechselnd und gleichzeitig und durcheinander und so weiter. Nach 15 - 20 Minunten startet das ThinkPad dann wieder! WIESO???
Heute sogar zu einem Zeitpunkt als die CMOS-Batterie gerade ausgesteckt gewesen ist und es gab nicht einmal eine Fehlermeldung. Selbst die Typische, dass Uhrzeit und Datum einstellt werden müssten, erschien nicht.

Bevor ich zum ersten mal das Netzteil und den Akku gleichzeitig entfernte, leuchtete heute morgen auf der Aussenseite des Computers der Halbmond. Ich glaube in rot. Möglicherweise stand der Laptop auf Stand-by und der Akku ging in der Nacht beinahe leer.

Jedenfalls bin ich mit meinem Latein am Ende.
Würde es etwas ändern können, wenn ich die vermutlich 13 Jahre alte CMOS-Batterie einmal wechsle?

Besten Dank!

PC, Computer, Akku, Software, Betriebssystem, Technik, Notebook, Linux, Hardware, programmieren, Ubuntu, Lenovo, Linux Mint, Mint, Laptop
Wie installiert man in Arch/Manjaro Linux Software?

Wenn man von eigentlich Debian Nutzer ist ist das fremdlich etwas anderes als Apt zu nutzen.
Ich weiss nur das es 3 Möglichkeiten gibt.

  • AUR
  • pacman
  • flatpak
  1. Was ist das Genau ?
  2. Wie kann ich mir das merken / eine Software suchen ?
  3. Was ist am besten ?

Klar ich will das neuste & stabilste ganz bequem haben aber vor allem ist mir viel wichtiger es direkt von der quelle zu kriegen wenn es denn geht.

Ich will hier nicht anfangen irgendwie Github Zeug herunterladen und selber zu kompilieren oder von irgendwelchen privat personen meinen alltags Browser haben wo alle Passwörter sind.

Und die meisten Sachen haben nichts mit Manjaro bzw. Arch auf ihrer Download Seite.

Wenn du glück hast Deb File und sehr sehr selten rpm Pakete für Fedora hab ich das gleiche durchgemacht.

Wie soll ich da das Zeug finden ? Ohne jedes mal googeln how to install chrome manjaro.

Kann mir jemand das wichtigste zusammenfassend beantworten so als guide.
Man muss nicht umbedingt stundenlange videos gucken, ihr habt die Erfahrung schon gemacht wahrscheinlich oder kleines cheat sheet.

Anwendungsbeispiele:

chrome, vs code, discord, steam, firefox developer edition, xampp, node js & npm

Mehr brauch ich überhaupt nicht auf meinem System und ich seh das ohnehin als Test System.

Hauptsächlich werde ich was anderes benutzen, ich kann nicht von heut auf morgen auf Arch Linux umsteigen aber vielleicht wenn ich mehr Ahnung habe.

PC, Server, Computer, Windows, Betriebssystem, Technik, Linux, IT, programmieren, Ubuntu, USB-Stick, Anwendungsentwicklung, booten, Fachinformatiker, fedora, Hacker, Informatik, Informatiker, Linux Mint, Open Source, openSUSE, Programmiersprache, Softwareentwicklung, Treiber, Arch Linux, Debian, Manjaro
Kali Linux als Host System?

Guten Abend liebe GuteFrage Community,

Nun habe ich zur Freude von uns allen einmal eine Kali Frage ^^

Ironie folgt:

Also: Ich habe keine Ahnung von Computern und habe auf TikTok gesehen das da so einer Kali hatte und möchte nun wild auf den Knöpfen drücken ^^

Ironie aus:

Also: Meine Frage beliegt darin, ob es unter bestimmten von eurer Seite als legitim empfunden wird, Kali Linux bzw. ParrotOS als Host System zu benutzen. In meinem Fall geht es um jegliche Einsatzzwecke im Zusammenhang mit Softwareentwicklung, Blue Team Pentesting, Malware Analyse und Ähnliches. Ich möchte es demzufolge nicht installieren, weil es „Kali“ (oder eben „ParrotOS“) heißt, sondern da ich die Tools und die gegebene Umgebung gebrauchen kann. Ich selber habe auch entsprechende Erfahrung im (fortgeschrittenen) Umgang mit Linux Systemen. Ich setze an dieser Stelle übrigens ParrotOS und Kali in die Frage, da ich mich noch nicht entschieden habe, welches ich eventuell nutzen würde.

Es ist nun nicht so, dass ich mir nicht grundsätzlich selbstständig die Pro- und Contra- Argumente auflisten könnte, sondern dass ich schlichtwegergreifend externe Meinungen haben möchte. Die Systeme auf denen ich Kali / ParrotOS installieren wollte, werden beide nur in sehr eingeschränktem Rahmen für andere Zwecke verwendet und sind ansonsten auf IT-Anwendungszwecke limitiert.

Mit freundlichen Grüßen,

eurer Codeline

Test, Technik, Linux, IT, programmieren, Ubuntu, Analyse, booten, Hacking, Malware, Tool, Arch Linux, arch, host, parrot, Virtuelle Maschine, Penetrationstest, Kali Linux

Meistgelesene Fragen zum Thema Programmieren