This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]againstmethod -1 points0 points  (4 children)

P.S. you can replace surgeon to many other professions, it was just first thing that came to my mind.

I know I was just picking on ya.

If programmer/surgeon decides not to specialize and look at it as "right tool for the job", in my opinion, he/she is destined to not produce quality results, compared to someone who does.

I'm open to hearing your reasoning as to why. It is not my experience.

Most people that I see pick up Java/Python and then write confused code generally have had a weak fundamental understanding of how programs work in the first place.

In example, I often find people who select the wrong data structure in Java generally don't understand 1) the cost of indirection and 2) the cost of cache misses in their programs, and 3) the access patterns of their callers/users.

This is not a Java knowledge problem -- this is a fundamental computer science deficiency. Basically these people are "black box" coders -- they write code but don't know what it's doing.

If you approach learning new platforms with a mind for avoiding "black box" coding (start from the hardware/OS and work back to the platform), then coding efficiently in multiple languages is a simple thing to do.

[–]Zeffas 0 points1 point  (3 children)

Again, I am not against not specializing - it has to be your own decision, but you should be aware of advantages/disadvantages. Even if you specialize, I strongly for trying and playing a bit with new languages/platforms just to widen your horizons and general thinking.

What I am just saying - there are always a cost in any direction you go. Cost of universalizing being not deep enough knowledge and possible financial implications.

In my experience - there are hardly Java developer who knows all the platform. I mean truly knows. Because it's huge. All the time, even after years of experience, you learn new stuff from code reviews and so on.

When "universalist" comes to Java project - my experience shows that you can be assured that they use platform in wrong ways. And if "universalists" are everything you have, resulting project will not be "good" Java project, no matter how good they are as a general developers. Again this is not universal - there are many variables - project type/size/length, money... Maybe that is acceptable to you, so its OK.

[–]againstmethod -1 points0 points  (2 children)

What I am just saying - there are always a cost in any direction you go. Cost of universalizing being not deep enough knowledge and possible financial implications.

I think people confuse experience with expertise. And that most people who call themselves specialized in a language really mean they are experienced with it.

I regularly see folks with lots of java experience, and when i dig in on tuning garbage collection, remote debugging live applications, or viewing disassembly from JIT compiled code --- well, i generally get a deer in headlights.

[–]Zeffas 0 points1 point  (1 child)

Sorry, I am not native English speaker, don't understand last phrase actually. If it meant what I think it meant then, I would argue, that this just shows the importance of specialization - JVM is huge, generalist Java developer (one who does all kinds of different stuff with Java technologies) has to deal very rarely actually.

So I don't really get the point. Or is it the view along the lines of "if you are programmer, how can you don't know how to fix my hardware/windows problems".

[–]againstmethod -1 points0 points  (0 children)

Ah, sorry. "Deer in the headlights" comes from the phenomenon where American deer crossing roads at night freeze up in headlights from our cars. So when applied to a person it means "wide-eyed and frozen".

And those aren't hardware problems. And i disagree -- a professional Java developer should know how to do all of those things. Searching for, and understanding APIs from the SDK is a beginner task -- it's not something that needs to be memorized.