
Show HN: SkillUpper – practice coding interview questions step-by-step - rhc2104
https://skillupper.com
======
tralarpa
Your posting is already 13 hours old but I hope you still see this message :)

First of all, being sometimes involved in teaching CS to people, I like your
website. You have obviously spent a lot of time on the question of how to
teach people programming (the latter in the sense of "How to write a program
that solves a given problem?"). I have seen textbook authors with less
dedication.

However (there is always a "however" or "but"), I am wondering whether you are
using the right approach for the N Queens problem. You are following a bottom-
up approach. For example, on the first page you let people write a helper
function "validateQueenPlacement", followed by another helper function
"nextRowColumns" on page 2. For somebody who doesn't know the complete
solution, it's very hard to see why you would need those two functions. Of
course, _you_ know that you will need them but you have already seen the final
solution!

You are probably familar with the top-down approach by Wirth (1971) called
Stepwise Refinement. I think (but I cannot prove it) that most CS educators
see Stepwise Refinement as the superior approach because it encourages people
to think about the problem and not the code. Why don't you let the reader
write first the high-level (pseudo-)code for the backtracking:

    
    
        http://sunnyday.mit.edu/16.355/wirth-refinement.html#3
    

Once the reader has written the code for the highest layer, it becomes obvious
what the helper functions should be, what their parameters are, and what data
structures are needed. I know that Stepwise Refinement is unpopular nowadays
because it forms a kind of psychological hurdle (bottom-up gives you
_directly_ small functions that you can unit-test) but I think it really helps
people to guide _themselves_ to the solution.

~~~
rhc2104
Thanks for the feedback! I'll think about adding more of a high level overview
in the first step, with rough pseudocode of the end result.

That said, I don't think I want to have a step where "they write pseudocode",
because a lot of people would just skip that step without thinking about it.

------
krainboltgreene
Feels very weird to me to spend time and energy building tools for a type of
interview process that is becoming more and more derided by the community?

~~~
rhc2104
I created SkillUpper because I was thinking about how Computer Science
learning could be more interactive.

Codecademy pioneered a more interactive REPL style of learning for basic
programming.

I felt that this interactive step-by-step approach could be used to learn
other parts of Computer Science more efficiently.

Because of algorithms being highly represented in software engineering
interviews, it seemed like a good place to start. But this step-by-step format
could also be used to teach other parts of Computer Science.

~~~
profalseidol
Any SkillUpper for salary negotiation?

~~~
diN0bot
My business partner and I are professional negotiators for software engineers.
Happy to chat further inquiry@dangoormendel.com

------
merlincorey
For me, completing the Spiral Matrix, I did not find the hint for the third
and final section relate-able at all to my solution.

Essentially, it assumes a bit too much the shape of the resulting solution.

That's not to say I didn't get value from the hint, or that I think others
will not - on the contrary, it is a valuable and clear hint.

The unfortunate part is just the feeling of being taken completely "out of it"
in solving the solution with a slightly different approach and wondering
momentarily if somehow one is wrong, even though one is passing all the tests.

The recap is also fairly lacking in content, but I imagine that is clear to
you already.

Nice job on the site, generally. I only had a couple hiccups with submissions
and some weird aliasing on the editor if I would edit a line before it redrew.

Edit: add some dropped words

~~~
rhc2104
Thanks for the feedback!

I'll think about what can be done about the last-step hint for Spiral Matrix.
I guess a reason why this tutorial format is not more widespread is that it's
easy for the hints to be "off".

~~~
merlincorey
Aye, I don't know what the solution might be, and I know the language was
already couched in terms of "probably you did something like this", so it
wasn't completely prescriptive.

Maybe all it will take is another sentence that basically says "or maybe you
are doing something else, and that's okay too"?

