myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Ungelesen 30.12.21, 22:35   #1
bygy
Anfänger
 
Registriert seit: Dec 2021
Beiträge: 1
Bedankt: 0
bygy ist noch neu hier! | 3 Respekt Punkte
Standard Fragen an erfahrene C Programmierer

Hi ,

wollte mal die erfahrenen C Programmierer paar fragen stellen .
Was hat euch dabei geholfen das Programmierverständnis / das Algorithmische Denken am Anfang zu erlernen ?
Wie seit Ihr neue Projekte am Anfang angegangen , ich finde es relativ noch schwierig reale Probleme / Objekte in Code umzusetzen
Würde mich freuen mal Erfahrungen von andere Programmierer zu hören .

Vielen vielen Dank
BG
bygy ist offline   Mit Zitat antworten
Ungelesen 08.04.23, 19:12   #2
pkroll
Erfahrener Newbie
 
Registriert seit: May 2009
Beiträge: 106
Bedankt: 57
pkroll leckt gerne myGully Deckel in der Kanalisation! | 1024507 Respekt Punktepkroll leckt gerne myGully Deckel in der Kanalisation! | 1024507 Respekt Punktepkroll leckt gerne myGully Deckel in der Kanalisation! | 1024507 Respekt Punktepkroll leckt gerne myGully Deckel in der Kanalisation! | 1024507 Respekt Punktepkroll leckt gerne myGully Deckel in der Kanalisation! | 1024507 Respekt Punktepkroll leckt gerne myGully Deckel in der Kanalisation! | 1024507 Respekt Punktepkroll leckt gerne myGully Deckel in der Kanalisation! | 1024507 Respekt Punktepkroll leckt gerne myGully Deckel in der Kanalisation! | 1024507 Respekt Punktepkroll leckt gerne myGully Deckel in der Kanalisation! | 1024507 Respekt Punktepkroll leckt gerne myGully Deckel in der Kanalisation! | 1024507 Respekt Punktepkroll leckt gerne myGully Deckel in der Kanalisation! | 1024507 Respekt Punkte
Standard

Es gibt bestimmt, C Coder mit weitaus mehr Erfahrung als meiner einer, aber beim Überfliegen dieser "Programmierung" Kategorie, machen meine Nackenhaare einen Lamb(a)datanz.

Ohne jetzt auf Begriffe wie Abstraktionsvermögen, Induktion, Deduktion, ... einzugehen.

PROGRAMMIEREN LERNT MAN DURCH PRAKTISCHES PROGRAMMIEREN.
Hört sich nicht befriedigend an, ist aber der Schlüssel zum Erfolg.

Gruß, ein (verstaubter) Coder
pkroll ist offline   Mit Zitat antworten
Ungelesen 16.04.23, 14:15   #3
Dolleknolle87
Anfänger
 
Registriert seit: Mar 2011
Beiträge: 6
Bedankt: 3
Dolleknolle87 ist noch neu hier! | 0 Respekt Punkte
Standard

@burgy
kann auch nur empfehlen so viel wie möglich zu programmieren.
Ist ein wenig ähnlich wie wenn man Spanisch lernen will, Grammatik und Vokabular muss man so viel wie möglich nutzen also sprechen und Übungen machen.

C ist dabei etwas besonders, weil esso ne Art Einstiegshürde hat,
Einerseits ist die Sprache sehr low Level, das heißt es ist nah an der maschiene und nicht direkt der super Problemlöser.
Andererseits gibt es viel Oldschool Tooling. Zum beispiel gibt es keine superschick Projektdateien und einbindnug von Libraries wirkt anfangs ziemlich umständlich.
Außerdem gibt es eine große Varianz an Herangehensweisen, ob nun Arduino, Windowsprogramierung, hardcore Embedded oder Linux Systemprogrammierung.

Ich kann empfehlen unter Linux anzufangen, CMake als Projekt nud Buildsystem zu benutzen, und nen Buch über Algorithmen durch zu exerzieren.

Hier noch ein paar Links
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

coole Miniaufgaben:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
<-- das ist nen sehr pupolare Coding Challange und man findet viele Lösungen im Netz

Happy Coding!
Dolleknolle87 ist offline   Mit Zitat antworten
Folgendes Mitglied bedankte sich bei Dolleknolle87:
pz38t (08.05.23)
Ungelesen 24.04.23, 09:20   #4
d33r
Anfänger
 
Registriert seit: Nov 2019
Beiträge: 4
Bedankt: 0
d33r ist noch neu hier! | 3 Respekt Punkte
Standard

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] ist ne sehr gute Anlaufadresse für kleinere Algorithmikaufgaben.
d33r ist offline   Mit Zitat antworten
Ungelesen 30.04.23, 02:06   #5
Library
Anfänger
 
Registriert seit: Dec 2010
Beiträge: 10
Bedankt: 28
Library ist noch neu hier! | 0 Respekt Punkte
Standard

Das bisher gesagt passt schon. Wobei ich so früh wie möglich nicht nur kleine Programmieraufgaben und -rätsel sondern auch Programme mit praktischem Wert schreiben würde. Außerdem solltest du nicht unterschätzen, wie viel du lernen kannst, guten Code zu lesen. Schau dir z.B. Software aus dem OpenBSD Projekt an.
Wenn du ein Open Source Projekt findest, was dich interessiert, kannst du beides miteinander verbinden, indem du dich dort beteiligst. Im besten Fall bekommst du da von anderen auch Feedback.
Library ist offline   Mit Zitat antworten
Ungelesen 22.05.23, 03:33   #6
Master_3
Anfänger
 
Registriert seit: May 2012
Beiträge: 29
Bedankt: 109
Master_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt Punkte
Standard

Also ich steige hier mal als Laie ein auch wenn nach erfahrenen Programmierern gefragt wurde:

Meiner Meinung nach ist das wichtigste beim Programmieren lernen sich nicht einfach Codeschnipsel zu ergoogeln und dann die Füße hochzulegen - das funktioniert halt nur für die kleinsten mini Tools u.ä...
Wichtig ist, in diesem Anfangsstadium den Code wirklich noch selber aufzuarbeiten und zu verstehen, was dieser Code bewirkt - dann ergeben sich drauß auch automatisch Abwandelungen die neue Wege eröffnen.

Dann wirst du deinen Code schreiben und wenn du damit fertig bist, wirst du für deine 100 Zeilen Code einen 5 Zeilen Code Block im Netz finden und graue Haare bekommen, aber bedenke, dass du 100 Zeilen Code dadurch geübt hast und mehr:
Übersicht über den Code behalten, klassische Fehler machen+finden+ausmerzen, ein Glücksgefühl haben wenn deine 100 Zeilen Code trotzdem funktioniert haben.

Ich gebe dir ein Beispiel das ich erst vor ein paar Tagen selber hatte, es ging darum die MAC -Adresse des ausführenden PC´s auszulesen und zusätzlich in eine Textdatei an eine bestimmte Stelle einzufügen - letzteres war das geringste Problem, aber an die MAC zu kommen und diese nach meinen Bedürfnissen zur Hand zu haben sah dann so aus:

Ausgangscode
Code:
Dim Mac As NetworkInterface
                        For Each Mac In NetworkInterface.GetAllNetworkInterfaces()
                            With Mac
                                If .NetworkInterfaceType <> NetworkInterfaceType.Loopback AndAlso
                            .NetworkInterfaceType <> NetworkInterfaceType.Tunnel Then
                                   Listbox1.items.add(.Name.ToString & .getphysicaladress.ToString)
Der Code geht, er zeigt jedoch alle Macs aller aktiven Netzwerkmodule an - also auch neben Lan die anderen üblichen Verdächtigen VPN, Wlan, usw. und ich brauchte nur die LAN Verbindung.

Also musste ich genauer differenzieren um nur die LAN MAC ausgegeben zu bekommen um sie dann in die Textdatei einzufügen.

Code:
Dim Mac As NetworkInterface
                        For Each Mac In NetworkInterface.GetAllNetworkInterfaces()
                            With Mac
                                If .NetworkInterfaceType <> NetworkInterfaceType.Loopback AndAlso
                            .NetworkInterfaceType <> NetworkInterfaceType.Tunnel Then
                                    If .Name = "LAN" Then
                                        Dim LAN = .GetPhysicalAddress.ToString
                                        Dim txt = IO.File.ReadAllText("C:\XXXXXX\XXXXX.txt")
                                        txt = txt.Replace("this_MAC", LAN)
                                        IO.File.WriteAllText("C:\XXXXXX\XXXXX.txt", txt)
                                    End If
                                End If
                            End With
                        Next
Die Mac Adresse durfte in der fertigen Textdatei nur Zahlen + Kleinbuchstaben enthalten, ergo "ToLower" hinzugefügt

Code:
Dim Mac As NetworkInterface
                        For Each Mac In NetworkInterface.GetAllNetworkInterfaces()
                            With Mac
                                If .NetworkInterfaceType <> NetworkInterfaceType.Loopback AndAlso
                            .NetworkInterfaceType <> NetworkInterfaceType.Tunnel Then
                                    If .Name = "LAN" Then
                                        Dim LAN = .GetPhysicalAddress.ToString.ToLower
                                        Dim txt = IO.File.ReadAllText("C:\XXXXXX\XXXXX.txt")
                                        txt = txt.Replace("this_MAC", LAN)
                                        IO.File.WriteAllText("C:\XXXXXX\XXXXX.txt", txt)
                                    End If
                                End If
                            End With
                        Next
Der Code tat was ich wollte - jetzt hätte man hier aufhören können, aber ich finde da liegt dann der Reiz, "kann ich das zuverlässig kürzen?"

Und dann fiel mir auf, dass die "DIM LAN" überflüssig war und ich den ".GetPhysicalAddress.ToString.ToLower" direkt in die "txt.replace" Funktion einbauen konnte, da ich ja bereits oben mit dem "If .Name = "LAN" " bereits eingegrenzt hatte:

Code:
Dim Mac As NetworkInterface
                        For Each Mac In NetworkInterface.GetAllNetworkInterfaces()
                            With Mac
                                If .NetworkInterfaceType <> NetworkInterfaceType.Loopback AndAlso
                            .NetworkInterfaceType <> NetworkInterfaceType.Tunnel Then
                                    If .Name = "LAN" Then
                                        Dim LAN = .GetPhysicalAddress.ToString.ToLower
                                        Dim txt = IO.File.ReadAllText("C:\XXXXXX\XXXXX.txt")
                                        txt = txt.Replace("this_MAC", .GetPhysicalAddress.ToString.ToLower)
                                        IO.File.WriteAllText("C:\XXXXXX\XXXXX.txt", txt)
                                    End If
                                End If
                            End With
                        Next
Und es wird garantiert dafür elegantere Lösungen geben, die ich entweder nicht kenne oder sie schlicht übersehen habe, aber so ist es nunmal - man entwickelt sich dadurch weiter.

Geändert von Master_3 (22.05.23 um 03:58 Uhr)
Master_3 ist offline   Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


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


Sitemap

().