
Η πρώτη γλώσσα που έμαθα ήταν PHP, αλλά έχω πάρει πιο πρόσφατα μέχρι Python. Δεδομένου ότι πρόκειται για όλες τις γλώσσες «υψηλό επίπεδο», έχω βρεθεί να είναι λίγο δύσκολο να πάρει. Προσπάθησα επίσης να μάθουν Objective-C, αλλά παράτησα.


Έτσι, ποια γλώσσα πρέπει να μάθω να γεφυρώσουν το χάσμα μεταξύ Python σε C

 
Ποια γλώσσα θα πρέπει να μάθουν ως γέφυρα για την C (και παράγωγα)
==================================================================



Δεν είναι σαφές γιατί θα πρέπει να έχετε μια γλώσσα γέφυρα. Γιατί δεν αρχίσουν να εργάζονται με C άμεσα; C είναι η ίδια μια πολύ απλή γλώσσα. Νομίζω ότι πιο δύσκολο κομμάτι για την C μαθητή είναι δείκτες και ό, τι άλλο σχετίζεται με τη διαχείριση της μνήμης. Επίσης C lang είναι προσανατολισμένη στο δομημένο προγραμματισμό, έτσι θα πρέπει να μάθουν πώς να εφαρμόζουν δομών δεδομένων και αλγορίθμων χωρίς OOP καλοσύνη. Στην πραγματικότητα, η ερώτησή σας είναι πολύ σκληρό, συνήθως οι άνθρωποι πηγαίνουν από οι γλώσσες χαμηλού επιπέδου σε υψηλό επίπεδο και μπορώ να καταλάβω την απογοήτευση εκείνων που πηγαίνει σε άλλη κατεύθυνση.

 

Νιώθω τον πόνο σου, έχω μάθει επίσης PHP πρώτη και προσπαθώ να μάθω C ++, δεν είναι εύκολο, και είμαι πραγματικά αγωνίζονται, Έχουν περάσει δύο χρόνια από τότε που ξεκίνησε την C ++ και ακόμα η έκταση του τι μπορώ να κάνω είναι cout, cin, και τα μαθηματικά.


Αν κάποιος διαβάζει αυτό και αναρωτιέται από πού να αρχίσω, START ΚΑΤΩ.

 

Το καλύτερο μέρος για να ξεκινήσετε την εκμάθηση C είναι το βιβλίο «Η Γλώσσα Προγραμματισμού C» από Kernighan και Ritchie.


Θα αναγνωρίσει πολλά πράγματα από την PHP, και θα εκπλαγείτε πόσο PHP (και Perl, Python κλπ) κάνει για σας.


Ω και, επίσης, θα χρειαστείτε ένα μεταγλωττιστή της C, αλλά υποθέτω ότι ξέρατε αυτό.

 

Μαθαίνοντας οποιαδήποτε γλώσσα απαιτεί χρόνο, πάντα την εξασφάλιση έχω ένα μετρήσιμο στόχο? Έθεσα τον εαυτό μου έναν στόχο, τότε αρχίζουν να μαθαίνουν τη γλώσσα για την επίτευξη του στόχου αυτού, σε αντίθεση με την προσπάθεια να μάθουν σε κάθε γωνιά της γλώσσας και της σύνταξης.


C δεν είναι εύκολο, δείκτες μπορεί να είναι δύσκολο να κατανοήσουμε, αν δεν έρχεστε ρίζες συναρμολόγησης. Έμαθα πρώτο C ++, στη συνέχεια, ρετρό ταιριάζει C στο ρεπερτόριό μου, αλλά ξεκίνησα με x86 και 68000 συναρμολόγησης.

 

Java μπορεί στην πραγματικότητα να είναι μια καλή επιλογή εδώ, είτε το πιστεύετε είτε όχι. Είναι σε μεγάλο βαθμό βασίζεται σε C / C ++, οπότε αν μπορείτε να πάρετε τη σύνταξη και την ισχυρή δακτυλογράφηση, μαζεύοντας C θα μπορούσε να είναι ευκολότερη. Το όφελος είναι ότι μπορείτε να μάθετε την χαμηλότερη σύνταξη επίπεδο χωρίς να χρειάζεται να μάθουν δείκτες (αφού η διαχείριση μνήμης για σας ακριβώς όπως στην Python και PHP). Μπορείτε, ωστόσο, να μάθουν μια παρόμοια ιδέα ... αναφορές (ή αντικείμενα σε γενικές γραμμές).


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

 

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


[LC-3](http://highered.mcgraw-hill.com/sites/0072467509/student_view0/lc-3_simulator.html) είναι μια απλή γλώσσα συγκρότημα με προσομοιωμένη μηχανή.


Εναλλακτικά, μπορείτε να δοκιμάσετε να παίξετε με ένα διαδραστικό διερμηνέα C όπως [CINT](http://root.cern.ch/twiki/bin/view/ROOT/CINT) .


Τέλος, βγάζει δύσκολα πέρα ​​και την ανάγνωση του βιβλίου K & R είναι συνήθως η καλύτερη προσέγγιση.

 

Ξεχάστε Java - δεν πρόκειται να σας φέρει οπουδήποτε κοντά σε C (έχετε allready αποδείξει ότι δεν έχετε ένα πρόβλημα εκμάθηση νέων σύνταξη).


Είτε διαβάσετε K & R ή να κάνετε ένα κατώτερο: Μάθετε για το ίδιο το μηχάνημα. Το μόνο δύσκολο μέρος σε C είναι δείκτες και διαχείριση μνήμης (η οποία είναι στενά συνδεδεμένη με τους δείκτες, αλλά έχει επίσης μια λίγο να κάνει με το πώς ονομάζονται λειτουργίες). Η εκμάθηση μιας (απλή, ίσως ακόμη και «ψεύτικο» συναρμολόγηση) γλώσσα θα σας βοηθήσει εδώ.


Στη συνέχεια, ξεκινήστε την ανάγνωση πάνω στο πρότυπο βιβλιοθήκης παρέχεται από τον C. Θα είναι το καθημερινό ψωμί και το βούτυρο σας.


Ω: μια άλλη άκρη! Αν πραγματικά *δεν* θέλουν να γεφυρωθεί, δοκιμάστε **ΙΤΕ** . Με βοήθησε να μπει σε δείκτες. Επίσης, χρησιμοποιώντας το Win32 API από τη Visual Basic 6.0 μπορεί να σας διδάξει κάποια πράγματα σχετικά με τους δείκτες?)

 

C είναι μια γέφυρα επί του εαυτού του.


K & R είναι η μόνη γλώσσα προγραμματισμού βιβλίο μπορείτε να διαβάσετε σε μία συνεδρίαση και σχεδόν ποτέ να το παραλάβετε και πάλι ... 

 

Η πρότασή μου είναι να πάρετε μια καλή C-βιβλίο που είναι σχετικό με αυτό που θέλετε να κάνετε. Συμφωνώ ότι K & R θεωρείται ότι είναι «Το βιβλίο» για την C, αλλά βρήκα «UNIX Συστήματα Προγραμματισμός» από Kay Α Robbins και ο Steven Robbins να είναι πιο πρακτική και τα χέρια επάνω. Το βιβλίο είναι γεμάτο από καθαρά και σύντομα αποσπάσματα κώδικα που μπορείτε να πληκτρολογήσετε, να συγκεντρώνουν και να προσπαθήσουμε μέσα σε λίγα λεπτά το καθένα.


Υπάρχει μια προεπισκόπηση σε <http://books.google.com/books?id=tdsZHyH9bQEC&printsec=frontcover> (Εξωτερικός σύνδεσμος δεν λειτούργησε.)

 

Νομίζω C ++ είναι ένα καλό «γέφυρα» προς τον Γ έμαθα C ++ πρώτα στο Πανεπιστήμιο, και δεδομένου ότι βασίζεται σε C θα μάθετε πολλά από τα ίδια έννοιες - ίσως κυρίως δείκτες - αλλά και Object Oriented σχεδιασμού. OO μπορεί να εφαρμοστεί σε όλα τα είδη των σύγχρονων γλωσσών, οπότε αξίζει να μάθηση. 


Αφού έμαθε C ++, βρήκα δεν ήταν πάρα πολύ δύσκολο να πάρει τις διαφορές μεταξύ C ++ και C, όπως απαιτείται (για παράδειγμα, όταν εργάζονται σε συσκευές που δεν υποστηρίζουν C ++).

 

Εγώ γενικά συμφωνώ με τα περισσότερα από τα άλλα - δεν υπάρχει πραγματικά ένα καλό σκαλοπάτι γλώσσα.


Είναι, ωστόσο, χρήσιμο να καταλάβουμε τι είναι δύσκολο για την εκμάθηση C, η οποία μπορεί να σας βοηθήσει να καταλάβετε τι καθιστά δύσκολο για σας.


Θα έλεγα ότι τα πράγματα που θα αποδειχθεί δύσκολο στην C για κάποιον που προέρχεται από PHP θα είναι:


* **Δείκτες και τη διαχείριση της μνήμης**  
 Αυτό είναι λίγο πολύ ο λόγος που μαθαίνετε CI φανταστεί κανείς, έτσι δεν υπάρχει πραγματικά καμία πάρει γύρω από αυτό. Η εκμάθηση γλωσσών είδος χαμηλότερη συνέλευση επίπεδο θα μπορούσαν να κάνουν αυτό το πιο εύκολο, αλλά C είναι πιθανώς μια γέφυρα για να το κάνουμε αυτό, όχι το αντίστροφο.
* **Η έλλειψη χτισμένο σε δομές δεδομένων**  
 PHP και συν όλα έχουν εγγενή είδη String, και χρήσιμα πράγματα, όπως πίνακες κατακερματισμού που χτίστηκε το, το οποίο δεν συμβαίνει στην Γ C, ένα String είναι απλά μια σειρά από χαρακτήρες, που σημαίνει ότι θα χρειαστεί να κάνουμε πολύ περισσότερη δουλειά, ή να εξετάσουμε σοβαρά τις βιβλιοθήκες που προσθέτουν τα χαρακτηριστικά που έχετε συνηθίσει.
* **Η έλλειψη χτισμένο σε βιβλιοθήκες**  
 γλώσσες όπως η PHP στις μέρες μας έρχονται σχεδόν πάντα με στοίβες των βιβλιοθηκών για τα πράγματα όπως τις συνδέσεις δεδομένων, επεξεργασία εικόνας και στοίβες από άλλα πράγματα. Στην C, αυτή δεν είναι η περίπτωση, εκτός από ένα πολύ λεπτό πρότυπη βιβλιοθήκη η οποία περιστρέφεται κυρίως γύρω από την ανάγνωση αρχείων, γραφή και τις βασικές χειρισμό αλφαριθμητικών. Υπάρχουν σχεδόν πάντα καλές επιλογές που είναι διαθέσιμες για να καλύψει αυτές τις ανάγκες, αλλά θα πρέπει να τα συμπεριλάβετε τον εαυτό σας.
* **Καταλληλότητα για εργασίες υψηλού επιπέδου**  
 Εάν προσπαθήσετε να εφαρμόσει το ίδιο είδος της εφαρμογής σε C όπως ίσως σε PHP, θα το βρείτε πολύ αργή εξέλιξη. Η δημιουργία μιας ιστοσελίδας, για παράδειγμα, δεν είναι πραγματικά κάτι απλό C είναι κατάλληλο για, οπότε αν προσπαθείτε να το κάνουμε αυτό, θα το βρείτε πολύ αργή εξέλιξη.
* **Προεπεξεργαστή και μεταγλώττιση**  
 περισσότερες γλώσσες αυτές τις μέρες δεν έχουν προεπεξεργαστή, και αν έρχεστε από την PHP, ο κύκλος κατάρτισης θα φαίνεται οδυνηρή. Και οι δύο είναι συμβιβασμούς απόδοσης κατά κάποιο τρόπο - Scripting γλώσσες κάνουν το εμπόριο από την άποψη της αποτελεσματικότητας του έργου, όπου η C προτιμά απόδοση.


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

 

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

 

Οι γλώσσες είναι εύκολο να το μάθει (ειδικά ένα σαν C) ... το δύσκολο μέρος είναι η εκμάθηση των βιβλιοθηκών και / ή κωδικοποίησης ύφος της γλώσσας. Για παράδειγμα, ξέρω C ++ αρκετά καλά, αλλά οι περισσότεροι κώδικα C / C ++ βλέπω μου προκαλεί σύγχυση, διότι οι συμβάσεις ονομασίας είναι τόσο διαφορετική από ό, τι Δουλεύω σε καθημερινή βάση.


Τέλος πάντων, υποθέτω ότι αυτό που προσπαθώ να πω είναι να μην ανησυχείτε πάρα πολύ για τη σύνταξη, να επικεντρωθούν σε βιβλιοθήκη, δήλωσε γλώσσας. Αυτό δεν είναι ειδικά για C, μπορείτε να πείτε το ίδιο και για C #, vb.net, java και ακριβώς για κάθε άλλη γλώσσα εκεί έξω.

 

Pascal! Κλείστε αρκετά σύνταξη, ακόμα απαιτεί από εσάς να κάνετε κάποια διαχείριση μνήμης, αλλά δεν είναι τόσο σκληρές για αρχάριους.

 