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

περιεργος καθηγητής;


Dinos_12345

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

Κάνεις debug το πρώτο και το δεύτερο block.

Επίσης γράφεις unit tests και για τα 2.

Εκεί κατα 90% θα καταλάβεις τι είναι ποιο κατανοητό και τι όχι

 

Προσωπική άποψη

:) 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

Συχνή συμμετοχή στο θέμα

Σύμφωνα με τα επίσημα standards της IEEE, αυτό που αναφέρεις ως "Software Verification Engineer", είναι o "code reviewer" που είπα παραπάνω. Ο Q&A δε βλέπει κώδικα, είναι ο "πελάτης/χρήστης" της εφαρμογής που τη δουλεύει και αναφέρει προβλήματα.

 

Τίτλους μπορεί να δίνει ο καθένας κατά βούληση. Για αυτό υπάρχουν θεσμοθετημένα standards για να μιλάμε την ίδια γλώσσα. Τώρα, πολλές εταιρίες, για χάρη κόστους, μπορεί να μπλέκουν ρόλους, όπως πολύ συχνά engineers κάνουν code reviews στον κώδικα της υπόλοιπης ομάδας, ή έχω δει product owners να κάνουν Q&A, και πολλά άλλα παράδοξα.

 

Σίγουρα κάθε εταιρεία έχει τις δικές της ορολογίες ανεπίσημα για κάθε ρόλο... Επίσημα σε εμάς πχ. υπάρχει εντελώς ξεχωριστό τμήμα για Q&A, οπως επίσης υπάρχει κ nearshore ξεχωριστό τμήμα για V&V. Εγώ είμαι στο R&D.

 

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

Ο όρος tester είναι απλός κ κατανοητός γιαυτό ανεπίσημα έχει επικρατήσει. Όπως κ όρος developer έχει επικρατήσει για τους προγραμματιστές, άσχετα με ποιόν επίσημο τίτλο εργάζονται. 

 

Για το θέμα μας πάντως, έχω να πώ οτι το σημαντικότερο για εμένα προσωπικά είναι ο dev να έχει γράψει κατανοητά κ καλά comments. Τώρα ποιον απο τους πολλαπλούς τρόπους θα ακολουθήσει, δεν υπάρχει standar κανόνας.

Ανάλογα στην περίπτωση κ στην πολυπλοκότητα του κώδικα.   

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τουτοι θελουν τρολλαρισμα.

Αν γραψεις καμια εργασια που εχει το παραπανω, γραψτο ετσι

template <typename T, typename R>
bool exist(const T& what, const R& in)
{
	for (auto&& obj : in)
		if (obj == what)
			return true;
	return false;
}
  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τέτοια blanket statements χωρίς αιτιολόγηση είναι σούπερ ύποπτα. Γιατί θεωρείται καλή τακτική;

 

Νομίζω πως έχω ξαναγράψει σε κάποιο παρόμοιο θέμα για ποιούς λόγους πιστεύω ότι αυτό

for(...) {
    if(i == x) {
        // do something
    }
}

είναι χειρότερο από αυτό

for(...) {
    if(i != x) {
        continue;
    }
    // do something
}

εκτός κι αν το do something είναι μία-δυο γραμμές και το loop δεν έχει τίποτα άλλο μέσα.

 

Η αλήθεια είναι σε τέτοιες περιπτώσεις ( ένα μικρό if κι ένα τεράστιο else ) κι εγώ έτσι το κάνω για να αποφύγω τα αχρείαστα nests. Είναι και λίγο θέμα design της κάθε γλώσσας πχ εδώ μπορούσε κάλλιστα να γίνει με μια filter->foreach ή μια partial function.

 

Νομίζω γίνεται πιο ξεκάθαρο το πρόβλημα όταν το break είναι κάπου χωμένο στη μέση ενός μεγάλου block. Εκεί δεν είναι απαραίτητα πως το ίδιο το break είναι κακό ( όπως σε σαφώς μικρότερο βαθμό θα μπορούσε να πει κάποιος και για το goto ) απλά αν καταλήξεις πως χρειάζεται να γίνει έτσι μάλλον κάτι εχεις κάνει λάθος στο σχεδιασμό. Και τώρα που το σκέφτομαι και το παράδειγμα του TS θα μπορούσε να πέφτει σε αυτή τη περίπτωση ότι μπήκε flag ατί για απευθείας break δε σημαίνει και τίποτα.

 

Ειδικά θυμάμαι να βλέπω πολές φορές σε κώδικα τίποτα loops του στυλ while(true) {.... break; ....} γιατί βαριούνται να σκεφτούν πώς θα το στήσουν ώστε ο έλεγχος να πέφτει στην αρχή ή το τέλος και να μπορεί να κολλήσει στη συνθήκη.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ή ακόμα καλύτερα:

template <typename T>
bool exist(const T::value_type& what, const T& in)
{
    bool exists = false;

    for (auto&& obj : in) {
        if (obj == what) {
            exists = true;
            break;
        }
    }

    return exists;
}

:P

 

lol δε ξέρω καν αν δουλεύει το παραπάνω, έχω καιρό να ασχοληθώ με templates.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

Τουτοι θελουν τρολλαρισμα.

Αν γραψεις καμια εργασια που εχει το παραπανω, γραψτο ετσι

template <typename T, typename R>
bool exist(const T& what, const R& in)
{
	for (auto&& obj : in)
		if (obj == what)
			return true;
	return false;
}

Έκλαψα :lol:

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αγαπητοί συμφορουμίτες,

 

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

FYI υπάρχουν επιστήμονες-μύθοι στην επιστήμη των υπολογιστών-πληροφορικής, οι οποίοι δεν είχαν γράψει ούτε 1 γραμμή κώδικα.

 

*Ο κώδικας για τον επιστήμονα υπολογιστών είναι ότι το τηλεσκόπιο για τον αστροφυσικό (δε θυμάμαι σε ποιο βιβλίο το έχω διαβάσει αυτό για να δώσω τα credits)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αγαπητοί συμφορουμίτες,

 

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

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

 

*Ο κώδικας για τον επιστήμονα υπολογιστών είναι ότι το τηλεσκόπιο για τον αστροφυσικό (δε θυμάμαι σε ποιο βιβλίο το έχω διαβάσει αυτό για να δώσω τα credits)

 

Computer science is no more about computers than astronomy is about telescopes.

Και τι σχέση έχει αυτό με αυτό που συζητάμε;

 

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σε αυτό το εξάμηνο έχουμε vhdl. Μας λέει ο καθηγητής της θεωρίας, ότι ο άλλος καθηγητής που κάνει εργαστήρια έχει δουλέψει κάμποσα χρόνια στη siemens, σε δουλειά με hardware. Και μετά από αυτό είπε, "ότι και να έχουμε εμείς που είμαστε ακαδημαϊκοί, αν ο άλλος έχει δουλέψει έστω δύο χρόνια έξω, ξέρει τα διπλάσια από εμάς". Καλώς ή κακώς οι περισσότεροι που θα μας αναλάβουν στη σχολή, δεν έχουν βγει έξω. Το θέμα είναι να μην το παίζουν έξυπνοι λες και έχουν κάνει μία μεγάλη καριέρα σαν επαγγελματίες.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

 

Εδώ τώρα μεγάλη κουβέντα, αλλά η διδασκαλία είναι (θεωρητικά) μέρος των επίσημων καθηκόντων του ακαδημαϊκού. Και βέβαια δεν περιμένουμε να εντρυφήσει σε προχωρημένα θέματα αρχιτεκτονικής αλλά εφόσον είναι θεωρητικά καθήκον του, δε θα έπρεπε τουλάχιστον να κάνει μια μινιμουμ προσπάθεια; Πάνω στα πράγματα που θα πάει να πει στους φοιτητές δε θα ήταν καλύτερα να ρωτούσε κανένα γνωστό του επαγγελματία πρώτα για τη γνώμη του ή να κάνει κάτι άλλο αντίστοιχο;

 

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

 

Αυτό.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το να πεις πως κάποιος που έχει έστω και μια μικρή επαγγελματική εμπειρία ξέρει καλύτερα από τον οποιοδήποτε ακαδημαϊκό από μόνο του δεν είναι blanket statement; παντού με τον ίδιο τρόπο δουλεύουν; δεν υπάρχουν εταιρείες και IT departments άρπα κόλλα, που παραμελούν διαδικασίες μήπως και προλάβουν τα deadlines; δεν τυχαίνει πολλές φορές εταιρείες να αναγκάζονται να εμμένουν σε ξεπερασμένες τεχνολογίες και πρακτικές χάριν ευκολίας και efficiency; προσωπικά δεν έχω κάποια εμπειρία απλά μου ακούγεται κάπως περίεργο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στο πεδίο που ασχολούμε εγώ πάντως (high-level synthesis), αν κάποιος μου έδινε τη δεύτερη λύση θα έπρεπε να την μετατρέψω σε κατι παρόμοιο με την πρώτη καθώς το break δεν ειναι supported.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 εβδομάδες αργότερα...

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

 

λαθος η σχολη σου οπως και καθε σχολη (βασικα οι πιο θεωρητικες φυσικομαθηματικες κλπ) δεν εχει σκοπο να σε προετοιμασει για την αγορα εργασιας εχει σκοπο να σου μαθει τα απαραιτητα πανω στο αντικειμενο της.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

 

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

 

Να χρησιμοποιούν αγγλική ορολογία ή/και τις λέξεις της αγοράς.

 

λαθος η σχολη σου οπως και καθε σχολη (βασικα οι πιο θεωρητικες φυσικομαθηματικες κλπ) δεν εχει σκοπο να σε προετοιμασει για την αγορα εργασιας εχει σκοπο να σου μαθει τα απαραιτητα πανω στο αντικειμενο της.

 

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

 

Το να σου μιλάω για μαθηματικά και γενικά το να σου μιλάω, δεν κοστίζει πολύ.

 

Η θεωρία δεν κοστίζει πολύ.

 

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

 

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

 

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

 

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

 

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

  • Like 5
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

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