Computer Hardware Forum - TweakPC

Computer Hardware Forum - TweakPC (https://www.tweakpc.de/forum/)
-   Off Topic (https://www.tweakpc.de/forum/off-topic/)
-   -   Was muss man zum Programmieren können? (https://www.tweakpc.de/forum/off-topic/16032-was-muss-man-zum-programmieren-koennen.html)

Zyrano 29.05.2004 02:44

Was muss man zum Programmieren können?
 
Hi-

kann mir einer sagen was man können muss (Mathe, logisches Denken z.B.) um mal gut Programmieren zu können.........oder kann man das so pauschal nicht sagen?
Wie läuft das mit dem Programmieren eigentlich ab (so allgemein) ich hatte das nie in der Schule und somit 0 (0 im Sinne von GAR nix) Ahnung

Stöhnie 29.05.2004 07:35

deine frage sprengt glaub ich so ziemlich jeden rahmen, aber ich versuch mich mal:
die programmiersprache spricht gewisse register an. durch eine abfolge von progammierbefehlen (zeilen) wird ein mehr oder weniger komplexer ablauf in gang gesetzt. und du kannst schon programmieren: mit den befehlen im pphpbb, das z.b. [size=6][url=www.tweakpc.de][b][color=green]www.tweakpc.de[/url][/b][/color][/size] entsteht. das ist eigendlich nix anderes, die befehle (programmiersprache) kennst und plattform ist das phpbb-forum! :wink: dein rechner (oder ist es doch nur die cpu?) setzt in verbindung mit der phpbb sw das angezeigte um!

[quote=zyrano]...was man können muss (Mathe, logisches Denken z.B.) um mal gut Programmieren zu können.........[/quote]
das ist meistens "vorteilhaft", aber ich meine nicht zwingend notwendig. :P

kerri 29.05.2004 08:41

Das Beispiel mit den Foreninternen 'Befehlen' finde ich eher schlecht, der BBCode ist ja nur eine Beschreibungssprache (markup language, wie html) und keine Programmiersprache an sich.

Beim programmieren musst Du einfach versuchen, so zu denken, wie der Computer, also einen Befehl nach dem anderen, also sequentiell, abarbeiten. Wie man jetzt ein gegebenes Problem in einen sequentiellen Code umsetzt, ist einfach Uebungssache.
Prgrammieren ist ein wenig wie Kochrezepte schreiben. Also z.B. erst ein wenig Oel in die Pfanne, den Herd anschalten, dann zwei Eier aufschlagen, in die Pfanne tun, solange braten bis sie braun sind, Herd ausmachen, essen. Das ist eigentlich nix anderes, als ein sequentielles Programm, und der Koch entspricht dem Prozessor, die Taetigkeiten den einzelnen Befehlen.

Bei objektorientierter Programmierung sieht das ganze ein wenig anders aus. Da bin ich aber auch noch nicht so richtig dahintergestiegen :lol:

Mathe ist eigenltich nicht soooo wichtig (es sei den, Du willst Mathematische Programme schreiben), man muss zum programieren genaugenommen nur zaehlen koennen ;)

Gruesse, kerri

BomberD 29.05.2004 09:04

wichtig ist es auch abstrakt denken zu können.

zu erkennen was ein problem tatsächlich ausmacht.

wenn du das problem nicht begreifst, dann kannst du es auch nicht mit einem programm lösen.

und zeit brauchst du ;) also solltest du geduld mitbringen.

ich bin auch NOCH kein wirklich guter programmierer. mit der zeit ändert sich das hoffendlich. man braucht im allgemeinen viel erfahrung um gut programmieren zu klernen.
im studium oder der ausbildung lernst du nur die grundlagen. und richtlinien für die herangehensweise an probleme.

btw. ich hab endlich nen job!!! (wollt ich nur mal loswerden ;) )

tele 29.05.2004 09:46

ich finde das wichtigste ist einfach sich hinsetzen zu können und solange nciht merh auszustehen bis das geweollte erreicht ist

Zyrano 29.05.2004 09:46

Was meint ihr....bringen solche VHS Kurse was...so um sich das mal anzugucken.



2 Bomber


Was für einen?

tele 29.05.2004 09:47

kommt auf die sprache drauf an, bei prozeduralen sprachen lohnt es sich imho net, aber um z.b. die grundlagen von OOAD richtig begreifen zu können ist geführte hilfe wesentlich sinnvoller

redfalcon 29.05.2004 09:54

Was willst du denn programieren? Programme? Websites? Raytracing?

Pirke 29.05.2004 14:27

Bei Proceduralen SPrachen kann man ganz gutsich einfach hin Setzen und loshacken, da macht man sich vorher einen kleinen Plan, was das programm wie machen soll und wie es auf eingaben reagiert und los gehts, bei Objekt Orientierung ists was komplizierter, denn da gibt es dann keine FUnktionen die irgendwas machen, sonern nur Objekte, wenn man das aber verstanden hat ist es echt super anzuwenden, denn dann kann man reale Probleme sehr gut im Rechner abbilden, mit einem UML Modell kann man dann die Objekte in verbindung setzen und dann mussm man "nur noch" Implementieren....

Live 29.05.2004 14:56

@ Pirke
Ich glaube jetzt ist Zyrano nur noch verwirrter ;)

Plautze 29.05.2004 17:02

hallo.

du kannst pauschal nicht sagen, was du können musst um ein guter coder zu sein.

jedenfalls solltest du dich auf das thema fixieren, dass dir spass macht. also in welcher branche du coden willst. such dir was aus, wo du vom thema her aufblühst. dann wirste automatisch ein "guter" coder, wenn du nicht unbedingt "ein an der waffel" hast ;)

ich für meinen teil würde z.b. nie wieder in die versicherungs-sw gehen - sowas von trocken 8O

nutz den vorteil und such dir die branche aus, in der du dein leben lang tippen willst ;)

cu

Dr. BeSt 29.05.2004 19:19

Ich würd sagen, einfach mal nen VHS-Kurs (möglichst eine der gängigen Standardsprachen wie Basic, Java oder C++) machen oder n "für Dummies"-Buch kaufen, dann kriegste schon nen guten Eindruck, ob das was für dich ist!

TwinView 29.05.2004 19:25

Japp, die "für Dummies" Bücher sind wirklich gut.

_Smash_ 29.05.2004 20:09

Re: Was muss man zum Programmieren können?
 
[quote=Zyrano]
Wie läuft das mit dem Programmieren eigentlich ab (so allgemein) ich hatte das nie in der Schule und somit 0 (0 im Sinne von GAR nix) Ahnung[/quote]

hallo
ich denke das kann ich mal in einem kleinen beispiel erklären.

ich nehme dazu ein kleines java-programm aus meinem studium.
das programmbeispiel ist für die die programmieren können wirklich simpelst, aber es zeigt schon wie im allgemeinen befehle interpretiert werden.

also

hier ist erstmal die main class, sowas wie eine hauptdatei oder startdatei.

[code]public class TestBruch1
{

public static void main(String[] args)
{
Bruch1 t = new Bruch1(-1,6);
Bruch1 u = new Bruch1(4,5);
Bruch1 temp = new Bruch1();

System.out.print("Die Brüche\n");
t.print();
u.print();

System.out.print("Addition\n");
temp = t.add(u);
temp.print();

System.out.print("Multiplikation\n");
temp = t.mult(u);
temp.print();

}

}[/code]

dies hier ist eine objektklasse.
eine klasse definiert objekte und beinhaltet die memberfunktionen. das sind funktionen, die das objekt beeinflussen können.

[code]public class Bruch1
{
public int zähl, nenn ;
public int bruchAnzahl = 0 ;


public Bruch1() // Bruch-Konstruktor mit 0 Argumenten
{
this.zähl = 0 ; this.nenn = 1 ; ++bruchAnzahl ;
}


public Bruch1(int zähl) // Bruch-Konstruktor mit 1 Argument
{
this.zähl = zähl ; this.nenn = 1 ; ++bruchAnzahl ;
}

public Bruch1(int zähl, int nenn) // mit 2 Argumenten
{
this.zähl = zähl ; this.nenn = nenn ; ++bruchAnzahl ;
}

public Bruch1 add(Bruch1 a) // Arithmetische Operationen +
{
Bruch1 temp = new Bruch1 ();
temp.zähl = zähl + a.zähl;
temp.nenn = nenn + a.nenn;

return (temp);
}

public Bruch1 mult(Bruch1 a) // Arithmetische Operationen *
{
Bruch1 temp = new Bruch1 ();
temp.zähl = zähl * a.zähl;
temp.nenn = nenn * a.nenn;

return (temp);
}

public void print() // Ausgabe des Bruches
{
System.out.print(this.zähl + "/" + this.nenn +"\n") ; }
}[/code]

ich gehe jetzt das programm durch. wobei ich nicht auf jeden befehl eingehe, sondern einfach mal den ablauf schildere.

das programm fängt an, wo public static void main... usw steht.

das hier
Bruch1 t = new Bruch1(-1,6);
Bruch1 u = new Bruch1(4,5);
Bruch1 temp = new Bruch1();

legtim prinzip variablen an. diese variablen kann man mit allen daten füllen die man will. zb 1 oder 2 oder 'hallo'
da diese variablen aber vom typ bruch sind kann man nur brüche reinschreiben. wie zb 1/2 oder 2/3.
diese variable ist eine instanz des objektes bruch1.
eine instanz ist quasi eine version des objekts.
stell dir ein auto vor. es hat 4 räder ein lenkrad, motor und sitze.
das objekt ist nun ein auto.
du erstellst eine instanz des objektes bruch und nennst sie audi.
nun sagst du die räder sollen breit und das lenkrad klein, der motor stark und die sitze aus leder sein.
du macht eine 2. instanz und nennst sie vwkäfer. nun sagst du das lenkrad ist riesig, der motor lächerlich, die räder klein und die sitze aus stoff.
beide instanzen sind autos und definieren sich durch die räder , motor usw, enthalten aber andere informationen, bzw sind anders ausgestattet.

der computer weiss was brüche sind, weil es hier:

public Bruch1(int zähl, int nenn) // mit 2 Argumenten
{
this.zähl = zähl ; this.nenn = nenn ; ++bruchAnzahl ;
}

so festgelegt wurde. es ist die definition eines bruches mit nenner und zähler. was da jetzt im einzelnen steht ist erstmal unwichtig und ist recht einfach zu erlernen wenn man es nachliesst, aber das würde jetzt hier zu lange dauern.

die nächste zeile heisst
System.out.print("Die Brüche\n");

das ist ganz simpel die ausgabe des textes : "die brüche" auf dem bildschirm.

jetzt kommt
t.print();

wir haben ja oben eine variable t angelegt und mit dem wert -1 und 6 initialisiert, also angelegt. der bruch ist hier quasi -1/6.
t ist quasi der bruch -1/6.
so da die variable vom typ bruch1 ist weiss der computer, daß die funktionen

public Bruch1 add(Bruch1 a)
public Bruch1 mult(Bruch1 a)
und
public void print()

, die in der klasse dieses objekts drinstehen mit dem t benutzt werden können.

t.print();

heisst hier einfach

drucke die variable t aus. also mach sie auf dem bildschirm sichtbar.
denn in der funktion

public void print()

steht eine System.out.print anweisung drin.

mit diesen funktionen der klasse kann man also instanzen beeinflussen und bearbeiten.

das gleiche passiert nun mit der instanz u.

danach kommt wieder eine ausgabe des textes "addition"

bei temp = t.add(u);
wird nun der bruch t und u addiert, mit hilfe der funktion
public bruch1 add(bruch1 a) in der klasse bruch1 und das ergebnis wird in die instanz / variable temp geschrieben.
temp wird ausgegeben.

das gleiche passiert jetzt auch mit der multiplikation.
die brüche werden multipliziert mit hilfer der mult-funktion der klasse bruch1 und das ergebnis ausgegben.

mehr macht das programm nicht.

ich hoffe wirklich, es hat dir etwas gezeigt wie programme arbeiten.
wenn nicht..... schade. aber ich denke in büchern wird das alles sehr ausführlich erklärt und man führt dich langsam an die sache heran und erschlägt dich nicht mit befehlen.

vieleicht kaufts du dir einfach mal ein buch zu einer programmiersprache.

wenn du nochwas spezifisches wissen willst, frag.

tele 29.05.2004 20:29

anderes beispiel:

(maaan smash musst du gleich mit OO anfangen?)


[code]
void main()
{
printf("Hello World");
}
[/code]
c code der lediglich hello world auf der konsole ausgibt

_Smash_ 29.05.2004 20:48

naja das hello world ist halt dann doch etwas zu lasch.... vor allem zeigt das kaum das prinzip des programmierens.

Dr. BeSt 29.05.2004 21:09

[quote=telepornos]c code der lediglich hello world auf der konsole ausgibt[/quote]
Oder auf BASIC:

[code]PRINT "Hello World"[/code]

:wink:


@Smash:

Ich hab Grundkenntnisse in einigen Sprachen, u.a. auch JavaScript und C++, aber das Beispiel von dir halte ich trotzdem für ziemlich schlecht versteh- und lesbar! Für einen Einsteiger also sicher nicht gerade geeignet... :roll:

_Smash_ 29.05.2004 21:18

*hmmist*

naja nen versuch wars wert

tele 29.05.2004 22:39

ne uml vorher hätte mehr gebracht :lol:

_Smash_ 29.05.2004 22:46

haaaaaalllloooooooooooooo

ich habs wenigstens vesucht..... :lol:


und ne uml würde ich nicht nehmen um einen das programmieren zu zeigen.
ist einfach zu weit entfernt.

Pirke 30.05.2004 17:43

@Smash: [klug****** Mode] Die "Memberfunktionen" heißen METHODEN und die Attribute sollte man mal grundsätzlich private machen, das ist doch sonst total unsauber, tssss.....[/klug****** Mode] :-)

_Smash_ 30.05.2004 17:53

du kannst die memberfunktionen/ methoden auch klassenmethoden oder manipulatoren oder sonst wie nennen. bei 5 büchern stehen dann 6 bezeichnungen drin.
genau wie manche die instanzen instanzen nennen und andere objekt statt instanz sagen und zu den objekten dann definitionsklassen oder sonstwas sagen...

und die atribute: wieso sollte ich das in so einem kleinen proggie nicht machen?
schränkt sonst nur beim fummeln ein.

tele 30.05.2004 17:58

immernoch besser als wenn dozenten statt annäherung optimierung sagen, statt varaiblen parameter, etc.

aja wie du das machen sollst?

hm als benutzer der tastatur solltest du schon wissen wie man

p r i v a t e tippt :lol:

Pirke 30.05.2004 18:06

Smash, Klassenmethoden sind wieder was ganz anderes, das sind dan Statics, die sind gar nicht über objekte abrufbar, sondern nur direkt über die Klasse....

_Smash_ 30.05.2004 18:09

@ tele: habs berichtigt.
aber parameter war bei uns die variablen, die an funktionen übergeben wurden. also hatten wir den ausdruck auch.

@pirke: das meinst du... andere nicht
nur um das klar zu stellen: ich seh das wie du, ich sag das auch nicht dazu, aber manche tun das eben... ist eben alles sehr neblig gefasst.

Pirke 30.05.2004 19:33

qSmash: Dann ist ja gut, dass wir das gleich sehen, ich habe es bisher immer nur so gehört....

Dr. BeSt 31.05.2004 11:46

[quote=_Smash_]@ tele: habs berichtigt.
aber parameter war bei uns die variablen, die an funktionen übergeben wurden. also hatten wir den ausdruck auch.[/quote]
Jo, auch mein Vater (seit 20 Jahren Programmierer bei Bertelsmann) benutzt den Begriff Parameter immer.

tele 31.05.2004 12:06

das war auch ncihzt im zusammenhand mit z.b. funktionsaufruf (-> übergabeparamter) sondern mit mathematischen functionen, z.b.

sagt der dozent zu f(x) = a*x ^ i

dass x ein paramter sei ( :head: ) aber naja

_Smash_ 31.05.2004 12:42

jo das ist ja auch vollkommen richtig!

Dr. BeSt 31.05.2004 14:25

Kommt auf die Betrachtungsweise an... :denker: Ich finde die Bezeichnung Parameter im Zusammenhang mit mathematischen Funktionen aber generell eher merkwürdig.

_Smash_ 31.05.2004 14:43

ist aber so.. was glaubst du warum die parameterdarstellung so heisst ;-)

tele 31.05.2004 14:57

paramter wäre ein koefifizient der numerisch nicht spezifiziert ist , ergo eine funktions schar produziert

also anstatt

2 * x ^2

dann

a * x ^2

in dem fall Ist [b]a[/b]

der Paramter und nicht x , da x ja eine variable ist

_Smash_ 31.05.2004 15:05

ein parameter ist eine veränderliche größe, mit anderen worten eine variable.

tele 31.05.2004 16:31

okay dann sag mir mal was in diesem beispiel was ist:

f(x) = a * x ^ i

_Smash_ 31.05.2004 17:07

f(x) heisst: funktion von x, also wird x parametrisiert also variabel gemacht.

a ist der koeffizient oder faktor, x der parameter oder die variable, und i der exponent

tele 31.05.2004 17:13

[url]http://www.mathe-online.at/mathint/fun2/i.html#Familien[/url]

schade dem ist wohl nicht so :wink:

_Smash_ 31.05.2004 17:18

das ist falsch. das was die als parameter angeben ist der index.

tele 31.05.2004 17:26

??? index ist die auflistungsnummer der variable bei kleiner dimensionsanzahl sicher sinnlos, bei mehr als 3 dimensionen listest du doch dann y= x1+ x2 + x3

edit:

unter dem Index verstehe ich die laufnummer der variablen, bei größerer Anzahl an Dimensionen (2-dimensional, 3 dimensional, n-dimensional) da dann das benennen mit x, y, z schwierig wird

_Smash_ 31.05.2004 17:29

könntest du den letzten satz nochmal ausformulieren?

Pirke 31.05.2004 19:41

Leute, das ist wie mit den Methoden/Klassenmethoden/Funktionen usw, jeder Dozent benennt es anders....


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:43 Uhr.

Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.