Living in the foundations, missing all the amenities
We talked to a candidate recently with a CV that included topics such as Assembly, SQL and JavaScript. The list of skills was quite eclectic and we called the candidate to hear more about them.
The candidate completed a two years degree focused on the foundations of development, but it looked like whoever designed it was looking primarily to get a good foundation more than anything else. In other words, the end result is someone that can write SQL queries, but never built a data driven application, who knows (about? I’m not really clear at what level that was) assembly, but never written a real application. It doesn’t sound bad, I know, but it was like moving into a new house just after the contractor is done with the foundation. Sure, that is a really important part, but you don’t even have walls yet.
In 1999, I did a year long course that was focused on teaching me C and C++. I credit this course for much of my understanding of the basics of programming and how computers actually work. It has been an eye opening experience. I wouldn’t hire my 1999’s self, as I recall, that guy (can I deny knowing him?) wrote the following masterpieces:
- sparse_matrix<T> in C++ templates that used five (5!) levels of pointer indirection!
- The original single page application. I wrote an entire BBS system using a a single .VBS script that used three levels of recursive switch statements and included inline HTML, JS and VB code!
These are horrible things to inflict on an innocent computer, but that got me started in actually working on software and understanding things beyond the basics of syntax and action. I usually take the other side, that people are focused far too much on the high level stuff and do not pay attention to what is actually going on under the hood. This was an interesting reversal, because the candidate was the opposite. They had some knowledge about the basics, but nothing to build upon that yet.
And until you actually build upon the foundation, it is just a whole in the ground that was covered in some cement.
Comments
Everyone has masterpieces from the past! And the PASTA post was hilarious, btw :-))
(Posting to check the CAPTCHA thing)
With respect to hiring your 1999 self -
Everyone has to start somewhere. This is one of the reasons I (and I presume, many others) started in a help desk role where I could work with developers and learn from them. When you get someone early, they are a blank slate and you will guide the creation of their habits. If you do that well, it can pay off eventually. Of course, not everyone has the time to wait for that candidate to mature.
sparse_matrix<T> in C++ templates that used five (5!) levels of pointer indirection!
You wrote Voron already in 1999 :-)
Carsten, Oh, dear God, no. Think about multi dimentional array with infinite possible dimensions. It never got past the "it compiles and a single
main
function runs" stage, but was a lot of fun to write. Never had to read it :-)Comment preview