Post details: Take the data literacy test
So, you think you're a good programmer, do you?
In his book, Code Complete, Steve McConnell has something he calls *"The Data Literacy Test". It's a test to see how 313373 you are when it comes to data types.
Here's how Steve himself describes the test:
The first step in creating effective data is knowing which kind of data to create. A good repertoire of data types is a key part of a programmer's toolbox. A tutorial in data types is beyond the scope of this book, but the "Data Literacy Test" will help you determine how much more you might need to learn about them.
Ok, so that was the motivation. Here's is how it goes:
Put a 1 next to each term that looks familiar. If you think you know what a term means but aren't sure, give yourself a 0.5. Add the points when you're done, and interpret your score according to the scoring table below.
- abstract data type
- boolean variable
- character variable
- container class
- double precision
- elongated stream
- enumerated type
- floating point
- linked list
- named constant
- local variable
- lookup table
- member data
- retroactive synapse
- referential integrity
- structured variable
- value chain
.. OK - got your score ready? Check how you rank below:
Here is how you can interpret the scores (loosely):
0-14 You are a beginning programmer, probably in your first year of computer science in school or teaching yourself your first programming language. You can learn a lot by reading one of the books listed in the next subsection. Many of the descriptions of techniques in this part of the book are addressed to advanced programmers, and you'll get more out of them after you've read one of these books.
15-19 You are an intermediate programmer or an experienced programmer who has forgotten a lot. Although many of the concepts will be familiar to you, you too can benefit from reading one of the books listed below.
20-24 You are an expert programmer. You probably already have the books listed below on your shelf.
25-29 You know more about data types than I do. Consider writing your own computer book. (Send me a copy!)
30-32 You are a pompous fraud. The terms "elongated stream," "retroactive synapse," and "value chain" don't refer to data types-I made them up. Please read the "Intellectual Honesty" section in Chapter 33, "Personal Character"!
Great post. Took the test and ended up with 24. I expected to get a lot less, actually. I don't consider myself an expert by any stretch. Intermediate seems a more accurate tag.
Still, it was fun. Thanks.
Great post... don't know what Steve McConnell would think, though.
I never read any of the books that he mentions, period, and i had 28. What i've learned in 6 years of programming(for real, 5 years since i finished highschool and 1 year since i finished university).
I usually do not learn from books, i have many of them, my most precious book is C programming of Herbert Schild. Its the only book i had patience to read/experiment(except the C interpreter, i had no time at that period to experiment with it:P).
Otherwise is just basic knowledge that i've learned from my teachers in school. If you go to school, its guaranteed that you know what all of the above are, and much more. University does not help with any sht, u seem to learn about AI, compilers, operating systems, regular expressions, automata theory, but i tell u, they teach u sht, you better start learning on your own boy/girl!
To complete that guy, you should first as:
1) How to sort a vector (of course, not by using a.sort() that i always get at interviewing people)
2) What is divide-et-impera ?
3) What is backtracking.
4) Simple pseudocode to compute the factorial.
5) Quick-sort method.
6) Vector search multiple threads.
7) What is a stack, how do you implement a linked list.
8) Traverse a linked list.
9) Build binary tree, search it.
10) Analyze a polinesian expression.
If you know there, you are at least a beginner programmer, otherwise you are just a coder (there are also good codes, the ones that know the entire MFC/VCL/STL/SWING/.NET-CLASSES/SQL/REMOTING/COMPRESSION/XML.
27 points. I didn't know character variables or structured variables.
I got 29. I even made a mental note to learn what "elongated stream" "retroactive synapse" and "value chain" were. Haha!
Yay! 3/4 of the ones I missed were fake. I'll go google referiential integrity right now. Sounds like stuff to do with smart pointers...
"Put a 1 next to each teen that looks familiar."
What is this, some kind of pedophile sting?
It said I was an expert programmer so I declare the test useless.
I got 26, but I would hardly consider myself knowledgeable enough to write a book about the subject :P
I know what the terms mean and explain what they are, but not necessarily how they work.
Also, I'm in my graduating year of computer science.
I found it was easier to scan for ones I didn't know...
I didnt know elongated stream, retroactive synapse, and value chain....
If you have a college education in computer science and you do not know these terms, you should find a new career... you're just not into the field.
PS: You forgot "closure". Pretty important one, if you ask me.
Got 28 !
was worried that i was way behind the pros, but, thanks man, nice to know that score more than 29 was fake ...
"No results found for programatic.
Did you mean programmatic (in dictionary) or Pragmatic (in encyclopedia)?"
( dictionary.com )
Scored 25.5 honest. :)
Hey, I made 29 (and I laughed when I read the explanation for 30-32 :)).
It's a nice test :)
what is value chain , and why is it important
When I finished reading the list there were only three that I really had actually no idea what they were. I knew plenty of them and had at least heard of all but those three. Retroactive synapse sounded kinda made up and at that point the though actually crossed my mind that it might have been made up. It was absolutely great to read the final ranking. Made my night.
Although I realize the list was kept short, here are some possible general programming additional terms (since this list seemed to focus on database terms with B-trees, indexes, and referential integrity.)
- Object oriented terms like polymorphism, superclass/subclasses, generalization and specialization.
- Bitwise stuff like: 2's complement, most/least significant bit, the significance of 65,536, hexadecimal vs octal vs binary, big/little endian systems
- Other Data Structures: Hash Tables, Queues
- Algorithmic terms: a hash function, quicksort, recursive, tail recursion, Big O Complexity, NP Completeness
- General Terms that hopefully aren't buzzwords: Regular Expressions
Basically for a general programmer you should be able to deal with the 5 sections mentioned in Steve Yegge's blog post available here:
I highly recommend that read for anyone who was willing to read my comment!
typedef aslso doesnt refer to a data type, its basically a way to give an alias to an existing data type.
Good test, I scored 29 :)
Ha, nice one.
I got a 27, and when I read the 30-32 description I couldn't help but smile. I really was wondering what that elongated/retroactive chain babble was about.
I was about to search google for 'elongated stream' ;)
Great post, thanks.
Retroactive synapse really could be a data structure in the future ;)
I got 22. And I'm a sysadmin. It's languages like C++ = STL, perl and python that I thank, for my knowledge of data structures.
I got 26.5. Should I start to write a computer book right know ? :)
All this article seems like a very bad excuse for putting a link to your book for some people who know nothing about programming
I noticed the fraud cpature trap the moment I saw it and didn't even bother to sum up my points I just jumped to the highest results section to see if you are as tricky as you seem, but even this did not ease my bad gut feeling that all this article has no practical value to the readers but to the (book) writer only
I learned all of these in classes at my University, except the three comical ones of course. I had a pretty damn good education :-)
29! I also had made a mental note to look up the other 3. :D
Honesty with myself: check!
So, where is the list of books?
what list of books? :-) .. this test is from a single book, Code Complete.
This post has 69 feedbacks awaiting moderation...
Leave a comment: