Programmieren lernen

Auf dieser Zeitflex Seite erfährst du, wie man ohne viel Aufwand und ohne einen Cent auszugeben, das Programmieren lernen kann.

Ein guter Programmierer ist ein Entwickler, zuerst lernst Du programmieren, dann wirst Du ein guter Entwickler.

Was macht einen Programmierer aus und warum sollte man entwickeln statt einfach nur zu programmieren?

Computer kontrollieren heute den Menschen, aber Programmierer kontrollieren den Computer. Tauche ein in die Programmierwelt und schaffe deine eigene Software. Du bist der Chef und der Computer macht das, was du ihm sagst. Es faszinierend, seine eigene Software zu bauen und für Viele ein Grund, um das Programmieren zu lernen.

  • Software spiegelt das eigene Wissen und Können wieder
  • Software hat einen Nutzen für einen selbst und kann anderen helfen
  • Software besteht aus Kreativität und Individualität

Die Zukunft geht dahin, dass der Alltag  von Computern bestimmt wird. Ein Stichwort ist sicherlich Industrie 4.0, oder aber auch das Internet. Es treten täglich neue Problemfälle auf, für die neue Software benötigt wird. Als Arbeitnehmer in der IT-Branche wird man wohl auf lange Sicht keine Probleme haben. Ein Programmierer verdient im Schnitt 40.000 Euro im Jahr, bei einer leitenden Funktion sogar fasst das Doppelte mit 70.000 Euro. In der Informatikbranche ist man langfristig auf dem aufsteigenden Ast, wo sich als Einstieg in die Welt der Entwickler und Programmierer lohnen kann.

Wenn Du noch niemals ein Programm geschrieben hast, dann werden wir heute als erstes, dein erster Programm schreiben. Mit dieser kleinen Einsteiger Anleitung wird es dir möglich sein, ein kleines Programm zu entwickeln. Wir schreiben das bekannte Hallo-Welt-Programm.

Das Hallo-Welt-Programm ist ein kleines Computerprogramm, das auf möglichst einfache Weise zeigen soll, welche Anweisungen oder Bestandteile für ein vollständiges Programm in einer Programmiersprache benötigt werden, und somit einen ersten Einblick in die Syntax gibt. Aufgabe des Programms ist, den Text Hallo Welt! oder auf Englisch Hello World! auszugeben. Wegen der einfachen Aufgabenstellung eignen sich solche Programme insbesondere für didaktische Zwecke.

Welche Programmiersprachen gibt es und was ist sinnvoll dazu zu wissen?

Es macht Sinn gleich richtig anzufangen und sich mit der Entwicklung eines Programms auseinander zu setzen.

Wir werden davon ausgehen, dass Sie gerne eine Programmiersprache lernen wollen, mit der man traditionelle Anwendungen erstellen kann. Um ein Programmierer zu werden, muss man kein Mathematiker sein. Etwas logisches Vorstellungsvermögen und die Motivation „Probleme zu lösen“ reicht als Talent aus. Um eine passende Sprache zu finden, Empfehlen wir eine Sprache zu wählen, die später in der Wirtschaft gebraucht wird, also euch finanzielle Sicherheit schaffen sollte. Mit Java oder Javascript hat ein Entwickler auf dem Arbeitsmarkt sicher sehr gute Chancen, allerdings liegt die Entscheidung bei einem selbst, für welche Sprache man sich letztendlich entscheiden möchte.

Software Fehler sollten bereits beim lernen vermieden werden

  • Immer sicher programmieren
  • Secure Coding sollte später fester Bestandteil werden
  • Vermeidet Sicherheitslücken

Das erste Programm schreiben und programmieren lernen

 

Auf Wikipedia findet Ihr eine Liste von Hallo-Welt-Programmen für alle wichtigen und gebräuchliche Programmiersprachen. Für jede Programmiersprache wird dort vorgeführt, wie man in ihr die einfache Aufgabe löst, den Text „Hallo Welt!“ auf den Bildschirm anzeigen zu lassen.

Darüber hinaus findest Du auch:

 

Um anzufangen mit dem ersten Programm, habe ich die Programmiersprache C ausgesucht. Hier würde unser Hello World Programm in etwa zu aussehen. Geboren ist das erste Programm das Hello World ausgibt.

 

„Hello-World“-Programm in C++:

#include <iostream>                                     // Ein- und Ausgabebibliothek

int main(){                                             // Hauptfunktion
    std::cout << "Hallo, du schöne Welt!" << std::endl; // Ausgabe

    return 0;                                           // Optionale Rückgabe an das Betriebssystem
}

Ausgabe:


Hallo, du schöne Welt!

 

Die erste Programmiererfahrung haben wir bereits gemacht – mehr brauchen Sie nicht, um effektiv programmieren zu können. Dann stellt sich nicht mehr die Frage ob, sondern nur in welcher Zeit und mit welchem Aufwand Sie es programmieren können.
  1. Wer programmieren will muss lesen.
  2. In unseren Foren finden Sie zahlreiche Problemlösungen. Finden Sie keine befriedigenden Antworten, stellen Sie selber Ihre Frage.
  3. Eine der ersten Fragen, die sich Ihnen stellen wird ist: „Welche Programmiersprache eignet sich zum Programmieren lernen?“ Für erste eigene Befehle können Sie zum Beispiel Batch-Dateien erstellen. In diesem Praxistipp erklären wir Ihnen, wie es geht.
  4. Haben Sie bestimmte Ziele, was und wofür Sie programmieren möchten, ist es gegebenenfalls sinnvoller, gleich mit einer geeigneten Sprache anzufangen. Für Websites sind HTML und JavaScript ein guter Start, CSS, PHP und Flash können folgen. Für Windows-Anwendungen sind Sprachen aus dem .NET-Framework, wie Visual Basic und c# sinnvoll. Plattformunabhängig können Sie in Flash oder Java programmieren. Letzteres kann durch ein PlugIn in den Browser integriert werden und wird zudem viel in mobilen Geräten verwendet. Auch hier helfen Ihnen Foren weiter.
  5. Wenn Sie eine Sprache gefunden haben, besorgen Sie sich ein gutes Grundlagenbuch.
  6. Übung macht den Meister: Viele Grundlagenbücher enthalten bereits Übungsaufgaben. Auch auf Programmieraufgaben.ch finden Sie einfache Aufgaben und Lösungen für viele Programmiersprachen.
  7. Das Rad muss nicht zweimal erfunden werden. Wenn Sie über die Übungsaufgaben hinaus sind und eigene Ideen umsetzen, müssen Sie nicht für jedes Problem einen eigenen Code schreiben. Sicher hat irgendjemand genau Ihr Problem schon einmal gelöst. Fragen Sie einfach unsre Mitglieder von Timeflex.

 

Weitere Beispiele das Hello World Programm, zu programmieren.

 

Haben Sie Fragen, stellen Sie diesen in den Kommentarbereich.

Version 1 Hello, World:
Das klassische „Hello, World“ in ANSI C Syntax:

  #include <stdio.h>

  int main(void)
  {
    printf("Hello, World\n");

    return 0;
  }

Version 1a:
Variation der klassischen Version:

  #include <stdio.h>

  int main(void)
  {
    fprintf(stdout, "Hello, World\n");

    return 0;
  }

Im Vergleich zur Version 1:
Verwendung der allgemeineren Ausgabefunktion fprintf anstelle von printf.


Version 2:
Variation der klassischen Version:

  #include <stdio.h>

  int main(void)
  {
    puts("Hello, World");

    return 0;
  }

Im Vergleich zur Version 1:
Verwendung der spezielleren Ausgabefunktion puts anstelle von printf.


Version 2a:
Variation der klassischen Version:

  #include <stdio.h>

  int main(void)
  {
    fputs("Hello, World\n", stdout);

    return 0;
  }

Im Vergleich zur Version 2:
Verwendung der allgemeineren Ausgabefunktion fputs anstelle von puts.


Version 3:
Zeichenweise Ausgabe von „Hello, World“

  #include <stdio.h>

  int main(void)
  {
    char msg[13] = 
      { 'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '\n' };
    int i;

    for ( i=0; i<13; i++ )
      putchar(msg[i]);

    return 0;
  }

Version 3a:
Zeichenweise Ausgabe von „Hello, World“

  #include <stdio.h>

  int main(void)
  {
    char msg[13] =
         { 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 10 };
    int i;

    for ( i=0; i<13; i++ )
      putchar(msg[i]);

    return 0;
  }

Im Vergleich zur Version 3:
Angabe der Zeichen durch ihren ASCII-Wert in Dezimaldarstellung.
Eingeschränkte Portabilität durch Abhängigkeit vom ASCII-Zeichensatz.


Version 3b:
Zeichenweise Ausgabe von „Hello, World“

  #include <stdio.h>

  int main(void)
  {
    char msg[13] =
       { 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20,
         0x57, 0x6f, 0x72, 0x6c, 0x64, 0x0a };
    int i;

    for ( i=0; i<13; i++ )
      putchar(msg[i]);

    return 0;
  }

Im Vergleich zur Version 3:
Angabe der Zeichen durch ihren ASCII-Wert in Hexadezimaldarstellung.
Eingeschränkte Portabilität durch Abhängigkeit vom ASCII-Zeichensatz.


Version 3c:
Zeichenweise Ausgabe von „Hello, World“

  #include <stdio.h>

  int main(void)
  {
    char msg[13] =
       { 0110, 0145, 0154, 0154, 0157, 054, 040,
         0127, 0157, 0162, 0154, 0144, 012 };
    int i;

    for ( i=0; i<13; i++ )
      putchar(msg[i]);

    return 0;
  }

Im Vergleich zur Version 3:
Angabe der Zeichen durch ihren ASCII-Wert in Oktaldarstellung.
Eingeschränkte Portabilität durch Abhängigkeit vom ASCII-Zeichensatz.


Version 3d:
Ausgabe von „Hello, World“ als Zeichenkette

  #include 

  int main(void)
  {
    char msg[] = "Hello, World";

    puts(msg);

    return 0;
  }

Version 3e:
Ausgabe von „Hello, World“ als ‚codierte‘ Zeichenkette

  #include 

  int main(void)
  {
    char msg[] =
      { 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 0 };

    puts(msg);

    return 0;
  }

Im Vergleich zur Version 3:
Angabe der Zeichen durch ihren ASCII-Wert in Dezimaldarstellung.
Die Angabe einer abschließenden Null erlaubt die Behandlung als Zeichenkette (String).


Version 3f:
Ausgabe von „Hello, World“ als ‚codierte‘ Zeichenkette

  #include <stdio.h>

  int main(void)
  {
    char msg[] = "\x48\x65\x6c\x6c\x6f\x2c\x20\x57\x6f\x72\x6c\x64\x0a";

    puts(msg);

    return 0;
  }

Im Vergleich zur Version 3e:
Angabe der Zeichen durch ihren ASCII-Wert in Hexadezimaldarstellung unter Nutzung von Escape-Zeichen.


Version 3g:
Ausgabe von „Hello, World“ als ‚codierte‘ Zeichenkette

  #include <stdio.h>

  int main(void)
  {
    char msg[] = "\110\145\154\154\157\54\40\127\157\162\154\144\12";

    puts(msg);

    return 0;
  }

Im Vergleich zur Version 3e:
Angabe der Zeichen durch ihren ASCII-Wert in Oktaldarstellung unter Nutzung von Escape-Zeichen.


Version 4:
Zeichenweise Ausgabe von „Hello, World“

  #include <stdio.h>

  int main(void)
  {
    char msg[] = "Hello, World\n";
    int l = strlen(msg);
    int i;

    for ( i=0; i<l; i++ )
      putchar(msg[i]);

    return 0;
  }

Im Vergleich zur Version 3:
Die Länge der Zeichenkette msg wird nicht explizit angegeben, sie wird durch strlen ermittelt.


Version 5:
Zeichenweise Ausgabe von „Hello, World“

  #include <stdio.h>

  int main(void)
  {
    char msg[] = "Hello, World\n";
    int i;

    for ( i=0; msg[i]; i++ )
      putchar(msg[i]);

    return 0;
  }

Im Vergleich zur Version 4:
Das Ende der Zeichenkette wird nicht explizit durch die Längeninformation, sondern durch die abschließende binäre Null ermittelt.


Version 5a:
Zeichenweise Ausgabe von „Hello, World“

  #include <stdio.h>

  int main(void)
  {
    char *msg = "Hello, World\n";

    for ( ; *msg; msg++ )
      putchar(*msg);

    return 0;
  }

Im Vergleich zur Version 5:
Die Laufvariable i wird eingespart, statt dessen wird der Zeiger msg verwendet.
Achtung: msg zeigt anschließend auf die leere Zeichenkette !


Version 6:
Zeichenweise Ausgabe von „Hello, World“

  #include <stdio.h>

  int main(void)
  {
    char *msg = "Hello, World\n";

    while ( *msg )
      putchar(*msg++);

    return 0;
  }

Im Vergleich zur Version 5a:
Anstelle von for wird while benutzt.


Version 7:
Zeichenweise Ausgabe von „Hello, World“

  #include <stdio.h>

  int main(void)
  {
    char *msg = "Hello, World\n";

    while ( *msg )
      fputc(*msg++, stdout);

    return 0;
  }

Im Vergleich zur Version 6:
Anstelle der Ausgabefunktion putchar wird fputc eingesetzt.


Version 8:
Zeichenweise Ausgabe von „Hello, World“

  #include <stdio.h>

  int main(void)
  {
    char *msg = "Hello, World\n";

    while ( fputc(*msg++, stdout) ) ;

    return 0;
  }

Im Vergleich zur Version 7:
Kompaktere Darstellung der Schleife.


Version 9a:

  #include <stdio.h>

  int main(void)
  {
    union {
      char c[16];
      long z[4];
    } p;
    int i = 0;

    p.z[0] = 0x6c6c6548;             /* Variante fuer little endian */
    p.z[1] = 0x57202c6f;             /*       z.B. PC               */
    p.z[2] = 0x646c726f;
    p.z[3] = 0x0000000a;

    while ( fputc(p.c[i++], stdout) ) ;

    return 0;
  }

Im Vergleich zur Version 8:
Indirekte Angabe der Zeichenkette „Hello, World“.
Eingeschränkte Portabilität durch Abhängigkeit
– vom ASCII-Zeichensatz
– der Byteanordnung des verwendeten Rechners


Version 9b:

  #include <stdio.h>

  int main(void)
  {
    union {
      char c[16];
      long z[4];
    } p;
    int i = 0;

    p.z[0] = 0x48656c6c;             /* Variante fuer big endian */
    p.z[1] = 0x6f2c2057;             /* z.B. einige Workstation  */
    p.z[2] = 0x6f726c64;
    p.z[3] = 0x0a000000;

    while ( fputc(p.c[i++], stdout) ) ;

    return 0;
  }

Im Vergleich zur Version 9a:
Verwendung einer anderen Byteanordnung (big endian statt little endian).


Version 10b:
Zeichenweise Ausgabe von „Hello, World“, Text ist (leicht) codiert gespeichert

  #include 

  int main(void)
  {
    union {
      char c[16];
      long z[4];
    } p;
    int i = 0;

    p.z[0] = 0x48646e6f;             /* Variante fuer big endian */
    p.z[1] = 0x6b292650;             /* z.B. einige Workstation  */
    p.z[2] = 0x677b666f;
    p.z[3] = 0x060d6762;

    while ( fputc((p.c[i++])^i, stdout) ) ;

    return 0;
  }

Im Vergleich zur Version 9b:
Einfache Codierung der indirekt angegebenen Zeichenkette mittels XOR.


Vergleich der mit verschiedenen Systemen erstellten Objektcodedateien:

---------------------------------------------------------
       AIX                         WIN32  DOS
Ver    cc   cc     gcc  gcc  gcc   bcc    msc  msc  gcc
sion        -O          -O1  -O2               -Od
---------------------------------------------------------
1      949  933    710  694  694   389    311  324  489
2      949  933    710  694  694   387    308  321  489

1a                                 415    329  343  534
2a                                 413    327  341  534

3     1189 1137    994  886  936   468    421  444  547
3a    1190 1138    995  887  937   471    423  446  547
3b    1190 1138    995  887  937   471    423  447  547
3c                                 471    423  447  547

4     1307 1247   1064  952  998   498    436  463  597
5     1253 1161   1010  910  956   474    407  435  561
6     1229 1161    974  886  936   448    395  423  513
7     1097 1073    866  830  826   426    355  368  562
8     1133 1107    858  818  818   423    349  364  562

9a    1070 1036    738  778  738
9b    1070 1036    738  778  738

10b   1079 1061    790  446  746

You may also like

Sign In

Reset Your Password

Email Newsletter