Voraussetzungen für einen Programmierer ?

Hallo.

Welche Voraussetzungen muss eine Person erfüllen, um erfolgreich eine Programmiersprache zu lernen und so etwas eventuell auch später beruflich machen zu können.
Muss man mathematisch begabt sein, logisch denken können oder auf was kommt es genau an?
Bin an Computern interessiert, aber eine Sprache kann ich nocht nicht.

Danke für eure Antworten.

mfg
phil

Auch hallo.

Hallo.

Welche Voraussetzungen muss eine Person erfüllen, um
erfolgreich eine Programmiersprache zu lernen und so etwas
eventuell auch später beruflich machen zu können.

Intelligent, gebildet, Einser-Abiturient mit 13 als minimale Voraussetzung :wink:

Muss man mathematisch begabt sein, logisch denken können oder
auf was kommt es genau an?

Das auch.
Aber wie überall auch: Durchhaltevermögen, Abstraktionsfähigkeit, Weiterbildung, Mathematik (Aussagenlogik -> der Computer hat _immer_ Recht), Beherrschen mehrerer (Programmier)Sprachen, prozedurale Programmierung (also die ältere Programmierweise), objektorientierte Programmierung (neuer), aspektorientierte Programmierung (ganz neu & im Kommen), Modellierung (UML2), …

Bin an Computern interessiert, aber eine Sprache kann ich
nocht nicht.

Also es kommt auch auf das Einsatzgebiet an. Eine Programmiersprache für WebDesign (z.B. HTML) unterscheidet sich von einer zur Kontaktaufnahme an SAP-Systeme (z.B. BSP, Java, C#,…) im Bezug auf die Menge an Befehlen und der Philosophie dahinter. Sowie die Möglichkeiten, diese für entsprechend viele Plattformen zu entwickeln.
Einen Einblick geben hier Bretter mit den Namen der Programmiersprache, sowie Seiten wie http://www.derentwickler.de, http://www.codeproject.com, http://www.javaworld.com, http://www.dotnetgerman.com, …

HTH
mfg M.L.

Hallo Phil,

für das Programmieren an sich solltest du logischen Gedankengängen folgen können und mit Mathe nicht auf Kriegsfuss stehen. Etwas Englisch zu können wäre auch nicht schlecht. Dazu noch ein bischen Durchhaltevermögen. (Programmiernen erlernt man nicht an einem Tag und es gibt auch den ein oder anderen Aspekt beim Programmieren, den man nicht sofort versteht)
Das gilt für alle Programmiersprachen, die ich kenne.

Alles weitere hängt dann davon ab, was deine Programmier- und Berufsziele sind.

Wenn du in einer größeren Firma anfangen willst, die Software erstellt, solltest du Teamfähig sein und um ein Studium wirst du nicht herumkommen.

Mochtest du eigenständig programmieren, z.B. mit einer eigenen Firma so wie ich, dann solltest du je nach Kundenkreis ein gepflegtes und sicheres Auftreten haben. Auch von Vorteil ist es, wenn du die teils sehr komplexen Probleme beim Programmieren in verstädnlicher Form wiedergeben kannst.

Sollte dein Interesse in Richtung Webdesign gehen sollte eine gesunde Portion Kreativität nicht fehlen.

Eine Eigenschaft die man (zumindest wenn man Geld verdienen möchte) nicht haben sollte ist Sturheit. Wenn ein Programmierer versucht beim Kunden seinen Kopf durch zu setzten, wird er diesen Kunden bald verlieren.

Gruß

Michi

Ach ja, je nach Berufsziel sollten zumindest Grundkentnisse des kaufmännischen Sektors nicht fehlen.

Hallo Phil,

Mathe (v.a. praktische Mathematik) und Englisch sind einfach Handwerkszeug und absolute Voraussetzung.

Darüber hinaus musst du bereit sein, dich in alle möglichen Problemstellungen zusätzlich einzuarbeiten, denn Programmieren ist niemals Selbstzweck. Man kann etwa Software für eine Werkzeugmaschine nur schreiben, wenn man begriffen hat was warum bearbeitet wird (Zylinderblock für ein Auto? Ein Gehäuse für einen Generator?) und womit (was kann ein Fräser in einem Durchgang abtragen und wie muss er geführt werden, damit die gewünschte Form entsteht? Was ergibt das für eine Oberflächenqualität?).

Ich musste mich schon in viele Fachgebiete recht weitgehend einarbeiten; wenn du eine Finanzbuchhaltung machen sollst, ist das nicht einfacher, es sind nur ganz andere Fragen.

Das schlimmste, was mir im Beruf begegnet ist, sind Programmierer, die ihr Handwerk gut (manchmal manisch gut) beherrschen, aber allen Kunden erst einmal einreden wollen, dass alles falsch ist, was sie bisher gemacht haben. „Das haben wir immer so gemacht“ muss zwar schon hinterfragt werden, aber in den meisten Fällen gibt es gute Gründe, warum etwas schon immer so gemacht wurde - man sollte einem Küfer nicht einreden wollen, dass er seine Fassdauben in Zukunft quer statt längs zur Achse zusammensetzen muss, bloss weil einem dafür ein besserer Algorithmus einfällt.

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

für das Programmieren an sich solltest du logischen
Gedankengängen folgen können und mit Mathe nicht auf
Kriegsfuss stehen. Etwas Englisch zu können wäre auch nicht
schlecht. Dazu noch ein bischen Durchhaltevermögen.
(Programmiernen erlernt man nicht an einem Tag und es gibt
auch den ein oder anderen Aspekt beim Programmieren, den man
nicht sofort versteht)
Das gilt für alle Programmiersprachen, die ich kenne.

Da stimme ich voll zu. Extrem wichtig finde ich noch die Fähigkeit, Freude daran zu empfinden, weil sonst das Durchhaltevermögen sehr stark leidet :wink:

Grüße,
Moritz

Ahua.

Zunächst einmal ein wenig Begriffsklärung : Programmierer/in/um ist nach dem üblichen Verständnis derdiedasjenige, wo eine von Anderen erstellte konkrete Vorgabe (in Prosa) in eine Programmiersprache umsetzt, d.h. codiert. Das ist eine recht eng gefasste Aufgabenstellung.

Beispiel : Aus einem Datenbestand der fakturierten Verkäufe eines Unternehmens soll eine Liste mit den Umsätzen nach Postleitzahl-Gebieten generiert werden. Die Vorgabe an den Programmierer lautet dann : Erzeugen Sie aus der Datei HAUMICH.TOT eine Liste, in der die Umsätze nach den ersten zwei Stellen der Postleitzahl, aufsteigend sortiert, subsumiert dargestellt werden. Die Liste soll mittels Laserdrucker auf DIN A4 quer ausgedruckt werden; Seitenwechsel nach der ersten Stelle der PLZ; Überschrift folgendermaßen blabla …

Ein Entwickler/Softwaregestalter/Rabimmelrabumm (es gibt mehr Bezeichnungen dafür als schwarze Katzen in der Westschweiz) dagegen steigt beim Kunden (intern oder extern) in die Prozessanalyse ein und wird aus dem Gefasel des Kunden „Ich brauche eine Liste der monatlichen Umsätze nach Postleitzahl“ eine Anforderung der obigen Art erzeugen. Diese setzt er selbst um oder vergibt die Aufgabe, wie im vorigen Absatz, an einen Programmierer. Nach erfolgter Codierung und Systemintegration wird das Programm beim Kunden eingesetzt und von diesem abgenommen. Diese Aufgabe ist im Allgemeinen um einiges anspruchsvoller als das reine Codieren.

Für das Codieren benötigst Du die Fähigkeit, die Programmanforderung von oben in eine Sprache umzusetzen; d.h. Du solltest die Sprachstrukturen kennen und auf in Prosa gelöste Probleme anwenden können. Hierfür brauchst Du die Fähigkeit zum sinnerfassenden Lesen und die Kenntnis der jeweiligen Programmiersprache bzw. Systemumgebung. Das heißt natürlich in letzter Konsequenz, dass jeder x-beliebige Trottel Programmierer sein kann … deshalb ist das auch kein Ausbildungsberuf.

Als Entwicklerpipapo steht die Fähigkeit im Vordergrund, Prozesse im Unternehmen verstehen und in einen DV- Ablauf umwandeln zu können. Das Wichtigste dabei ist die Fähigkeit zum analytischen Denken, um innerhalb vernünftiger Zeit das Problem verstehen und selbst beschreiben zu können - dessen grundsätzliche Lösbarkeit sei hier einmal vorausgesetzt. Da die Aufgabe normalerweise nicht so simpel ist wie in meinem Beispiel, kann Wissen um unternehmensinterne Strukturen und Prozesse absolut nicht schaden.

Ein wenig ist diese Tätigkeit mit der eines Rechtsanwalts zu vergleichen, der sich ebenfalls innerhalb kurzer Zeit Insiderwissen über einen Fall erwerben muss. Er wird dieses zu großen Teilen recht schnell zurückwissen, i.e. vergessen, können. Zum Zeitpunkt der Realisierung eines Programms ist Detailwissen für den Entwickler unabdingbar, später aber nicht mehr „on-line“ vorhanden (NB : deswegen ist Dokumentation auch kein Selbstzweck).

Aus meiner Berufspraxis noch ein Beispiel dazu : Ich bin gelernter Koofmich und Seiteneinsteiger mit inzwischen gut 25 Jahren IT auf dem Buckel. Letztes Jahr hatte ich die dankbare Aufgabe, ein Pascal-Programm von Anno Kawumm, das in keiner Weise dokumentiert war, auf unsere heutige Umgebung zu transferieren, also völlig neu zu entwickeln. Es handelte sich dabei um Messdatenberechnung für evolventenverzahnte Wellen und Bohrungen; hochtechnisch und mathematisch so komplex, dass ich da zunächst reinguckte wie die Sau ins Uhrwerk. Die eigentliche Arbeit bestand also zunächst darin, mir von den Fachleuten die Zusammenhänge so erklären zu lassen, dass ich verstand, was mathematisch abzulaufen hatte und dies in ein System verwandeln konnte. Eine echte Herausforderung für den Kunden wie für mich :wink:

Das gesammelte Messtechnik-Fachwissen in meinen armen Schädel zu bekommen, hätte in diesem Leben nicht mehr funktioniert; also beschränkte sich die Wissensvermittlung auf die reine Prozessbeschreibung. Das Codieren und Dokumentieren nahm grob geschätzt 25-30% der gesamten aufgewendeten Arbeitszeit in Anspruch - viel wesentlicher war das Verstehen des Problems.

Uff, sprach Winnetou, biss sich ein Loch in den Bauch und verschwand herinnen. Sinn und Zweck dieses langen Sumses war der Versuch, Dir zu erklären, dass das eigentliche Programmieren, also Hock&Hack, nur ein relativ kleiner Bestandteil der Arbeit bei der Softwareentwicklung ist.

Eine oder meinetwegen auch zwölf Programmiersprachen zu lernen, wird Dich nicht dazu befähigen, einen halbwegs anspruchsvollen und auch einträglichen Job zu finden. Du solltest entweder den akademischen Weg wählen (Informatik), wo Dir die Methodik der Prozessanalyse, Algorithmenerstellung und ganz nebenbei auch die eine oder andere Sprache beigebogen werden, oder aber über eine Ingenieurslaufbahn nachdenken (Kaufmannswissen ist für einen Techniker leichter zu erwerben als andersrum!), wobei Du da zur Genüge mit Computern zu tun bekommen wirst. Wichtig ist, neben der Fähigkeit zum analytischen Denken, vor allem das Interesse, Kundenprobleme zu verstehen und zu lösen. Der Blechheini kommt irgendwann kurz vor Schluss der Kette, als ein Arbeitsmittel von vielen. Kommunikationsfähigkeiten, und zwar auf der menschlichen Seite, sind da viel gefragter als Shakespeare auf Hexadezimal rezitieren zu können.

Wenn Du Deinen Schwerpunkt dagegen auf der Computerecke siehst, also lieber mit dem PC arbeitest als mit Leuten in Projekten obskure Fragestellungen abzuarbeiten, wirst Du als „Programmierer“ (Entwickler) eher nicht glücklich werden; solche Leute sind eher in der Systemadministration/-analyse zu Hause. Oder bei Wäwäwä als Webseitenverwurster :wink:

Das solls erst einmal gewesen sein; bei Bedarf jammere ich Dir gern noch mehr aus meinem verfehlten Leben vor :wink:

Hol Dir ein Sternchen für Deine Geduld, falls Du bis hierhin durchgehalten hast.

Gruß Eillicht zu Vensre

Vielen Dank für die vielen guten Antworten.
Ich glaube das ist nix für mich.
Naja, war halt an den Voraussetzungen interessiert und sie sind mir nun bekannt.

Danke dafür !

mfg
phil

Hallo
Du kannst ja auch in der Freizeit experimentieren.
Wenn Du siehst, das was geht, hast Du immerhin ein schönes Erfolgserlebnis.
Ein VB mit deutscher Anleitung zum Beispiel.
Früher gabs so diese Z80 und C64 Kleincomputer, war schön die Zeit.
Als Programmierer gibts sogar die Gefahr, wegrationalisiert zu werden.
MfG

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Phil,

auch wenn Du den Thread schon „für Dich“
abgeschlossen hast, so noch mein Senf dazu …

Welche Voraussetzungen muss eine Person erfüllen,
um erfolgreich eine Programmiersprache zu lernen

Eine „Programmiersprache“ und eine „Sprache“ unter-
scheiden sich hier nicht allzusehr. Je jünger Du
bist, desto leichter und schneller werden im Gehirn
prinzipielle Verdrahtungen geschaltet, die den
„Charakter“ der jeweligen „Sprache“ abbilden.

Am Ende bist Du bei beiden in der Lage, Sachverhalte
und Problemstellungen mit kurzen und effektiven
„Wendungen“ zu erledigen.

Die einzigen wirklichen Voraussetzungen, die ich sehe,
sind:

  • normale oder gute Auffassungsgabe
  • positives Feedback von positivem Umfeld
  • Übung Übung Übung und nochmals Übung

also wie beim Sprachenlernen.

und so etwas eventuell auch später beruflich machen zu können.

Um so etwas beruflich machen zu können, solltest Du auf
einer speziellen Sprache sowas wie ein „Meister“ sein,
Du bist praktisch „Dolmetscher“ von Problemstellungen
aus der „Welt“ in die jeweilige Struktur der Sprache.

Muss man mathematisch begabt sein, logisch denken können oder
auf was kommt es genau an?

Im Gegensatz zu einigen anderen Schreibern halte ich
„spezielle mathematische Begabung“ für nicht erforderlich,
soweit bereits eine „normale mathematische Begabung“, die
zum Absolvieren eines Abiturs o.ä. ausreichte, vorhanden ist.

Möglicherweise ist diese spezielle Begabung sogar hinderlich,
da sich imho die Denkweise eines Mathematikers von
der Denkweise eines effektiven „fire-and-forget“
Softwarearchitekten unterscheidet. Es sei denn, der
„Mathematiker“ ist doch mehr ein „Physiker“, dann sieht
es schon besser aus :wink:

Bin an Computern interessiert, aber eine Sprache kann ich
nocht nicht.

Aller Anfang ist schwer. Wenn Du jetzt anfängst, Dich
nicht in Hype/Blurb verzettelst und erstmal Dir Schritt
für Schritt die Grundlagen erarbeitest, stehen die Chancen
nicht schlecht, dass Du in 10 Jahren ehrfurchtsvoll als
eine Art Yoda von den „jungen Hüpfern“ um Rat gefragt wirst.

Dabei kommt es auch nicht auf das Sammeln/Installieren
von möglichst vielen blinkenden Entwicklungsumgebungen
mit immer höheren Versionsnummern an (das lenkt nur ab);
zunächst muss man dafür sorgen, dass grundlegende Strukturen,
(Algorithmen, Konzepte etc.) wie sie in den Programmier-
sprachen der gegenwärtigen „Kultur“ üblich sind,
ins „Gehirn eingebaut“ werden.

Und das braucht Zeit.

Grüße

CMБ

Hallo Markus,

… aspektorientierte Programmierung
(ganz neu & im Kommen),

… und, glaubst Du dran? :wink:

„mehrdimensionale Programmierung“?

Grüße

CMБ

Hallo der Herr.

… aspektorientierte Programmierung
(ganz neu & im Kommen),

… und, glaubst Du dran? :wink:

„mehrdimensionale Programmierung“?

Gut, nicht alles aktuell Werdende wird zum Hit :wink:
AOP ist jedenfalls ein neuer Programmiersansatz zum (noch) besseren Entwickeln von Software.
Siehe auch http://www.entwickler-press.de/zonen/sus/psecom,id,4…

mfg M.L.

Hallo Markus,

AOP ist jedenfalls ein neuer Programmiersansatz zum (noch)
besseren Entwickeln von Software.

Das glaube ich nicht. IMHO ist das ein Hack,
um ‚poorly designed‘-Hierarchien nachträglich
um einen Zyklus länger für ein weiteres Projekt
nutzen zu können - oder so ähnlich.

Am Ende (korrigiere mich bitte) läuft es doch
„technisch“ darauf Hinaus, einer Klasse zur
Laufzeit eine neue Methode unterzuschieben,

also etwa sowas:
(nach http://developers.slashdot.org/article.pl?sid=05/11/…)

 ...
 sub somemethod {...}
 ...
 # And then later in your code:
 my $oldmethod = \&SomeClass::somemethod;

 \*SomeClass::somemethod = sub {
 print "Invoking somemethod...\n";
 goto $oldmethod;
 }
 ...

(als Extrembeispiel)

Grüße

CMБ

1 Like

Es gelten zur Zeit noch die gleichen Vorraussetzungen
wie für einen Maurer in den 60er Jahren.
Das Mauerwerk muss rechtzeitig
fertig werden im angebebenen Kostenrahmen, mit den gelieferten
Ziegeln, und das auch dann, wenn der Plan nicht stimmt oder das Baumaterial schlecht war, das wurde seinerzeit gut bezahlt,
und die anfallenden Überstunden auch, der Bau hielt ein par Jahre und dann war es schon wieder sanierungsbedürftig.

Da die Programmierplanung und Kontrolle zunehmend Fortschritte macht,
ist es eines Tages nur noch wichtig, einfach nach Plan
zu programmieren. Das können Billiglohnländerarbeiter aber billiger.
Also lass lieber voerst die Finger davon, wenn es Dir um den Broterwerb als Programmierer ankommt.
Wenn es dann nicht so kommt, dann wirst Du aber wohl zu alt sein,
um das Programmieren noch zu lernen. Man sollte sich ein wenig mit Programmierung beschäftigen, um die Eignung als Planer oder Chefprogrammierer=Polier, oder Softwaregutachter, Sanierer etc zu erhalten, wenn man nun grundsätzlich Interese hat an der veruflichen
Softwareerstellung, das programmieren an sich ist nicht so wichtig, da findet sich immer einer.

Bei Softwarevorhaben ist es zunehmend wichtig das Budget
einzuhalten (beim Kunden), oder aufzublähen (beim Lieferanten),
denn der Lieferant hat erst einmal eine Verlustkalkulation durchgeführt, in der Hoffnung mit kostenpflichtigen Nachbesserungen zu verdienen. Die daraus resultierenen Konflikte erfolgrreich zu managen und zu moderierern in Meetings, das ist wichtig.
Das erinnert schon an die Bauwirtschaft in den 70ern.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]