Η επιστήμη των υπολογιστών δεν με διδάσκει στον προγραμματισμό. Μου διδάσκει μαθηματικά. Τι μπορώ να κάνω για να χρησιμοποιήσω τις γνώσεις μου για τον προγραμματισμό εφαρμογών κλπ; Οποιεσδήποτε προτάσεις για το πώς να μάθω να προγραμματίζω; Οποιεσδήποτε χρήσιμες ιστοσελίδες, βίντεο κ.λπ .;


Απάντηση 1:

Λοιπόν, τι σας σταματάει; Go πρόγραμμα. Σταματήστε να περιμένετε κάποιον άλλο να κρατήσει το χέρι σας και πιέστε φυσικά τα δάχτυλά σας στα πλήκτρα.

Εσείς

είναι

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

Ίσως έχετε μάθει επίσης βασικά, όπως for-loops, if-δηλώσεις, while-βρόχους, λειτουργίες και τάξεις. Αν όχι, τότε περάστε

Codecademy

και θα μάθετε αυτά τα πράγματα. Αλλά υποψιάζομαι ότι το ξέρετε ήδη.

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

Εάν θέλετε πραγματικά ένα φροντιστήριο προγραμματισμού, πηγαίνετε στο Codecademy.com. Αλλά στοιχηματίζω ότι το βρίσκετε υπερβολικά βαρετό και επαναλαμβανόμενο. Γνωρίζετε ήδη αυτά τα πράγματα.

Αν περιμένετε κάποιον να σας διδάξει πώς να προγραμματίσετε, όταν γνωρίζετε ήδη όλα τα βασικά στοιχεία, δεν πρόκειται να πάρετε πολύ μακριά στην καριέρα προγραμματισμού σας. Πολλοί προγραμματιστές υπολογίζουν πώς να κάνουν κάτι - χρησιμοποιώντας το Google, το StackOverflow, κλπ.

Έχετε έναν τρόπο να εκτελέσετε ένα πρόγραμμα στον υπολογιστή σας; Απολύτως. Εάν δεν υπάρχει τίποτα άλλο, μπορείτε να εκτελέσετε ένα πρόγραμμα JavaScript στο πρόγραμμα περιήγησής σας και να χρησιμοποιήσετε ειδοποιήσεις ή document.write για να ελέγξετε την έξοδο. Ίσως θελήσετε να χρησιμοποιήσετε κάτι άλλο, όπως η Python. Οτιδήποτε. Επιλέξτε μια γλώσσα και λάβετε τα εργαλεία για να συντάξετε ένα τέτοιο πρόγραμμα. Αυτές είναι οδηγίες που μπορείτε να αναζητήσετε. Πήγαινε.

Στη συνέχεια, επιλέξτε ένα πρόγραμμα για να γράψετε. Γνωρίζετε πραγματικά ένα πάρα πολύ, αλλά ίσως χρειαστεί να ξεκινήσετε μικρές για να δημιουργήσετε την εμπιστοσύνη σας. Ακολουθεί μια λίστα με προγράμματα που μπορείτε να γράψετε. Ξεκινήστε ένα βήμα πριν να πείτε "ποιος δεν μπορώ να το κάνω".

  • Εκτύπωση "hello world"
  • Πάρτε ένα όνομα ως είσοδο από το χρήστη και στη συνέχεια να εκτυπώσετε / εμφανίσετε "hello" + το όνομά τους.
  • Πάρτε την ημερομηνία γέννησης του χρήστη και να εκτυπώσετε / να εμφανίσετε την τάξη του σχολείου είναι πιο πιθανό σε.
  • Πάρτε έναν αριθμό και ελέγξτε εάν είναι πρωταρχικής σημασίας.
  • Πάρτε έναν αριθμό και εκτυπώστε όλους τους πρώτους αριθμούς μεταξύ 1 και N.
  • Επαναλάβετε το προηγούμενο πρόγραμμα, αλλά χρησιμοποιήστε το Sieve of Eratosthenes. Κοιτάξτε αυτό αν δεν το ξέρετε!
  • Πάρτε έναν αριθμό ως είσοδο και εκτυπώστε την πρωταρχική παραγοντοποίησή του. Κοιτάξτε αυτό αν δεν ξέρετε ποιος είναι ο πρώτος παραγοντοποιητής.
  • Πάρτε δύο λέξεις και ελέγξτε αν είναι μεταλλάξεις μεταξύ τους. Προσπαθήστε να χρησιμοποιήσετε ορισμένες λειτουργίες για να το κάνετε αυτό.
  • Πάρτε μια λίστα με τα ονόματα και τις ηλικίες των ανθρώπων. Ταξινόμηση των ανθρώπων από το παλαιότερο στο νεότερο. Χρησιμοποιήστε μια κατηγορία ατόμων για να το κάνετε αυτό.
  • Αν γράψατε το βήμα # 9 χρησιμοποιώντας έναν συγκριτή, κάντε το χρησιμοποιώντας έναν προσαρμοσμένο αλγόριθμο ταξινόμησης. Αν γράψατε τον δικό σας αλγόριθμο ταξινόμησης, δοκιμάστε ξανά χρησιμοποιώντας έναν συγκριτή.
  • Μάθετε πώς μπορείτε να κάνετε κάτι με κουμπιά με δυνατότητα κλικ, σε οποιαδήποτε γλώσσα χρησιμοποιείτε. Κατασκευάστε κάτι απλό, όπως ένα φανάρι. Εάν κάνετε κλικ στο κόκκινο κουμπί, εμφανίζεται η ένδειξη "stop". Οι πράσινες ενδείξεις "πηγαίνουν". Οι κίτρινες ενδείξεις "επιβραδύνουν". Ίσως χρειαστεί να κατεβάσετε κάποια επιπλέον εργαλεία για να γράψετε ένα πρόγραμμα με ένα GUI (γραφικό περιβάλλον χρήστη). Είναι εντάξει. Εάν δεν χρησιμοποιείτε μια γλώσσα που να μπορεί να το κάνει αυτό, δεν ανησυχείτε. Μεταβείτε σε άλλη γλώσσα.
  • Δημιουργήστε έναν απλό διαχειριστή λίστας. Ο χρήστης μπορεί να προσθέσει εργασίες, να τις ταξινομήσει με κάποιο τρόπο (όπως κάνετε κλικ στο κουμπί "επάνω" για να μετακινήσετε μια εργασία προς τα πάνω με τη σειρά) και να τις ελέγξετε όταν ολοκληρωθεί.
  • Τώρα πηγαίνετε άγρια. Μπορείτε να δημιουργήσετε πραγματικά προγράμματα. Κλωνοποιήστε μια απλή εφαρμογή που έχετε δει πριν. Θα μπορούσε να είναι ένα απλό πρόγραμμα κουίζ, όπως το στυλ που βλέπετε online.
  • Τώρα ξεκινήστε την κλωνοποίηση πιο σύνθετων εφαρμογών.

Όχι κάθε πρόγραμμα που γράφετε πρέπει να είναι "μυθιστόρημα". Προσπαθείτε να μάθετε. Δεν υπάρχει τίποτα κακό με την κλωνοποίηση υφιστάμενων εφαρμογών για να γίνει αυτό.

Πιθανότατα γνωρίζετε πολύ περισσότερο από ό, τι νομίζετε ότι κάνετε. Είστε απλά ασφαλείς. Συμβαίνει. Στην πραγματικότητα, είναι πραγματικά κοινό.

Πέρασα το πρώτο μου

τρία χρόνια

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

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

Έχετε τα τούβλα και έχετε το κονίαμα. τώρα πηγαίνετε και χτίζετε.


Απάντηση 2:

Έχετε το ίδιο αίσθημα όταν αρχίζω να σπουδάζω την Πληροφορική για το μεταπτυχιακό μου δίπλωμα. Δεδομένου ότι η κύρια μου ήταν η χρηματοδότηση και την επιχειρηματική κατά τη διάρκεια των undergrads και άρχισε να έρχεται σε επαφή με τον προγραμματισμό κατά τη διάρκεια της δουλειάς μου, είχα σκεφτεί ότι CS πρέπει να είναι εντελώς σχετικά με την κωδικοποίηση και προγραμματισμό ημέρα ν νύχτα. Ωστόσο, δεν συμβαίνει. Μου χρειάζεται λίγος χρόνος για να συνειδητοποιήσω ότι το πιο δύσκολο κομμάτι της επιστήμης των υπολογιστών είναι ότι αυτό που αποκαλούσατε "δεν είναι προγραμματισμός αλλά μαθηματικά".

Υπάρχουν πολλά μαθήματα κατάρτισης που διδάσκουν παντού όσους δεν έχουν πτυχίο γυμνασίου για να αποκτήσουν βασικές δεξιότητες προγραμματισμού ώστε να μπορούν να γράψουν ένα μοντέλο MVC σε Java ή PHP. Το έκανα καν όταν ήμουν στην Κίνα. Έμαθα κάποια πράγματα πράγματι, αλλά μόνο αυτά τα επαναλαμβανόμενα πράγματα. Οι προσφορές εργασίας που έλαβα έπειτα από την εκμάθηση αυτών των στοιχείων είναι βασικά ως "κωδικοποιητής", ή λέω "κωδικοποιητής". Ο υπεύθυνος προσλήψεων δεν ήθελε να έχουμε τη δική μας σκέψη για οποιαδήποτε εφαρμογή, καμία ιδέα για το σύνολο της υποδομής και δεν χρειάζεται καν να είναι κρίσιμη για τις ανάγκες των πελατών. Απλώς χρειάζονται κάποια εργασία για να γράψουν τον πιο χαμηλό και απλό και επαναλαμβανόμενο κώδικα.

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

Τι βρίσκω σκληρά στο σχολείο; Επιλύει ασθενώς την πολύ λεπτομερή κάθοδο της κλίσης στη λογική παλινδρόμηση, η οποία είναι μία από τις πιο συνηθισμένες θεωρίες μάθησης μηχανών. Ο καθένας είναι σε θέση να εφαρμόσει αυτή τη μέθοδο στο Matlab ή python ή οτιδήποτε άλλο, αλλά μόνο ο προγραμματιστής γνωρίζει το σωστό χρονισμό για χρήση και ποια παράμετρος έχει μεγαλύτερη σημασία για όλους τους αλγορίθμους μου. Απαιτεί να έχετε γράψει τους ίδιους τους αλγόριθμους και πρέπει να είστε εξοικειωμένοι με το σύνολο του πλαισίου. Επιπλέον, μπορεί να χρειαστεί να κάνετε χιλιάδες πειράματα και στη συνέχεια να έχετε το δικό σας συμπέρασμα. Αυτό είναι Επιστήμη Υπολογιστών. Δεν πρόκειται μόνο για μαθηματικά αλλά και για ασταμάτητη προσπάθεια για πολύ πρακτικά ερωτήματα. Θα μπορούσατε να κάνετε πραγματικά πράγματα, κάτι που άλλοι μπορούν να δουν σαν μια ιστοσελίδα ή κάτι που μπορούν να μιλήσουν άλλοι σαν ένα παιχνίδι HCI, αλλά όλα αυτά τα φανταχτερά αποτελέσματα βασίζονται στις πολύ στερεές μαθηματικές και λογικές ιδέες σας, χωρίς τις οποίες οι ικανότητές σας στον προγραμματισμό θα είναι ακριβώς όπως μια εκμετάλλευση -Dilll ξυλουργός χωρίς γνώση για την κατασκευή επίπλων.

Ωστόσο, το κολλέγιο μας διδάσκει κάτι χρήσιμο. Όπως είπατε, βάση δεδομένων, C, Java, Σχεδιασμός Λογισμικού, Δομή Δεδομένων ... Σχεδόν κάθε πανεπιστήμιο παρέχει αυτά τα μαθήματα. Αφού καταλάβετε τις βασικές δεξιότητες του CS, τότε άλλα πράγματα που μπορείτε σίγουρα να μελετήσετε μόνοι σας. Έχουμε μια λέξη γι 'αυτό, που ονομάζεται "Προσανατολισμός Google". Χαχαχα. Εν πάση περιπτώσει, το CS δεν είναι θέμα που οι καθηγητές σας ωθούν να μάθετε (πιστεύω ότι δεν κάνουν υποκείμενα), αλλά ένα θέμα χρειάζεται να είστε αυτοευθυνόμενοι.


Απάντηση 3:

Καλά στην πραγματικότητα.

  • Πανεπιστημιακά μαθήματα δεν σας διδάσκουν να προγραμματίσετε - είναι απλώς μια διορατικότητα στη θεωρία. Μπορεί να έχετε πρακτικά μαθήματα σχετικά με τις δομές δεδομένων και τους αλγόριθμους όπου θα σας ζητηθεί να προγραμματίσετε. Αλλά η αποτελεσματικότητα διαφέρει από το κολέγιο στο κολλέγιο. Στην περίπτωσή μου, δεν μπορούσαμε απλώς να λάβουμε βοήθεια από τους εκπαιδευτές μας. Έτσι, καταφέραμε να ερευνήσουμε.
  • Το πανεπιστήμιο δεν δίνει ούτε μια χαρά για να σας κάνει καλό προγραμματιστή.

Είναι καλύτερο να ξεκινήσετε την αυτοδιδασκαλία. Υπάρχουν πολλά online μαθήματα σχετικά με τον βασικό προγραμματισμό, απλά αναζήτηση στο Google. Αλλά πριν από τον κωδικό σας - επιλέξτε μια γλώσσα προγραμματισμού. Οι κωδικοποιητές συνήθως ξεκινούν με μεταγλωττισμένες γλώσσες όπως το c ++ ή η Java. Αλλά, μπορείτε να ξεκινήσετε με το python αν θέλετε. Θα πρότεινα να ακολουθήσετε ένα μάθημα για τον προγραμματισμό αντικειμένων πριν προχωρήσετε σε δομές δεδομένων. Οι έννοιες του OOP είναι αρκετά χρήσιμες στη βιομηχανία όταν σχεδιάζετε ενότητες που αλληλεπιδρούν μεταξύ τους

Η χρονολογική σειρά πρέπει να έχει ως εξής:

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

Σε κάθε βήμα κωδικοποιήστε τα πάντα.

Μόνο με τη θεωρητική γνώση δεν θα γίνετε δεκτοί σε μια εταιρεία. Θέλουν κάποιες πρακτικές γνώσεις για όλες αυτές τις τέσσερις έννοιες.

Έτσι τρώνε μόνο, κοιμούνται, κωδικοποιούν, επαναλαμβάνουν


Απάντηση 4:

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

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

Έτσι, πίσω στην ερώτησή σας, IMHO είστε η έλλειψη ωρών που παίρνουν τα χέρια σας βρώμικα. Πίσω από τη σχολική ώρα, πέρασα όλες τις ημέρες έως τις 2, 3 το πρωί που εργάζονταν στο πλευρικό έργο με φίλους ή σχολικά έργα. Δεν χρειάζεται να ξοδεύετε πολύ χρόνο, αλλά η ιδέα είναι να κάνετε τα πραγματικά πράγματα, να εργαστείτε σε πραγματικά έργα, να εφαρμόσετε αυτό που μαθαίνετε για να χτίσετε το πρόγραμμα που αγαπάτε. Θα εκπλαγείτε πόση έμπνευση θα φέρει. Από εκείνο το σημείο, πιστεύω ότι θα γνωρίζετε τον εαυτό σας πώς να προχωρήσετε.

Ελπίζω να σας βοηθήσει.


Απάντηση 5:

Ναι, το CS είναι περισσότερο για τις υποκείμενες δομές από το πώς να προγραμματίσει. Εάν γνωρίζετε ήδη πώς να κωδικοποιήσετε τουλάχιστον μία γλώσσα, το μόνο που έχετε να κάνετε για να προγραμματίσετε μια εφαρμογή είναι:

  • Αποφασίστε τι θέλετε να κάνει η εφαρμογή σας.
  • Σπάστε το στόχο αυτό σε βήματα που μπορούν να κωδικοποιηθούν οδηγίες.
  • Πληκτρολογήστε αυτές τις κωδικοποιημένες οδηγίες.

Τώρα, αν ένα από αυτά τα βήματα (πιθανόν όχι # 3) σας δίνει πρόβλημα, αυτό είναι ένα πιο συγκεκριμένο ερώτημα που αξίζει να το ζητήσετε.


Απάντηση 6:

Έχω μόνο μία λύση γι 'αυτό -

Ανταγωνιστικός προγραμματισμός

Δημιουργήστε λογαριασμό στο Codechef / TopCoder / HackerRank και κάντε πρακτικές ερωτήσεις. Εκεί θα έχετε τον τρόπο να εφαρμόσετε τις δεξιότητες προγραμματισμού που έχετε και θα βελτιώσετε τη λογική σας.

Τώρα που έρχονται στο μέρος της εφαρμογής - Μπορείτε να αναλάβετε έργα ανοιχτού κώδικα και να εργαστείτε πάνω τους για να εφαρμόσετε τις γνώσεις σας και να αναπτύξετε κάτι δημιουργικό. Εάν θέλετε να κάνετε εφαρμογές Android θα χρειαστείτε πολλή Java. Ελέγξτε αυτό -


Απάντηση 7:

Είχα την ίδια ακριβώς σκέψη μαζί σας όταν ήμουν στο πανεπιστήμιο. Έχω ξεπεράσει ακόμη και μερικές τάξεις στο σχολείο για να εργαστεί σε μερική απασχόληση. Τι πήρα από αυτό; Μπορεί να επιδείξει κάποιες ιστοσελίδες που έκανα όταν οι φίλοι μου εξακολουθούσαν να σπουδάζουν θεμελιώδεις Σίγουρα.Πώς είναι το αντίγραφό μου; Bad.Ar όλα αυτά τα μαθήματα στο σχολείο (όπως τα Μαθηματικά) είναι περιττά; Αμφιβάλλω. Χρειάζεστε καλή δουλειά μετά το σχολείο; Να είστε καλύτεροι σε αλγόριθμους. Θέλετε να είστε περισσότερο από μέτριος κωδικοποιητής; Θέλετε να μάθετε την εκμάθηση μηχανών, να βελτιστοποιήσετε το σύστημα, να σκάψετε βαθιά μέσα στο σύστημα βάσης δεδομένων κ.λπ .; Χρειάζεστε μαθηματικά και το σχολείο που σας δίδαξε. Όσο περισσότερο γνωρίζετε για τον προγραμματισμό του πραγματικού κόσμου, τόσο περισσότερο καταλαβαίνετε ότι τα βαρετά υλικά είναι σημαντικά.

Τώρα πίσω στην ερώτησή σας. Θέλετε να μάθετε κώδικα κάποια εφαρμογή, σωστά; Επιλέξτε μια εφαρμογή που θέλετε να γράψετε ή κλωνοποιήστε μια. Ακολουθήστε το σεμινάριο και γράψτε ένα. Θέλετε να είστε καλύτερο στον κωδικοποιητή; Βιβλία Google σχετικά με την τεχνολογία λογισμικού ή τις βέλτιστες πρακτικές στην τεχνολογία που χρησιμοποιείτε. Μερικοί τύποι καυχιούνται για τα χρόνια εμπειρίας τους, αλλά ποτέ δεν μελετούν τίποτα, τότε προγραμματισμός 5 ετών ίσως μόνο 5 φορές 1 χρόνο και πληκτρολογείτε πιο γρήγορα.

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