Προς το περιεχόμενο

C or Python?


KillBill93

Προτεινόμενες αναρτήσεις

Δεν νομίζω πως πρέπει να τρομοκρατείται έτσι ο κόσμος για τη C... η γλώσσα τα σπάει και σε έμπειρα χέρια κάνει τα πάντα και τα κάνει ταχύτερα από οποιαδήποτε άλλη γλώσσα.

 

Το να λέμε πως η Python στις περισσότερες περιπτώσεις είναι ταχύτερη από τη C (με ή χωρίς cache) είναι μεγάλη υπερβολή!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 108
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Μόνο python. Αν σε πιέσει κάποιος ή τρέχει πολύ συγκεκριμένος λόγος, τότε και μόνο τότε C (το λέω μετά από 10+ χρόνια προγραμματισμού σε C και C++ (generics) και σε embedded περιβάλλον).

 

Η python έχει απίθανες βιβλιοθήκες που απλά δουλεύουν. Την C θα σου βγει η πίστη για να κάνεις απλά compile :D.

 

Η python στις περισσότερες περιπτώσεις θα είναι πολύ πιό γρήγορη από την C που θα γράψεις ως πρωτάρης! :D :D Γιατί;;; Πολύ απλά - γιατί αν κάνεις κάτι non-trivial η python θα έχει εσωτερικές caches που θα κάνουν τα πάντα πιό γρήγορα, αλλά και αν δεν έχει, μπορείς πολύ εύκολα να δημιουργήσεις caches με τα λεγόμενα dictionaries. Τώρα στην C για να κάνεις το ίδιο θα πρέπει να χρησιμοποιήσεις malloc/realloc ή να χρησιμοποιήσεις C++ και boost (και πολύ καλά θα κάνεις). =το πιθανότερο είναι να μη χρησιμοποιήσεις ΤΙΠΟΤΑ = ο κώδικάς σου θα είναι πιό αργός.

 

Επίσης στην C ο κώδικάς σου θα είναι ΛΑΘΟΣ αν δεν προγραμματίζεις τουλάχιστον 4 χρόνια και αν προγραμματίζεις 4+ χρόνια και πάλι ο κώδικάς σου θα είναι λάθος στο 80% των περιπτώσεων, απλά τότε θα το ξέρεις, και θα ξέρεις ότι γενικά δεν πειράζει.

 

Στην python, ο κώδικάς σου θα είναι σωστός. Πολύ σωστός. Ακόμα κι αν είναι λίγο λάθος, θα είναι λίγο λάθος, και δεν θα γίνει κάτι πολύ κακό π.χ. ένα segmentation fault με ένα core dump στο κεντρικό site της π.χ.. whatever bank που θα δημοσιεύει και 6-10 χιλιάδες αριθμούς πιστωτικής κάρτας ως debug info.

 

Δυστυχώς φίλε... μόνο python, εκτος κι αν συντρέχει ειδικός λόγος.

 

Αν είναι mobile, τότε μάλλον θα πας Java και μόνο αν κάνεις linux drivers θα κάνεις C. Συνήθως όλα τα embedded τρέχουν linux ή/και Java.

Δεν ειναι δυσκολη η c. Το κακο που εχει ειναι ο τροπος που την μαθαινουν ( cstdlib = C) και οτι ειναι τραγικα απλη (εκτος τους δεικτες) δηλαδη για να φτιαξεις κατι το απλουστατο θα πρεπει να μαθεις ενα freamword/api/toolkit που ουσιαστικα αυτο τη κανει δυσκολη (πχ stdio, winGUI, winConsole,sokets κλπ). Σε αντιθεση με συγχρονες γλωσσες που εχουν τεραστια freamwork που περιεχουν σχεδον τα παντα, και κυριος εχουν code generators πχ UI, connections, ADO κλπ που με ενα απλο DnD παραγουν 500lines of code

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δηλαδή εγώ που είμαι καινούριος στη c (και στον προγραμματισμο), να πιάσω την python και να επιστρέψω στη c,όταν θέλω <<βαρύτερα>> πράγματα;

Και με κίνδυνο να κάνω τη συζήτηση ακόμα πιό κόλαση :D για πρώτη γλώσσα python έτσι; :P όχι κάποια άλλη;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Την Python στην εκδοχή της για τα κινητά τηλέφωνα που τρέχουν SYMBIAN S60 (PyS60) την χρησιμοποίησα ως λύση ανάγκης όταν χρειάσθηκε να γράψω κάποια μεγάλα & πολύπλοκα προγράμματα για αυτή την πλατφόρμα καθώς η ανάλογη προσπάθεια σε SYMBIAN C++ ήταν απαράδεκτα (σε βαθμό γελοιότητας) χρονοβόρα ενώ σε J2ME απλά δεν μπορούσαν να γραφτούν λόγο περιορισμών του JVM.

Ερχόμενος λοιπόν από C & C++ θυμάμαι ότι μου έκαναν εντύπωση τα Tuplet (με ταλαιπώρησαν στην αρχή) και ο τρόπος που διαχειρίζεται το for (βλ. "in range" - δουλεύει και σε μορφή foreach πάντως) και η στοίχιση των γραμμών που ορίζει το εύρος (scope) του εκτελούμενου κώδικα. Εκτίμησα επίσης το γεγονός ότι μπορείς να γράψεις κώδικα είτε OOP είτε Procedural δίχως πολλά - πολλά. Από εκεί και πέρα, το μεγαλύτερο ατού της Python το οποίο και απλοποίησε την ανάπτυξη των προγραμμάτων ήταν οι πολύ πλούσιες βιβλιοθήκες της με τις οποίες μπόρεσα να εργαστώ στο "πρόβλημα" των εφαρμογών και όχι στις τεχνικές λεπτομέρειες της γλώσσας πράγμα που θα συνέβαινε αν έγραφα σε καθαρή C (και ευτυχώς λιγότερο ως καθόλου αν έγραφα σε C++ ελέω STL).

Όπως έχει λεχθεί και αλλού η γνώση της C ήταν μονόδρομος πριν 20 χρόνια, όταν την έμαθα και εγώ, αλλά σήμερα και ύστερα από την επαφή μου με διάφορες άλλες (ας μου επιτραπεί η έκφραση..) "εκδοχές" της (πχ. Java, C# - αυτές μοιράζονται αρκετά χαρακτηριστικά από την C/C++ στο συντακτικό τους) δεν είμαι τόσο κάθετος στο απαραίτητο της εκμάθησης της, όχι τόσο όσο ήμουν παλαιότερα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

για κάποιον που θέλει να ασχοληθεί επαγγελματικά ποια είναι ίσως η καλύτερη γλώσσα να μάθει για τον 21o αιώνα και όχι για αρχαρίους

 

η python. Ενδείκνυται για αρχάριους αλλά στέκεται επάξια και στη συνέχεια.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δηλαδή εγώ που είμαι καινούριος στη c (και στον προγραμματισμο), να πιάσω την python και να επιστρέψω στη c,όταν θέλω <<βαρύτερα>> πράγματα;

Και με κίνδυνο να κάνω τη συζήτηση ακόμα πιό κόλαση :D για πρώτη γλώσσα python έτσι; :P όχι κάποια άλλη;

Όπως σου έγραψα και στην πρώτη-πρώτη απάντησή μου, παίζει ρόλο για ποιο σκοπό θέλεις να μάθεις προγραμματισμό. Αν είναι περισσότερο για χόμπι, τότε η Python είναι ιδανική. Αν από την άλλη μεριά θες να ασχοληθείς σε βάθος η C θα σε βοηθήσει να μάθεις πως και γιατί δουλεύουν τα πράγματα. Πράγματα όμως που στη Python γίνονται σε 1-2 γραμμές στη C μπορεί να σε πάρουν και 100 και 200, ανάλογα την πολυπλοκότητα του προβλήματος.

 

Η C είναι χαρακτηριστικό παράδειγμα αυτού που λένε "easy to learn, hard to master". Έχει ένα από τα μικρότερα λεξιλόγια (keywords) που υπάρχουν σε οποιαδήποτε γλώσσα, αλλά αυτό σημαίνει ταυτόχρονα πως είναι πολύ λιγότερες οι εναλλακτικές που έχεις να τα συνδυάσεις ιδανικά, για την επίλυση ενός προβλήματος. Όσο πιο πολύπλοκο το πρόγραμμα, τόσο πιο δύσκολο γίνεται.

 

Σημαίνει επίσης, όπως είπε κι ο papi, πως πάρα πολλά από τα πράγματα που στη Python και σε άλλες γλώσσες υπάρχουν έτοιμα ως στάνταρ, στη C είτε πρέπει να τα φτιάξεις μόνος σου είτε να μάθεις και να χρησιμοποιήσεις εξωτερικές βιβλιοθήκες, frameworks, toolkits, κλπ.

 

Το μεγάλο πλεονέκτημα της C είναι πως αν τη γνωρίζεις καλά μπορείς να εκμεταλλευτείς στο έπακρο το hardware σου, τόσο σε επίπεδο επιδόσεων όσο και μνήμης, γιατί σε αφήνει κυριολεκτικά να κάνεις ότι γουστάρεις, ακόμα και να σπας συνειδητά του δικούς της (έτσι κι αλλιώς χαλαρούς) κανόνες. Το μεγάλο της μειονέκτημα είναι η αντι-παραγωγικότητά της, με την έννοια ότι σε παίρνει πολύ περισσότερο χρόνο να πάρεις το επιθυμητό αποτέλεσμα.

 

Ένα πολύ απλό παράδειγμα είναι οι συναρτήσεις διαχείρισης strings. Στη C η στάνταρ βιβλιοθήκη διαχείρισης strings είναι από τις πιο φτωχές που υπάρχουν συγκριτικά με οποιαδήποτε σύγχρονη γλώσσα. Σου δίνει έτοιμες μονάχα τις απολύτως απαραίτητες συναρτήσεις και τις υπόλοιπες ή πρέπει να τις φτιάξεις μόνος σου ή να τις βρεις έτοιμες σε μη-στάνταρ βιβλιοθήκες.

 

Για παράδειγμα λοιπόν, στη C δεν υπάρχει έτοιμος τρόπος ή συνάρτηση να αντιστρέψεις ένα string. Και για να τη φτιάξεις μάλιστα μόνος σου αυτή τη συνάρτηση θα πρέπει πρώτα να έχεις κατανοήσει όχι μόνο τι είναι το string, αλλά και πως είναι αποθηκευμένο μέσα στη μνήμη, και πως σηματοδοτείται το τέλος του και θα σε βοηθήσει μάλιστα ακόμα περισσότερο αν έχεις μάθει και δείκτες, που είναι η πλέον δύσκολη έννοια της C για αρχάριους.

 

Στην Python, αν σου εξηγήσει κάποιος (ή αν διαβάσεις) πως ο τελεστής ::n σε μια οποιαδήποτε λίστα δημιουργεί μια νέα λίστα που αποτελείται από όσα στοιχεία της πρώτης απέχουν μεταξύ τους n θέσεις (βήμα n) και πως με ::-n ξεκινάει το μέτρημα από το τέλος της αρχικής λίστας, τότε το να αντιστρέψεις ένα string γίνεται υπόθεση μιας γραμμής...

 

>
s = 'abc'
s = s[::-1]	# αντιστρέφει το s
print s

Στη C θα χρειαστεί να γράψεις δικά σου συνάρτηση, και μια από τις πιο μικρές σε κώδικα & γρήγορες σε ταχύτητα εκτέλεσης υλοποιήσεις είναι κάτι σαν το παρακάτω:

 

>
#include <stdio.h>
#include <string.h>

char *s_reverse(char *s)
{
if ( !s )
	return NULL;

if ( !*s )
	return s;

char dummy, *cp1 = s, *cp2 =  s + strlen(s) - 1;
for (; cp1 < cp2; cp1++, cp2--)
{
	dummy = *cp1;
	*cp1 = *cp2;
	*cp2 = dummy;
}
return s;
}

int main( void )
{
char s[] = "abc";
s_reverse( s );		// αντιστρέφει το s
puts( s );
return 0;
}

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όπως σου έγραψα και στην πρώτη-πρώτη απάντησή μου, παίζει ρόλο για ποιο σκοπό θέλεις να μάθεις προγραμματισμό.

 

Λοιπόν φίλε migf1,θέλω να μάθω <<σοβαρό>> προγραμματισμό, σε βάθος που λες και εσύ. Το θέμα μου είναι το εξής: θέλω να μάθω προγραμματισμό και όχι την ίδια τη γλώσσα (αρχικά μιλάμε). Να μάθω να γράφω κώδικα, να φτιάχνω σύνθετα προγράμματα, τεχνικές προγραμματισμού κ.λ.π και όταν θα μάθω να προγραμματίζω, να μάθω τη c με τις εντολές τις και τα κόλπα της και τις δυσκολίες της και τις αυξημένες δυνατότητες της. Τώρα για να γράψω ένα μικρό προγραμματάκι, πρέπει π.χ να μάθω και όλες τις ηλίθιες συναρτήσεις της για τις συμβολοσειρές (μου έχουν σπάσει τα νεύρα).Ενώ έχω πιάσει το νόημα, ξέρω ας πούμε πως να γράφω μια for, πως να χρησιμοποιήσω ένα πίνακα, ακόμα και τους δείκτες τους κατάλαβα με τη μια, παιδεύομαι με το αν εδώ θέλει αγκύλη ή παρένθεση. Τώρα παράλληλα με τον προγραμματισμό μαθαίνω και τη γλώσσα και με παιδεύει και με καθυστερεί. Λέω λοιπόν, μήπως να μάθω πως αναπτύσσονται τα προγράμματα πρώτα και μετά τη διαχείριση των πόρων του συστήματος που προσφέρει η c. Αυτό.

Αν τώρα μου πεις, ότι για να μάθω είναι καλύτερα να το πιάσω όλο πακέτο με τη μια, τότε πάσο, θα το δεχτώ.

 

 

Υ.Γ 1 α, και κάτι ακόμα, από ότι καταλαβαίνω η python μου ακούγεται σα νέα pascal, δηλαδή και εκπαιδευτική και εμπορική και γενικού σκοπού. Αν είναι έτσι, μόνο καλό μου φαίνεται να αποκτήσω επαφή μαζί της. Θα την ξαναβρώ μπροστά μου.

Υ.Γ 2 ελπίζω να μου επιτρέπεις το φίλε. Πες με αισθηματία, αλλά επειδή έχεις απαντήσει αρκετές απορίες μου, σε συμπάθησα μωρέ :-)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

παιδιά επειδή δεν ασχολούμε και πολύ με τις γλώσσες προγραμματισμού, νομίζω ότι η Python δεν είναι για Windows εφαρμογές...

 

 

ε; τι; πως; παρντόν;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Λοιπόν φίλε migf1,θέλω να μάθω <<σοβαρό>> προγραμματισμό, σε βάθος που λες και εσύ. Το θέμα μου είναι το εξής: θέλω να μάθω προγραμματισμό και όχι την ίδια τη γλώσσα (αρχικά μιλάμε). Να μάθω να γράφω κώδικα, να φτιάχνω σύνθετα προγράμματα, τεχνικές προγραμματισμού κ.λ.π

 

Αν μπορούσες, τότε καλό θα ήταν να πας σε κάποιο ίδρυμα πληροφορικής, πρώτα κοίτα το πρόγραμμα σπουδών, μετά σκέψου...

Αυτό αν μπορείς οικονομικά...

 

Εγώ προσωπικά δεν θα ακολουθήσω προγραμματισμό γιατί εδώ Ελλάδα δεν αξίζει, το πολύ πολύ να πας σε καμια "Intracom" για 900 Euro,

Δεν αξίζει πραγματικά, γιατί ο προγραμματισμός είναι κάτι που σε "αποβλακώνει", θέλει πολλές ώρες πάνω στο PC.. και σιγά τα λεφτά δηλαδή...

 

Το καλό του? ...

 

Αμα έχεις τα κότσια και μπορέσεις να μάθεις "πραγματικό(οχι σαν χόμπι -> means "i wanna be" )" προγραμματισμό, και πάνω από 3-4 γλώσσες (εννοείτε πως θα ξέρεις την θεωρία-στρατηγικές προγραμματισμού)

 

τότε φίλε βγάζεις λεφτά,

Υπάρχουν διάφορες σελίδες με άτομα που ζητάνε διάφορα πράγματα...

θα βρεις Projects απο 20 εως και 20.000 Euro... και παραπάνω...

μπορείς να πάρεις μικρά Projects, 400-500 Euro... το οποίο το τελειώνεις σε 10 μέρες

Άρα 3 το μήνα χ 400 = 1200 απο το Internet + 1000 Βασικός μισθός απο κάποια εταιρία που θα δουλεύεις = 2200, 2000 Καθαρά ....ΓΓ?

 

Έχεις όμως το κουράγιο να αποβλακώνεσε?

 

 

λοιπόν, με το Γοογλε δεν θα μάθεις προγραμματισμό φιλε, δεν θα μάθεις στρατηγικές...

Είναι αλλιώς όταν στα λέει ένας έμπυρος καθηγητής, και 2ον στο Google είναι τόσο χύμα που θα πας για C και απο ξώφαλτσο θα μάθεις τίποτα άσχετο ξέρω γω , πχ Python...

 

ΥΓ: Παλιά έβρισκες δουλειά και με καλά λεφτά μάλιστα... σε τίποτα "τραπεζικές εφαρμογές" παράδειγμα, όπου εκεί πρέπει να είναι άτομα με πολύ καλές γνώσεις γιατί έχεις να κάνεις με τα χρήματα του άλλου ... να μην υπάρχουν τρύπες...

 

ΥΓ: Εδώ Ελλάδα φίλε το κάθε γίδι μπαίνει καθηγητής στο πανεπιστήμιο , δεν στο εγγυώμαι...

 

Σχετικά με το τόπικ, δεν θέλει ερώτημα, φυσικά C...

πολλές γλώσσες έχουν δημιουργηθεί από την C, προσωπικά δεν μου λέει τίποτα εμένα ... και εσύ αμα θες βγάζεις μία ... μερικοί δεν κοιτάνε τις ρίζες άλλα τα φύλλα :/

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Λοιπόν φίλε migf1,θέλω να μάθω <<σοβαρό>> προγραμματισμό, σε βάθος που λες και εσύ. Το θέμα μου είναι το εξής: θέλω να μάθω προγραμματισμό και όχι την ίδια τη γλώσσα (αρχικά μιλάμε). Να μάθω να γράφω κώδικα, να φτιάχνω σύνθετα προγράμματα, τεχνικές προγραμματισμού κ.λ.π και όταν θα μάθω να προγραμματίζω, να μάθω τη c με τις εντολές τις και τα κόλπα της και τις δυσκολίες της και τις αυξημένες δυνατότητες της. Τώρα για να γράψω ένα μικρό προγραμματάκι, πρέπει π.χ να μάθω και όλες τις ηλίθιες συναρτήσεις της για τις συμβολοσειρές (μου έχουν σπάσει τα νεύρα).Ενώ έχω πιάσει το νόημα, ξέρω ας πούμε πως να γράφω μια for, πως να χρησιμοποιήσω ένα πίνακα, ακόμα και τους δείκτες τους κατάλαβα με τη μια, παιδεύομαι με το αν εδώ θέλει αγκύλη ή παρένθεση. Τώρα παράλληλα με τον προγραμματισμό μαθαίνω και τη γλώσσα και με παιδεύει και με καθυστερεί. Λέω λοιπόν, μήπως να μάθω πως αναπτύσσονται τα προγράμματα πρώτα και μετά τη διαχείριση των πόρων του συστήματος που προσφέρει η c. Αυτό.

Αν τώρα μου πεις, ότι για να μάθω είναι καλύτερα να το πιάσω όλο πακέτο με τη μια, τότε πάσο, θα το δεχτώ.

 

 

Υ.Γ 1 α, και κάτι ακόμα, από ότι καταλαβαίνω η python μου ακούγεται σα νέα pascal, δηλαδή και εκπαιδευτική και εμπορική και γενικού σκοπού. Αν είναι έτσι, μόνο καλό μου φαίνεται να αποκτήσω επαφή μαζί της. Θα την ξαναβρώ μπροστά μου.

Υ.Γ 2 ελπίζω να μου επιτρέπεις το φίλε. Πες με αισθηματία, αλλά επειδή έχεις απαντήσει αρκετές απορίες μου, σε συμπάθησα μωρέ :-)

Καλησπέρα,

 

η δική μου άποψη είναι να επιλέξεις μια γλώσσα και να μάθεις προγραμματισμό μέσα από αυτήν. Και να μείνεις μαζί της για τουλάχιστον έναν χρόνο για να μάθεις να τη χειρίζεσαι όσο καλύτερα μπορείς και σε απλές και σε πολύπλοκες εφαρμογές χωρίς να σε απασχολούν άλλες γλώσσες. Και να γράφεις κώδικα, πολύ κώδικα! Θα σου πρότεινα μάλιστα να δώσεις ιδιαίτερο βάρος στις δομές δεδομένων και κυρίως σε αλγόριθμους που χρησιμοποιούν δομές δεδομένων (υπάρχουν βιβλία που ασχολούνται αποκλειστικά με αυτό).

 

Το αν θα είναι C, Python, Java ή C# αυτή η πρώτη σου γλώσσα είναι μια απόφαση που θα πρέπει να την πάρεις εσύ. Για μένα η C αποτελεί την αλφάβητο οποιουδήποτε σοβαρού προγραμματιστή, γιατί του ανοίγει κυριολεκτικά τα μάτια για τα τι, πως και γιατί. Υπολόγισε όμως να μείνεις για τουλάχιστον μισό χρόνο σε εφαρμογές κονσόλας ώστε να την παίζεις στα δάχτυλα πριν ξεκινήσεις να ασχολείσαι με GUI, frameworks, κλπ. Και το ιδανικό θα ήταν να την διδαχθείς σε ακαδημαϊκό περιβάλλον, ώστε να έχεις στοχευμένη και αποτελεσματική καθοδήγηση.

 

Από την άλλη μεριά η Python είναι εντυπωσιακά σφαιρική και απίστευτα παραγωγική. Δεν σε μυεί στα ενδότερα και δεν είναι η ιδανική επιλογή αν σε ενδιαφέρουν οι επιδόσεις και η διαχείριση πόρων, αλλά δείχνει εντυπωσιακά δυνατή κι εύκολη σε πάρα μα πάρα πολλούς τομείς. Υποστηρίζει μάλιστα και διαδικαστικό και αντικειμενοστραφή προγραμματισμό. Και δεν έχει καμία σχέση με Pascal ( η Pascal πέρασε και δεν ακούμπησε :lol: )

 

Καλές επιλογές για πρώτες γλώσσες είναι και η Java και η C#. Για μένα η μόνη γλώσσα που σου δίνει γερές βάσεις για να μάθεις αργότερα πολύ γρήγορα οποιαδήποτε άλλη είναι η C. Έχει βαρύ τίμημα όμως, τον χρόνο που πρέπει να αφιερώσεις για να την κάνεις πραγματικά κτήμα σου και ότι κτήμα σου την κάνεις κυρίως προγραμματίζοντας σε κονσόλα.

 

παιδιά επειδή δεν ασχολούμε και πολύ με τις γλώσσες προγραμματισμού, νομίζω ότι η Python δεν είναι για Windows εφαρμογές...

http://wiki.python.org/moin/GuiProgramming

 

για κάποιον που θέλει να ασχοληθεί επαγγελματικά ποια είναι ίσως η καλύτερη γλώσσα να μάθει για τον 21o αιώνα και όχι για αρχαρίους

Με τα σημερινά δεδομένα, για αρχή θα έλεγα Java.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Με τα σημερινά δεδομένα, για αρχή θα έλεγα Java

 

εξαρτάτε για τι πας, αν πας για web-developer-programmer τότε java θες ( εννοείτε πως θα ξέρεις html,asp/php,sql )

αν θέλεις WApis τότε ξεκίνα C με τα βασικά, μετά πέρνα και λίγο από C++ να μάθεις για (δομητές,κληρονομικότητα,ενθυλάκωση,αποδομητές, αναφορές [μεγάλο + στην C++]... και άλλα...), να μάθεις το τι-πως ρε παιδί μου, φυσικά θα έχεις συντροφιά ένα βιβλίο...

 

όταν μάθεις την θεωρία τότε ξεκίνα με C#, η πιο εύκολη γλώσσα, φτιάξε εκεί μερικά προγράμματα για να εξασκηθείς... και όπως προείπαμε θα ξέρεις την θεωρία...

τότε φίλε οποιαδήποτε γλώσσα είναι παιχνιδάκι...

 

Αρα καταλήγουμε:

 

Αγόρασε αυτό:

Οδηγός της C++, Schild Herbert, Εκδόσεις Γκιούρδας Μ, Αθήνα 2000

Μετά ρίξε μια ματιά εδώ, αν και αυτά στα λέει το βιβλίο:

http://www.cplusplus.com/

 

Καλή επιτυχία

 

ΥΓ: Για αρχή στην C# παίξε με τα Controls, Drag & Drop στην φόρμα και κοίτα από πίσω τι κρύβεται ...

Να έχεις υπόψιν ότι είναι καλύτερα να αποφεύγεις τους αυτοματισμούς ... γιατί έχεις καλύτερο έλεγχο του κώδικά σου.

 

Το αν θα είναι C, Python, Java ή C# αυτή η πρώτη σου γλώσσα είναι μια απόφαση που θα πρέπει να την πάρεις εσύ. Για μένα η C αποτελεί την αλφάβητο οποιουδήποτε σοβαρού προγραμματιστή, γιατί του ανοίγει κυριολεκτικά τα μάτια για τα τι, πως και γιατί. Υπολόγισε όμως να μείνεις για τουλάχιστον μισό χρόνο σε εφαρμογές κονσόλας ώστε να την παίζεις στα δάχτυλα πριν ξεκινήσεις να ασχολείσαι με GUI, frameworks, κλπ. Και το ιδανικό θα ήταν να την διδαχθείς σε ακαδημαϊκό περιβάλλον, ώστε να έχεις στοχευμένη και αποτελεσματική καθοδήγηση.

 

έλα ρε φίλε, δεν περίμενα να συμφωνήσω με κάποιον εδώ μέσα..

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

migf1

 

Δεν λέω... συμφωνώ στα θετικά που δίνει η ενασχόληση με την C. Ιδιαίτερα όταν αρχίζεις και βρίσκεις προβλήματα γιατί έκανες ένα free ενώ ήταν NULL ο δείκτης ή όταν χρησιμοποιείς mixed pointer notation με array notation.

 

Όμως, δεν θα σε μάθει η C προγραμματισμό. Στην θεωρία και στην κονσόλα, όλα είναι ΟΚ. Σε πραγματικές εφαρμογές είναι που μαθαίνεις και εκεί η γλώσσα που τελικά θα χρησιμοποιήσεις κρίνεται από την εκάστοτε εφαρμογή και όχι από τις δυνατότητες που προσφέρει σε εκμάθηση ή σε ευχρηστία η γλώσσα (ναι, ΟΚ... η ευχρηστία μπορεί να είναι ένας παράγοντας... αλλά εάν κρατάς documentation και καλή δόμηση τότε ξεπερνάς μεγάλα προβλήματα).

 

Έτσι, δεν νομίζω ότι το θέμα είναι C ή Python για κάποιον που θέλει να μάθει. Ακόμα και σε Fortran ή MATLAB μπορείς να μάθεις προγραμματισμό και να κάνεις πράγματα που με C θα ήθελες ολόκληρη βιβλιοθήκη σε 5 γραμμές (υπερβολή αλλά you get my point). Για κάποιον που θέλει να μάθει είναι να βρει απλά μία eye candy προσέγγιση στον προγραμματισμό και μετά να εξελίσσει το θέμα. Οι διαφορετικές γλώσσες θα έρθουν.

 

Ακόμα και επαγγελματικά... δεν μπορείς να επεκταθείς σε πολλά πεδία. Σε ένα project, άλλος θα κάνει το backend άλλος το frontend. Άλλος θα γράψει τον driver, άλλος την εφαρμογή και άλλος το user interface για όλο το project (στην περίπτωση που το τελικό αποτέλεσμα θα καταλήξει σε προϊόν).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σιγά σιγά ακούγονται και σωστά πράγματα και όχι γενικότητες :)

 

Άσχετο: αν κάποιος θέλει να δει γρήγορα αποτελέσματα και με γραφικό περιβάλλον θα πρότεινα iOS προγραμματισμό. Το μειονέκτημα είναι ότι θέλει iPhone ή iPad και έναν Mac... άρα μιλάμε για αρκετά χρήματα. Και φυσικά η γλώσσα είναι Objective-C.

Από την άλλη όμως, έχει γραφικά και θα δεις σχετικά γρήγορα τους κόπους σου να πιάνουν τόπο.

 

Μερικές σκέψεις:

- Ο Schild Herbert δεν έχει καλό όνομα στους προγραμματιστές (και όχι στους θεωρητικούς) αν και έχω αγοράσει και εγώ βιβλία του.

- Καλό είναι ο προγραμματισμός να γίνει σε UNIX περιβάλλον, είτε C είτε Python (ή και Perl, δεν είναι κακή για αρχή).

- Η Java δεν μου αρέσει σαν γλώσσα, ούτε η C#.

- Και φυσικά όχι βιβλίο σε Ελληνική μετάφραση. Στα Αγγλικά καλύτερα.

 

φιλικά,

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...