From: Eleanor McHugh Date: 2008-05-21T02:11:13+09:00 Subject: Re: Is Necessary for all rails employee know computer knowledge? On 20 May 2008, at 16:56, Phillip Gawlowski wrote: > Eleanor McHugh wrote: > | I started out in physics and I've spent a fair amount of my > professional > | career arguing with very capable CS experts over all kinds of > problems > | which are elementary with my background but have them scuttling > back to > | graph theory, and conversely I meet a lot of web developers who've > come > | from a non-academic and despite being very good at their > specialism have > | a complete lack of confidence about their abilities. > > Well, if next to all advice is 'you have to know Big-O notation, and > half the *-tree algorithms so that I would even consider reading your > resume', a lack of confidence does emerge. > > I know, I am there, and finding the courage to apply for a job, or > going > independent is an exercise in itself. You're not alone. I've ranted several times on my livejournal about the frustrations of job hunting and I'm effectively unemployable right now thanks to my left-field outlook. Mind you business here in the UK has always had an ambivalent attitude to creative thinking: they all claim to want it, but they none of them like dealing with it in the raw lol > | On the other hand there are certain key abilities that any developer > | does need, and which I've found surprisingly lacking in many that > I've > | worked with: a grasp of basic logic; ability to sequence and > classify; a > | cool head when things aren't going well; intense curiosity. > > Well, what is basic logic? The boolean logic found in computer > languages? Abstract logic? Aristotelian logic? ;) > > I guess you mean both boolean as well as abstract logic, as those go > hand in hand (pretty much). And yes, both are quite important areas of > knowledge. Even Aristotelian logic would be a step forward on some of the code I've read over the years! I've probably posted this link before (http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf ) which is a paper demonstrating one of the unspoken problems of the development world - that a noticeable minority of graduates with CS degrees are fundamentally incapable of programming. I could speculate that these will mostly go into the management side of the industry, but I'll leave that to Dilbert strips. > Since computers are only good at distinguishing 0's and 1's, knowing > how > logic works helps in understanding program flow, and programming in > it self. > > It also enables to look at systems programming, and even peek into > chip > design (with AND, OR, XOR, NAND gates....). > > Which all helps in staying sharp (and learning that, in the end, the > language matters less than the ability to think one's way out of a > paper > bag :P). Even when I was coding for the bare metal I always preferred to solve problems in my head first and then worry about assembly language and bit-strings later. I never came up with a solution that couldn't be coded, but I often came up with code that I would never have devised if I'd put implementation concerns foremost. > Interestingly, the 'intense curiosity' is something that is seen as a > key element by a lot of high profile developers, which I noticed while > reading Ed Burn's 'Secrets of the Rock Star Programmers: Riding the IT > Crest'[0]. From James Gosling, to Dave Thomas (not the Programming > Ruby > one :P), to Andy Hunt, to the Java Posse, curiosity is seen as pretty > much elementary. Alas it's the main thing that formal education tries to knock out of us at an early age, but I don't know any hacker worth their salt who doesn't possess it. Curiosity is what teaches us new tricks without there being an immediate pay-off, and its from exploring problem spaces in that lurching haphazard manner that we learn general principles which can be applied to cast a new light on otherwise intractable or ignored problems. It's the essence of hacking in all senses of the term (both good and bad) and the quickest path to grokking stuff. It's also a brilliant justification for procrastination. > | I must admit though that if I was dealing with a Rails team I would > | expect anyone who was a developer to know how to run up the > application > | at least locally as that's a five minute google and falls under the > | 'intense curiosity' category ;) > > Well, I'd like to see knowledge about deployment options, too. Not > just > 'mod_rails', or 'apache reverse proxy with mongrel pack'. > > Though, similar should be expected by non-Rails developers: Available > options, and their pros and cons in situations (at least in a > superficial way that enables deeper research). I couldn't agree more. When I meet a new team I want them to be as deeply shallow as possible: not experts in what I'm doing, but clearly willing and able to become experts as the project progresses without any pressure from me. Hopefully they'll even end up know more than I do, then I can steal knowledge from them ;) Ellie Eleanor McHugh Games With Brains http://slides.games-with-brains.net ---- raise ArgumentError unless @reality.responds_to? :reason