25+ (δωρεάν) πηγές για να μάθεις Προγραμματισμό, Πληροφορική και Software Development

🤙 Σαν το newsletter... δεν έχει!

Το άρθρο αυτό είναι ένα μικρό κομμάτι από την Checklist, ένα newsletter που βάζει τα πράγματα σε μια σειρά.

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

Θέλεις να μάθεις προγραμματισμό, software development και γενικότερα γνώσεις από τον τομέα της Πληροφορικής;

Ευτυχώς, η Πληροφορική αποτελεί έναν από τους καταλληλότερους τομείς για self-learning μέσω του ίντερνετ. Στην τελική, έτσι μαθαίναμε μια ζωή όλοι οι επαγγελματίες του χώρου.

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

Όλες οι παρακάτω πηγές, είναι χωρισμένες ανά υποκατηγορία, αφού οι τομείς της Πληροφορικής και τον τεχνολογιών είναι πολύ ευρείς.

Γενικά και εισαγωγικά θέματα

Harvard’s CS50’s Introduction to Computer Sciencehttps://www.edx.org/course/cs50s-introduction-to-computer-scienceΚλασσικό, υπερ-βασικό μάθημα, που καλύπτει πραγματικά τα πάντα που χρειάζεται κανείς που ξεκινάει στον τομέα. Από το Harvard και δωρέαν.
Build a Modern Computer from First Principles: From Nand to Tetrishttps://www.coursera.org/learn/build-a-computerTo Nand to Tetris είναι ένας από τους καλύτερους τρόπους για να μάθει κανείς πραγματικά το πως δουλεύει ένας υπολογιστής από την απόλυτή του βάση, μέχρι τη δημιουργία ενός (απλού) προγράμματος.
Introduction to Linuxhttps://www.edx.org/course/introduction-to-linuxΤο Linux είναι ένα λειτουργικό σύστημα πάνω στο οποίο “τρέχουν” πολλές τεχνολογίες του σήμερα. Αποτελεί βασικό skill, αφού είναι ένα UNIX-like λειτουργικό σύστημα, διαφορετικό από τα Windows που ξέρουν οι περισσότεροι.
Introduction to Computer Science using Javahttps://chortle.ccsu.edu/java5/index.htmlΈνα μάθημα που διδάσκει ταυτόχρονα το πως δουλεύει ο υπολογιστής (θεωρητικά), μαζί με Java, δηλαδή μια κλασσική γλώσσα Αντικειμενοστρεφούς Προγραμματισμού. Δύο σε ένα, νοικοκυρεμένα!

Προγραμματισμός (Software Development)

Ο προγραμματισμός αποτελεί μια πολύ πρακτική εφαρμογή της επιστήμης. Είναι αυτό που καταλαβαίνουν οι περισσότεροι, όταν ακούν “Πληροφορική”. Και πράγματι, αποτελεί, ίσως, το πιο εύκολα επαγγελματικά αξιοποιήσιμο skill, αφού είναι ο τρόπος με τον οποίο “δαμάζουμε” τους υπολογιστές.

Codeacademyhttps://codeacademy.comΠολλά beginner-friendly μαθήματα για προγραμματισμό και web development. Σίγουρα ένα καλό σημείο για να αρχίσει κανείς, ειδικά με τα μαθήματα για Javascript και Python.
FreeCodeCamphttps://www.freecodecamp.org/learnΠάνω από 6000 tutorials για web development, machine learning κ.α.
Code.org Learnhttps://code.org/learnΈνας οργανισμός με σκοπό να διδάξει προγραμματισμό (κυρίως) στις μικρές ηλικίες. Περιέχει, όμως, πολύ ενδιαφέροντα μικρά project για να μάθεις φτιάχνοντας.
LearnCode Academy (YouTube channel)https://www.youtube.com/c/learncodeacademy/videosΔιάφορα βίντεο-οδηγοί για μια σειρά από μοντέρνες τεχνολογίες και frameworks.
Google Android Development Guidehttps://developer.android.com/guideΟ επίσημος οδηγός από τη Google για το πως να αναπτύξετε εφαρμογές για Android κινητά. Σίγουρα θα πρέπει να έχετε ήδη μια βασική γνώση προγραμματισμού σε Java (ή Kotlin).
Eloquent Javascript (online book)https://eloquentjavascript.net/Ολόκληρο βιβλίο, σε μορφή site, που εξηγεί τα πάντα για την Javascript.
Mozilla JavaScript Guidehttps://developer.mozilla.org/en-US/docs/Web/JavaScript/GuideΑς πούμε, το βασικό reference σχετικά με Javascript.
Learn to Program (in Ruby)https://pine.fm/LearnToProgram/Ένα μάθημα που διδάσκει προγραμματισμό από το μηδέν. Ιδανικό για όσους ξεκινάνε τώρα και με μια σχετικά εύκολη γλώσσα, τη Ruby.
John Hopkins University Data Science Specializationhttps://www.coursera.org/specializations/jhu-data-scienceΗ μοδάτη Data Science δεν είναι παρά εφαρμοσμένη στατιστική. Εδώ θα μάθετε να χειρίζεστε δεδομένα με τη χρήση της R.
Stanford: Machine Learninghttps://www.coursera.org/learn/machine-learningΆλλη μοδάτη έννοια, το Machine Learning. Σε αυτό το μάθημα θα ξεκινήσετε από τα βασικά και θα φτάσετε μέχρι την ανάλυση ενός απλού προγράμματος αναγνώρισης αντικειμένων και χαρακτήρων.

Web Development

Το Web Development εξακολουθεί να είναι Software Development, αλλά αφορά κάτι τόσο συγκεκριμένο που συνήθως αναφερόμαστε σε αυτό ξεχωριστά.

Αφορά όλα όσα έχουν να κάνουν με software που δουλεύει στους browsers, ή που υποστηρίζει αυτά που καταλήγουν στους browser μας – άρα σχεδόν τα πάντα.

Μαθαίνοντας web development θα μπορείς να φτιάξεις από απλά site, μέχρι περίπλοκες online υπηρεσίες.

w3schools – Web Developmenthttps://www.w3schools.com/whatis/Ένα overview των απολύτων βασικών περί του “τι είναι το web development”. Καλό είναι να ξέρεις τις βασικές έννοιες από εδώ, πριν προχωρήσεις.
The Odin Projecthttps://www.theodinproject.com/homeΠάρα πολύ καλό site με μια σειρά μαθημάτων για το web development, που ξεκινάει από τα απολύτως βασικά.
HTMLDoghttps://www.htmldog.com/ Η HTML δεν είναι προγραμματισμός, αλλά είναι ο βασικός τρόπος με τον οποίο “δείχνουμε” τις σελίδες του internet. Σίγουρα, αποτελεί από τα πιο εύκολα πράγματα για μια αρχή στο web development, και είναι απόλυτα βασικό.
Ruby on Rails Tutorialhttps://www.railstutorial.org/bookΗ Ruby-on-Rails είναι ένα framework, μια “βάση” ας πούμε, για να φτιάχνουμε web εφαρμογές με τη γλώσσα Ruby. Αυτό το web βιβλίο εξηγεί τα πάντα.
Learn NodeJShttps://nodejs.dev/learnΤο NodeJS είναι ένας τρόπος για να προγραμματίσει κανείς τους server (το “backend” κομμάτι των web εφαρμογών) με Javascript, που είναι μια πολύ προσβάσιμη γλώσσα. Αποτελεί ένα skill σε πολύ μεγάλη ζήτηση στην αγορά εργασίας.
Learn to Code HTML & CSShttps://learn.shayhowe.com/html-css/Μάθετε τα βασικά στοιχεία ενός website, που είναι η HTML και η CSS. Καλό σημείο για αρχάριους – αλλά, θυμίζω, δεν είναι κανονικός προγραμματισμός.
Learn .NET (Official Microsoft Resources)https://dotnet.microsoft.com/learnΤο .Net είναι ένα εξαιρετικό framework φτιαγμένο από τη Microsoft, πάνω στο οποίο μπορούν να φτιαχτούν τα πάντα: Site, web apps, εφαρμογές υπολογιστή, APIs.

Άλλα εργαλεία του τομέα

Μερικά ακόμη σημαντικά εργαλεία και τεχνολογίες, που θα πρέπει να ξέρει κανείς που ασχολείται με το software:

Select Start SQLhttps://selectstarsql.com/Η SQL είναι η κλασσικότερη τεχνολογία για Βάσεις Δεδομένων.
SQLBolthttps://sqlbolt.com/
GitHub Git Handbookhttps://guides.github.com/introduction/git-handbook/Το Git είναι το απόλυτο εργαλείο του τομέα για, ας πούμε, ένα συνεχές backup όλων των αλλαγών στα έγγραφα και τον κώδικα, αλλά και για εύκολη συνεργασία μεταξύ πολλών προγραμματιστών. Αποτελεί βασικό skill.
Pro Git (Free ebook)https://git-scm.com/book/en/v2Βιβλίο “βίβλος” για το Git.
Standford’s Introduction to Computer Networking (video lectures)https://www.youtube.com/playlist?list=PLvFG2xYBrYAQCyz4Wx3NPoYJOFjvU7g2ZΜάθε για τα Δίκτυα. Πιστέψτε με, πολύ βαθύς τομέας.
MIT – Artificial Intelligence (video lectures)https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-034-artificial-intelligence-fall-2010/lecture-videos/Ποιός θέλει λίγη Τεχνητή Νοημοσύνη, χωρίς το hype; Το μάθημα του MIT θα εξηγήσει την επιστήμη πίσω από τη “μαύρη μαγεία”.

Αλγόριθμοι

“Αλγόριθμοι” σημαίνει “τρόποι με τους οποίους λύνουμε προβλήματα στην Πληροφορική”. Είναι ότι πιο σημαντικό, αφού διδάσκουν τον τρόπο σκέψης που χρειαζόμαστε.

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

Και μην ξεχνάτε: οι αλγόριθμοι και ο προγραμματισμός δεν μαθαίνονται διαβάζοντάς τους, αλλά χρησιμοποιώντας τους, με εξάσκηση,

Leetcodehttps://leetcode.com/Μια πλατφόρμα γεμάτη με αλγοριθμικά προβλήματα, όπου “ανταγωνίζεσαι” ανθρώπους από όλον τον κόσμο για το ποιός μπορεί να τα λύσει καλύτερα ή γρηγορότερα. Σαν ένα μεγάλο, ανταγωνιστικό παιχνίδι.
Hackerrankhttps://www.hackerrank.com/Εναλλακτική competitive programming πλατφόρμα, όπως η προηγούμενη.
CSE373 (Analysis of Algorithms) course taught by Professor Steven Skienahttps://www.youtube.com/watch?v=A2bFN3MyNDA&list=PLOtl7M3yp-DX32N0fVIyvn7ipWKNGmwppΘεωρείται ένα από τα καλύτερα πανεπιστημιακά μαθήματα Αλγορίθμων στον κόσμο, από τον Steven Skiena.
Tutorials Point Data Structures and Algorithm Basicshttps://www.tutorialspoint.com/data_structures_algorithms/index.htmΟι Δομές Δεδομένων, πάνε πακέτο με τους Αλγορίθμους. Έχουν να κάνουν με το τι μορφή πρέπει να έχουν τα δεδομένα για να τα χειριστούμε αποδοτικά.

Και για τις υπόλοιπες πηγές που περιλαμβάνουν μουσική, φωτογραφία, μαθηματικά, επενδύσεις και άλλα, ρίξε μια ματιά στο κεντρικό άρθρο για το πως να μάθεις νέα skills online:

👉 Θέλεις περισσότερα άρθρα σαν κι αυτό;

Γράψου στην Checklist για να έρχεται ένα νέο άρθρο κάθε δύο εβδομάδες κατευθείαν στο email σου.