This discussion has been archived.
No new comments can be posted.
Cowboy Engineers in the Software Industry
|
Log In/Create an Account
| Top
| 42 comments
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(Score: -1, Offtopic) by xlefay on Monday March 03 2014, @12:19AM
Honestly, this article sucks ass.
(Score: 2, Interesting) by Taco Cowboy on Monday March 03 2014, @01:33AM
... there are code monkeys.
Those who can't do math are, IMHO, lower than the code monkeys.
Learning math don't only land you math ability, but also the ability to think logically, and logic is what makes programming possible.
(Score: 1) by L5GwL on Monday March 03 2014, @02:00AM
And yet I still meet people who studied mathematics but are unable to think logically outside that domain, and people who studied philosophy and are quite competent at logical thinking across many domains.
(Score: 0, Troll) by Anonymous Coward on Monday March 03 2014, @02:05AM
Welcome, Taco Cowboy! Glad to see you posting unrelated comments to the first post here just as you do on Slashdot. It's such a clever trick...
(Score: 2) by hemocyanin on Monday March 03 2014, @03:56AM
... there are the pedants.
To learn math, you must first learn to count. To start with, "math" is singular.
http://www.learnersdictionary.com/blog.php?action= ViewBlogArticle&ba_id=26 [learnersdictionary.com]
(Score: 1) by janrinok on Monday March 03 2014, @09:36AM
That might be the case in the USA, but in the UK it is most certainly called 'maths', a contraction of the word mathematics. I cannot find the work mathematic (sing) in the dictionary. Nor can the US spell checker that I used for editing the article.
We are not all Americans - this, fortunately, a very international site.
I am not interested in knowing who people are or where they live. My interest starts and stops at our servers.
(Score: 1, Funny) by Anonymous Coward on Monday March 03 2014, @01:24PM
Except Taco Cowboy used "math" but then used a third-person plural conjugation. Maybe you should work on your reading comprehension before pedanting?
(Score: 1) by janrinok on Monday March 03 2014, @02:53PM
I am replying to hemocyanin who used the term 'math'.
In British English, unlike US English, there is no such word - regardless of any conjugation used. The only contraction of the word 'mathematics' is maths. It is always written that way in the UK.
Reading comprehension does not come into it. There is, to us, simply no such word. One cannot 'comprehend' words that do not exist.
Unlike myself, you would be invaluable as part of the Editorial team. Seriously, please join us.
I am not interested in knowing who people are or where they live. My interest starts and stops at our servers.
(Score: 0) by Anonymous Coward on Monday March 03 2014, @03:59PM
Yes they used the term that Taco Cowboy did. This is what I told you.
(Score: 5, Insightful) by BradTheGeek on Monday March 03 2014, @12:29AM
I have a low UID, I contributed at least a little time and threw my hat in the ring for editor. I have remained silent, until now. One of the stated goals of altslashdot was to hew to higher editorial standards.
I do not care if TFA sucks, others may like it. But can we at least take the time to make TFS include pertinent information? It also seems as if we suffer from to many articles/too few comments. By lowering the amount of posted articles, we may get more comments, and more time can be spent editing the submission to be more useful.
I know there is a fine balance between lightly massaging a submission and completely changing it, but sometimes the hammer is needed. In any case, a small, fine print link to the original submission could help alleviate issues arising from heavy handed rewrites.
(Score: 4, Interesting) by frojack on Monday March 03 2014, @12:55AM
Was there any heavy handed rewrite involved here? How would you know? Maybe the original submission was just as terrible as what we see above.
Be that as it may,
I thought it was just another flog of a blog. Until I read said blog, and realized the summary had nothing to do with the blog, instead I stepped into a cow pie dropped by another "get away from the computer till you get your maths degree" ranter.
I want my 3 minutes back.
No, you are mistaken. I've always had this sig.
(Score: 3, Insightful) by L5GwL on Monday March 03 2014, @02:06AM
I think what the OP was saying was that the summary needed a heavy-handed rewrite but didn't receive it.
I would have preferred (like you, I think) the submission to have been simply ignored.
(Score: 2) by janrinok on Monday March 03 2014, @09:39AM
Point noted - thanks.
I am not interested in knowing who people are or where they live. My interest starts and stops at our servers.
(Score: 2) by TheRaven on Monday March 03 2014, @12:32PM
sudo mod me up
(Score: 0) by Anonymous Coward on Monday March 03 2014, @12:43PM
I found it to be quite funny.
Ed: Thanks for the link! I'll go this nonsense again if you find another as entertaining.
Some of us haven't seen this type of ranting before. How about you let us soak up the ray of sunshine and happiness? :-)
As for editing, they did an excellent job at fixing the dope I submitted about the Sandisk USB drive debacle. Go Eds!
(Score: 5, Insightful) by mth on Monday March 03 2014, @12:54AM
If you're building a proof of concept, a demo or a new kind of product to test whether a market exists for it, you would want to get something that works most of the time out there as soon as possible. The feedback you receive will then tell you whether you're on the right track and should build this product, build a slightly different product or abandon the idea altogether. For this kind of development, cowboys are useful.
If you're building a system that will be used for many years or will be handling critical functions, you need developers who are more careful, who add checks in every layer, who write tests, do code reviews, use static code checkers etc.
A problem is that when a concept/demo/alpha is successful, management wants it in production as soon as possible and might not be willing to spend the time required to go from prototype code to production code. You could avoid this by writing prototypes using the same process you use for production code, but then you'd have to throw away a lot more work if the concept turns out to be not what the user/market wants or you have overlooked requirements that invalidate the design.
(Score: 4, Interesting) by hemocyanin on Monday March 03 2014, @12:55AM
I'm OK with this article. It's amusing ... as if the BOFH had a personal blog.
(Score: 2) by janrinok on Monday March 03 2014, @09:41AM
Again, noted. Thank you.
I am not interested in knowing who people are or where they live. My interest starts and stops at our servers.
(Score: 2) by TheRaven on Monday March 03 2014, @12:35PM
While I enjoyed the article, it definitely deserves a -1 flamebait tag. If your goal is to promote comments, then it should work (although the summary was terrible and could have done with a rewrite). If your goal is to promote interesting and informative comments, then this article is likely to fail.
There are two very common forms of idiocy: assuming that because something is popular it is good, and assuming that because something is popular it is bad. This article poses modes of thought as a false dichotomy between these two and then tells you to pick one.
sudo mod me up
(Score: 2) by Open4D on Monday March 03 2014, @03:46PM
I don't know if it has been changed since you wrote this, but the summary doesn't currently seem that bad to me. Is it a bit short, with insufficient detail? Yes, perhaps, but I still knew I was going to get a rant about the industry. Is it a bit idiosyncratic in its use of certain words, like 'pimple', 'vents' and 'cowboy'? Yes, but I don't necessarily expect all stories to adhere to the BBC style guide [bbc.co.uk].
In the first week of SN I submitted 2 stories that were accepted, which weren't particularly good. I'm glad people were a bit more forgiving back in those days! Oh, how things have changed around here ...
(Score: 0) by Anonymous Coward on Wednesday March 05 2014, @03:03AM
Amusing if you're under 35... over 35, and you'll be crying too hard to laugh.
(Score: 5, Interesting) by VLM on Monday March 03 2014, @01:01AM
"I can’t see the Genie ever being pushed back into her bottle on this – it would take some catastrophic event to get people to wake up and demand across the board reforms and minimum qualification standards."
Isn't this a pretty good historical summary of how we ended up with licensing etc for "doctor, a lawyer, a vet, a teacher or an engineer"?
Don't disagree with most of his observations, just have a longer term historical outlook.
One observation I disagree with is "math is a filter" if you can't understand basic automata theory, for example, like "implement me a simply PDA" level, there's no way you'll understand more complicated business logic. Just don't have the mental horsepower. Or IQ, however unfashionable it may be. There might be a less brutal way than sitting proofs of SAT and TSP.
You see this at interviews too. Unless you're the first programmer in a "fad of the month" language if you're implementing you're own b-tree algo rather than using a debugged industry standard library, you're an idiot, but during interviews its handy to see if you have a minimal amount of ability to think logically... assuming you've already passed fizzbuzz. Assuming a guy would need a minimal amount of math to explain a b-tree big-O notation and all that.
(Score: 5, Interesting) by Ethanol-fueled on Monday March 03 2014, @02:41AM
Experience is much more useful than that piece of paper alone.
If anything, the author should rant about companies hiring inexperienced people because they think it's gonna be cheaper than the oodles of lost productivity and handholding fuckin' noobs need. While we're on that topic, I'm going to rant about my employer who does just that because turnover is high and there's a lot of tribal knowledge in an already-niche field. Their logic is if they hire 2 noobs that can both kinda almost do the job of one expensive experienced person, they'll hire them just to have knowledge turnover in the inevitable occurrence of one of them leaving. That also means that the company hates from promoting from within, because why promote somebody if they're gonna leave anyway? Truly a vicious cycle that has already fucked the company.
I am in the process of getting a bachelor's degree in Computer Information Systems (as opposed to Computer Science), one of the fields the author would malign in the summary, because it's the same computer science core with some I.T. and business thrown in. I already have experience writing code for companies, and a few of my programs are already deployed within my company. The only reason why I'm not a programmer by title is because my company requires bachelor's degrees for it. Why should anybody be forced to take Calculus 5 and Quantum Physics to write code that will be 90% basic algebra and maybe a little statistics or matrix operations?
As for complexity theory, working through that is just algebra, in the real world you don't need to use set theory for anything.
Also note: Sure, some programmers implement complex simulations or algorithms which do heavily rely on upper-level math, but the majority do not. What I wrote above applies to the average programming situation.
(Score: 5, Insightful) by prospectacle on Monday March 03 2014, @01:04AM
Some software can kill people if it goes wrong. Most of it can't, it will just waste time and money (which it may have been doing anyway).
Therefore it's not regulated in the way medicine, engineering, etc, are regulated. Therefore anyone can start a software company and they can hire anyone they want to write the software.
So what do you expect?
On top of this, software is a million different jobs: Security, database design, performance optimisation, interface design, test automation, commenting and documenting. Ok six, but there are probably others as well. Someone who may be competent at one of these is often hired to do all of them, especially in smaller companies.
The third problem is that most software written is, in some key aspects, completely new and different. So you can't just do it the standard way.
Your only chance is to have a project manager that understands how software development works, and is allowed to allocate sufficient resources to testing, refactoring, and code reviews. These are the things that appear most wasteful if you're unfamiliar with software development: no new features are added, they take a lot of time, and need to be done over and over again.
They are also, in my opinion, the most vital steps to creating effective, reliable and maintainable code.
If a plan isn't flexible it isn't realistic
(Score: 4, Insightful) by mth on Monday March 03 2014, @01:39AM
I agree. If you need the same functionality again and again, you put it in a library, framework or code generator. So the parts that you actually end up writing are the parts that are different from other projects. I think this is one of the reasons why software projects are difficult to plan: you're going to be spending most of the time on things you haven't done before.
(Score: 2) by Thexalon on Monday March 03 2014, @01:08PM
The problem in a nutshell:
1. Bad techies are somewhere around $45K cheaper per year than good techies.
2. When there are problems, they can easily cost more than $45K.
3. However, just saying "hire good techies then" doesn't solve your problem, because to someone who doesn't understand technology a bad techie looks identical to a good techie.
And, as it turns out, in many organizations the people who are responsible for hiring and supervising techies aren't techies themselves and don't understand technology. These people making hiring decisions about techies do so in roughly the same way that you probably make decisions about which auto repair shop to use: Do the results seem good enough, and are the prices in line with what I can afford? You might check the mechanic's certifications (which may or may not indicate anything), but you don't really know if you have a great car guy or a lousy wrench monkey until they screw something up.
The only thing that stops a bad guy with a compiler is a good guy with a compiler.
(Score: 5, Interesting) by rob_bruce on Monday March 03 2014, @01:35AM
Being a programmer can require a lot of math knowledge; however, it all depends on how deep the programmer wants to go. I don't see why one can't just pick up a book and read/learn about something when the need arises. I don't see how anyone expects to learn everything in an undergraduate degree, a graduate degree, or even a Ph.D. Lifelong learning is the key here. For example during my undergraduate days one of my electives in CS was Artificial Intelligence; an introductory course. Most of my learning has been on my own, reading lots of academic articles, lots of cs books, and programming. My area of expertise these days is in computer vision. Yes, math knowledge is very helpul in understanding is helpful. In short, learning is a continuous process, not a simple end goal. One keeps learning, reading, and thinking.
rob
(Score: 4, Insightful) by regift_of_the_gods on Monday March 03 2014, @01:55AM
to the personnel advice from the VC [soylentnews.org] we saw here last week.
IMO both POVs are valid, but neither should be taken as absolute. There IS a correlation between math skills and coding/architectural skills, but other qualities are important as well. Sometimes even more important.
(Score: 5, Interesting) by neagix on Monday March 03 2014, @07:04AM
(Score: 2, Interesting) by lgsoynews on Monday March 03 2014, @11:00AM
You mention one of the big problems I've encountered among my colleagues. Something that drives me nuts.
People have some knowledge, usually learnt at the university where they worked hard to beat it into submission. But once they start working, it's as if they never learned anything more advanced than a loop and -maybe- using debug "print" message, 70's-like.
Why?
I mean these people have learned many things about algorithms, data structures, but never even TRY to use them.
And I'm not talking about the most esoterical knowledge either, nothing mathematical, I'm not talking about AI, proofs, or even DSL. No, really, I mean for instance using finite automata. The concept and usage of a simple automata is easy, but they'll never think about using it, even when using it should be the obvious choice...
And don't get me started about the 5+ years graduates who don't even know about hash-lists! How is that possible? I'm not talking about writing one -it can be quite difficult- but just using them from a library or the language itself. Hash-lists are among the most classical data structures: they are easy to understand and useful for so many problems. Astonishingly, many colleagues and candidates I've met didn't seemed to know about them or even have heard of them. It's maddening.
How can you solve problems when you are either ignorant of the most simple -well known- solutions, or reluctant to use them when you know they exist?
Then of course, to top it off, you have the bosses that actively discourage the use of any such "advanced" concepts, because thinking before-hand is bad, architecture is useless, what tests? Let's start coding NOW. But that's another topic...
(Score: 1) by Grishnakh on Monday March 03 2014, @04:39PM
You mention one of the big problems I've encountered among my colleagues. Something that drives me nuts.
How can you solve problems when you are either ignorant of the most simple -well known- solutions, or reluctant to use them when you know they exist?
Then of course, to top it off, you have the bosses that actively discourage the use of any such "advanced" concepts, because thinking before-hand is bad, architecture is useless, what tests? Let's start coding NOW.
It sounds to me like your colleagues are more competent at their jobs than you are. They're doing things the way the bosses want, and you're just trying to swim upstream and cause problems.
(Score: 1) by neagix on Monday March 03 2014, @08:27PM
Except that if you work in IT, you never stop learning - you just cannot afford it. The moment you do, prepare to be replaced.
So if you find an attitude that halts or hinders your personal development it IS advised to swim upstream or change job. The opposite of "causing problems" is not "squeeze me as much as you want with any nonsensical braindead idea you have". On one hand you have to keep your brain cursor on useful technologies for the company, on the other hand you have to reject incredibly broken designs. It's a pure call to honesty IMHO.
Anyway, I think lgsoynews was referring to the level "culture" in the work place while I am more interested in why/when did we forget that the "S" in CS stands for "Science". Or it used to.
(Score: 1) by Grishnakh on Monday March 03 2014, @09:10PM
On one hand you have to keep your brain cursor on useful technologies for the company, on the other hand you have to reject incredibly broken designs.
And what if that goes directly against what your boss wants? You seem to be assuming that companies are well-run and managers are intelligent and knowledgeable. When you're an employee, your job is to your boss's bidding. If he wants you to implement a nonsensical braindead idea, that's what you do.
So if you find an attitude that halts or hinders your personal development it IS advised to swim upstream or change job.
You can only do this so much. If you jump around too much, you're seen as a liability. Plus, this isn't very good for your financial state.
(Score: 1) by neagix on Monday March 03 2014, @09:45PM
I am not assuming that utopian world you described, but saying that it is worth your sanity to look for a middle ground.
Regarding the "if you jump around too much" point: what if some people are fine with bending and others are not? Sorry but I am not buying the scaremonger "wisdom". I will simply work for those companies that do not see me as a liability but as a resource, problem solved.
(Score: 1) by cafebabe on Tuesday March 04 2014, @07:26PM
Your job as an employee is to maximize shareholder value. If you're out of a job, your colleagues are out of a job and your boss is out of a job, that's because shareholder value is zero and no-one done their job properly.
I'll admit that it can be very difficult to say "Your idea blows goats" in a manner which is diplomatic but you're dis-honorable to ignore it and you make the computer industry look amateur.
1702845791×2
(Score: 2) by Grishnakh on Tuesday March 04 2014, @08:07PM
Then by that definition, every industry is "amateur". I don't know of any industry where you can tell your boss he's an idiot and his idea is stupid and expect to keep your job for long. Yes, you can be more diplomatic, but after you've made your case, his word is sovereign, so when he tells you to implement the nonsensical braindead idea, that's your job. You can go over his head to his boss, but that's a sure recipe for disaster.
(Score: 4, Interesting) by Anonymous Coward on Monday March 03 2014, @07:30AM
The people he's complaining about don't sound like cowboys to me. They sound like hipsters.
The cowboy bangs out 10,000 lines of C in a week without documentation because it was the only way to get the demo done for the VCs. The C works well enough for the demo. Ultimately it becomes a decent codebase. The cowboy hates the waterfall and big organizations. The best thing for the cowboy is to get the company started, then educate maintainers and move on.
The hipster "collaborates" for several weeks about what kind of scripting language should be used for the project before writing any code. If/when any code is produced it runs unacceptably slow. This can be fixed by throwing more hardware at it because "developers are expensive". Analysis of the hipster code will likely turn up something like an exponential algorithm for which a linear solution is available. It's all good because we used the latest and the greatest though. Throw more hardware at it. How does the pork-pie hat look? I'm wearing it to $ScriptingLanguage Con.
(Score: 2, Funny) by L5GwL on Monday March 03 2014, @09:28AM
To paraphrase:
"The sweeping generalisations made in the article miss the mark. In contrast, my sweeping generalisations are much more accurate."
(Score: 2) by regift_of_the_gods on Monday March 03 2014, @02:37PM
Too funny. But true
(Score: 1) by cafebabe on Monday March 03 2014, @03:36PM
Ok, so pork-pie hats are in but is hipster mouse taxidermy still fashionable?
1702845791×2
(Score: 3, Interesting) by MichaelDavidCrawford on Monday March 03 2014, @11:37AM
-ng out of my Physics degree.
I only completed my Physics BA at UC Santa Cruz because I grew weary of being asked in job interviews why I never graduated.
I was SQL for Apple MacTCP back in the day. MacTCP was written by a brilliant assembly coder by the name of John Veizades. Really he's a good guy but he could have a bit of an attitude:
"John there's a bug in MacTCP. It crashed when I did $SOMETHING."
"That's your test tool, Mike. You fix it."
Admittedly the test tool strm_echo was quite buggy but I did know how to use MacsBug to debug it.
The next day...
"John could you step down to the lab for a moment? I want to show you something." ... shortly after ....
"See that there? That's where you unlock a Handle, then fail to lock it again before memory moves."
It was completely cool to unlock Handles, but you had to lock them again before the Classic Mac OS would do a heap compaction. It was rather like defragmenting your hard drive. That's how Apple got GUI on a 128k Mac for that superbowl ad - a relocatable memory manager could be made to run your code with a far smaller heap, but you had to follow some very strict - and WELL-DOCUMENTED rules, or you would corrupt the heap, or else your memory block would be overwritten by some other data, even if the heap was not corrupted.
My resume [warplife.com] is now seven pages. I am no longer flogging myself as a software engineer but as a Process Architect.
However I do have to agree with that guy's blog, if you don't know what referential integrity is as well as why you need it, you have no business coming anywhere near a database.
A physics degree - or even dropping out of a physics degree - is a real good way to develop a deep intuition as to how things work.
Perhaps a good interview question would be "are you handy with tools?" I mean like wrenches and screwdrivers. "Yeah? Can you give me some specific examples of what you've done with tools."
Yes I Have No Bananas. [gofundme.com]
(Score: 2, Informative) by dr zim on Monday March 03 2014, @05:43PM
So, this guy wants to rant about recent grads not knowing math, yet he can't be bothered to use decent grammar or spelling. I guess those aren't important in the business world.