call.copse (5/14/2014)
Having worked with a fair variety of programming types I can say weeding is a good plan - unfortunately there are not enough programmers with the right skills here right now. I'm trying to train up as many as I can but it's not quick work. Thing is even the best of programmers with the best of intentions can seem to leave behind code that is a little incoherent.
Of course there are a variety of roles to fill...
Yep, lots of roles.
The issue with weeding is that it tends to have a single funnel approach. You fit in, or get tossed to the side. That's not what we need in this business. If we're going to weed, based on some bar of qualification or skill, we need to be sure there are multiple ways or bars that can be met. We don't need Dr. Codd's or Bjorn Stroustrup's at every level. We need people at different levels.
vliet (5/14/2014)
It depends on the exact profession but in my opinion nothing can replace a solid theoretical background. Especially with databases, because thinking in sets instead of records requires a mind shift that needs a whole new approach, and mister Edgar Codd gave us a perfect way to establish that solid background. Knowing when to use a LEFT OUTER JOIN or even a FULL OUTER JOIN instead of an INNER JOIN to get the correct results depends highly on your understanding of the model behind the data.
I'm torn here. I think good solid basics in an area are important. However I'm not sure to what depth someone needs relational knowledge. There are lots of people that end up writing lots of CRUD, simple aggregates and basic report queries.
I think more we want to provide them with a way to understand when they're out of their depth. Maybe references on how much effort (resources) the computer should spend calculating problems per mm rows? Not sure.
Steve Jones - SSC Editor (5/14/2014)
I'm torn here. I think good solid basics in an area are important. However I'm not sure to what depth someone needs relational knowledge. There are lots of people that end up writing lots of CRUD, simple aggregates and basic report queries.
I think more we want to provide them with a way to understand when they're out of their depth. Maybe references on how much effort (resources) the computer should spend calculating problems per mm rows? Not sure.
I'd agree that people working in different fields will have differing requirements as to which areas they require deeper understanding but there are some basics which are fundemental and apply across pretty much all of IT.
One example of this is an understanding that computers store data in variables of finite length and use binary arithmetic and what the implications of that are. I wouldn't necessarily expect everyone to be able to multiply and divide in binary but it should be expected that they will know that floating point division may give an inexact result and how to address that.
Another applying particularly to SQL would be boolean algebra. How many times have there been questions posed where the poster is asking why they are missing results from a query because they do not understand how boolean operators - particularly AND and OR - combine.
Steve Jones - SSC Editor (5/14/2014)
call.copse (5/14/2014)
Having worked with a fair variety of programming types I can say weeding is a good plan - unfortunately there are not enough programmers with the right skills here right now. I'm trying to train up as many as I can but it's not quick work. Thing is even the best of programmers with the best of intentions can seem to leave behind code that is a little incoherent.
Of course there are a variety of roles to fill...
Yep, lots of roles.
The issue with weeding is that it tends to have a single funnel approach. You fit in, or get tossed to the side. That's not what we need in this business. If we're going to weed, based on some bar of qualification or skill, we need to be sure there are multiple ways or bars that can be met. We don't need Dr. Codd's or Bjorn Stroustrup's at every level. We need people at different levels.
I agree that a single funnel approach is wrong. Also, we do not want to put off the people who would do a reasonably decent job at the lower end (please remember that I do not rate the person as lower just their task(s) i.e. I have the upmost respect for bin men [non-gender specific garbage disposal engineers to you over the pond], toilet cleaners waiters/waitresses, support engineers, web developers etc. as individuals and for the job they do). We also do not want to bore the people who may become technology leaders. We need to give the individuals the chance to find out what they are good at and what they enjoy to allow them to select modules that are most appropriate.
Having said that, there are basic modules that ALL should do if only to understand that it is a difficult task so we can all have at least a little respect and understanding for those doing it and know to avoid that area personally.
Gaz
-- Stop your grinnin' and drop your linen...they're everywhere!!!
crmitchell (5/14/2014)
Steve Jones - SSC Editor (5/14/2014)
I'm torn here. I think good solid basics in an area are important. However I'm not sure to what depth someone needs relational knowledge. There are lots of people that end up writing lots of CRUD, simple aggregates and basic report queries.
I think more we want to provide them with a way to understand when they're out of their depth. Maybe references on how much effort (resources) the computer should spend calculating problems per mm rows? Not sure.
I'd agree that people working in different fields will have differing requirements as to which areas they require deeper understanding but there are some basics which are fundemental and apply across pretty much all of IT.
One example of this is an understanding that computers store data in variables of finite length and use binary arithmetic and what the implications of that are. I wouldn't necessarily expect everyone to be able to multiply and divide in binary but it should be expected that they will know that floating point division may give an inexact result and how to address that.
Another applying particularly to SQL would be boolean algebra. How many times have there been questions posed where the poster is asking why they are missing results from a query because they do not understand how boolean operators - particularly AND and OR - combine.
Not everyone needs to remember De Marco's theorem but everyone should understand that in most (if not all?) languages that precedents apply. That is why I use brackets even when I know that precedence will do the "right thing". At least the next developer can see not only the implementation but also the intention. Erm, and because sometimes I get things wrong
Gaz
-- Stop your grinnin' and drop your linen...they're everywhere!!!
Jennifer Levy (5/13/2014)
Computer science degree from a liberal arts school here. Our major started with programming, the "weed-out" course (Assembly Language) was a 200-level one, as were the hard theory required courses. I do think that learning the theory behind what you're doing is a good thing as it explains why systems work better when you do things a certain way. And getting exposure to different languages helps you figure out how you learn best, which is always helpful given changes in technology and the job market.
CS rocks! I have found, IMHO, that the best developers/database pros understand the theory, and how the code works in the hardware. Basically, they get that they are just moving bits around. Then there are the developers who formerly were: copy repairman, photo salesperson, etc. And the best, the guy charging my car A/C was getting out of the business to be a developer!
Technologists are still caught between being a tradesperson or a professional. To be a professional, you need to really understand the underlying theory. The 'why', not just the 'how'. Now, the method for understanding the 'why' can vary. CS degree, or self-taught. does not matter. What does is that one understands the why.
The more you are prepared, the less you need it.
Viewing 11 posts - 46 through 55 (of 55 total)
You must be logged in to reply to this topic. Login to reply