Well, I’m not going to argue with you over an analogy.
I believe there’s value in having a solid theoretical foundation in this field. “Programming” is distinct from “software design,” and people with less of that foundation in their background have to rely on things that are entirely based in their own personal experiences when it comes to DESIGN.
The way things evolve in this industry is that people tend to be hired for their strengths, not because of their overal abilities. Over 10-15 years they’ve become bona fide experts at a few things. That is, their experience has become narrower, not broader. If you never studied compiler construction or formal language theory, for example, you’re not likely to get a job that depends on that knowledge. After many years, you’ll have gained a ton of experience and specific expertise, but very unlikely to have been exposed to these things you never had.
I guess I’m thinking of this because I recently saw a post from a guy who said he wanted to learn about how to write compilers, and asked if people could suggest how to learn about desiging compilers for functional languages, USING a function language. You could tell the guy that maybe a function language could be used to build a recursive-descent parser, but not a table-driven parser. Unfortunately, he doesn’t have the distinctions to get what you’re saying.
The classic use of lex and yacc to build a table-driven parser rely on C or C++, unless they’ve been ported to another language that interests you. But you still have to write a dictionary of lexemes to give to lex, as well as a grammer to give to yacc. Grammars are based on formal language and automata theories. Again, it’s impossible to explain this to somebody who has no exposure to it at all. I can’t even answer his question intelligently.
What I will say is this:
I’ve interviewed enough people in my time that I think I’ve noticed a pattern. I’m curious what you guys think.
The higher the GPA, the less such people seem able to do out-of-the-box or even off-the-cuff thinking.
I think my overall GPA was 2.76 and in my major it was a little lower (because of required math classes I really didn’t like or find stimulating). I was bored out of my mind most of the time, and I spent a lot of time playing with other things.
I’d prefer to hire people with similar GPAs and avoid those with 3.4 and higher, since they can’t seem to figure out how to break out of a paper bag given a few nominal restrictions. (Yes, it’s a generalization, but that’s what I’ve found.)
What got me hired at Intel, my first job out of college, was a paper I was encouraged to write and present as a “student entry” at a local ACM Conference about work I was doing in the Psych Dept related to the (real-time) control software I’d maintained for my junior and senior years. In hindsight, it was roughly the equivalent of a Master’s Thesis in Computer Science, a field for which ASU didn’t even have a CS major at the time! I was the only person Intel hired from ASU that year, even though they interviewed almost 50 people.
Ironically, the recruiting folks at ASU wouldn’t even let me sign up for an interview with Intel! I literally had to show up and shove my resume into the hands of one of the recruiters when he came out of his interview room in order to get an interview.
-David Schwartz
On Jan 23, 2018, at 11:07 AM, Steve Litt <slitt@troubleshooters.com> wrote:
On Tue, 23 Jan 2018 10:02:13 +0000 (UTC) David Schwartz <newsletters@thetoolwiz.com> wrote:
The fallacy here is that a HS dropout who’s been building homes for 30 years could build a home as nice as any Architect just a couple of years out of school.
That's not the fallacy. Nobody said anything about high school dropouts. What was being discussed were people who love to code. My experience tells me most of these people are college grads, although non Comp-Sci degrees. For whatever reason, a lot seem to ride bicycles and/or play musical instruments. I've known only one HS dropout who was a programmer. The comparison here is NOT between average HS dropouts and people with relevant engineering degrees.
The other thing is, a software product is a very different thing than a building.