HN user

mmorett

49 karma
Posts0
Comments83
View on HN
No posts found.

The L.A. freeway system is not about L.A. It's about Southern California. Comments that suggest public transportation don't take into account the unique layout of SoCal. Here are just a few of the things to take into account, coming from a guy that grew up in NYC and now lives in SoCal.

--SoCal is not like NYC or SF where you can walk a few blocks and take a bus or a subway. SoCal blocks are incredibly large. I get in my car to go 2 blocks away, because those blocks are huge. Two of those SoCal blocks are like 6 of my old NYC blocks.

--SoCal is made up of many, many cities over a large, large area. There is no way to get from one corner of Fountain Valley, in a subdivision, to a job in Irvine (relatively close) where the office in an office park is no where near a bus stop. And that's just Fountain Valley to Irvine. This is definitely not an easy situation like covering Manhattan (a single, centralized destination where many of the jobs are.)

--There is no way to setup a workable network of busses/trains to mesh all the cities involved. What's the solution for Costa Mesa to El Segundo? Torrance to Burbank? West Covina to Anaheim? Newport Beach to Norwalk? And so on.

--The bus system we have usually covers a single city and maybe an adjacent city. Going to work for most folks involves going thru 7-10 cities. A simple commute from Costa Mesa to Manhattan Beach could involve going thru (winging it here from memory): Costa Mesa to Fountain Valley, to Huntington Beach, to Westminster, to Bellflower, to Long Beach...(catches breath since I'm not even half way there on the 405 Fwy) to Wilmington, to Carson, to Torrance, to Redondo Beach, to Lawndale, to Manhattan Beach. And you're only at the freeway exit -- now you need to get to the exact office location which means driving thru Manhattan Beach. Take a series of buses, if even possible at all, and you're looking at a 3 hours commute one way.

I would love to take public transportation. It's just not possible. I can't even walk to get lunch. In centrally planned Irvine, they put the housing in one area, the commercial offices in another and the retail commercial spots in another. Even when they are semi-adjacent, the blocks are huge. It would take 30 minutes to walk to the nearest strip mall to get a burger. It's 5 minutes by car.

It sucks, but it's not just an issue of freeways. It's how SoCal is designed.

----------

Edit: adding my solution ---> tax breaks for businesses that allow telecommuting. Keep us off the road and the problem goes away.

+higher quality of life

+less wear and tear on the cars

+less pollution

+less expenses on gas, eating out for lunch

+less maintenance on the roads

+less need for new buses/trains/employees to run them

+less congestion for those that need to be on the road

First sentence: "Did we not give you an offer? Did you reject an offer?"

Third sentence: "If I remember right and we did reject you..."

---------

Where do I even begin with this.

After reading all these (good) comments, I thought I'd go to SO now and try and pitch in and answer a question or two in my domain of expertise. You know...give back to the community. Be a part of the solution.

I found a question that could easily be answered and would be of value to users hitting this issue.

Here's that question: http://stackoverflow.com/questions/28541540/how-to-generate-...

I could not stop laughing at how this confirms the insanity being discussed here.

"Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam..."

Yes. And 238 million people saw Dez Bryant catch that ball notwithstanding the NFL's rule-which-must-be-followed-to-the-letter-of-the-law.

Some guy, or woman, won't get their question answered that could have helped them. It was a reasonable question. And people are willing to help them. In some way, I suspect StackOverflow is incredibly proud they prevented that...but stuck to the letter of the law on their policy.

You win StackOverflow.

And there's a reason why Google is hiding or manipulating their numbers. They're poor. If they were good, you know darn well they'd be bragging about them. So they play tricks and games to try to hide that data.

I understand the problem. I just don't give it any validity. The renters think their wishes and desires to live in a specific area are more important than other people who wish to live in that same area. It comes across as immature and whining.

It's not just renting. It's income as well. There are lots of folks whining about how others make more money and how that "isn't fair". It's a broad theme of people complaining and having a sense of entitlement.

It's called supply and demand. It's called life. Things change. The world doesn't revolve around families that "shouldn't be uprooted and have their lives thrown into disorder".

If those families wanted to be able to stay there permanently at a fixed rate of housing expenses, they should have purchased the property. Can't afford to buy? Then deal with the risks of renting.

Their desire for low rent that keeps them comfy and entails no inconveniences has no validity. That's just a wish. That's immature. This is not grade school and not everyone gets a trophy for simply showing up.

We have a reasonably regulated market. What we don't have is a system where people get to live where they want to live without regards to what they can afford.

SF renters need to back up the U-Haul truck and find new places to live where they can afford it. They are not "entitled" to live in SF simply because they want to.

And replace the free market with what? Communism? Where people like you try to show your brilliance at dictating how things "should be"? GTFO.

Fair enough. Then they can go to medical school. Or law school. Or be an accountant. Or an investment banker. They could take up the trades (electricians, plumbers, carpentry). Maybe help animals--be a Veterinarian. Work on the dark side...be a mortician. Be an airplane mechanic or a civil engineer. Dispense drugs...be a Pharmacist. Build bridges and buildings.

Something tells me they will find an excuse for why any and all of those options presented are not options to them. They are professional complainers.

Yet another thread full of HNers sitting back and contemplating various ways to take other people's money like a Soviet central planning committee. Can you fuckers stop worrying about how much money someone else makes or whether they got it thru inheritance. It's not your money. It's none of your business.

Because it's free. Or they learned it over the years (and began with it, because it's free). IntelliJ is only $199, yet "professional" developers insist on using Eclipse. Like, $199 is too much to spend on your craft.

Screw FizzBuzz...the first question on an interview should be: Do you use Eclipse? That speaks volumes, far more than a silly set of "if" statements and making use of the modulus operator.

I don't see how anyone with practical experience developing commercial software could write something like this.

Exactly. Using IntelliJ "holds me back", but if I bust out vim, somehow my code will miraculously get better. Sigh.

What I type, or not type, holds me back. Not the editor. That's just a means to an end.

I'm torn on this. I get what quanticle is saying, that Big-O is very important. I've developed an appreciation for it even if I didn't take CS in college (I took the redheaded bastard stepchild major of CIS).

quanticle is suggesting there is a purposeful, formal means of discussing and identifying performance, irrespective of how it's measured/profiled or addressed.

Here's the rub: why don't job openings eliminate the other requirements and just put Big-O (and a language) as the two must have items on the list. Keep it short. Eliminate the History majors, the non-college types and the CIS (almost but not good enough) types.

That, more than any FizzBuzz, should weed out the chaff instantly. If it's that important to that specific job, then just say so explicitly. Help folks self-filter themselves out.

Let's just hope getting in the door with that Big-O knowledge isn't wasted on run of the mill CRUD apps.

Lol!! You're killing me. I need to work tomorrow and you're gonna have me up all night thinking how to optimize this thing. It's only 5 lines of code.

Hashtable, huh? I don't like them because they're synchronized, but let's use a HashMap instead. Regardless, I'm stumped.

Let me think out loud. You'd probably want me to stick two entries in there with the words being the values. I suspect the keys are irrelevant. But I need the values themselves sorted prior to being placed in the map. Lets assume I stick the char arrays in the map. I still can't see how the map helps. Unless, I abandon the HashMap and go with a TreeMap instead. That negates the need to explicitly sort and maybe that's the time savings, but....

My head hurts. :-)

I don't know. I'd have to code this out and experiment a bit. But I like the push. You're forcing me to dig deeper.

PS. I can't build a search engine.

EDIT: A quick search of the net yields at least one answer (don't know if this works):

"We can solve this problem in O(n) time by using hashtable. That is, create a hashtable which record the times that the characters a-Z appear in S1 and create another hashtable for S2. If the two hashtables have the same content, then the strings are identical. This solution requires O(n) time to create two hashtables and compare them, and O(52) = O(1) space to store the hashtable."

I'm so disgusted. I was way off. Not even close. I wasn't even thinking in this direction. Does anyone have the number to that truck driving school?

That's the $64,000 question. If I knew the answer, that would be my startup. It's a tough problem. It almost makes one beg for some sort of one-off certification (bar exam?) so we can put that to rest for ever after. I'll go out on a limb and say that most lawyers, especially the senior ones, probably couldn't pass the bar exam again. Developers have a mini bar exam every time they interview (hence the studying).

That said, there's one thing you wrote I took interest in: "I've met lots of folks who talk a great game, have all kinds of experience listed on their resume, and yet somehow can't write up a linked list..."

Umm...that would be me. I've never written a linked list. Guilty as charged. Java has a LinkedList class and I've never bothered to look at the implementation nor have I ever been curious enough to (re)write one from scratch.

I wish you would have said "...and yet somehow don't know when to use a linked list." That moves it from an academic exercise mostly applicable to CS students who might have written one 6 months ago, to a meaningful real world scenario and more than legitimate. Choosing the appropriate data structure, knowing when and why, is both realistic and important. I don't know how a candidate can bullshit their way thru a discussion of data structures where they can articulate, accurately, which one to use, when, and why.

"In my experience, when we are programming on the job, we're given the problem and we have time to think about it. We have time to research possible solutions, we have time to try stuff out that we know will most likely fail, and we can wait until we have something decent before we show it to our colleagues"

^This * 2

:-)

That's exactly how it played out on this thread in real life. Let me explain.

philwelch mentioned something about using anagrams as simple example to test for coding knowledge. My first attempt was a solution to palindromes. (Seriously...I totally botched the interpretation of the problem).

Elsewhere in the thread, typicalrunt sketches out some Ruby to show the answer but the crucial piece was him mentioning "sort(word1) == sort(word2)". I didn't know that. Language aside, I get it now, but I didn't then. If you don't know that, all the knowledge of language syntax in the world won't help.

So, just sort two strings. Cool. Except, I had never sorted a single string. It just never came up in day to day work. A quick peek over on StackOverflow yielded two bits of information I needed (I'm doing this in Java).

1. Convert the string to a charArray (something else I never used).

2. Sort the charArray using Arrays.sort()

With those pieces in place, the solution became evident.

But....I'm doing this at home with the TV on, relaxing, with nothing on the line, no one looking at me, the ability to research things, and generally no pressure at all. I was just curious on how to get the answer.

Change that to a job on the line, typicalrunt's advice/pseudocode not available and folks staring at you, and it's not going to end up the same way. I drew a blank at home. I'd definitely draw a blank in an interview.

Elasped time to solution (actual coding): < 1 minute.

With solution in hand, am I now somehow "better" as a developer? I think not. I did what I would do on the job: research when needed and apply it to the problem at hand. I could be faulted for not ever having used toCharArray(). Fair enough. But in the grand scheme of things, did it matter? Heck, there's plenty of pieces of the Java language I don't use daily or not at all.

Anyways, I just wanted to share how this played out.

HN seems to lack reply links in some messages so I need to answer you here.

"If you can't check an anagram given the definition of an anagram and the programming language of your choice, what problems can you solve? It's not a hard question and if you can't come up with a correct solution at all, I dare say you lack the ability to program."

Here's your anagrams checker tough guy:

  static boolean anagram(String word1, String word2) {
    char[] chars1 = word1.toCharArray();
    char[] chars2 = word2.toCharArray();
    Arrays.sort(chars1);
    Arrays.sort(chars2);
    return Arrays.equals(chars1, chars2);
  }
I was speaking in the abstract, but you made it personal.

Would you like me to build a search engine next?

Since a reply link isn't available for spacemanaki's comment, I'll stick it here:

"The purpose of a question like this, and of the classic FizzBuzz question, is to be a lightweight test of whether a candidate can actually write code or not. That's all. It provides a negative signal if they fall completely to get anywhere close, and nothing more."

I disagree. Vehemently. Provide me an email address and I'll mail you tons of code I've written. You cannot, cannot conclude with any accuracy that the inability to code up a method/function to check an anagram means that the person cannot write code. What you can conclude is that they cannot write up a method/function to check an anagram.

You're making an assumption. If a = b and b = c, then a = c. That works in math class but not here. The test is not one of syntax or knowledge of the language but of knowledge of a specific problem. Some here have used the word "trick". I don't even need to go there. Once you have the answer to this anagram exercise, you can back into why it's a good question, what it supposedly shows, etc. At that point you're justifying the question and defending it.

But you missed the entire point of the exercise: you're supposedly screening candidates for knowledge of a language and how they might have used it in their past experience, but letting it all come down to whether they solve your specific problem on the spot with all of Pamela's concerns about stress, etc.

It's easier to ask about an anagram than to ask about a candidate's past and what they did on their projects. If not an anagram, there are others. There will always be "solve this now" rather than "tell me about..." That's just the game.

I happened to have a conversation with someone about this recently.

Software developer: the career where you study to get the job, toss much of that away when you actually do the job, then study for the interview for the next job, where you toss much of that away when you actually do the job...

It's a rhetorical question, but I can't understand studying for a job. You either do it on the job or you don't. Studying, however, puts a ton of stuff in short term memory where it gives the appearance of brilliance.

An even easier way is to check StackOverflow.

http://stackoverflow.com/questions/9321654/java-anagram-find...

One of the comments mentions: "Just had a phone interview with Amazon and this was the exact question they asked. Interesting problem if you have more than 10 minutes to solve it. – Javamann Jun 14 '12 at 20:46"

So....do you store this knowledge in your back pocket in case you need to check anagrams at work (which will be never), or do you toss it aside knowing you can hit StackOverflow if/when you need it?

It seems like the only time this stuff is "used" is on technical interviews.

I readily concede you can't substitute StackOverflow for general competence, but an algo for checking for anagrams doesn't seem like general competence.

I think part of the problem is the breadth of material for which you can be questioned in. Since I live in the Java world, let me use that as an example.

I have heard of anonymous classes. I've never used one on the job. Maybe that's a function of me being more server side and I think anonymous classes are use more heavily in Swing. Ditto for reflection -- aware of it and when to use it, but just never had the need. For better or worse, the pieces of functionality I've had to build out over the years simply did not require me to use those pieces of Java. There are countless of pieces of Java that I simply do not use, even if I'm aware of them.

A Java developer (at least in my circles) rarely just codes in Java all day. Often, they're using a framework. It might be Spring. It might be Hibernate. Right there, you have two vertical streams of expertise they could pounce on. Now add SQL. Even if you're using Hibernate, you'll still need some fundamental knowledge of SQL. Likely, they'll hit you with HQL questions. Maybe some lazy loading. Maybe some optimistic locking.

Maybe add EJBs. Maybe add JPA. Throw in some jQuery/HTML/CSS (unless they live exclusively in the server tier). Inevitably, some may ask about stored procs/PL-SQL. Oh what the hell...let's add web services, SOAP, REST, Ajax, JMS, transaction isolation levels, clustering, SSL. And so on. Wait...add Linux admin.

The disconnect (anxiety?) comes from a developer having to use so many technologies, which is realistic, and the interviewer salivating at the opportunity to go deep in any one of those.

"Excuse me...you can't write a static nested inner class? And you call yourself a Java developer?"

I once had an interviewer disappointed in not being able to ask me PL/SQL questions, despite me not even having PL/SQL on my resume. He just wanted to go there.

The interviews are often based on a notion that a developer does nothing else but use the language to its fullest. All day. Every day. Reality suggests that a developer uses only as much of a language as needed to build out a piece of functionality for a given need. They don't use every data structure available, nor necessarily every major piece of the language.

There's seemingly no way around this conflict. The interview is focused on a language. The developer is often focused on putting together solutions. Depth vs. breadth.

For the record, I had an interview once for a Grails developer spot and was asked about UDP. Yes, seriously...UDP.

We're not God. We're just developers.

"so let's test them while blaring a foghorn in their ear"

I hope I don't get yelled at, but damn that was funny. That stated it so perfectly.

The only "stress" in software development that I see on the job is trying to meet deadlines that either aren't realistic, or now moot due to (substantial) changes in requirements.

Bugs are normal. Prod issues are normal. Code that won't work as you envisioned or intended is normal. Problems that are hard to solve are normal. Any or all of the above sometimes require extra hours to resolve but that's not even in the same ballpark as "will I be homeless soon".

Phrased another way: being without money is not that stressful. Being without a way to make money is extremely stressful.