Κατηγορία : Computer Art

TVProgramme.gr is live!

Ή… πώς να σκοτώσεις – εποικοδομητικά – τον (προγραμματιστικό) χρόνο σου…


TVProgramme.gr

How to be a successful programmer without a CS degree

A few things about me first


I am 26 years old, and thanks to my father (btw, a mathematician and currently working as a professor) I’ve had the chance from a very early stage of my life to be around computers. (back in 1986 when I was born, though not the most common thing in those days, we always had one or two computers at home). That being said, and – obviously because of my curious and math-inclined / problem-solving oriented nature – it wasn’t long before I found myself in love with programming. First with Pascal, at the age of 7-8 and then pretty much everything else just followed.

First, let me say that, while at school, I’ve always been really good in anything math-related, simply because I liked it and felt somewhat at ease with it; and honestly I could easily follow my father’s example and become a mathematician too. But that didn’t happen.

What did happen was probably the biggest mistake of my life (so far) : What would you call it when someone in love with code, who speaks 15+ languages and has written thousands of lines of code (from compilers to micro-kernels and web frameworks) by the age of 18, suddenly (the reasons are still too obscure in my mind, but remember : the general, even if subtle, influence of your environment is never too negligible) decides to pursue a career in Medicine? I guess a “mistake”.

The result? 5 years later (at 23), and 1 year before finishing my Med degree (still working on personal open-source programming projects as a hobby all the time), I decided I’ve had enough and decided to quit. And it was not only that I hated this new field (Medicine) so much, but also that there was something unsettling in this whole situation, an insatiable itch hidden deep inside… (what would it have been if…? ) Moreover, I had just realized that my hobby, what I considered great but had not even imagined as a real job, could not only bring some money but bring me lots of it + keep me happy as an individual. So, I decided to quit. (= the best choice, even if a bit late, I’ve ever made).

So, here I am now, an once-gonna-be-doctor (on-the-verge-of-a-nervous-breakdown psychiatrist to be precise; stupid me!) going for a CS degree (on my 3rd year actually; and, honestly, pursuing it in order not to end up lacking in those dreaded typical qualifications…) and a more-than-happy professional working on something that I adore and definitely the subject on which I have to offer the most.


A few observations (from my own experience)


  • Programming is one of the very few fields where the really good ones will always find their way up, no matter what. And this is most definitely NOT a matter of typical qualifications (honestly, if I had a company and wanted to recruit programmers, I can easily tell who’s good in a matter of minutes – regardless of whether he even has any degree or not)

  • What it takes to be a good programmer is : math-oriented intelligence (but NOT maths itself) and passion (that will make the endless hours of studying a pleasure instead of a burden; and, even if I haven’t realized that, trust me i’ve studied TONS of material on the subject in my life, purely on my own). Formal education is a nice thing, but it’s a bit overrated. The core ingredients of success are the first two.

  • Maths is definitely where CS was born. But CS is not just maths anymore. I’ve always had a strong math-oriented brain, but I’m by no means a math guru. And honestly, in every day programming, (unless you’re into building a graphics engine or something too localized) you’ll most likely never need anything other than simple arithmetic (addition, subtraction, multiplication, division, modulo) and a few things about arrays. (many will disagree with me, probably mathematicians or too academic-oriented programmers, but definitely mastering calculus is NOT what it takes to be a good programmer). Having a good math background will maybe help you, but NOT because of the math itself; it’ll help you solely based on one common thing these two fields share : problem-solving skills.

  • Maths is a science (and a science I respect).

  • Programming is an art. (And an applied science as well, if you insist) But keep that in mind : an art – and that’s how I’ve always treated it. And as with all arts, it cannot be taught. I may teach you the formal way of drawing a face and make you better than average but that won’t make you neither a Da Vinci, nor a Klimt. Mona Lisas are painted by Da Vincis, and not by carefully educated painters. Great code is written by great code artists. And skill and devotion can easily outbalance formal education.


So, what does it take to become a *really* good programmer?


  • Being smart, great problem-solving skills and a passion for the subject (if you don’t have it, just leave it; being mediocre is no excuse)
  • Lots of time to devote to the subject
  • Studying all the time (‘coz you’ll simply never know it all; and note: why does ‘studing’ has to be related to some degree? I’ve always found it far more pleasureable doing things on my own pace…)
  • Writing code all the time (no matter how many books you have read; your coding level is directly proportional to the amount of code you’ve written)
  • And again, LOVE for the subject (if you don’t love it enough, and I mean really love it, all of the above will sooner or later become unbearable; for me, coding as a job is still like getting paid for… watching movies : absolutely absurd but yet simply great)

Just my .2 friendly cents… :-)

Sidenote : I know that some of my points may seem controversial, and i’m sure that there’ll be many who will disagree with me. That’s acceptable. But that doesn’t change the way I see things – and especially the things i love.


* Το παραπάνω δημοσιεύθηκε από εμένα, στο StackOverflow
(στο οποίο έχω προφανώς εθιστεί – και το οποίο δεν συστήνω σε όποιον είναι επιρρεπής),
ως απάντηση στο ερώτημα ενός αμερικάνου φίλου (χονδρικά)
“αν ως μαθηματικός, μπορεί να ακολουθήσει καριέρα προγραμματιστή- και αν όχι τι χρειάζεται”

Τον ευχαριστώ πραγματικά που μού έδωσε, για πρώτη φορά, το έναυσμα για να διατυπώσω με κάποια λόγικη σειρά τις σκέψεις μου, γι’ αυτό που αγαπώ…

Snippet.MX is here

Time to MIX thy snippets!

Τι φέρνει μια βόλτα στο ΚΤΕΟ? Μα, φυσικά, έμπνευση για ένα καινούριο site (το οποίο ειρήσθω εν παρόδω, ολοκληρώθηκε κατά 99% εν μία νυκτί) το οποίο και θ’ αποτελέσει το online ξαδερφάκι του… περιβόητου Μεγάλου project με το οποίο καταπιάνεται ο γράφων Χαμαιλέοντας τους τελευταίους πολλούς μήνες… (ΔΕΝ σάς λέω, δεν σάς λέω που να σκάσετε – τηρώ σιγήν ιχθύος…)

Επειδή όμως το πολύ coding, και δη συνοδευόμενο με ολονυκτίες (+ καφέ/τσιγάρο/κλπ), έχει (ήδη) σαφείς παρενέργειες στην πνευματική διαύγεια του ερπετού, αφήνω εσάς να ανακαλύψετε μόνοι σας περί τίνος πράγματος ο λόγος… (άντε και επειδή έχω καλή καρδιά… ένα μικρό (ακόμα) δείγμα…)

Υπολογισμός του Pagerank με PHP

Παιδευόμουν επί ώρες μέχρι να καταλάβω τι είχε αλλάξει κι ο παλιός μου κώδικας δεν έβγαζε αποτέλεσμα ούτε για δείγμα, ώσπου το άφθονο googling.. με φώτισε. Συμπέρασμα? Οι τύποι της Google έχουν αν-μη-τι-άλλο χιούμορ… (κι όπως καταλάβει κατάλαβε)


Mining PageRank is

AGAINST GOOGLE’S
TERMS OF SERVICE.

Yes, I’m talking to you, scammer.



<?php
   function getPageRank($q,
                 $host='toolbarqueries.google.com',
                 $context=NULL)
   {
      $seed = "Mining PageRank is AGAINST GOOGLE'S TERMS ";
      $seed .= "OF SERVICE. Yes, I'm talking to you, scammer.";

      $result = 0x01020345;
      $len = strlen($q);

      for ($i=0; $i<$len; $i++) {
          $result ^= ord($seed{$i%strlen($seed)}) ^ ord($q{$i});
          $result = (($result >> 23) & 0x1ff) | $result << 9;
      }

      $ch=sprintf('8%x', $result);

      $url="http://%s/tbr?client=navclient-auto&ch=%s&";
      $url.="features=Rank&q=info:%s";
      $url=sprintf($url,$host,$ch,$q);

      @$pr=file_get_contents($url,false,$context);

      return $pr?substr(strrchr($pr, ':'), 1):false;
}

?>

InSili.co is here.

Τι μάς κάνει μια ολονυκτία, μια εφημερία και κανένα 20-ωρο συνεχόμενης δουλειάς in trance?

Το πρώτο (αξιοπρεπές) διαδικτυακό σπίτι της InSili.co (με το 1/3 του portfolio περασμένο προς το παρον, αλλά τι να πει κανείς με τέτοια μπιπ-σύνδεση… ).

That’s one small step for man, one giant leap for mankind.

Καλορίζικο! :-)


Stay hungry. Stay foolish.

Steve Jobs speaking. Παρακολουθήστε το – αξίζει. (κι αν είστε της ανάγνωσης… το κείμενο ακολουθεί)


Περί AppStore και άλλων Δαιμονίων – Μέρος 2ο

Το ότι περιμένω review 5 εφαρμογών εδώ και άααααπειρες μέρες είναι το ένα γεγονός. Τότε ότι άρχισα να πιστεύω ότι (όπως διάβαζα και στο blog ενός Αμερικάνου) το “Waiting for review” και το “In review” δεν έχουν καμία διαφορά, είναι ένα ακόμα γεγονός : απλά σημαίνει ότι ΚΑΑΑΑΑΑΠΟΙΑ στιγμή θα γίνει το… review.

Αλλά αυτά μέχρι χθές. Γιατί σήμερα, στο e-mail με περίμενε πρωί-πρωί μια εκπληξούλα : Η “Rejected” είχε γίνει “In review” (λέτε να πιάσει το appeal?) και από τις υπόλοιπες, όλες (πλην μίας) πέρασαν σε διάστημα μερικών ωρών στο “In review” κι έπειτα στο “Rejected”, για λόγους που δεν περιλάμβαναν μόνο ότι… δεν τούς αρέσει το όνομα που διάλεξα για την εφαρμογή ΜΟΥ. Κύριε των Δυνάμεων!

Anyway, συνηθισμένα τα βουνά στα χιόνια… Εξ’ αρχής είχε φανεί πως είναι ψυχοβγάλτες, όπως εξ’ αρχής είχε φανεί ότι όλο αυτό αξίζει τον κόπο 100%. Πεισματάρηδες εκείνοι? Ο greek coder να δείτε! Το μόνο σίγουρο είναι πως όποιος είχε βάρδια σήμερα το βράδυ (ώρα Ελλάδας) στο review team, είχε πολλά νεύρα…. Νεύρρρρρρααααα!!! lol :-p

Programming : Now and then…

Εν αρχή ην οι command-line compilers/interpreters, κλπ : έγραφες τον κώδικα σου, πέρναγες το αρχείο σαν παράμετρο και φύγαμε. Μετά ήρθαν τα IDEs. Και πάλι, τον κώδικά σου τον έγραφες, βέβαια το πώς ακριβώς γινόταν το compilation άρχισε να μην σε απασχολεί καθώς αυτό γινόταν “μαγικά” στο background. Και τέλος ήρθαν τα GUIs : τι κι αν παλιά μόνο και μόνο για να κάνεις κάτι που μοιάζει με παράθυρο έπρεπε να παιδευτείς 100 ώρες, να γράψεις 1000 γραμμές κώδικα, να παίξεις με την μνήμη οθόνης, κλπ – τώρα? πετάς, έτσι απλά, ένα αντικείμενο… παραθύρου, κι όλα καλά. Τώρα, τι γίνεται “από πισώ”, ούτε σε απασχολεί. (εκτός κι αν είσαι εκ φύσεως μαζοχιστικά περίεργος, όπως ο γράφων…)

Οφείλω να ομολογήσω πως για κάποιον που έγραψε τις πρώτες του γραμμές κώδικα εν έτει 1994 (χριστέ μου, κι όμως είναι 17 χρόνια πριν!), σε μια κατάμαυρη οθόνη DOS, αυτές οι μεταβάσεις δεν ήταν διόλου εύκολες : όταν πράγματα τα οποία παιδευόσουν ώρες για να καταφέρεις, κι όταν τελικά τα κατάφερνες αισθανόσουν εκείνη την ικανοποίηση ενός μικρού παιδιού, τώρα γίνονται σε κλάσματα δευτερολέπτου, σχεδόν χωρίς τη δική σου παρέμβαση, αυτό τουλάχιστον σε αφήνει με μια αίσθηση απογοήτευσης. Αλλά έπειτα, προσαρμόζεσαι : ούτως ή άλλως, ο σκοπός μάλλον είναι ο προγραμματιστής να ασχολείται με την ΟΥΣΙΑ – με το πρόγραμμα του και αυτό που θέλει να πετύχει – κι όχι μ’ ένα παλιο…παράθυρο. Σωστά? Σωστά… Οπότε συμβιβάζεσαι…

Περί AppStore και άλλων Δαιμονίων – Μέρος 1ο

Με 4 εφαρμογές “for sale”, 3 “waiting for review” και άλλη 1 “rejected” (“my appeal is being evaluated”) – οι 4 τελευταίες εκ των οποίων εκρεμμούν συνολικά εδώ και ούτε-εγώ-θυμάμαι-πόσες-μέρες, είχα αρχίσει να απελπίζομαι ή τουλάχιστον να θεωρώ πως η ανακοίνωση αποχώρησης του Jobs, έφερε το Review Department της Apple στα πρόθυρα της διάλυσης.

Ως προς τα από-πάνω, δεν άλλαξε κάτι. Εντούτοις, η επίσκεψη μου σήμερα στο iTunesConnect μού έκρυβε μια έκπληξη. Πρώτη προγραμματισμένη πληρωμή από την Apple : Σήμερα. Πληρωμή? Σήμερα. Κι όμως, κι όμως… (Έχω προσπαθήσει να… τσιμπηθώ μπόλικες φορές σχετικά με το φαινόμενο App Store, αλλά τελικά φαίνεται πως είναι αλήθεια)

Συνοπτικά λοιπόν κάποιες συμβουλές προς… ναυτιλομένους :

  • Αν είστε προγραμματιστής Objective-C/Cocoa και δεν έχετε δημοσιεύσει ακόμη εφαρμογή στο App Store, κάντε το αμέσως
  • Αν δεν είστε προγραμματιστής Objective-C/Cocoa, αρχίστε την μελέτη από τώρα.
  • Aν δεν έχετε Mac (που ούτως-ή-άλλως, είναι προαπαιτούμενο για την την αναπτυξη Mac OS/iOS εφαρμογών), αγοράστε τώρα. (ακόμα κι αν αποτύχετε σαν developer, αν μη τι άλλο θα σας μείνει ένας εξαιρετικός υπολογιστής)
  • Αν δεν είστε καν προγραμματιστής, μην πτοείστε – ποτέ δεν είναι αργά. Ξεκινήστε τώρα! lol

SubsLab – v0.1

Έχετε βρει υποτίτλους για την αγαπημένη σας ταινία αλλά δεν είναι συγχρονισμένοι? Πέφτουν πιο πριν ή πιο μετά? Έχουν διαφορετικό FPS? (Τι είναι τούτο? lol). Ιδού μια εύκολη λύση στο πρόβλημα σας : το SubsLab, δια χειρός Dr.Kameleon (σε Adobe Flex – έτσι για να παίζουμε και με νέες ενδιαφέρουσες τεχνολογίες :-) ) είναι εδώ… Online + Free :-)


* Μα τι παρουσιάσεις είναι αυτές που κάνω!
(Να γιατί το… marketing δεν θα είναι ποτέ το φόρτε μου…
(Why don’t you just stick to coding, huh??))

profile for Dr.Kameleon at Stack Overflow, Q&A for professional and enthusiast programmers

THOUGHT of the DAY

The older I grow, the more I tend to believe that my mental stability is directly proportional to 2 things : her presence and the amount of code I’m writing.

10/05/2012