Ab wann "kann" man Programmieren?

server

Erfahrenes Mitglied
Mir stellt sich immer wieder die Frage, ab wann man von sich behaupten kann, dass man Programmieren kann bzw. eine Programmiersprache beherrscht.

Wenn man als Beispiel php nimmt, so ist es ja wohl nahezu unmöglich, alle Befehle auswendig zu kennen.

Könnte man da sagen, dass man Programmieren kann, wenn man ohne größere Schwierigkeiten unter zuhilfenahme von Befehllisten (wie z.B. php.net) ein Projekt in der entsprechenden Programmierprache umsetzen kann, diese beherrscht?

Wie seht ihr das? Gibt es Programmiersprachen, die ihr ohne irgend eine Hilfestellung wie eine Befehlliste beherrscht?

Grüße,
Server
 
Bei Programmiersprachen verhält es sich wohl ähnlich wie bei allen anderen Sprachen. Denn auch bei einer lingualen Sprache gibt es eine Syntax (Satzbau) und einen Wortschatz.

Aber ab wann beherrscht man eine liguale Sprache? Wenn man sich ein Bier kann oder doch erst wenn man sich mit jemandem fließend unterhalten kann?
Das Gleiche ließe sich auch auf Programmiersprachen übertragen: Beherrscht man eine Programmiersprache wenn man ein einfaches Problem selbst lösen kann (Bier bestellen)? Oder doch erst wenn man alle Aspekte der Sprache in- und auswendig kennt?

Es bleibt wohl eine Auslegungssache.
 
Ich denke ein Nachschlagwerk ist dazu da, dass man darin etwas nachschlägt.
Natürlich sollte man die häufigsten Befehle einer Sprache auswendig können, aber viel wichtiger ist es meiner Meinung nach zu wissen, wie ein Programm/Script arbeiten muss.

Ich meine was bringen dir die Funktionen im Kopf, wenn du nicht weist, an welcher Stelle du sie einsetzen musst?

Gruß,
cAm3eel.
 
Also ich hab vor den Sommerferien mit nem Kumpel ein 3 tägiges Projekt "Visual Basic Programmierung für Anfänger" angeboten und hab das (fast) ohne in meim Kompendium nachzuschlagen hinbekommen.... Die ganzen Kids ham zwar ziemlich oft auch gezockt, aber die Zeit, die man durch "Nicht-Zocken" sparen könnte, hätt ich bestimmt auch noch durchgehalten;-)

Und als einfache Regel bei solchen Fragen gilt bei mir immer: "Wenn man jemandem etwas erklären kann, so dass er es (halbwegs) versteht, dann hat man es selber auch verstanden":)
 
Du kannst programmieren, wenn Du Paradigmen unabhängig von der Sprache beherrscht.
Im Grunde kann man jedes Problem auf eine Metasprache runterbrechen, wenn Du die beherrscht ist die Implementation nur "noch" das Handwerkszeug.

Du mußt also nicht eine Sprache lernen sondern die Konzepte und die Logik die zur Lösung eines Problems führen. Natürlich gibt es da immer mehrere Ansätze (OO, funktional, imperativ, usw), die es aber alle irgendwie zu beherrschen gilt. Wenn Du nur eines dieser Ansätze vollständig verstanden hast und anwenden kannst, kannst Du programmieren. Die Qualität hängt dann von der Effizienz und Leistung deines Codes ab.

PHP ist in *meinen* Augen zum programmieren denkbar ungeeignet da diese Sprache auf Webanwendungen/Verwaltung zielt, nicht aber auf allgemeine Problemlösungen.

Es gibt für jedes Paradigma auch die "richtige" Sprache zum praxisnahen Üben:
OOP : Smalltalk (die einzige die *wirklich* objektorientiert ist)
Funktional: Lisp
Imperativ: Pascal (eine Sprache die man gut versteht), C
Deklarativ: Haskell
logisch: Prolog

es gab da noch ein oder zwei andere, die hab ich jetzt nicht im Kopf...
 
Ich denke, dass der Griff/Blick ins Handbuch nicht die Anfänger von den Profis trennt.

Denn gerade bei einer solch schluderigen Sprache wie etwa PHP, bei der es wohl kaum interne Richtlinien gibt (siehe auch „PHP? Bitte nicht!“), hilft oft nur ein Blick ins Handbuch.

Ein einfaches Beispiel: Bei der strpos()-Funktion, die zum Ermitteln einer Position einer Zeichenkette innerhalb einer anderen Zeichenkette dient, steht der erste Parameter für den Heuhaufen (haystack), der zweite für die Nadel (needle). Bei der in_array()-Funktion, die zum Ermitteln eines Werts innerhalb eines innerhalb eines Arrays ist, sind diese Parameter jedoch vertauscht – warum auch immer.
 
@Navy: Vollständige Zustimmung meinerseits. Insbesondere, da ich genau hier und jetzt diese Erfahrung gemacht habe und teilweise noch mache. Von daher würde ich auch sagen:
"Programmieren" kann man, wenn man in der Lage ist, beliebige Probleme in einzelne logische Schritte runterzubrechen und zu formulieren. Ob dann jemand für die Implementierung jeden zweiten Befehl im Handbuch nachschauen muß oder ob er sämtliche Überladungen von strcmp in allen C/C++-Dialekten auswendig weiss - das zeigt nur, wie fit er mit seinem Handwerkszeug ist, aber nicht, wie gut er programmieren kann.

@server:
Ich "beherrsche" nicht eine einzige Sprache (nein, nicht einmal Perl oder Basic) komplett ohne Handbuch. Aber seltsamerweise kann ich mir dennoch mein Brot als Software-Entwickler verdienen und schreibe hier Programme, die deutlich mehr auf dem Kasten haben als "Hello world" und das Ganze auch noch ca. um den Faktor 2 schneller als meine beiden Vorgänger. Also entweder mache ich grundlegend etwas falsch (allerdings sagen mir OS und Compiler durchaus, daß mein Code sauber ist und keine Speicherlecks produziert) oder der Griff in's Handbuch ist genauso wenig aussagekräftig bzgl. der Qualifikation eines Programmierers wie ein Mathematiker auch nicht sämtliche Primzahlen und Sinus-/Cosinus-Berechnungen auswendig kennen muß.

Wie mir im Studium gesagt wurde: "Man muß nicht alles wissen. Man kann nicht alles wissen. Aber das Minimum ist, daß man wissen sollte, wo es geschrieben steht, damit man es nachlesen kann. Das ist Sinn und Zweck der Literatur, meine Damen und Herren."
 
Zurück