Live data from Hacker News

Business Can Pay to Train Its Own Work Force

chronicle.com

141–149 of 149 posts

Re: Business Can Pay to Train Its Own Work Force

#141
post #99

Earlier quoted context omitted.

Models are used to get a better of understanding of a complex system, or to test a complex system when you can't test the real thing. A design pattern could be used to this way but they aren't. They are used as a design methodology that you are encouraged to follow. They also aren't based on any formal theory. They are based only on the experience of the people who create them. They are almost the definition of a cra…

From my experience design patterns are both taught and used as a starting place for solving a problem which is recognized as similar to a problem which was previously solved effectively with in the manner of the pattern. Rarely will the design pattern fit perfectly as the solution, but by recognizing and using the correct one as a starting point for many architecture related problems you can greatly reduce the work i…

I have no problem with design patterns as a concept. And I have no problem with design patterns being taught as the collective folk wisdom of wise sages of industry.

However, design patterns are craft, not engineering, and should be taught as vocational training--not as an academic subject.

Design patterns have no rigorous underpinnings. They have very little academic research to back up their efficacy. The only "proof" we have that the design patterns being taught are beneficial is the word of a few guys who wrote a book and the collective folk wisdom of industry.

There is nothing wrong with this, but it isn't firm foundation for an academic subject.

Re: Business Can Pay to Train Its Own Work Force

#142

Earlier quoted context omitted.

That's perfectly fine. What you're looking for is vocational training, not a liberal college education. Non professional college programs are explicitly not vocational training. If they were, they wouldn't require spending nearly half your time on general education requirements (assuming we're talking about the US here). I doubt art history, physics, or psychology has proven much direct use to you in your career. >In…

My idea of education is one that teaches you skills that are broadly used throughout your career. I don't a priori reject things that meet this criteria just because it's not based in theory (because theory is not an end to itself), or by applying arbitrary labels like "vocational" (whatever that means), "liberal" or "professional". As for art history and psychology, that's a different debate to be had about educatio…

>but you don't need to understand the details of the regex engine in order to use them.

Yes, at some point you do. Without understanding how regular expressions actually work, you can't know when it is appropriate to use them. Many things aren't possible with regular expressions and many grammars aren't parsable with regular expressions. You can either waste time trying to write an impossible regex (or write one that works on your tests, but blows up in the wild) or you can study automata theory and understand what actually goes on underneath.

As for the halting problem, I'll leave you this stack overflow explanation for why it is beneficial to understand.

http://cs.stackexchange.com/a/32853

Many problems in CS have already been solved, some are impossible to solve. You can either waste time on trial and error trying to reinvent the wheel or you can study the theoretical underpinnings.

Do you want to spend a week trying to model a problem as a finite state machine, only to determine that finite state machine isn't powerful enough to solve your problem?

Do you want to spend a month banging your head against a wall trying to solve a problem that you could have solved in 5 minutes had you realized it was just a well known graph theory problem all along? A problem that was solved decades ago. The only way to know these things is to study the theory behind what you do.

Why do you think Civil Engineers are required to take physics? The difference between an Engineer and an artisan is a rigorous understanding of the formal system underpinning his work. Artisans build through trial and error and experiences, and they leave many failed projects in their wake while they gain this experience. Engineers use theory and modeling to limit the number of failed projects to the net benefit of everyone involved.

Re: Business Can Pay to Train Its Own Work Force

#143
post #76

Earlier quoted context omitted.

The problem is design patterns are subjective, they are craft, not science or engineering. There hasn't been enough work serious research done on "Software Engineering" to call Engineering with a straight face. You can't point a whole stack of serious research to say the design pattern A is objectively better in situation X because Y and Z. What you can say is that design pattern A is currently in vogue so you should…

You're going too far when you dismiss design patterns as being merely fashion. Just because something is not objectively proven doesn't make it false. Things in the real world are not binary, where they are either objectively proven (hard sciences) or completely false ("The earth is flat"). In reality, lot of things are gray. Design patterns fall in that bucket — many of them help, as long as you remember that there…

I don't have a problem with design patterns as a concept. But you need to recognize them for what they are--folk wisdom. Some of it is useful, much of it isn't.

If there is no theory we have to fall back to empirical analysis, and unfortunately our industry hasn't done much of that. The only thing we have to go on is the general "consensus" of the industry, which is cyclical, transient and mostly fashion.

Some of the industry folk wisdom if beneficial and withstands the test of time. Most of us agree that encapsulation is nice. However, we don't agree on what form that encapsulation should take.

OO programmers argue that state should hidden away inside objects, functional programmers believe that state should be explicit and we should always try for pure functions and immutable data when possible. There's very little objective data to support either side (except that functional programming languages tend to have more formal underpinnings). Mostly it falls back to personal preference, which programmer sages you trust, and what the current industry fashion is.

Our industry reinvents the wheel time and again because we are slaves to the cyclical nature of the industry fashion.

Relational Algebra/calculus has been formalized for decades, yet people who don't understand relational theory cried out for something "simpler" and thus NoSQL was born. Fast forward 5 years and you'll find many of the people championing NoSQL had to reinvent most of the tough problems that CS had solved decades ago.

Again, there is nothing inherently wrong with craft and folk wisdom--just like there's nothing wrong with learning salary negotiation, but they don't belong in an academic CS environment. These things are best taught in an internship/apprenticeship after you've learned the underlying theory.

Re: Business Can Pay to Train Its Own Work Force

#144

The Uber robotics talent raid of CMU took piratization to a logical extreme, http://www.theverge.com/transportation/2015/5/19/8622831/ube... "They took all the guys that were working on vehicle autonomy — basically whole groups, whole teams of developers, commercialization specialists, all the guys that find grants and who were bringing the intellectual property," recalls a person who was there during the departures"…

I think this is a better example of dysfunction in academia than retaining/training a workforce. In particular, previous articles suggest that most folks saw their salaries doubled , with six-figure incentive checks to lure them away. From what I hear, it's not so much that the new salary is unusually high for industry researchers and engineers, but that the old salaries were unusually low (except in academia). CMU c…

I would guess that that the NREC engineers were paid locally-competitive engineering salaries in Pittsburgh, which would enable them to live a very decent lifestyle. Doubling their salaries probably was a change from $80k a year to $160k or so— from Pittsburgh to Silicon Valley pay.

For reference, $160k can buy a nice house in a nice neighborhood or suburb in Pittsburgh.

Re: Business Can Pay to Train Its Own Work Force

#145

Earlier quoted context omitted.

Then, do not go for a degree in Computer Science if that is all you want. I am sure there are cheaper and better ways to become a practician than going through college. Becoming a software developer is just one of the possible career options after a CS degree.

I doubt that there are cheaper and better ways to become a practician than going through college. In India, where I live, most companies are not interested in you unless you have a degree. The normal path to a career in programming is to get a CS degree. And the normal outcome from a CS degree is a career in tech. So, they are much more closely related than you acknowledge, at least in my part of the world (things ma…

Yes, it happens also in Spain: companies want college degrees for their software factories, and at the same time complain that colleges do not teach anything useful.

It's not colleges fault, in my opinion.

Re: Business Can Pay to Train Its Own Work Force

#146
post #76

Earlier quoted context omitted.

The problem is design patterns are subjective, they are craft, not science or engineering. There hasn't been enough work serious research done on "Software Engineering" to call Engineering with a straight face. You can't point a whole stack of serious research to say the design pattern A is objectively better in situation X because Y and Z. What you can say is that design pattern A is currently in vogue so you should…

Design patterns are models, something very much within the wheelhouse of engineering. Engineering doesn't always deal with absolute facts as in science. When an underlying system is too complex to fully describe, simplified modeling can be appropriate.

Again we see another Dijkstra soldier pushing the corrosive "software programming is complex" ideology. Notice how they are the same group as Martin Fowler followers.

> "They keep people from re-inventing nearly identical solutions over and over"

No, they force users to rewrite the patterns over and over again, since a pattern is an idea that a given language is not powerful enough to abstract over. Cf. opinions on the C2 wiki.

Maybe that's why you think what we do is "too complex to fully describe" - you haven't used a language that allows you to abstract at will.

Re: Business Can Pay to Train Its Own Work Force

#147

Earlier quoted context omitted.

Design patterns are models, something very much within the wheelhouse of engineering. Engineering doesn't always deal with absolute facts as in science. When an underlying system is too complex to fully describe, simplified modeling can be appropriate.

Again we see another Dijkstra soldier pushing the corrosive "software programming is complex" ideology. Notice how they are the same group as Martin Fowler followers. > "They keep people from re-inventing nearly identical solutions over and over" No, they force users to rewrite the patterns over and over again, since a pattern is an idea that a given language is not powerful enough to abstract over. Cf. opinions on t…

OK, just cool your jets mister, everyone here is having a pretty civil conversation without you attacking people for 'pushing corrosive ideology'.

And in order to formulate that attack you pieced together quotes from two completely differently messages and people to make your 'point'.

I said they keep people from re-inventing solutions, however it was the comment you actually replied to which else claimed they were too complex.

I agree they are patterns which languages do not yet abstract over, but until languages do I think they are very useful patterns for programmers to be able to correctly recognize as they occur frequently enough that knowing the pattern saves a lot of time and work. When languages can successfully abstract over those patterns, then knowing them will be niche knowledge assuming new patterns cease to be detected by humans prior to their ability to be abstracted by a language.

Re: Business Can Pay to Train Its Own Work Force

#148

Earlier quoted context omitted.

Again we see another Dijkstra soldier pushing the corrosive "software programming is complex" ideology. Notice how they are the same group as Martin Fowler followers. > "They keep people from re-inventing nearly identical solutions over and over" No, they force users to rewrite the patterns over and over again, since a pattern is an idea that a given language is not powerful enough to abstract over. Cf. opinions on t…

OK, just cool your jets mister, everyone here is having a pretty civil conversation without you attacking people for 'pushing corrosive ideology'. And in order to formulate that attack you pieced together quotes from two completely differently messages and people to make your 'point'. I said they keep people from re-inventing solutions, however it was the comment you actually replied to which else claimed they were t…

> OK, just cool your jets mister, everyone here is having a pretty civil conversation without you attacking people for 'pushing corrosive ideology'.

Please.

Rhetoric = Ethos + Logos + Pathos

Unless you want to believe I chose my words while extremely angry at you personally, and unless you want everyone to never use pathos and talk like robots in perfect clauses and rebuttals connected in an acyclic directed graph, I suggested you get used to this very common rhetorical necessity.

Re: Business Can Pay to Train Its Own Work Force

#149

Earlier quoted context omitted.

Strangely, we are unwilling to apply that same logic to traditional hiring processes. I.e., few companies have ever done a study (sufficient to win in court) to prove that their subjective human opinion-based tests do not have a disparate impact. Yet processes like this are somehow allowed. I.e., if my subjective human hiring technique is biased, you need to prove I discriminated on purpose. If my objective, IQ-based…

> Strangely, we are unwilling to apply that same logic to traditional hiring processes. Untrue. > I.e., few companies have ever done a study (sufficient to win in court) to prove that their subjective human opinion-based tests do not have a disparate impact. When an employment practice -- including a subjective, human-based tests -- does have a disproportionate impact against a protected class, and actions under it a…

how many examples are there of jobs where mental ability is irrelevant to job performance AND where there are more readily available and reliable signals of future job performance?
Post reply on HN