Krautkanal.com

Veröffentlicht am 2016-01-18 09:15:08 in /prog/

/prog/ 8309: Bernd, wie lernt man richtig programmieren? Bernd hat ...

anjhero Avatar
anjhero:#8309

Bernd, wie lernt man richtig programmieren?
Bernd hat einen Java-Kurs belegt und immer fleißig gelernt. In 3 Wochen ist die Klausur und er fühlt sich eigentlich relativ gut vorbereitet. Trotzdem hat er nicht den Eindruck er könnte mit seinem Wissen irgendwas Produktives anfangen, obwohl mir ein bekannter Entwickler sagte das wäre schon alles, was man als guter Informatiker in Java braucht.

alagoon Avatar
alagoon:#8310

Irgendwo einen Job annehmen und 8 Stunden am Tag programmieren. Ist eben Erfahrungssache.

alv Avatar
alv:#8311

Lies SICP!
Wenn du durch bist, lies es nochmal!

eduardostuart Avatar
eduardostuart:#8312

>ein bekannter Entwickler sagte das wäre schon alles, was man als guter Informatiker in Java braucht.

Es heißt ProgrammierSPRACHE. Du kannst keine Sprache nur mit Theorie aus einem Buch meistern.
Du musst praktische Erfahrung sammeln um dich verständlich auszudrücken.
Je mehr Erfahrung, desto eloquenter/präziser deine Ausdrucksweise, ansonsten nur Gestammel.
Für Touristen ist das ausreichend, wenn man sie so grade versteht, für Schriftsteller nicht.

matt3224 Avatar
matt3224:#8313

>>8311
so schon mal auf gar keinen Fall.

heikopaiko Avatar
heikopaiko:#8314

>>8309

Der erste Schritt besteht darin, die Sprache zu kennen. Anschließend sammelt man Praxiserfahrung und beschäftigt sich mit Best Practises (Design Patterns, S.O.L.I.D. usw.).

chaabane_wail Avatar
chaabane_wail:#8315

>>8313
Warum?

joynalrab Avatar
joynalrab:#8316

>Trotzdem hat er nicht den Eindruck er könnte mit seinem Wissen irgendwas Produktives anfangen, obwohl mir ein bekannter Entwickler sagte das wäre schon alles, was man als guter Informatiker in Java braucht.
Du hast in diesem Java-Kurs sicher alle Kontrollstrukturen und viele API-Datenstrukturen kennengelernt, aber Java ist wie jede Programmiersprache nur ein Werkzeug. Nur weil du einen Hammer und Hobel bedienen kannst, wird da noch kein Haus draus. Wahrscheinlich beginnst du gerade erst dein Studium, da kommt noch vieles.

vocino Avatar
vocino:#8317

>>8309
Java lernen ist 1% Sprache lernen und 99% Standardbibliothek lernen.
Du hast noch einen weiten Weg vor dir.

terpimost Avatar
terpimost:#8319

>>8317
Meiner Meinung kommt dann danach noch dazu, dass man je nach Anwendungsgebiet, Frameworks und deren Architektur sowie das Zusammenspiel dieser Frameworks untereinander lernen muss. Wenn man das dann kann, dann kann man mal anfangen seine eigenen Frameworks zu bauen (sie sollten dabei natürlich einen Sinn haben).

orkuncaylar Avatar
orkuncaylar:#8320

>>8311
Ist das Buch wirklich so toll und aller Weisheit Krönung? Oder ist das nur ein Mem? Habe mal reingelesen vor einiger Zeit und fand es auch ganz interessant (bzw. LISP), aber ist es wirklich DAS weltbewegende Basiswerk? Werde ich ein besserer Mensch, wenn ich es gelesen habe?

edobene Avatar
edobene:#8321

>>8320
SICP ist halt toll, weil man keine Zeit mit programmiersprachenspezifischen Idiomen verschwendet, sondern das Programmieren auf einem Niveau lernt, dass sich über der Programmiersprachenebene befindet. Durch Lisp wird eine Sprache verwendet, die so simpel ist, dass man sich ganz auf Themen wie Abstraktion, Funktionen höherer Ordnung, Homoikonizität, Metaprogrammierung, usw. konzentrieren kann.

smenov Avatar
smenov:#8322

>>8321
Verdammt, wieso kostet ein "freies" Buch so viel Geld? Ich weiß, dass es im Internet frei anzuklicken ist. Trotzdem hätte ich es gerne als Buch.

snowwrite Avatar
snowwrite:#8323

>>8321
>Lauter hochtheoretische Bullenscheiße
Ja, das hilft einem sicher sehr, praxisnah programmieren zu lernen.

adhiardana Avatar
adhiardana:#8325

>>8323
Vom lesen alleine wird man kein guter Programmierer. Vom programmieren alleine auch nicht.

iamkarna Avatar
iamkarna:#8326

>>8313
>>8323
Bernd glaubt diese Art der Betrachtung des Programmierens hat überhaupt zur Softwarekrise geführt.

bruno_mart Avatar
bruno_mart:#8327

>OP

Schreib ein Spiel. Fang mit "rate die nummer" an, dann Pong, dann immer weiter. Lernst viel bei und hast auch noch Spass bei.

intertarik Avatar
intertarik:#8337

>>8326
Nein, da dieses Sicko einem nicht bei großen Kothaufen weiterhilft.

donjain Avatar
donjain:#8351

Bernd beginnt im August seine Informatikgrundausbildung als Applikationsentwickler. Geht zwei Jahre zwecks Umschulung. Aber Bernd weiss nicht wo anfangen. Irgendein Tipp? Soll ich einfach mal mit Java anfangen? Oder zuerst OpenSuse studieren? Ich schaffe nicht einmal den Grubloader umzuschreiben, damit mein Autismus nicht dermassen steilgeht, wenn da Windows Recovery steht anstatt Windows 10.

thehacker Avatar
thehacker:#8352

>>8351
Warte doch einfach die Ausbildung ab.
Dort wirst du alles Grundlegende vermittelt bekommen und erhältst kleine Aufgaben, um das Gelernte praktisch anwenden zu können.

samihah Avatar
samihah:#8353

>>8351
Falls schulische Ausbildung: Wenn du jetzt beginnst, $Sprache zu lernen, wirst du bis August weit mehr können als in der Schule in zwei Jahren jemals vermittelt wird.
Wenn du jetzt schon lernen willst, lerne das, was dich interessiert und werde gut darin. Was dich nicht interessiert, wird dir dann in der Schule noch langsam genug vorgekaut.

snowwrite Avatar
snowwrite:#8396

>>8311
Verdammt, dass Buch ist geil man.
Bin jetzt mit Kapitel 3 durch und es ging steil nach oben.
Einziger Nachtteil: Lisp.
Gibt vielleicht eine C++ Übersetzung?

turkutuuli Avatar
turkutuuli:#8397

>>8396
Kann Bernd E-Buch liefern?

dmackerman Avatar
dmackerman:#8398

>>8397
https://www.google.de/search?q=sicp+filetype%3Apdf

puzik Avatar
puzik:#8400

>>8351
>Informatikgrundausbildung als Applikationsentwickler.
>Informatik
>Entwickler

Heißt das jetzt wirklich so? Oder bist du Österreicher? Wenn Berufsausbildung: IT-Fachausbildung für Anwendungsentwicklung würde ich das eher nennen.

Bernd Avatar
Bernd:#8401

>>8396
>Einziger Nachtteil: Lisp.
>Gibt vielleicht eine C++ Übersetzung?

Ist das Buch überhaupt in dem Sinn zu übersetzen? Selbst bei der Übersetzung nach Clojure (einem weiteren LISP-Dialekt; mehr oder weniger) hat man sich stark beschwert.

heikopaiko Avatar
heikopaiko:#8402

>Bernd hat einen Java-Kurs belegt und immer fleißig gelernt. In 3 Wochen ist die Klausur und er fühlt sich eigentlich relativ gut vorbereitet.

Erst schreibst du etwas Code. Und dann schreibst du etwas Code. Und dann, dann schreibst du wieder etwas Code. Mach das rund vier Stunden am Tag für die nächsten ein oder zwei Jahre. Je nachdem was dich interessiert und wie du am meisten Spaß hast, kannst du auch Fremdquellcode lesen und an anderen Projekten kleine Fehlerbehebungen beisteuern.

Wenn du dann nach den zwei Jahren weißt wie man halbwegs programmiert, lern Dinge wie Entwurfsmuster und SOLID-Prinzipien und erkenn wie schlecht dein Quellcode vorher war. Mach es ruhig erst falsch und schlecht und unideomatisch, es dauert Jahre bis du ein halbwegs gutes Niveau erreichst.

Letzten Endes ist es wesentlich produktiver erstmal etwas zu schreiben und dann aus Büchern zu lernen wie es besser geht. Damit schließe ich natürlich die Bücher aus, die dir überhaupt erst die Sprache beibringen.

SICP ist in diesem Fall sehr gut, weil es dir auch einen guten Mindset vermittelt.

bassamology Avatar
bassamology:#8403

>>8400
Wohne in der Schweiz und habe mir noch nie Gedanken darüber gemacht.

csswizardry Avatar
csswizardry:#8405

>>8403
>http://www.ict-berufsbildung.ch/berufsbildung/informatikerin-efz-applikationsentwicklung/

Tatsache.

>Du durchleuchtest Probleme und erstellst Lösungsvorschläge mittels Informatikwerkzeugen.

Das wird dann wohl so ein Zwischending sein, zwischen IT und Informatik.

Hier in Deutschland schimpft man jeden Computerunterricht schon Informatik (früher hieß es noch EDV) und es gibt teilweise Ausbildungen zum Fachinformatiker, die mit reiner Informatik wenig zu tun haben.

leelkennedy Avatar
leelkennedy:#8406

Nochmal >>8405

>Wer sind denn diese Informatiker?
>Eine Annäherung aus Schweizer Sicht

Habe mir mal einen neunseitigen Beitrag dazu rausgesucht. Werde den heute Abend interessehalber mal durchgucken.

yesmeck Avatar
yesmeck:#8407

Die englische Bezeichnung ist übrigens so wie man sichs vorstellt:

>Englisch
>IT-Specialist
>Diploma in Information Technology

Säge, da schon genug gespamt.

vaughanmoffitt Avatar
vaughanmoffitt:#8408

>>8405
Ja genau, das ist die Ausbildung die ich machen werde, jedoch verkürzt auf zwei Jahre (Berufsumsteiger), da Bernd bereits eine Lehre abgeschlossen hat.

Auf der ICT Homepage siehst du ein Bild von der Frau Hämmerli. Wäre die Fotze nicht so arrogant gewesen, ich hätte nicht noch eine bessere Schule gefunden. Kostet zwar 800.- Fränkli mehr, aber sie hat mich weitaus mehr überzeugt.

http://wiss.ch

olgary Avatar
olgary:#8409

>SICP
Lel. Dieses Buch vorzuschlagen ist wirklich symptomatisch für den Geist der heutigen Zeit.
>Es klingt zwra ein bisschen crazy, aber lies ma dieses Buch, das is uralt (aber hat deswegen halt auch voll so'n klassischen Charakter, gehört echt in JEDES Regal, egal ob großes Unternehmen oder wie bei uns aufstrebendes Startup im Herzen Berlins) und ein echter Geheimtipp!! Und du musst es auf jeden Fall mindesntes 10x lesen, sonst checkst es net :D xD

Euch Spasten sollte man wirklich den ganzen Tag lang nur prügeln.

Bernd Avatar
Bernd:#8410

>>8409
t. SICP nicht verstanden

motionthinks Avatar
motionthinks:#8411

>>8410
t. nie praxisrelevant programmiert

linux29 Avatar
linux29:#8412

>>8411
t. alles was ueber JS, HTML und PHP hinausgeht ist praxisfernes Kreiswichsen

albertodebo Avatar
albertodebo:#8413

>>8411
jenes

syntetyc Avatar
syntetyc:#8414

>>8309
>obwohl mir ein bekannter Entwickler sagte das wäre schon alles, was man als guter Informatiker in Java braucht.

Das war gelogen.

jacobbennett Avatar
jacobbennett:#8415

>>8412
t. funktionales Programmieren ist die Zukunft

adhiardana Avatar
adhiardana:#8416

>>8409
>SICP ist ja sooohoo hüpf … Nein.
Bin ein Programmieranfänger, der auch praxisnah angefangen hat. Also probieren und nachschlagen den ganzen Weg.
Ich hab schon einige Bücher für Einsteiger von innen gesehen (und ein paar sogar durchgelesen).
Aus der Sicht eines Anfänger kann ich dir sagen: Bewusstsein = geblasen. Ich verschlinge gerade dieses Buch und das ist echt einmalig.

>Constrain networks.
>Non-deterministic computing

Mein Favorit bis jetzt über Gleichzeitigkeit/parallele Prozesse:
>The basic phenomenon here is that synchronizing different processes, establishing shared state, or
imposing an order on events requires communication among the processes. In essence, any notion of
time in concurrency control must be intimately tied to communication. It is intriguing that a similar
connection between time and communication also arises in the Theory of Relativity, where the speed
of light (the fastest signal that can be used to synchronize events) is a fundamental constant relating
time and space. The complexities we encounter in dealing with time and state in our computational
models may in fact mirror a fundamental complexity of the physical universe. [pdf:269]

Oder später über Streams:
>The object model approximates the world by dividing it into separate pieces. The functional model
does not modularize along object boundaries. The object model is useful when the unshared state of
the ‘‘objects’’ is much larger than the state that they share. An example of a place where the object
viewpoint fails is quantum mechanics, where thinking of things as individual particles leads to
paradoxes and confusions. Unifying the object view with the functional view may have little to do
with programming, but rather with fundamental epistemological issues. [pdf:304]

Tu der Welt einen gefallen und behalt deine Meinung für dich solange du keine anderen Vorschläge machen kannst. Du hast das doch sicher nicht sooo nötig.

Chakintosh Avatar
Chakintosh:#8417

>>8416
>Abstreiten, dass SICP überflüssige Hüfsterscheiße ist
>Fürs Programmieren vollkommen nutzlose und überhaupt inhaltsleere Ausführungen daraus zitieren
q.e.d.

melvindidit Avatar
melvindidit:#8418

>>8417
>Fürs Programmieren vollkommen nutzlose und überhaupt inhaltsleere Ausführungen daraus zitieren

Wenn man mal die komischen Vergleiche mit Quantenmachanik und Relativitätstheorie ignoriert, dann findet man schon in den ersten Sätzen der beiden Absätze wichtige Punkte. Die Sätze:

>The basic phenomenon here is that synchronizing different processes, establishing shared state, or imposing an order on events requires communication among the processes.

>The object model approximates the world by dividing it into separate pieces. The functional model
does not modularize along object boundaries.

Hier wird doch schon ein Punkt angegesprochen, der einen der größten Kritikpunkte der OOP darstellt: Shared state.

eloisem Avatar
eloisem:#8419

>>8417
Scheiße, du hast Recht, dass ist total praxisfern.
Verdammt, wo könnte ich nur praxisnahes Zeug her kriegen?

chris_frees Avatar
chris_frees:#8420

>>8418
Oh wow, irgendwie in Bezug zueinander stehende Prozesse sollten miteinander kommunizieren können und in der objektorientierten Programmierung existiert eine Trennung zwischen Objekten. Das hätte ich ohne SICP nie begriffen.
Und wie du schon richtig sagst: Shared State wird angesprochen, also einfach nur erwähnt, aber nicht in irgendeiner Form ausgeführt bzw. problematisiert. SICP ist und bleibt die Bibel der Kreiswichser, die Probleme nicht praktisch lösen, sondern alles so weit wie möglich theoretisieren.

jehnglynn Avatar
jehnglynn:#8422

>>8420
>sondern alles so weit wie möglich theoretisieren
Blasphemie. So haben wir zu meiner Zeit nicht gelernt.

id835559 Avatar
id835559:#8423

>>8420
>Shared State wird angesprochen, also einfach nur erwähnt, aber nicht in irgendeiner Form ausgeführt bzw. problematisiert.

Weil es ja auch kein Problem ist. Wenn wir LISP, Scheme oder Clojure haben, dann haben wir sowieso immutable Datenstrukturen und pure Funktionen. Jedenfalls in den meisten Fällen.

Bei OOP muss man den Shared State befürchten.

macxim Avatar
macxim:#8424

Habe mal kurz in SICP reingeschaut [1]. Da sind ja einige wichtige Konzepte drin, die Otto-Normal-Programmierer nicht kennt und vielleicht auch nicht versteht.

[1] http://sarabander.github.io/sicp/html/index.xhtml

joeymurdah Avatar
joeymurdah:#8425

>>8424
Und wahrscheinlich auch niemals braucht.

jrxmember Avatar
jrxmember:#8426

>>8425
Webentwickler detektiert.

Bernd wäre ohne diskrete Mathematik schon längst aufgeschmissen gewesen. Auch musste Bernd schon Parserkombinatoren bauen und durch Baumstrukturen traversieren. Mal ist untertrieben, sobald man mal etwas in der Richtung gelernt hat, benutzt man es permanent. Das geht dann leider über das übliche API-Auswendiglernen und Bei-Stackoverflow-Nachschlagen hinaus.

bighanddesign Avatar
bighanddesign:#8429

>>8426
>Parserkombinatoren bauen und durch Baumstrukturen traversieren
>fortgeschrittenes Niveau oder diskrete Mathematik
Wähle er eines.

vladyn Avatar
vladyn:#8430

Bernd hat das Modul abgeschlossen und kann jetzt offiziell Java. In SICP reingeschnuppert, aber das ist mir einfach zu abstrakt. Werde mir das anschauen, wenn ich irgendwie das Gefühl habe, dass ich weiß was ich eigentlich mache.
Ich habe jetzt angefangen irgendwie darauf los irgendwas zu programmieren und neue Konzepte kennenzulernen, die wir in dem Kurs nicht hatten und mich interessieren, aber irgendwie wurde es dann immer zu viel. Irgendwie schwer einzuschätzen welche Aufgaben im Bereich des machbaren liegen und welche zu hoch angesetzt sind.

leonfedotov Avatar
leonfedotov:#8611

OP braucht noch einmal deine Hilfe, Bernd.
Ich habe auf dich gehört und mir eine Arbeitsgruppe ausgesucht, wo ich Arbeitserfahrung sammeln kann. Wird nicht bezahlt, aber eventuell später.

Bernd hat eine Aufgabe bekomben, um sich zu beweisen und sein Code funktioniert nicht.
Bernd soll Finanzdaten von Yahoo Finanz mit der Yahoo Finanz API holen und diese dann in eine SQL-Tabelle inserieren.
Dann soll er diese Werte wieder von SQL nehmen und auf seine Konsole aufrufen.

Bernd kann nach über 9000 Stunden und beseitigte Käfer die Daten von Yahoo holen und den Typ so ändern, dass man sie überhaupt in SQL reinmachen kann, aber die Datensätze sind bis auf die ersten Einträge überall 0 und die ersten Einträge sind sowieso falsch.

Ich verstehe das nicht, Bernd;_;
Was zur Hölle läuft da falsch, Bernd?

carlyson Avatar
carlyson:#8612

>>8611
Vielleicht liegt es daran, dass du in der Zeile wo alles funktioniert was ganz anderes machst als eine Zeile später?

mylesb Avatar
mylesb:#8613

>>8611
Nicht sicher ob Troll

Protip: Es hat einen Grund warum der Editor da unterschiedliche Farben für die gleichen Wörter benutzt.

doooon Avatar
doooon:#8614

>>8611
So lerne er, was ein "Prepared Statement" ist. Komplizierter Name für ein sehr einfaches Konzept:
https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
Du bist auf jeden Fall so gut wie am Ziel bei dieser Aufgabe.

emilioiantorno Avatar
emilioiantorno:#8615

>>8612
>>8613
Danke, Bernd.
Ich wusste auf dich ist Verlass.
Dein Tipp mit den unterschiedlichen Farben war hervorragend.
Ich hab dich lieb, Berndi.

souuf Avatar
souuf:#8616

>>8614
Leider zu spät gelesen, aber es ist schön, wenn man gesagt bekombt, dass mam fast am Ziel ist.
Diese Ungewissheit beim programmieren macht einem manchmal so richtig fertig.

joe_black Avatar
joe_black:#8617

>>8616
Nein, du hast nicht zu spät gelesen. Du brauchst immer noch Prepared Statements. Überleg doch mal, was passiert, wenn eine Firma als Kürzel MCDNLD'S hat.

snowshade Avatar
snowshade:#8647

>>8611
Da läuft gar nichts falsch, das macht genau, was du ihm anweist, zu machen. Aber ich glaube, dass du plantest, ihm auch nicht-konstante Werte zu überreichen.

franciscoamk Avatar
franciscoamk:#8755

>>8615
Bei der Gelegenheit wäre es auch noch gut Bernd würde sich Prepared Statements anschauen. Man sollte niemals Strings zusammenfügen um SQL zu querien, auch nicht wenn kein Userinput kommt.

jffgrdnr Avatar
jffgrdnr:#8756

>>8617
>>8617
1. Solche Börsenkürzel gibt es nicht
2. Du bist ein Depp, was hat das mit prepared statements zu tun?

drinbevor: "mimimi so muss ich nicht richtig escapen"

sindresorhus Avatar
sindresorhus:#8757

>>8756
Säge vergessen

necodymiconer Avatar
necodymiconer:#8759

>>8756
>>8757
Ich wollte jetzt schon anfangen inhaltlich mit dir zu diskutieren, aber für diese Pfosten kriegst du nur ein Bildermakro.