Live data from Hacker News

What Level Programmer Are You?

whattofix.com

61–68 of 68 posts

Re: What Level Programmer Are You?

#61
post #40

Earlier quoted context omitted.

I was mostly agreeing with you until you starting on the technology bigotry. > Because while the Java+IDE environment makes it extremely difficult for an individual engineer to have a 1.5+ impact –there are two cases in recorded history of programmers breaking 2.0 in Java; one is Martin Odersky, who wrote Scala, and the other is Rich Hickey, who wrote Clojure What about people like Doug Lea and Josh Bloch? What about…

First of all, I was exaggerating the negatives of Java. There are 2.0+ programmers writing in Java every day. The vast majority of these would prefer to use another language, but that's another story. My experience is that most 1.5+ developers, when forced to use Java, react in one of two ways. The first is to scale back their general tendency toward ambition in coding and tolerate uninspired patterns, such as object…

> My experience is that most 1.5+ developers...

My experience is that most of the highly skilled engineers that I have worked with don't really care about the language that much. Most of them are much more interested in what they are building, and interested in how they are building it to the extent that it gets in their way or gets in the way of future maintainers. There are those that are much more productive in languages other than Java, but for most the barriers to productivity or delivery time are not the language but the environment. Using a well-supported and mature platform like Java (both the language and the JRE) helps a great deal here, as does the wide variety of libraries and frameworks available in the Java world. The same applies to the .NET platform, and some other mature platforms that are available.

Languages like Scala and Clojure blur the line here a bit, because they are 'more powerful' languages on an mature platform. The Java language still holds some benefits over these languages, mostly in it's stability.

> but it's not fast

No, let's not start the 'Java is slow!!!!' debate again.

> Greenspun's Tenth Rule

I think Greenspun is wrong about why this happens. I think it's a sign of weak program design, rather than a weak language.

> Are there 1.5 and 2.0 programmers in languages like Java? Absolutely. Is it common? No.

I think you are wrong about this. I have seen little evidence in my career of a correlation between chosen technology and ability to deliver results. There are some technologies that I don't like or find not to my taste (PHP springs to mind), which have been the basis for some fantastically successful projects.

I might admit that the median skill (measured by the ability to deliver effective results) of people who chose Java is lower than those who chose other languages, but my experience suggests that those differences disappear quickly as you move upward.

> Disagree, unless you're taking a very strict view of what "functional programming" is.

Expanding your definitions to preserve your point is a symptom of fallacious reasoning.

Engineers chose tools for many reasons, and a good engineer will have a wide set of tools they know and good judgement about which is the best to use. Looking at which tool they happen to have chosen isn't a good indicator of skill - the actual outcomes are much more useful. Is what they built useful? It is maintainable? Was it delivered on time? Was it delivered in budget?

Re: What Level Programmer Are You?

#63
post #61

Earlier quoted context omitted.

First of all, I was exaggerating the negatives of Java. There are 2.0+ programmers writing in Java every day. The vast majority of these would prefer to use another language, but that's another story. My experience is that most 1.5+ developers, when forced to use Java, react in one of two ways. The first is to scale back their general tendency toward ambition in coding and tolerate uninspired patterns, such as object…

> My experience is that most 1.5+ developers... My experience is that most of the highly skilled engineers that I have worked with don't really care about the language that much. Most of them are much more interested in what they are building, and interested in how they are building it to the extent that it gets in their way or gets in the way of future maintainers. There are those that are much more productive in la…

My experience is that most of the highly skilled engineers that I have worked with don't really care about the language that much.

My experience is that most good engineers are conscientious. They don't want their code to be tomorrow's legacy disaster. This makes them care a lot about languages, if we're talking order-of-magnitude differences like Scala vs. Java. If we're talking about Clojure vs. Python, then maybe not.

Friends don't let friends maintain Java code.

No, let's not start the 'Java is slow!!!!' debate again.

Java is slow to write. And very slow to read. Ever maintain a Java or C++ project? It's glacial. I'm talking about human performance, not runtime speed.

I think Greenspun is wrong about why this happens. I think it's a sign of weak program design, rather than a weak language.

I think it's a sign of bad practices. One thing that impels people toward bad practices (and not the only thing) is using the wrong tools.

C was designed for simple programs that need tight control over resource use and speed, or that need direct, reliable hardware access. As per the Unix philosophy, these programs were never supposed to become large; they should be modular and communicate through pipes or sockets. For those purposes, it's excellent. But if you have a 250 kLoC C++ program, you're doing something wrong.

One causative factor for the Greenspun effect is inappropriate language choice. It's not the only one.

I think you are wrong about this. I have seen little evidence in my career of a correlation between chosen technology and ability to deliver results.

"Deliver results". Here is your problem. A 1.2 programmer can code software to spec, meet deadlines, et cetera. That's an additive effect: cranked it out, met deadlines, went home. The difference between a 1.2 and a 2.0 is the ambition (in the latter) toward multiplier effects-- toward using technology to make whole teams or companies more effective. It's not just about "results"; it's about what those results are.

Expanding your definitions to preserve your point is a symptom of fallacious reasoning.

I guess my point was that it's not accurate to say that 1.5+ programmers always use functional programming, but the weaker claim is true that, for complex tasks requiring high-level languages, they prefer languages that support the functional style.

Re: What Level Programmer Are You?

#64
post #61

Earlier quoted context omitted.

> My experience is that most 1.5+ developers... My experience is that most of the highly skilled engineers that I have worked with don't really care about the language that much. Most of them are much more interested in what they are building, and interested in how they are building it to the extent that it gets in their way or gets in the way of future maintainers. There are those that are much more productive in la…

My experience is that most of the highly skilled engineers that I have worked with don't really care about the language that much. My experience is that most good engineers are conscientious. They don't want their code to be tomorrow's legacy disaster. This makes them care a lot about languages, if we're talking order-of-magnitude differences like Scala vs. Java. If we're talking about Clojure vs. Python, then maybe…

Enterprise Java idioms are slow to write and slow to read, but if you use Clojure to write the same sort of crap you end up with same sorts of crap. Read Vuse's source code for a fresh look at what it means to use Java. http://dev.vuze.com/

PS: http://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule means for any sufficiently large program you effectively use the language you chose as you build it.

Re: What Level Programmer Are You?

#65
I like how programmers target other programmers at different levels (and also that the more advanced you get, the more able you are to target less skilled programmers). Not sure that's fully correct, and lots of details to disagree with, but I appreciate this point of view.

An overall objection: though it does both, it focuses on coding solutions rather than understanding problems. While there's a case for defining a programmer as "someone who programs", to me, understanding the problem (aka asking the right question) is the difficult bit (see Douglas Adams).

Re: What Level Programmer Are You?

#66
post #43
post #36

Earlier quoted context omitted.

> I am currently making nowhere NEAR the ludicrous fantasy sums (ie $100k+) that you Americans consider to be a human right but I'm thinking I could aim higher. When comparing USA and €U salaries, you always have to factor in all the things you basically get for more-or-less free like complete medical care which you are paying ridiculously little for, way less than the amount of money you actually need in case of a s…

Thanks, great feedback. What are some highly specialized niches that I could look into for consulting? I actually don't care that much about money, in absolute terms. I care about maximizing my free time and maintaining a somewhat decent standard of life. Ideal scenario for me: a high hourly wage + the freedom to take on work in whatever chunks I prefer.

I listed some quick-shot ideas there, did you see them? Ultimately you will have to see and try for yourself how well they work and what other opportunities are there - scout the terrain yourself.

> I care about maximizing my free time and maintaining a somewhat decent standard of life. Ideal scenario for me: a high hourly wage + the freedom to take on work in whatever chunks I prefer.

Most of this SCREAMS consulting, you could be making more a week than you are making a whole month now... but you have to put that into perspective. As a self-employed consultant, you will have to take care of all your taxes and insurances but at the same time you can effectively buy computers and certain other things MUCH cheaper (practically no value-added tax). You will have to find customers, projects or are lucky enough to find longer lasting maintenance gigs but YOU will have to do that. You will be your own boss and depending on your customers, your working hours might be extremely flexible but you will also have new and different responsibilities... taxes and insurances are one huge part of that, the other is that lovely thing known as "liquidity" that can break your neck faster than anything else. And when you are a consultant in some software-product niche, then chances are whoever makes that software will actually sign the deal with the customer and then pass it on to you but of course they will bite a nice chunk off first... but on the other hand this might also be a chance to get started and meet people and customers, use their name, reputation and connections.

Another thing is "taking on in whatever chunks I prefer"... generally, yes, you could say yes and no to any offer but chances are you will NEED them. So, while you are a lot more flexible that also means you are more dependent on actually having something to do that will ultimately pay the bills. You won't be able to simply rely on recurring, reliable amounts of money. Oh and there are customers who will just make you wait for whatever money they owe you because like I said above, everybody is liquidity's bitch and in the worst case you might not get paid at all... that is definitely a risk you will have to carry and be aware of.

So ultimately, those 4 figures a day sound insane at first but you will have to dig deeper and really weigh the ups and downs and whether it is something you like because ultimately it ends up being less; possibly still handsome but chances are your actual work won't just be "doing task x for customer y" but you will also have to do a, b and c just like a real company would have to - because ultimately, you actually ARE your own company at that point. Your best bet is to read up on it as much as possible, talk to self-employed consultants a lot and since you are European, chances are your government offers some sort of "kick-start" help, training or even funding when you start your own little "company".

Oh and, stay self-employed and if you need help, find other self-employed contractors before you take on actual employees working for you. European law doesn't frakk around when it comes to employees... save yourself that trouble for MUCH later.

The bottom line is: it has a lot of positive and a lot of negative sides when compared to a regular 9-5 job and you will have to weigh them yourself and see how it works out... it is definitely an interesting experience and can be such an exhilarating, empowering feeling because YOU are working for YOURSELF and make all the decisions but remember that most "startup" companies like that typically don't make it over the first 1 or 2 years and a LOT of "I can write Java really well" guys are desperate for gigs on the side because it is hard finding a project... so they write books or teach. That's why the idea with the niche. And see what your government, chamber of commerce etcetctec can do for you.

Good luck.

Re: What Level Programmer Are You?

#67
post #66
post #43

Earlier quoted context omitted.

Thanks, great feedback. What are some highly specialized niches that I could look into for consulting? I actually don't care that much about money, in absolute terms. I care about maximizing my free time and maintaining a somewhat decent standard of life. Ideal scenario for me: a high hourly wage + the freedom to take on work in whatever chunks I prefer.

I listed some quick-shot ideas there, did you see them? Ultimately you will have to see and try for yourself how well they work and what other opportunities are there - scout the terrain yourself. > I care about maximizing my free time and maintaining a somewhat decent standard of life. Ideal scenario for me: a high hourly wage + the freedom to take on work in whatever chunks I prefer. Most of this SCREAMS consulting…

Well, I think I could swing it. What kills me right now is not my meager salary, but rather that it takes so much damn time to acquire it. And most of that is unnecessary time. Working hard and playing hard is more my melody, I dislike the middle ground.

Re: What Level Programmer Are You?

#68
post #67
post #66

Earlier quoted context omitted.

I listed some quick-shot ideas there, did you see them? Ultimately you will have to see and try for yourself how well they work and what other opportunities are there - scout the terrain yourself. > I care about maximizing my free time and maintaining a somewhat decent standard of life. Ideal scenario for me: a high hourly wage + the freedom to take on work in whatever chunks I prefer. Most of this SCREAMS consulting…

Well, I think I could swing it. What kills me right now is not my meager salary, but rather that it takes so much damn time to acquire it. And most of that is unnecessary time. Working hard and playing hard is more my melody, I dislike the middle ground.

I should also mention: consulting can also require (much!) more flexibility and traveling depending on partners and customers and staying in hotels and flying around all the time can get very old very quickly... most of the time you don't really have any chance to enjoy the place you are staying at anyway - if you are independent and don't have a wife or especially kids to worry about, if you are young and just starting out, it is definitely a great option to see a lot, meet people, get "front experience" and valuable contacts a lot easier and natural than any other way - if you want to have a family and enjoy lots of time with them and provide for them reliably, it might not be the best option.

And I hear you about working and playing hard... I would love to do my week's work in 2-4 days and have the rest of the time off but the overwhelming majority of employers is stuck in Ford's 40-hours-at-the-belt kind of ideology, especially in older, settled industries.

Post reply on HN