Τι πρέπει να γνωρίζει πρώτα ένας χάκερ; Βασικές αρχές Hacking

Πρόγραμμα Kerish Doctor. 19.06.2020
Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...

Σκέφτεστε απλώς να ασχοληθείτε με την κωδικοποίηση; Έχετε χαθεί στην ποικιλία των γλωσσών και των τεχνολογιών; Να χαίρεστε, ήρθε η μέρα σας: πιέσαμε λίγο τους εαυτούς μας και ολόκληρη η συντακτική ομάδα δημιούργησε για εσάς έναν διαδραστικό οδηγό για την επιλογή μιας γλώσσας προγραμματισμού ανάλογα με τις ανάγκες σας. Δεν έχει σημασία αν θέλετε να γράψετε παιχνίδια για κινητά, να αναζητήσετε backdoors στο υλικολογισμικό της ZTE ή απλά να ζήσετε με κωδικοποίηση, έχουμε όλες τις επιλογές που καλύπτονται. Αποκαλύψτε το διάγραμμα, απαντήστε στις ερωτήσεις, επιλέξτε την τεχνολογία σας... Και μην ξεχάσετε στη συνέχεια να μας μεταφέρετε ένα ποσοστό από τον πρώτο σας μισθό. Έτσι για να το πω, για το φιλοδώρημα!

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

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

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

Web Developer

https://geekbrains.ru/professions/web_developer

Είναι εύκολο να είσαι προγραμματιστής ιστού; Μπορεί να μην φαίνεται πολύ δύσκολο - τελικά, ο καθένας μπορεί να φτιάξει έναν ιστότοπο. Ωστόσο, για να γίνετε πραγματικός προγραμματιστής full stack, σήμερα πρέπει να γνωρίζετε πολύ περισσότερα από HTML και κάποια γλώσσα από την πλευρά του διακομιστή. Σε δέκα μήνες, αυτό το σύνολο μαθημάτων Geekbrains θα σας μεταφέρει από την εκμάθηση HTML και CSS έως την εκμάθηση της PHP - από το αρχικό επίπεδο έως την επαγγελματική ανάπτυξη ιστού χρησιμοποιώντας το πλαίσιο YII2. Επιπλέον, αυτό περιλαμβάνει μαθήματα εκμάθησης Javascript - και πελάτη και διακομιστή (Node.js), καθώς και τα πλαίσια Angular και D3.js.

Προγραμματιστής κινητής τηλεφωνίας

https://geekbrains.ru/professions/mobile_developer

Θέλετε να δημιουργήσετε εφαρμογές για κινητά για iOS και Android; Αυτό το σετ μαθημάτων έχει σχεδιαστεί ειδικά για άτομα σαν εσάς και διαρκεί 11 μήνες. Περιλαμβάνει δύο μαθήματα για την Java (από τα βασικά έως τα προηγμένα OOP, τη δικτύωση και το multithreading) και δύο μαθήματα για το Android (ανάπτυξη διεπαφής, εργασία με γραφικά και αισθητήρες κ.λπ.). Το δεύτερο μισό των μαθημάτων είναι αφιερωμένο στο Objective-C - αυτή η γλώσσα είναι απαραίτητη για όσους σχεδιάζουν να δημιουργήσουν εφαρμογές για iOS. Ένα μάθημα για το Swift, μια νέα γλώσσα της Apple που ήδη αρχίζει να χρησιμοποιείται στην ανάπτυξη λογισμικού, έχει επίσης προστεθεί σε αυτό.

Προγραμματιστής Java

https://geekbrains.ru/professions/java_developer

Οι δημιουργοί της γλώσσας Java θεώρησαν ότι ήταν τόσο καλή που θα μπορούσε να χρησιμοποιηθεί παντού. Αυτό δεν συνέβη: ως αποτέλεσμα, η Java χρησιμοποιείται σε Android και σε σοβαρή ανάπτυξη διακομιστή - τα backend εφαρμογών μεγάλου φορτίου και παιχνιδιών πολλών χρηστών είναι γραμμένα σε αυτήν τη γλώσσα. Εξ ου και το συμπέρασμα: Οι προγραμματιστές Java εξακολουθούν να έχουν μια πολύ καλή ζωή! Αυτό το εξάμηνο πακέτο μαθημάτων Geekbrains θα σας βοηθήσει να γίνετε ένας από αυτούς. Δύο μαθήματα Java σε αυτό συμπίπτουν με το σχέδιο μαθήματος για προγραμματιστές λογισμικού Android, αλλά είναι το τρίτο μάθημα που θα σας βοηθήσει να γίνετε πραγματικός γκουρού της Java. Επικεντρώνεται σε βάσεις δεδομένων, στη δημιουργία γραφικών διεπαφών, καθώς και σε πολύπλοκα πράγματα, όπως multithreading, μηχανισμούς ανάκλασης και εσωτερικές κλάσεις.

Προγραμματιστής Python

https://geekbrains.ru/professions/python_developer

Λένε ότι μπορείτε να ξεκινήσετε τον προγραμματισμό στην Python χωρίς καμία εκπαίδευση, αλλά ταυτόχρονα μερικές σημαντικές λεπτομέρειες παραμένουν σιωπηρές: μόνο κάποιος που γνωρίζει ήδη μερικές γλώσσες θα μπορεί να το κάνει πραγματικά, και θα μην γίνεις επαγγελματίας έτσι. Το πεντάμηνο μάθημα του Geekbrains όχι μόνο καλύπτει την Python από τα βασικά έως τις περιπλοκές όπως οι διακοσμητές, αλλά καλύπτει επίσης HTML/CSS, Javascript και το πλαίσιο Django. Έτσι θα μάθετε όχι μόνο να γράφετε προγράμματα σε Python, αλλά θα μπορείτε να δημιουργείτε πλήρεις δυναμικούς ιστότοπους χρησιμοποιώντας το.

Ruby προγραμματιστής

https://geekbrains.ru/professions/ruby_developer

Η γλώσσα Ruby θεωρούνταν από καιρό μια ενδιαφέρουσα περιέργεια μέχρι να εμφανιστεί το πλαίσιο Ruby on Rails. Η Ruby είναι πλέον μία από τις καλύτερες γλώσσες για ανάπτυξη ιστού και χάρη στο Rails, κάνει την ανάπτυξη πολύπλοκων διαδικτυακών εφαρμογών πολύ πιο γρήγορη και εύκολη. Αυτό το εξάμηνο μάθημα Geekbrains θα σας διδάξει HTML/CSS και Javascript από την πλευρά του πελάτη και θα σας διδάξει το Ruby ειδικά για το σκοπό της χρήσης του Rails. Ελεγκτές και μηχανές προτύπων σας περιμένουν, μελλοντικός προγραμματιστής ιστού!

Ειδικό έργο με το GeekBrains

Ο κόσμος του προγραμματισμού είναι ένα ολόκληρο σύμπαν που δεν έχει μόνο τη δική του ιστορία και παραδόσεις, αλλά και έναν ολόκληρο πολιτισμό, μέρος του οποίου είναι η γλώσσα. Την ίδια στιγμή, οι χάκερ, σίγουρα ένα από τα πιο ενδιαφέροντα μέρη αυτού του κόσμου, έχουν τη δική τους ορολογία, χαρακτηριστική μόνο για αυτούς. Είναι αυτό το «επίρρημα» που θα συζητηθεί περαιτέρω.

Από suxx σε rulezzz

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

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

Η λέξη "Backdoor" (από το αγγλικό "Backdoor" - μαύρη είσοδος) και το ρήμα "backdoor" που προέρχεται από αυτήν σημαίνουν για έναν χάκερ ειδικό λογισμικό που του απαγορεύει την πρόσβαση στο επιθυμητό "αυτοκίνητο". Και το "Car", με τη σειρά του, σημαίνει έναν προσωπικό υπολογιστή, ένα αντικείμενο για πειρατεία. Οι χάκερ αποκαλούν άλλα βοηθητικά προγράμματα "Εργαλεία" (από τα αγγλικά "εργαλεία" - εργαλεία). Οι χάκερ ήταν επίσης αυτοί που επινόησαν την έκφραση «πέφτω στο φλοιό», που σημαίνει τον απροσδόκητο τερματισμό ενός προγράμματος.

Το ρήμα «επιτίθεται» και τα παράγωγά του σημαίνουν την πραγματοποίηση επίθεσης στον διακομιστή, το αποτέλεσμα της οποίας είναι η αποτυχία στη λειτουργία του. Οι χάκερ αποκαλούν έναν «δαίμονα» όχι ένα μυθικό πλάσμα, αλλά ένα πρόγραμμα που βρίσκεται στη μνήμη RAM και εκτελεί αόρατα τη δουλειά του. Ο πηγαίος κώδικας ονομάζεται "Raw". Η αγγλική λέξη "Source" φταίει για ένα τόσο παράφωνο όνομα.

Οι έμπειροι χρήστες που έχουν ένα συγκεκριμένο σύνολο γνώσεων για το hacking ονομάζονται "Crackers" ("το σπάσιμο" από επαγγελματίες). Τα προγράμματα που σαρώνουν την κυκλοφορία δικτύου ονομάζονται "sniffers".

Υπάρχουν και άλλες λέξεις που έχουν μπει από καιρό στον κόσμο του προγραμματιστή, εν μέρει από το λεξιλόγιο των χάκερ:

  • Σουξ (σαξ) χάλια.
  • Το σφάλμα είναι ένα σφάλμα.
  • Διορθώστε - διορθώστε.
  • Κοινή χρήση—ανοιχτό για δημόσια πρόσβαση.
  • Windows - Windows.
  • Ο Carlson είναι ένα ψυγείο υπολογιστή.
  • Ο Lamer είναι ένα άτομο που δεν καταλαβαίνει «το θέμα», αλλά συχνά θέλει να φαίνεται σαν ένα τέτοιο.
  • Το Rulezz είναι cool, το αντίθετο του Suxx.

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

Οι πρώτοι χάκερ μπορούν να θεωρηθούν αυτή η μικρή ομάδα ανθρώπων, αποτελούμενη από έμπειρους προγραμματιστές και μάγους δικτύου, που πριν από αρκετές δεκαετίες στάθηκαν στην αρχή της δημιουργίας των πρώιμων μικροϋπολογιστών και συμμετείχαν σε πειράματα ARPAnet. Η παραβίαση υπολογιστών και τηλεφωνικών δικτύων έχει γίνει σύμπτωμα μιας κουλτούρας χάκερ, η οποία είναι στην πραγματικότητα πολύ πιο περίπλοκη και δεν περιορίζεται στο hacking. Πώς να γίνετε μέλος αυτής της κοινότητας, να αποκτήσετε τις απαραίτητες δεξιότητες, να μάθετε να σκέφτεστε σαν χάκερ και να κερδίσετε σεβασμό και φήμη σε αυτό το περιβάλλον, θα μάθετε από αυτό το άρθρο.

Βήματα

Μέρος 1

Απόκτηση Βασικών Δεξιοτήτων

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

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

    • Εάν είστε αρχάριος, τότε προσπαθήστε να βρείτε ένα πρόγραμμα υπό ανάπτυξη που σας ενδιαφέρει και γίνετε ένας καλός δοκιμαστής beta. Υπάρχει μια πολύ φυσική εξέλιξη από τη βοήθεια στη δοκιμή προγραμμάτων στη βοήθεια στον εντοπισμό σφαλμάτων και στη συνέχεια στη βοήθεια στην τροποποίησή τους. Θα μάθετε πολλά με αυτόν τον τρόπο και θα δημιουργήσετε καλό κάρμα στις σχέσεις σας με ανθρώπους που θα σας βοηθήσουν αργότερα.
  1. Δημοσιεύστε χρήσιμες πληροφορίες.Ένα άλλο καλό πράγμα είναι να επιλέγετε και να συγκεντρώνετε χρήσιμες και ενδιαφέρουσες πληροφορίες σε ιστοσελίδες ή έγγραφα όπως FAQ (συχνές ερωτήσεις και απαντήσεις) και να τις κάνετε διαθέσιμες στο κοινό. Οι οικοδεσπότες των σημαντικών τεχνικών συχνών ερωτήσεων είναι σχεδόν εξίσου σεβαστοί με τους συντάκτες του λογισμικού ανοιχτού κώδικα.

    Βοηθήστε τη διατήρηση της λειτουργίας της υποδομής.Η κουλτούρα των χάκερ (και η μηχανική του Διαδικτύου) βασίζεται σε εθελοντές. Πρέπει να γίνει πολλή απαραίτητη, αλλά όχι ιδιαίτερα αποτελεσματική, δουλειά για τη διατήρηση της διαδικασίας: διαχείριση λιστών αλληλογραφίας, συντονισμός ομάδων ειδήσεων, διαχείριση μεγάλων αρχείων λογισμικού, ανάπτυξη RFC και άλλα τεχνικά πρότυπα. Οι άνθρωποι που κάνουν αυτό το πράγμα καλά χαίρουν μεγάλου σεβασμού, γιατί όλοι γνωρίζουν ότι αυτού του είδους η δουλειά απαιτεί πολύ χρόνο και δεν είναι τόσο διασκεδαστικό όσο το παιχνίδι με κωδικούς. Αυτό το έργο δείχνει αφοσίωση.

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

    • Αλλά προσέξτε: οι χάκερ είναι επιφυλακτικοί με τους μεγαλόστομους της φυλής που μιλούν δυνατά, επομένως το προφανές επίτευγμα αυτού του είδους δόξας είναι γεμάτο κινδύνους. Αντί να προσπαθείτε για αυτό, είναι καλύτερα να μην σας ενδιαφέρει και τότε όλα θα έρθουν από μόνα τους και μόνο τότε μπορείτε να γίνετε σεμνοί και ελεήμονες στην κατάστασή σας.
  • Ορισμένες εταιρείες προσλαμβάνουν χάκερ για να ελέγξουν πόσο ασφαλή είναι τα συστήματά τους. Έτσι, μπορείτε να κερδίσετε καλά χρήματα από αυτό!
  • Προσπαθήστε να μην σας πιάσουν και Δενκάνε λίγο hacking.
  • Γράψε καλά στη μητρική σου γλώσσα. Σύμφωνα με ένα κοινό στερεότυπο, οι προγραμματιστές δεν είναι πολύ εγγράμματοι, αλλά στην πραγματικότητα, πολλοί χάκερ έχουν πολύ καλή γνώση της γλώσσας.
  • Η Lisp αξίζει να μάθετε για τη βαθιά φώτιση που θα αποκτήσετε όταν επιτέλους την κατακτήσετε. Αυτή η γνώση θα σας κάνει έναν εξαιρετικό προγραμματιστή για το υπόλοιπο της ζωής σας, ακόμα κι αν δεν χρησιμοποιείτε ποτέ πραγματικά την ίδια τη Lisp. Μπορείτε να αποκτήσετε κάποια αρχική εμπειρία με το Lisp στη λειτουργία επεξεργασίας κώδικα του προγράμματος επεξεργασίας κειμένου Emacs ή της προσθήκης Script-Fu για το πρόγραμμα επεξεργασίας γραφικών GIMP.
  • Το Perl έχει νόημα να μαθαίνεις για πρακτικούς λόγους: χρησιμοποιείται πολύ ευρέως για ενεργές ιστοσελίδες και διαχείριση συστήματος, οπότε ακόμα κι αν δεν χρειαστεί ποτέ να γράψεις Perl, θα πρέπει να μάθεις να το διαβάζεις. Πολλοί άνθρωποι χρησιμοποιούν την Perl για να αποφύγουν τον προγραμματισμό σε C, η οποία απαιτεί πόρους.
  • Δοκιμάστε τις γνώσεις σας σε ιστότοπους που δημιουργείτε.
  • Χρησιμοποιήστε τις γνώσεις και τις δεξιότητές σας για καλό. Το να είσαι καλός χάκερ είναι πολύ πιο ασφαλές και πιο κερδοφόρο για όλους από το να είσαι κακός χάκερ. Οι κακοί χάκερ δεν έχουν πολύ καλή ζωή - πρέπει να κρύβονται για να αποφύγουν προβλήματα με το νόμο.
  • Να είστε πάντα προσεκτικοί. Οι παράνομες δραστηριότητες μπορεί να έχουν πολύ σοβαρές συνέπειες και τίποτα στο Διαδίκτυο δεν είναι πραγματικά ανώνυμο.
  • Μην εμπλακείτε σε οτιδήποτε μπορεί να οδηγήσει σε προβλήματα.
  • Ρωτήστε τις τοπικές εταιρείες εάν χρειάζονται ελεγμένα συστήματα ασφαλείας.

Προειδοποιήσεις

  • Το hacking είναι μια παράνομη πράξη που μπορεί να οδηγήσει σε σοβαρές κυρώσεις. Το hacking είναι έγκλημα και τιμωρείται από το νόμο.

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

Συνήθιζα να προτείνω την Java ως γλώσσα για πρώιμη εκμάθηση, αλλά λόγω αυτών των επικρίσεων, άλλαξα γνώμη (βλ. επίσης: «Οι παγίδες της Java ως πρώτη γλώσσα προγραμματισμού»). Ένας χάκερ δεν μπορεί να προσεγγίσει ένα πρόβλημα όπως το λύνει ένας υδραυλικός σε ένα κατάστημα, πρέπει να ξέρει τι ακριβώς κάνεικάθε συστατικό. Επομένως, τώρα πιστεύω ότι θα ήταν καλύτερο να μελετήσουμε τις γλώσσες C και Lisp στην αρχή και μόνο μετά από αυτές Java.

Υπάρχει ίσως μια γενικότερη προσέγγιση σε αυτό. Όταν έχεις ένα καλό εργαλείο για να δημιουργήσεις κάτι, αλλά υπάρχει υπερβολική γλώσσα για αυτό και η εκμάθησή του είναι δύσκολη. Όχι μόνο οι γλώσσες προγραμματισμού μπορούν να χειριστούν την εργασία, αλλά και διάφορα πλαίσια web όπως RubyOnRails, CakePHP, Django μπορούν να λύσουν την εργασία εύκολα, αλλά θα σας αφήσουν με επιφανειακή γνώση και δεν θα μπορείτε να λύσετε ένα πιο περίπλοκο πρόβλημα ή να καταλάβετε το πρόβλημα εάν είναι γρήγορο και η εύκολη λύση δεν θα λειτουργήσει σωστά.

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

Το C είναι πολύ αποδοτικό και πολύ οικονομικό όσον αφορά τους πόρους της μηχανής. Ωστόσο, η χρήση της γλώσσας C θα είναι αποτελεσματική όπου απαιτείται μη αυτόματη διαχείριση πόρων χαμηλού επιπέδου, όπως η μνήμη. Όλος αυτός ο κώδικας χαμηλού επιπέδου είναι πολύπλοκος και εύκολος να κάνει λάθη, και απαιτεί επίσης τεράστιο χρόνο για τον εντοπισμό σφαλμάτων (εύρεση και διόρθωση σφαλμάτων). Λαμβάνοντας υπόψη τη δύναμη των σύγχρονων υπολογιστών, μπορείτε να πάρετε μια συμβιβαστική απόφαση - το έξυπνο πράγμα που πρέπει να κάνετε είναι να επιλέξετε μια γλώσσα που χρησιμοποιεί τους πόρους του υπολογιστή λιγότερο αποτελεσματικά, αλλά περισσότεροαποτελεσματικό όσον αφορά τον χρόνο που αφιερώνεται στην εφαρμογή. Αυτή η ανταλλαγή είναι η Python.

Άλλες γλώσσες πρωταρχικής σημασίας για τους χάκερ είναι η Perl και η LISP. Το Perl έχει νόημα να μαθαίνεις για πρακτικούς λόγους: χρησιμοποιείται πολύ ευρέως για ενεργές ιστοσελίδες και διαχείριση συστήματος, οπότε ακόμα κι αν δεν χρειαστεί ποτέ να γράψεις Perl, θα πρέπει να μάθεις να το διαβάζεις. Πολλοί άνθρωποι χρησιμοποιούν την Perl για αυτόν τον σκοπό, αλλά σας συμβουλεύω να χρησιμοποιήσετε Python και να αποφύγετε τον προγραμματισμό C, εκτός εάν η εργασία απαιτεί οικονομική χρήση των πόρων της μηχανής. Πρέπει να κατανοήσετε έναν τέτοιο κώδικα.

Η εκμάθηση του LISP είναι πολύτιμη για έναν άλλο λόγο - θα αποκτήσετε βαθιά γνώση μαθαίνοντας αυτή τη γλώσσα μέχρι το τέλος. Αυτή η γνώση θα σας κάνει έναν εξαιρετικό προγραμματιστή για το υπόλοιπο της ζωής σας, ακόμα κι αν δεν χρησιμοποιείτε ποτέ πραγματικά το ίδιο το LISP. (Οι αρχικές δεξιότητες προγραμματισμού LISP μπορούν να αποκτηθούν πολύ εύκολα δημιουργώντας και τροποποιώντας επεκτάσεις στον επεξεργαστή κειμένου Emacs ή δημιουργώντας πρόσθετα Script-Fu για το GIMP).

Στην πραγματικότητα, είναι καλύτερα να μάθετε και τα πέντε: Python, C/C++, Java, Perl και LISP. Εκτός από τις πιο σημαντικές γλώσσες hacking, επιδεικνύουν πολύ διαφορετικές προσεγγίσεις στον προγραμματισμό και καθεμία θα διδάξει πολύτιμες προσεγγίσεις.

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

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

Ο Peter Norvig, ένας από τους κορυφαίους χάκερ της Google και συν-συγγραφέας ενός δημοφιλούς εγχειριδίου για την τεχνητή νοημοσύνη (Artificial Intelligence), έγραψε ένα υπέροχο άρθρο με τίτλο Teach Yourself Programming in Ten Years. Αξίζει να δοθεί ιδιαίτερη προσοχή στη «συνταγή του για επιτυχημένο προγραμματισμό».

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

Μίλησα περισσότερα για αυτή τη διαδικασία στο How To Learn Hacking. Αυτό είναι ένα απλό σύνολο οδηγιών που δεν είναι εύκολο να ακολουθηθεί.

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

Τι γίνεται όμως με τη συμβουλή του Spolsky να μάθετε 1 γλώσσα το χρόνο για να αναπτύξετε τους ορίζοντές σας;

Μιχαήλ Φλένοφ

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

Ιγκόρ

Ερώτηση από τη σειρά "Τι να κάνεις για να γίνεις χάκερ"
Για να είστε χάκερ πρέπει:
1. Μάθετε τη γλώσσα assembly. Άλλες γλώσσες δεν χρειάζονται, το κύριο πράγμα είναι να γνωρίζετε assembler.
2. Φορέστε ένα πουλόβερ και αφήστε γένια. Δεν πειράζει που είσαι κορίτσι.
3. Εγκαταστήστε το Linux. Δεν έχει σημασία γιατί. Κάθε χάκερ πρέπει να έχει Linux.
Κατ' αρχήν, η λίστα μπορεί να συνεχιστεί επ' αόριστον. Ένας χάκερ είναι πρώτα και κύρια ένας ειδικός και όχι ένα αντίγραφο κλισέ από ταινίες και εφημερίδες. Επιτύχετε σε έναν τομέα και θα είστε ευχαριστημένοι :).

Ζένια

Νομίζω ότι οι αλγόριθμοι πρέπει να γίνονται κατανοητοί, όχι να απομνημονεύονται. Όσο για τη γλώσσα, μπορείτε να διαβάσετε ένα βιβλίο σε 1 γλώσσα το χρόνο, απλά για να έχετε μια ιδέα για τις δυνατότητές της. Και στη συνέχεια, αν χρειαστεί, χρησιμοποιήστε το

Σεργκέι

Υπάρχουν γλώσσες στις οποίες μπορείτε να γράψετε «ό,τι χρειάζομαι», όπως το έθεσε ο Μιχαήλ. Και υπάρχουν γλώσσες στις οποίες μπορείτε να γράψετε οτιδήποτε καταρχήν. Ο δεύτερος τύπος, νομίζω, περιλαμβάνει assembler, C και C++. Τα υπόλοιπα είναι είτε για εξαιρετικά εξειδικευμένες εργασίες (php κ.λπ.), είτε είναι κατώτερα από αυτά σε ταχύτητα (c#, java κ.λπ.). Τι να επιλέξει, ο καθένας αποφασίζει μόνος του, λόγω των καθηκόντων του. Όλοι πρέπει να εξοικειωθούν με τις μαθηματικές αρχές του προγραμματισμού - αυτά είναι τα βασικά.

klamm

Τώρα, τι γίνεται με την Python)

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

Και όλα όσα δεν μπορούν να γραφτούν σε Python γράφονται σε C και καλούνται από ένα πρόγραμμα Python.

klamm

Σχετικά με το πώς να γίνετε χάκερ,

catb. org/~esr/faqs/hacker-howto. html

αλεξ

Ένας χάκερ (από το αγγλικό hack - to cut) είναι ένας εξαιρετικά καταρτισμένος ειδικός πληροφορικής, ένα άτομο που κατανοεί τα ίδια τα βάθη της εργασίας των συστημάτων υπολογιστών.
Πρόσφατα, η έννοια του χάκερ έχει ισοπεδωθεί σχεδόν στην έννοια του προχωρημένου χρήστη. Κατά τη γνώμη μου, ένας χάκερ είναι ένα άτομο που γνωρίζει πολύ καλά το assembler και το C και είναι σε θέση να γράψει, αν όχι λειτουργικό σύστημα, τότε μια αλγοριθμική γλώσσα, κάτι που έκανε με διαφορετική επιτυχία κατά τη διάρκεια των σπουδών του στο ινστιτούτο. Ένας χάκερ που ξέρει μόνο php ή html ακούγεται γελοίος.

Νίκος

2alex, νομίζω ότι αν ξέρεις PHP, ξέρεις πραγματικά PHP, τότε επιπλέον θα μάθεις με κάποιο τρόπο js, για να μην αναφέρω πώς να σπάσεις και να παρακάμψεις την ασφάλεια ιστότοπου...

Ancort

ASM, C++ και Lisp (κάπως ξέχασαν) - αυτές είναι γλώσσες "hacker", IMHO

Βλαδίμηρος

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

Ruslan Dauthadzhiev

Υπάρχει άλλη συζήτηση για το ποια γλώσσα είναι πιο cool;; Μια αιώνια συζήτηση για αυτό το θέμα. Όσον αφορά την Python, είναι μια γλώσσα καθαρά scripting για πλατφόρμες για κινητές συσκευές και το διαδίκτυο. Υποστηρίζει δημιουργούς GUI τρίτων, όπως το QT. Δεν βλέπω κάποια ιδιαίτερη ψυχραιμία σε αυτή τη γλώσσα. Μπορείτε να προγραμματίσετε τέλεια ακόμη και στο QBasic - όλα εξαρτώνται από τη φαντασία και την εμπειρία του προγραμματιστή. Το ότι μια γλώσσα είναι ξεπερασμένη δεν σημαίνει ότι είναι "νεκρή".

Ruslan Dauthadzhiev

Alex, στις μέρες μας οι προγραμματιστές είναι άνθρωποι που μπορούν απλά να εργαστούν στο MS Word :). Τι θέλετε; Έτσι ώστε ένα άτομο να γεννιέται αμέσως με την ευκαιρία να γράψει το δικό του λειτουργικό σύστημα; Όλοι ξεκινούν από μικρά. Όλα εξαρτώνται από την επιθυμία ενός ατόμου να μάθει και να μάθει κάτι νέο.

Καταλαβαίνουμε ήδη ότι είσαι «Χάκερ» και έγραψες τη δική σου γλώσσα στο πανεπιστήμιο. Σας ευχαριστώ..



Συνιστούμε να διαβάσετε

Κορυφή