News for hackers. Stuff that matters.
Re:Dear HN "Who's Hiring" responders by ig1 on Monday April 01, 2013 @08:04PM (#5476803)
As someone who's recruited heavily at the entry level, you're mistaken. Even substantial number of computer science graduates lack the capability of basic coding (i.e. "here's the detailed specification of this function; go implement it"). There is substantially more demand than available talent.

SF, New York, London, Amsterdam, Berlin, etc. all have huge talent shortages. Even developer markets that were relatively soft in the past such as Poland and India are starting to become competitive as the war for talent becomes more global.

Re:Dear HN "Who's Hiring" responders by goldfeld on Monday April 01, 2013 @08:09PM (#5476834)
I have read that 30% of Standford CS freshmen change majors or dropout because they don't get programming at all. Do you see such a thing in recruiting? That you fear the hire doesn't actually understand the reasoning of algorithms and basic programming structures, and is maybe the type who bullheaded through college memorizing solutions as recipes?
Re:Dear HN "Who's Hiring" responders by ig1 on Monday April 01, 2013 @08:20PM (#5476886)
I'm not familiar with that stat but it's perfectly believable. Many people are clearly getting by with a mixture of memorization and trial-and-error rather than understanding.

I think of those who understand algorithmic reasoning (i.e. understand loops, assignment, etc.) they also fall into two categories. Those who can understand more abstract programming concepts (indirect referencing, recursion) and those who can't - you can definitely still be a good programer without understanding those but it will limit the areas you can work in.

Re:Dear HN "Who's Hiring" responders by uniclaude on Monday April 01, 2013 @10:49PM (#5477388)
I might have interviewed a very different subset of the programming world than you, but I wouldn't make the categorization in this way.

Indeed, I haven't met any programmer who couldn't understand recursion when explained in clear terms, same goes for indirect referencing.

If I had to divide the programmers who really understand algorithmic reasoning into two categories, those would be

- A: those who program because it's their job,

- B: those who program because it's their passion.

I believe this grouping is more helpful to explain differences.

Re:Dear HN "Who's Hiring" responders by ig1 on Tuesday April 02, 2013 @05:10AM (#5478334)
It's a relatively well studied area of programming pedagogy, numerous studies have shown students struggle with those concepts:

https://student.brighton.ac.uk/mod_docs/cmis/past%20papers/c...

Re:Dear HN "Who's Hiring" responders by uniclaude on Tuesday April 02, 2013 @07:49AM (#5478732)
Thank you for the link.

You wrote students, while I meant professional programmers. It's not because some people have a tougher time learning those things (whatever the reason can be) that they have no change to get them by the moment they are active professionals.

This said, if I tried to apply your grouping to the people I have been interviewing last year, I would have approximately 100% of them in one category, hence my comment.

Re:Dear HN "Who's Hiring" responders by lsiebert on Monday April 01, 2013 @11:17PM (#5477498)
Recursion isn't hard, it's just not taught correctly. It's fairly easy to break it down into rules.

Because they are shown examples, instead of taught how, people memorize how to do stuff, instead of learning it from principles.

Take the classic question, recursively reverse a linked list.

You will see a lot of people making false starts, or trying to reverse the list in some way like they would reverse an array, or even repeatedly walking the list to the end.

But if you understand some simple rules about recursion, it's fairly easy to figure out how to do this on the fly. And that is so much better then memorization, because you can explain why you are doing things.

first you are reversing, so you're moving backward, which means you calls your function, then do assignments. If you were doing something moving forwards, like printing in order, you'd print first, then call the function.

Now we need to worry about the end, and the beginning.

First, the beginning, which happens after we have recursively walked the list.

Now, we want to walk to the last node before null, and we need a place to store what we return. so assuming we have something like this in c 'node * recursivereverse(node * current)' and a node structure with next as the next link (we never touch our data)

our test is if (current->next) node * newbeginning = recursivereverse(current->next); else return current; //some assignments go here;

return newbeginning;

Then we just need to figure out the assignments.

Now, people may get tripped up and try to use the new beginning... but then they have to walk it to the end... but the current node already knows the node that comes after it.

so we assign current->next->next = current; IE the node that was previously after the current node now points to the current node as it's next. And that's fine for all the rest of the list, until we get to our original beginning node. We need to worry about the new end.

Since it's going to the end, we need to point it to NULL, otherwise it will point to it's predecessor, meaning we'll have an infinite loop at the end of the last two nodes.

Easy way to deal with it is to just assign the next of the current node to NULL, for each node.

so we add to current->next->next = current; current->next = NULL;

and then you have a reversed linked list. This makes certain assumptions about the list (like it has at least one node, and isn't circular), so don't just copy this for your interview.

So with some simple rules, I figured out how to reverse a linked list. But those simple rules aren't taught, or at least, I came up with them for myself after I became a computer science tutor at my college, because I needed people to understand recursion.

So I guess my point is, it's not that people can or can't understand recursion, it's whether they are taught to think about things in the right way.

Now to a certain extent, we need to teach people to generalize, but if you teach people a general rule (always worry about the beginning and end of any data structure, and that's important for everything, including memory management and debugging) and a recursion specific rule (call the function first to reverse, call the function after to use the current order), and they can generalize.

Too often people come to program with the ability to copy code and get it working (and that isn't anything to denigrate, because it's not simple), but lack the understanding of how to think about things in a deeper way.

Re:Dear HN "Who's Hiring" responders by lifebeyondfife on Tuesday April 02, 2013 @09:57AM (#5479261)
Because it was lunchtime and I wanted to make sure I was still employable...

static MyLinkedList<T> ReverseLinkedList<T>(MyLinkedList<T> linkedList) { if (linkedList.Next == null) return linkedList;

  var newTail = linkedList.Next;
  var reversedList = ReverseLinkedList(linkedList.Next);
  newTail.Next = linkedList;
  linkedList.Next = null;

  return reversedList;
}
Re:Dear HN "Who's Hiring" responders by infinite8s on Tuesday April 02, 2013 @08:50AM (#5478937)
Agreed about recursion being taught the wrong way. Recursion is implicitly fundamental to learning basic arithmetic (what is 5? it's just (1 + (1 + (1 + (1 + (1 + 0))))). Reasoning by induction is just recursion. I think children have a recursive intuition for counting (at least from watching my 3 year old) that quickly gets squashed when they start learning 'math' in school.
Re:Dear HN "Who's Hiring" responders by thisone on Tuesday April 02, 2013 @04:55PM (#5482017)
I've always thought of reversing a linked list in a visual way.

In my mind, a link list is a bunch of nodes with arrows pointing right. To reverse the list, all I need to do is point the arrows to the left.

6(ish) lines of code later, and I've got a recursive reverse method.

Re:Dear HN "Who's Hiring" responders by Maven911 on Tuesday April 02, 2013 @01:16AM (#5477813)
Replying so that i can go back to this and understand it one day
Re:Dear HN "Who's Hiring" responders by lsiebert on Tuesday April 02, 2013 @01:34AM (#5477852)
Mark, when you come back to this, this might be helpful for you. https://github.com/gryftir/recursivereverse
Re:Dear HN "Who's Hiring" responders by koide on Tuesday April 02, 2013 @04:21AM (#5478238)
Thanks! Sorry for asking this, but why the strange (to me) indent?
Re:Dear HN "Who's Hiring" responders by jpgvm on Tuesday April 02, 2013 @05:30AM (#5478362)
8 spaces?

Probably because this is similar to the Linux kernel programming style. Many of us learnt C from the kernel or projects that follow it's coding style.

Re:Dear HN "Who's Hiring" responders by lsiebert on Tuesday April 02, 2013 @05:56AM (#5478416)
Assuming you mean the code on github, I use tabs for indentation in vim, but have tabstop and setwidth set to 2. So if the code has 8 spaces, that is github or the browser. Feel free to make a pull request, or I can try to fix it (though I am kinda focused on my portfolio for internship applications atm). Should be a simple regex though.
Re:Dear HN "Who's Hiring" responders by mst on Tuesday April 02, 2013 @08:13AM (#5478808)

  perl -pi -e 's/^(\t+)/"  " x length($1)/e' recurse.c
seems to do the trick; vary the number of spaces inside the "" to taste.
Re:Dear HN "Who's Hiring" responders by andypants on Tuesday April 02, 2013 @08:07AM (#5478794)
Programming is not the same as understanding algorithms and data structures.

If that statistic is true, I would say that they probably understand algorithms very well, can prove the runtimes, know which data structures to use and why, etc. What they can't do is actually implement it in working code, or write anything else outside of those concepts, like writing a graphical user interface or writing a simple website using some popular language + framework.

Re:Dear HN "Who's Hiring" responders by Swannie on Tuesday April 02, 2013 @06:45AM (#5478544)
For London I strongly disagree.

When start-ups, profitable ones, are offering £35k + bonus + stock options (worth £0), for senior developers, in Central London, there's not a talent shortage.

Similarly skilled developers are getting £35k+ & bonus outside of London, where the cost of commuting/living is significantly cheaper, in established companies with full benefits packages, that don't expect them to work 50 hour weeks. Inside London, those devs who are working in finance are getting paid £45k+, big bonus, gym, laundry, etc. thrown in, with the same workload expectation.

Experienced (and good) Senior iOS developers in London are regularly being offered less than £40k.

No surprise many talented staff have left London, for equivalent salaries, less stress and cheaper cost of living (especially as they hit the age where kids appear in the picture).

No surprises many younger devs look at the £25k starting salary in London, where transport and rent will cost them £1000/month, vs. £25k out of London, where it will be more like £500/mo, and decide that London is not worth losing £6k/yr after tax.

Re:Dear HN "Who's Hiring" responders by ig1 on Tuesday April 02, 2013 @09:06AM (#5479016)
As it happens I also used to run a developer recruitment startup (CoderStack) in London, so I'm intimately familiar with the market.

While there are certainly companies trying to hire iOS developers at 40k, there are also companies trying to hire iOS developers on 80k+ and iOS contractors on day rates of £500/day.

What you're probably seeing is selection bias. That is the crappy jobs (i.e. low pay) stay on the market far longer than good jobs. Hence you end up thinking that crappy jobs represent a large proportion of the job market than they actually do simply because they stay around longer.

Re:Dear HN "Who's Hiring" responders by Swannie on Tuesday April 02, 2013 @10:16AM (#5479364)
You are right, I'm almost certainly exhibiting selection bias. As we all know, the best jobs don't even go on the wider market, such as jobs sites, but are filled by word of mouth referrals, or conversations at events.

But if I go and search: http://www.technojobs.co.uk/search.phtml?page=2&row_offs...

You will see most senior dev roles advertised with a range, that seems to average out about £45k. That's for the whole country, and London seems no different.

Personal experience with London based recruiters was that despite jobs advertising £60k, the number that the recruiter had from the client was actually lower. When asked about the requirements for getting the top end of the pay scale, "Well, they really only want to pay low 40's", was something I heard time and time again, and caused me to not apply, time and time again.

Crappy jobs? Maybe.

EDIT: Also, I've seen an expensive corporate salary survey (shh, don't tell HR), and whilst London mid-senior people have seen a good bump to their salary in the last 2-3 years, the averages there were approx: junior ~£28k, mid-level ~£36k, senior ~£47k, architect ~£60k, dev lead ~£72k).

Re:Dear HN "Who's Hiring" responders by anothermouse on Friday April 05, 2013 @08:36AM (#5497953)
"Inside London, those devs who are working in finance are getting paid £45k+, big bonus..."

As someone working in finance in London, this seems way too low. I'm on 97K and bonus has been 50% for the last 4 years. Contracted before and made more after tax.

I can't believe that startups hope to attract talent with 35K + bonus? But I also doubt you're right about 45K jobs in finance being anything but entry level.

http://www.itjobswatch.co.uk/jobs/london/c++%20developer.do

(me? c++, perl, python, unix, front office, could price an option with Hull open, or an IRS, but not going to try anything like a Vol swap without Quant Assistance. There, another vague datapoint).

Re:Dear HN "Who's Hiring" responders by rjknight on Tuesday April 02, 2013 @07:27AM (#5478653)
That sounds wrong to me. I've seen lead/senior JS devs on £85k (~$130k) in London and mid-level generic PHP/Django/Rails developers seem to start in the mid-40s, with senior devs getting 60-70k.

That's before you start looking at contractor rates...

Re:Dear HN "Who's Hiring" responders by Swannie on Tuesday April 02, 2013 @10:21AM (#5479392)
Numbers I see for "generic PHP" rarely go above 40...

http://www.technojobs.co.uk/search.phtml/php/searchfield/loc...

There are a few above 40, but they don't sound mid-level/generic.

Re:Dear HN "Who's Hiring" responders by octo_t on Tuesday April 02, 2013 @06:56AM (#5478565)
As someone who lives and has worked in London this is really incorrect.

All of the people that I know who work in London (not just in banks) are earning at least £35k+, almost always more than that. These are newly graduated developers, with lots of room for advancement.

Conversely I know very few developers outside of London who are earning close to £35k, outside of London its much more likely to be research (ARM etc) and they tend to pay ~£28k

Re:Dear HN "Who's Hiring" responders by Swannie on Tuesday April 02, 2013 @10:30AM (#5479450)
So a post based on "who you know".

Most grad jobs in London will top out at £30k.

http://www.technojobs.co.uk/search.phtml/graduate-developer/...

Those that are higher are not real "junior" jobs - there's one that advertises "up to £50k", but then asks for 3-5 years experience. 5 years good experience puts you at the top end of mid-level.

There are a few finance jobs, that are looking for junior quant. developers. Yes, they are advertising above £30k. But they don't make up the bulk of the jobs on offer.

(And yes, I have a lot of anecdotal evidence too, for outside and inside London, having spent my early years working for a company with offices in Bath/Bristol/Reading, and the obligatory London "HQ").

Re:Dear HN "Who's Hiring" responders by manku_timma on Tuesday April 02, 2013 @08:40AM (#5478901)
This doesnt sound right to me. I know senior dev's in London getting paid at least double of that (and in some cases even more). It is not in the NY or Bay area range, but it's not £35k either.
Re:Dear HN "Who's Hiring" responders by Swannie on Tuesday April 02, 2013 @10:33AM (#5479478)
Again, I know senior developers that were pulling down £65k and generous bonuses. I know software architects with 15 years experience who are earning about the same too.

But to me, they are the outliers, of what is a market that is generally not paying much of a premium above outside London salaries (I knew some architects on £70k, waaaay outside of London, and many seniors on £50k + bonus).

And I didn't want to make the comparison, but yeah, these numbers are terrible compared to what you will find in the major USA cities.

Re:Dear HN "Who's Hiring" responders by SandB0x on Tuesday April 02, 2013 @07:52AM (#5478741)
What regions outside London are you referring to? Genuinely interested.
Re:Dear HN "Who's Hiring" responders by Swannie on Tuesday April 02, 2013 @10:02AM (#5479295)
Particularly, Bristol and Bath, Oxford, Reading, Manchester/Warrington.
Re:Dear HN "Who's Hiring" responders by niggler on Monday April 01, 2013 @08:16PM (#5476872)
"Even substantial number of computer science graduates lack the capability of basic coding"

You misread my statement. A competent mechanical engineer graduate attending college in the past 5 to 10 years has more CS experience and coding ability than most CS graduates. The talent shortage, as it were, comes from restricting your view to the CS and CE fields.

To review, this is what i wrote (emphasis added): "Many people, especially coming from an engineering background, have the requisite programming and computer science experience to do what you need."

Re:Dear HN "Who's Hiring" responders by ig1 on Monday April 01, 2013 @08:22PM (#5476896)
I also interviewed many Maths and Engineering graduates and didn't find their abilities to be substantially higher. Also from my experience talking to students at careers fairs most Engineering graduates (other than Elec. Engineers) aren't interested in pursuing software development as a career path.
Re:Dear HN "Who's Hiring" responders by cdjk on Monday April 01, 2013 @08:42PM (#5476980)
I think there might be some selection bias going on there. I know plenty of (non-software/computer) engineers who know very little about programming. The non-software/computer engineers who are interested in programming may be as good as or better than the average CS major, however.

I might agree if you change your statement to "Many people, especially coming from an engineering background and who have an interest in programming, have the requisite programming and computer science experience to do what you need."

Re:Dear HN "Who's Hiring" responders by wololo on Tuesday April 02, 2013 @04:10AM (#5478205)
> A competent mechanical engineer graduate attending college in the past 5 to 10 years has more CS experience and coding ability than most CS graduates

what fractions of ME and CS graduates would you say are competent, out of curiosity?

Re:Dear HN "Who's Hiring" responders by negrit on Monday April 01, 2013 @08:24PM (#5476906)
Too bad you're located in London otherwise I would love to show you how good I am at reading a man and then implement the function :-)
Re:Dear HN "Who's Hiring" responders by xiaoma on Tuesday April 02, 2013 @04:29AM (#5478258)
That's excellent news. I'm close to graduation at the most intense hacker school in SF and definitely have a solid grasp of the fundamentals and domain expertise in JavaScript.

I'd be very appreciative of any leads you could offer to top tier companies (FB, Google, Amazon, MS, mid-sized YC companies). My contact info is in my profile.

Re:Dear HN "Who's Hiring" responders by mseebach on Tuesday April 02, 2013 @06:49AM (#5478549)
That sounds weird. There's an "intense hacker school" in the SF area that lets people graduate without being absolutely flooded with leads to at least FB and Google?
Re:Dear HN "Who's Hiring" responders by xiaoma on Tuesday April 02, 2013 @11:52AM (#5480049)
In the one an only class to graduate prior to mine, several people were hired by McKinsey, but for whatever reason Facebook and Google were more conservative and failed to appear at the hiring event. I don't know any details, but a lot of companies are stuck in the "only hire CS majors with a GPA > x" mindset.

The school does do quite a bit to get us in front of people, but students also take the initiative to get intros. Many in the initial class went to start-ups.

This is the school: http://hackreactor.com/

Re:Dear HN "Who's Hiring" responders by mseebach on Tuesday April 02, 2013 @12:04PM (#5480124)
Given that this is a brand new thing, it sounds a lot like they are failing you massively on this bit of the promise - at the very least, and given you're paying for this, it's not FB and Google that failed to show up - it's Hack Reactor that failed to make them show up:

> WE’VE GOT CONNECTIONS

> Breaking into the tech industry can be hard on your own. We’ll help you craft a portfolio, guide you through practice interviews, introduce you to companies at our hiring day, and walk you through your job application process.

Re:Dear HN "Who's Hiring" responders by xiaoma on Tuesday April 02, 2013 @02:40PM (#5481277)
Let's stop the misunderstanding right here. They've done a fantastic job, both in terms of teaching and connections. 100% of the recently graduated first cohort is hired.

Their connections have brought top-rate speakers from Heroku, Pinterest, Twitter, TapJoy, Coursera and others and the connections did get more companies in the door than we have graduating students. That list just doesn't include some companies that stuck to more conservative screening practices.

I commented here to connect with those seeking skills I and my classmates have to offer, not to solicit criticism from the peanut gallery. I love Hack Reactor.

Re:Dear HN "Who's Hiring" responders by mseebach on Tuesday April 02, 2013 @02:49PM (#5481330)
I wish you all the best, but all I'm saying is that it's a strange world where McKinsey are progressive (if ever there was an employer famous for blindly hiring high-GPA grads) and Google and Facebook are conservative.
Re:Dear HN "Who's Hiring" responders by kabouseng on Tuesday April 02, 2013 @11:12AM (#5479738)
"most intense hacker school... in JavaScript". Does not compute.