Προς το περιεχόμενο

Με ποια γλώσσα προγραμματισμού να συνεχίσω...


rafail1994

Προτεινόμενες αναρτήσεις

Δημοσ.

Μάθε μια εμπορική γλώσσα. Java , .ΝΕΤ C# you name it. Μην μάθεις καμιά δεκαριά . Ειδικά αν πεις οτι μαθαίνεις Java ξέχνα οποιαδήποτε άλλη. Θα αναλώσεις χρόνο και θα κουραστείς χωρίς λόγο. Αν μάθεις να προγραμματίζεις με μια γλώσσα θα μπορέσεις να προγραμματισεις με οποιαδήποτε σου τύχει σε συντομο χρονικό διάστημα και όταν θα σου ζητηθεί. Όσο και να κάτσεις και ασχοληθείς ΄σπίτι δεν πρόκειται να δεις project στην κλίμακα που θα δεις εξω. Τεράστια project δηλαδή . Να δεις και να εντοπίσεις προβλήματα να βρεις workaround να δεις πως οι αναλυτές προσεγγίζουν μεγάλα έργα όσον αφορά την υλοποίηση τους. Αυτά θα τριφτείς και θα τα δεις. Για την πλάκα σου κάτσε μάθε αλλά να ξέρεις ότι πραγματικά θα μάθεις όταν θα βγεις για δουλειά.

 

Όσον αφορά το οικονομικό να ξέρεις ότι τα λεφτά δεν τα έχει ο μάυρος οικοδόμος που προγραμματίζει. Περισσότερα θα πάρει αυτός που ξέρει προιόν. Και για αυτό σου λέω. Μην δώσεις τρελή έμφαση να γίνεις κάνας guru code monkey. Δεν θα βγάλεις περισσότερα φτιάχνοντας ιστοσελίδες και παίζοντας .net και java(λίγο καλύτερα εδώ) στα δάχτυλα΄αλλα γνωρίζοντας πως να παραμετροποιήσεις ένα ERP ένα CRM ένα Banking Software αλλά και φυσικά πως να κάνεις Integration ενός Business Iintelligence σε μια επιχείρηση κτλ κτλ . Ο προγραμματισμός είναι η βάση . Προσπάθησε να ξεφύγεις όσο το δυνατόν επαγγελματικά.

 

ΥΓ. Πάντα σύμφωνα με τα Ελληνικά δεδομένα. Καλύτερα SAP Expert παρά Senior .net Developer. Γνώμη μου.

  • Απαντ. 47
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

Θα συμφωνήσω μαζί σου .

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

Δημοσ.

[snip]

Για την ώρα ποιο πολύ λέω για προγράμματα σε windows/linux/mobile .Άλλα μπορεί στο μέλλον(θα ήθελα αρκετά ) να ασχοληθώ και με embedded/system κτλ

[snip]

 

[snip]

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

[snip]

 

Αυτά τα 2 quotes δεν συμβαδίζουν. Ειδικά για embedded/system οι C και C++ είναι οι προφανείς (και ιδανικές) επιλογές.

Δημοσ.

Πολύ σωστή παρατήρηση migf1 αν και από οτι βλέπω η ναυαρχίδα του embedded/system είναι η c++ μπορείς να κανείς τα πάντα.

Σιγά σιγά θα ξεκινήσω και την C++

Δημοσ.

Πολύ σωστή παρατήρηση migf1 αν και από οτι βλέπω η ναυαρχίδα του embedded/system είναι η c++ μπορείς να κανείς τα πάντα.

[snip]

Ναυαρχίδα; Και ναι και όχι, κοντράρεται στα ίσια με τη C σε χρήση. Όσο πιο περιορισμένοι οι πόροι τόσο περισσότερη η χρήση της C.

Δημοσ.

Αυτά τα 2 quotes δεν συμβαδίζουν. Ειδικά για embedded/system οι C και C++ είναι οι προφανείς (και ιδανικές) επιλογές.

 

Όλη η απάντηση μου πήγαινε στο ακόλουθο απο το αρχικό post

 

Όσον αναφορά τον προγραμματισμό θέλω να το συνεχίσω και επαγγελματικά οπότε καλυτέρα θα είναι να έχω γνώσεις πάνω σε μια γλώσσα προγραμματισμού που θα χρειαστώ και στο μέλλον ώστε να βοηθηθώ άλλα και να είμαι ποιο άνετος .Από τα σεμινάρια της Microsoft βλέπω ότι έχει αρχίσει και επεκτείνεται αρκετά η c sharp οπότε προς τα εκεί κλείνω ποιο πολύ άλλα θέλω και την δική σας άποψη .

 

 

Η Java αναφέρθηκε ως προς ένδειξη μεγέθους και απαιτεί πολύ χρόνο ώστε να ασχοληθεί κάποιος παράλληλα και με άλλες γλώσσες.

Δημοσ.

Και σε αυτή την περίπτωση, η C++ είναι πιο σφαιρική από τη Java και ως γλώσσα και ως χρήση και ως εφόδιο (αν και θα πρέπει να μάθει και Java).

Δημοσ.

Για την ώρα ποιο πολύ λέω για προγράμματα σε windows/linux/mobile .Άλλα μπορεί στο μέλλον(θα ήθελα αρκετά ) να ασχοληθώ και με embedded/system κτλ

 

Όλα αυτά που αναφέρεις είναι διαφορετικά πράγματα, για παράδειγμα:

 

* Για desktop (windows) πρώτη επιλογή C# ή VB (μπλιαχ)

* Για linux, C++/qt (δεν έχω μεγάλη εμπειρία στο θέμα, διορθώσεις δεκτές)

* Για mobile κάθε πλατφόρμα έχει διαφορετικό toolset

* Για system, C/C++

* Για embedded, μάλλον C

 

Οπότε πρέπει να τα ξεχωρίσεις πρώτα στο μυαλό σου και να βάλεις στόχο. Όλα μαζί δε γίνονται.

 

 

Δεν είναι καλύτερο να μάθεις 1-2 γλώσσες πολύ καλά, από το λίγο απ'όλα? (Δεν ψωνίζεις στη λαική)

 

Συμφωνώ όσο δεν πάει μ' αυτή την απάντηση. Προσωπική μου πρόταση, ξεκίνα με C# αλλά ξεχώρισε στο μυαλό σου τι είναι κομμάτι της γλώσσας vs τι είναι κομμάτι του framework. Το framework είναι που κάνει τη C# τόσο ελκυστική, αλλά προγραμματισμό δε μαθαίνεις με το να κάνεις copy/paste τα examples του MSDN και του κάθε blogger.

 

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

 

Δε νομίζω πως υπάρχει κανένας σ' αυτό το forum που ξέρει καλή C++ (πόσο μάλλον πολύ καλή). Αμφιβάλλω αν υπάρχει κανείς που έχει έστω αντίγραφο π.χ. του ISO/IEC 14882:2003 στον υπολογιστή του. Για να μην παρεξηγούμαι, το να γράψεις π.χ. ένα multithreaded web server για μένα σημαίνει ότι έχεις μια σφαιρική γνώση της γλώσσας και ξέρεις 5-10-15 πράγματα από προγραμματισμό. Αλλά αυτό δε σε κάνει guru της c++.

Δημοσ.

[snip]

Δε νομίζω πως υπάρχει κανένας σ' αυτό το forum που ξέρει καλή C++ (πόσο μάλλον πολύ καλή). Αμφιβάλλω αν υπάρχει κανείς που έχει έστω αντίγραφο π.χ. του ISO/IEC 14882:2003 στον υπολογιστή του. Για να μην παρεξηγούμαι, το να γράψεις π.χ. ένα multithreaded web server για μένα σημαίνει ότι έχεις μια σφαιρική γνώση της γλώσσας και ξέρεις 5-10-15 πράγματα από προγραμματισμό. Αλλά αυτό δε σε κάνει guru της c++.

Αν είναι εξοικειωμένος και νιώθει άνετα με references & pointers, data structures & templates, και τα βασικά του OOP (classes, encapsulation, inheritance, message passing, κλπ) τότε ξέρει καλή C++... δεν χρειάζεται να παίζει και στα δάχτυλα τον πολυμορφισμό... ούτε χρειάζεται να είναι γκουρού.

 

Να πάρει βάσεις είπαμε, όχι να γίνει γκουρού.

Δημοσ.

Αν είναι εξοικειωμένος και νιώθει άνετα με references & pointers, data structures & templates, και τα βασικά του OOP (classes, encapsulation, inheritance, message passing, κλπ) τότε ξέρει καλή C++... δεν χρειάζεται να παίζει και στα δάχτυλα τον πολυμορφισμό... ούτε χρειάζεται να είναι γκουρού.

 

Να πάρει βάσεις είπαμε, όχι να γίνει γκουρού.

 

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

Δημοσ.

 

 

Δε νομίζω πως υπάρχει κανένας σ' αυτό το forum που ξέρει καλή C++ (πόσο μάλλον πολύ καλή). Αμφιβάλλω αν υπάρχει κανείς που έχει έστω αντίγραφο π.χ. του ISO/IEC 14882:2003 στον υπολογιστή του. Για να μην παρεξηγούμαι, το να γράψεις π.χ. ένα multithreaded web server για μένα σημαίνει ότι έχεις μια σφαιρική γνώση της γλώσσας και ξέρεις 5-10-15 πράγματα από προγραμματισμό. Αλλά αυτό δε σε κάνει guru της c++.

 

 

Η C++ φαινεται πολυπλοκη αλλα δεν ειναι. Αυτο γιατι (imo) οταν καποιος μαθαινει αυτη τη γλωσσα, την μαθαινει με ενα πολυ (υπερβολικα πολυ) μικρο api/freamwork/toolkit που περιοριζεται μονο σε ios_base και τα παιδακια της.

 

ΥΓ: για μενα παντος το να γραψεις εναν multitherded web server σημενει οτι εχεις παρωπιδες απο τη στιγμη που ολα τα συγχρονα Λ/Σ εχουν asynchronous socket σε OS layer

Δημοσ.

Η C++ φαινεται πολυπλοκη αλλα δεν ειναι. Αυτο γιατι (imo) οταν καποιος μαθαινει αυτη τη γλωσσα, την μαθαινει με ενα πολυ (υπερβολικα πολυ) μικρο api/freamwork/toolkit που περιοριζεται μονο σε ios_base και τα παιδακια της.

 

ΥΓ: για μενα παντος το να γραψεις εναν multitherded web server σημενει οτι εχεις παρωπιδες απο τη στιγμη που ολα τα συγχρονα Λ/Σ εχουν asynchronous socket σε OS layer

 

Ε ναι, άμα μάθεις σε κάποιον μόνο τι είναι int και τι είναι printf, όντως δεν το λες πολύπλοκο. Αλλά επίσης δεν το λες και C++.

 

Έτσι για το χαβαλέ, ρώτα μερικούς γνωστούς σου να σου πούν τι δηλώνει το

 

>int (*(*foo)(void ))[3]

 

και μετά μπορεί να θέλεις να αναθεωρήσεις.

 

Όσο για το multithreaded, υποθέτεις από μόνος σου ότι μιλάω για ένα "server" thread/request. Δεν εννοούσα αυτό, αλλά απλά το ότι η εφαρμογή θα έχει παραπάνω από 1 thread (για προφανείς λόγους), επομένως θα χρειαστεί να χρησιμοποιηθούν sync primitives κλπ. Στην πράξη μιλώντας για σοβαρό server μιλάμε για κάποιου είδους thread pool, είτε manually είτε αυτόματα διαχειριζόμενου (έχω σχετική εμπειρία μόνο σε Windows, οπότε θα σε παραπέμψω σε I/O completion ports).

Δημοσ.

[snip]

 

Έτσι για το χαβαλέ, ρώτα μερικούς γνωστούς σου να σου πούν τι δηλώνει το

 

>int (*(*foo)(void ))[3]

 

και μετά μπορεί να θέλεις να αναθεωρήσεις.

[snip]

Λύσσα το έκανες :lol:

 

Εντάξει ρε συ, είπαμε όχι κι έτσι. Το παραπάνω είναι καθαρά "σαδιστικό" και είναι περισσότερο αχρείαστη επίδειξη παρά χρήσιμο ή χρησιμοποιούμενο. Προσωπικά αν ήμουν project leader και μου έφερνε κάποιος από το team μου τέτοιου είδους κώδικα, στην καλύτερη θα τον έβαζα να τα ξαναγράψει όλα από την αρχή και στη χειρότερη θα τον έβαζα πάνω-πάνω στη λίστα των "προς απόλυση" :lol:

 

Εμένα πάντως θα μου αρκούσε π.χ. να μπορεί κάποιος να καταλαβαίνει και να χρησιμοποιεί σωστά εκφράσεις όπως οι *p++ και *--p για να αποδεχτώ πως σκαμπάζει στοιχειωδώς από δείκτες.

Άντε, να μου γράψει κι ένα swap(void **x, void **y); :P

Δημοσ.

Άντε, να μου γράψει κι ένα swap(void **x, void **y); :P

 

Το καλό που του θέλω να γράψει template<typename T> swap(T **x, T**y) γιατί αλλιώς τον έχω απολύσει ήδη εγώ :P

Αρχειοθετημένο

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

  • Δημιουργία νέου...