Fury Road: The Billing Developer's Journey

Ο διευθυντής μιας εταιρείας ανάπτυξης τιμολόγησης έχει δύο τρόπους για να δημιουργήσει μια ομάδα. Το πρώτο είναι να στρατολογούνται έτοιμοι «πρεσβύτεροι» και να δημιουργούνται συνεχώς τέτοιες συνθήκες εργασίας ώστε να χρησιμοποιούν τις δεξιότητες και την εμπειρία τους στο μέγιστο, να αναπτύσσονται και ταυτόχρονα να μην μπαίνουν σε καβγάδες. Το δεύτερο είναι να δημιουργήσετε μια ομάδα από ένα μείγμα νεοφερμένων, μεσαίων και επαγγελματιών, ώστε να επικοινωνούν, να επηρεάζουν ο ένας τον άλλον, να μαθαίνουν και να αναπτύσσονται μέσα στην εταιρεία. Είμαι εναντίον του φαύλου κύκλου a la "χωρίς εμπειρία - καμία εργασία - καμία εμπειρία" και δεν βλέπω πρόβλημα στην πρόσληψη ενός αρχάριου προγραμματιστή. Η Forward Telecom έχει εδώ και καιρό ένα πρόγραμμα πρακτικής άσκησης, το οποίο έχει γίνει εφαλτήριο σταδιοδρομίας για πολλούς σημερινούς υπαλλήλους.

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

1. Μάθετε μια γλώσσα προγραμματισμού

Για αρχή, οποιοσδήποτε. Η προτεραιότητα είναι η Java, η Python και η JavaScript, αλλά τα Ruby, Go, C, C++ είναι κατάλληλα για την απόκτηση βασικών γνώσεων. Πώς να διδάξετε; Παρακολουθήστε μαθήματα επί πληρωμή και δωρεάν· μπορώ να προτείνω εκπαίδευση από το Golang. Εάν το επίπεδό σας στα αγγλικά σας επιτρέπει, η παρακολούθηση ξένων βίντεο είναι μια καλή πρόσθετη δεξιότητα.

Fury Road: The Billing Developer's Journey

2. Κατανοήστε τις έννοιες του ΛΣ

Τα λειτουργικά συστήματα βασίζονται σε επτά στοιχεία που πρέπει να γνωρίζετε και να μπορείτε να εξηγήσετε την αρχή λειτουργίας:

  • Διαχείριση της διαδικασίας;
  • Νήματα και κώδικας πολλαπλών νημάτων.
  • Υποδοχή (διεπαφή λογισμικού);
  • I/O αποστολή?
  • Εικονικοποίηση;
  • Αποθήκευση;
  • Συστήματα αρχείων.

Συνιστώ να παρακολουθήσετε ένα βασικό μάθημα διαχείρισης Linux. Τα δεύτερα λειτουργικά συστήματα στη σειρά είναι τα Windows και το Unix.

3. Συνηθίστε το τερματικό

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

  • Κοχύλια Bash και KornShell.
  • Εντολές find, grep, awk, sed, lsof;
  • Εντολές δικτύου nslookup και netstat.

Fury Road: The Billing Developer's Journey

4. Δίκτυο και ασφάλεια

Η χρέωση σχετίζεται στενά με τις απαιτήσεις προστασίας δικτύου και δεδομένων. Δεν μπορείτε να γράψετε διαδικτυακές υπηρεσίες χωρίς να κατανοήσετε πώς λειτουργεί το δίκτυο, επομένως πρέπει να μάθετε τις βασικές έννοιες και τα πρωτόκολλα: DNS, μοντέλο OSI, HTTP, HTTPS, FTP, SSL, TLS. Στη συνέχεια, όταν αντιμετωπίσετε ένα σφάλμα Connection Refused, θα ξέρετε τι να κάνετε.

5. Διακομιστές

Αφού μελετήσετε τις αρχές της μετάδοσης πληροφοριών στο δίκτυο, μπορείτε να ξεκινήσετε τα βασικά της λειτουργίας διακομιστή. Ξεκινήστε με διακομιστές ιστού: IIS, Apache, Nginx, Caddy και Tomcat.

Πιο κάτω η λίστα:

  • Αντίστροφος διακομιστής μεσολάβησης.
  • Ανώνυμος πληρεξούσιος?
  • Προσωρινή αποθήκευση;
  • Εξισορρόπηση φορτίου;
  • Τείχος προστασίας.

6. Μάθετε την υποδομή ως κώδικα

Πιστεύω ότι αυτό το στάδιο είναι ένα από τα πιο σημαντικά. Θα πρέπει να κατανοήσετε τρία γενικά θέματα:

  • Εμπορευματοκιβώτια: Docker και Kubernetes
  • Εργαλεία διαχείρισης διαμόρφωσης: Ansible, Chef, Salt και Puppet
  • Backup: Terraform, clouds.

7. Μάθετε CI/CD

Μια άλλη χρήσιμη ικανότητα για έναν προγραμματιστή τιμολόγησης είναι να μπορεί να δημιουργήσει έναν αγωγό για συνεχή ενοποίηση και παράδοση. Στην περιοχή CI/CD υπάρχουν εργαλεία όπως τα Jenkins, TeamCity, Drone, Circle CI και άλλα. Spoiler: η εκμάθηση των ευρέως χρησιμοποιούμενων Jenkins θα είναι αρκετή στην αρχή.

8. Έλεγχος λογισμικού και υποδομής

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

  • Παρακολούθηση υποδομής: Nagios, Icinga, Datadog, Zabbix, Monit.
  • Παρακολούθηση απόδοσης εφαρμογής: AppDynanic, New Relic.
  • LMS: ELK Stack, Graylog, Splunk, Papertrail.

9. Υπηρεσίες cloud

Στο εγγύς μέλλον, κάθε εφαρμογή ή λογισμικό θα έχει ένα αντίστοιχο στο cloud. Αργά ή γρήγορα, οι προγραμματιστές συναντούν το cloud, επομένως διαβάστε τους δημοφιλείς παρόχους cloud (AWS, Google Cloud και Azure) και τα βασικά της τεχνολογίας.

10. Εργασία με τη βάση δεδομένων

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

11. Βελτιώστε τις soft skills σας

Ένα απροσδόκητα εκτός συνηθισμένο σημείο, αλλά όχι λιγότερο σημαντικό. Αρχικά, να είστε υπομονετικοί. Συνηθίζετε γρήγορα σε καταστάσεις όπως «διορθώστε το σίδερο σας, είστε προγραμματιστής», αλλά πρέπει να είστε διανοητικά προετοιμασμένοι για τις προθεσμίες για την έναρξη νέων έργων. Εάν είστε από το μηδέν έως ένα έτος στον προγραμματισμό και θεωρείστε Junior, προετοιμαστείτε για κριτική και μάθετε να τη δέχεστε, η αναθεώρηση κώδικα από έναν μέντορα είναι συχνά μια επίπονη διαδικασία. Αλλά ταυτόχρονα, μια υποχρεωτική ικανότητα είναι η ικανότητα να υπερασπίζεται την άποψή του και να επιχειρηματολογεί εποικοδομητικά· μερικές φορές η αλήθεια γεννιέται σε ένα επιχείρημα. Οι προγραμματιστές δεν σταματούν ποτέ να μαθαίνουν, πρακτικά δεν υπάρχει ανώτατο όριο στο επάγγελμα, επομένως η μαθησιακή ικανότητα και η ΕΠΙΘΥΜΙΑ να μάθετε νέα πράγματα είναι η βάση της εξέλιξής σας.

Fury Road: The Billing Developer's Journey

Συχνά με ρωτούν πότε ένας αρχάριος φτάνει στο μεσαίο επίπεδο και πότε μπορεί περήφανα να αποκαλείται «πρεσβύτερος». Πιστεύω ότι η στιγμή της μετάβασης από επίπεδο σε επίπεδο δεν καθορίζεται από τον αριθμό των ετών εργασίας, αν και οι πρακτικές δεξιότητες αποτελούν βασικό κριτήριο. Είναι ακριβώς soft skills που συχνά καθορίζουν την ταχύτητα της ανάπτυξης ενός προγραμματιστή: ένας εκπαιδευμένος και εργατικός αρχάριος μπορεί να γράψει κώδικα υψηλής ποιότητας σε πολλές γλώσσες και να μπορεί να εργαστεί σε μια ομάδα σε λίγους μόνο μήνες. Ένας προγραμματιστής με 10 χρόνια εμπειρίας μπορεί να μην είναι σε θέση να λύσει μη τυπικά προβλήματα, να διαχειριστεί μια ομάδα και να έχει μονόπλευρες δεξιότητες.

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο