1,423 reputation
716
bio website
location Brooklyn, NY
age 33
visits member for 3 years, 10 months
seen Nov 15 at 15:39
Good Morning how are you, I'm dr jimbob
I'm interested in things.
I'm not a real dr,
But I am a real jim bob.

Have a PhD in Experimental High-Energy Physics, but left academia in mid-2010 to program professionally.

Mostly program/script in python, django, and jquery these days doing mostly web apps.

Also have experience programming in C, C++, java, haskell, php, and (bash) shell more in the past.

Linux as primary OS since 1999, ubuntu user since 2005 (Hoary).


Jul
19
answered Do companies hire software developers that are aspiring entrepreneurs?
Jul
12
awarded  Editor
Jul
12
revised Software Engineer VS “Harder” Jobs
grammar. your to you're
Jul
11
answered Software Engineer VS “Harder” Jobs
Jul
7
answered Co-worker renamed all of my queries
Jun
12
awarded  Supporter
Jun
10
awarded  Teacher
Jun
10
answered Looking for unpaid interns (2) - am I crazy?
Jan
19
comment If you could ask one technical interview question, what would it be
To clarify more, it may be clearer with an example. If you calculate 216, you could do x = 1, then x*=2 for 16 times and get the answer for 16 multiplications. Or you could find recognize that 216 = (28)*(28), (28)=(24)*(24), (24)=(22)*(22), and 2**2 = 2*2. Thus you ultimately only need lg(16) = 4 multiplications with the recursive method (sure it could be implemented with a for loop but would be uglier/less natural).
Jan
19
comment If you could ask one technical interview question, what would it be
@bjarkef: Recursion done properly (e.g., divide and conquer) is much faster. It naively requires O(y) multiplications, but recursive divide-and-conquer requires only O(lg y) multis. (Granted this is a slightly simplified as multiplication will not be an O(1) operation in the CPU for large #s.) Writing a quick python implementation, calculating 2^1000000 takes 66s with a for loop and with divide-and-conquer recursion takes only 0.02s. Sure you could write a slow recursion as well (def slow_power(b,e): if e==1: return b ; else: return b*slow_power(b, e-1) ) which wouldn't have any benefit.