
Thousands of people are watching this guy code a search engine - DiabloD3
http://motherboard.vice.com/read/thousands-of-people-are-watching-this-guy-code-a-search-engine
======
xedarius
The first time I saw this kind of thing was watching Notch on the Ludum Dare
challenge. I don't really see it as a way to learn much about programming,
it's more entertaining and a fascinating insight into how other people work.

For example, realising that other people find listening to trance music also
helps them code. Or finding out that other people use MS Paint as a level
building tool. Or perhaps discovering that it's even possible to use MS Paint
as a level building tool!

~~~
CheckHook
> For example, realising that other people find listening to trance music also
> helps them code.

I'm starting to find that listening to repetitive music helps with coding as
opposed to lyric based music such as hip-hop.

It would be really interesting to see how many others feel this way and what
else helps them focus.

~~~
Hortinstein
I really like Post Rock, its a little slower then techno/trance. Here are some
reccomendations:

Godspeed You! Black Emperor:
[https://www.youtube.com/watch?v=PZwQeZh6rP0](https://www.youtube.com/watch?v=PZwQeZh6rP0)

God is an Astronaut
[https://www.youtube.com/watch?v=HKFDYdaSyng](https://www.youtube.com/watch?v=HKFDYdaSyng)

~~~
cespare
I also listen to a lot of post rock while programming.

Two more recommendations:

\- Explosions in the sky

\- Mono ("For My Parents" is my favorite post rock album)

~~~
jonnynezbo
You can't drop all those post rock bands without giving Mogwai a mention

------
eatitraw
Oh hi! I am the guy that codes a search engine. Just wanted to say thank you
for posting the link, and join the discussion.

If you have questions, I'll be glad to answer them!

~~~
will_brown
For the non-technical, can you explain the search engine you are building.

Also, what is your interest? Are you more interested in coding the search
engine, or is the project irrelevant and you just wanted to stream yourself
coding? In other words has the streaming of yourself coding become the project
itself? If you are going to stream another project after the search engine,
are you looking for ideas or do you have other pet projects you want to work
on?

My suggestion, if you are trying to build an audience, crowd source your next
project idea. Maybe give your audience a few ideas, allow them to nominate
other ideas, and then have them vote. This way you build in the largest
audience prior to beginning...and not unsurprisingly I have a project idea if
you are interested.

~~~
eatitraw
> For the non-technical, can you explain the search engine you are building.

It is a search engine for one subreddit(/r/learnprogramming).

> so, what is your interest?

I know about search engines, and I wanted to share my knowledge with
people(personally, I think there isn't much info on the web, compared to e.g.
operating systems). I also wanted to start live streaming, so I started this.

> are you looking for ideas or do you have other pet projects you want to work
> on?

Suggestions are always welcome! I have a couple of ideas for side projects(and
I sometimes stream building them).

> My suggestion, if you are trying to build an audience, crowd source your
> next project idea.

We tried something like this in /r/WatchPeopleCode, and it doesn't worked very
well(for some reason). Although the subreddit was 10x less popular then(and
maybe implementation wasn't that good).

I am curious about your project idea though!

------
fcanela
I always wanted a twitch.tv for coding/intellectual work. I am sure that it
would provide me a lot of good models of workflow and insight.

I searched in their site and saw nobody was doing it, then noticed that their
conditions doesn't allow it.

EDIT: Just found [http://coderstv.com](http://coderstv.com) :)

~~~
noselasd
Also, from the article,
[http://www.watchpeoplecode.com/](http://www.watchpeoplecode.com/)

~~~
add7
Also, where it all started:
[http://www.reddit.com/r/WatchPeopleCode](http://www.reddit.com/r/WatchPeopleCode)

~~~
lurcio
And this video from he site is a treat

[https://www.youtube.com/watch?v=ivOUPCpE5BU](https://www.youtube.com/watch?v=ivOUPCpE5BU)

------
inDigiNeous
This is a good idea, and I've watched that guy on youtube develop his game
from the groundup for couple of episodes, but the last thing I want to do
after coding all day is to watch somebody else code.. so maybe it would be
nice to have some kind of "best of" compilations after people have done these.

~~~
stratagerm
> that guy on youtube develop his game

You're probably talking about Handmade Hero, by Casey Muratori. Unless there's
more than one person doing this.

[https://handmadehero.org/](https://handmadehero.org/)

------
yoanizer
I don't think watching someone "code" (God, I hate this word) is going to
teach you much.

It might teach you about what tools he uses, and what keyboard shortcuts he
likes, but not about the more important tasks of understanding problems, and
organising solutions. That's what makes writing software hard, not the
"coding" part.

~~~
Lrigikithumer
How do you figure? Reading source code is incredible helpful for understanding
how to program properly. Watching somebody step through their code and solve
each problem in real time would be absolutely fantastic for understanding
problems and organising solutions. Also what's wrong with code as a verb for
programming?

~~~
TkTech
Reading "refined" source code for projects will likely teach you significantly
more about programming if that's what you wanted to learn. These videos are
mostly to see someone else's process rather than the code itself.

For example, I watched the linked video. Using it as an example for Python
programming would be terrible - it does not follow PEP8 (extremely long lines,
no spaces around operators, excessive descriptive names ("Java style")), has
many unnecessary assignments and copies, very few comments, no sphinx
docstrings, etc...

------
yodsanklai
I think it can be interesting, but only if the guy is a great developer. And
if he is, he should spend more time thinking than typing, so not sure it'll
make a fun video to watch.

The hard part of coding is the design. A lot of programmers think as they
code. They try something, get stuck, try something else, understand the
problem better and so on. It's a kind of intellectual laziness which is not
optimal.

I've been doing competitive algorithms for a while, and I learned that the
best programmers don't start programming until they know exactly what their
algorithm will be. And an other thing is that they rarely have bugs. Also
testing/debugging is extremely time consuming: they think carefully that
everything is right before testing. Which is unlike the lazy approach which is
to have something working asap and go into debugging mode.

It takes a lot of discipline to be able to work like that, esp. under
pressure.

~~~
ZeroFries
This is really good to know because I think I fall into the "try something in
code, test, and debug my way through it" category a lot.

Do others agree that thinking it through completely before hand is optimal?

Are there any studies out there which compare amazing programmers to just
average ones on brand new material (where the more experienced programmer
doesn't necessarily have the advantage of just more knowledge but has better
principles/strategies of breaking down the problem)?

~~~
blakehaswell
Yeah, my experience has lead me to believe that planning the solution in
relatively high detail before touching my keyboard leads to faster feedback,
better designs, and fewer bugs.

I’ll generally take a pad and pen and write down my requirements and
assumptions. This helps flesh out any further information I’ll need before I
begin.

Once I’m satisfied that I understand the problem I’ll sketch out a planned
architecture (dependency graphs, data structures, etc). If this uncovers more
missing information then I’ll get that information and revisit the
requirements and assumptions. Sometimes the missing information is that I
don’t actually know how to do something in the particular environment I’m
coding in. In that case I’ll prototype the minimum code I need to figure out
how to do what I need to (I never use the prototype in production code).

Once I have a planned architecture that I’m happy with, writing the tests and
code is relatively mechanical and straight-forward.

I’ll do this for pretty much any change to a codebase that is more complicated
than changing a single function.

------
koopuluri
Source code is usually a very later version of the software that is a result
of lots effort and mistakes. To watch good programmers build a system from
scratch and watch and learn through the mistakes they made along the way seems
to be a great tool to learn the craft of building software.

What comes to mind is chess; this is like watching players play from the
beginning and learning their intuitions at each stage rather than just
learning from their endgames.

I'm excited to see what comes of this.

------
jere
>The plan, he says, is to teach people, but it’s also to create a better
search engine than the one reddit currently provides, which is notoriously
terrible.

Yup. I've often been disappointed by the reddit search engine. I know they are
a big site and everything, but surely it's not as difficult as indexing the
internet.

If you're interested in this, also check out Handmade Hero:
[https://handmadehero.org/](https://handmadehero.org/)

~~~
wlesieutre
They've replaced it once already (a few years ago), it used to be even worse!

------
DanielBMarkham
I would love doing this -- as long as I felt like I was helping somebody. It's
a shame the system can't be set up so that you propose an idea/project, then
depending on how many people express interest you decide to proceed or not.

~~~
heyalexej
For now you could very well gauge people's interest on the relevant subreddit
by asking and then proceed if you feel it's enough. Also keep in mind that
people will watch the recorded video way beyond the scheduled time as well and
potentially reach thousands of views and therefore be helpful to a lot of
people.

~~~
DanielBMarkham
I think what I'm going to do is record the first hour or so of setting up a
new project today, then post about it on the reddit site, G+, and here.

I'll watch the views. If people are interested, I'll post some more.

What I can't decide on is whether or not to do it live or recorded. This first
part I'm going to record -- much more control that way. I would imagine doing
this live would involve a lot of looking at me stare blankly at the screen <g>

------
halosghost
This actually seems like a great idea. And despite how much I love coding and
how comfortable I am helping others to learn it, I think I would be too self-
conscious to stream my coding sessions. Most of them are spent thinking really
hard about what I want to do, testing or deleting a bunch of things I wrote
really quickly to make room for better replacements.

I guess that process feels very personal to me. Much in the same way I would
probably feel uncomfortable streaming video of my writing an academic paper.

~~~
heyalexej
To me, your concerns are actually the biggest learning and takeaway. I learned
and am learning programming completely on my own without peers so it's
difficult to understand where I stand. I watched and still am watching this
kind of videos to see how others are thinking and approaching problems and
reinforce that there probably aren't genius programmers out there who just
bang out code without mistakes, errors and iteration. Without it I always felt
bad / inadequate as it's easy to fall into that way of thinking and constantly
second-guess myself. I find it immensely helpful and don't really understand
why some people here are so quick in dismissing it as not useful. But I can
see how under different circumstances, say, learning programming in school or
otherwise with peers or mentors involved, it's easy to forget that this might
play a significant role in feeling comfortable with where you are and how
you're doing.

~~~
halosghost
Oh that's perfectly fair. I don't doubt at all that this kind of thing is
incredibly helpful for new programmers. Rather, I was just musing that I don't
think I'd ever feel comfortable coding with the knowledge that someone's
looking over my shoulder :)

------
Kiro
There have been a couple of Show HNs with projects like "Twitch for coding". I
don't remember what they were called though.

Great idea anyway. I don't think Twitch is the perfect medium for this though
since a full-featured "Twitch for programming" could include stuff like live-
pasting snippets to your audience etc.

------
pjc50
I can't imagine watching anyone code realtime. Unless it has explanatory
voiceover it's not very informative and it's far _slower_ than just waiting
for them to finish and reading the code afterwards?

------
sssilver
This is amazing. I'm thrilled. Opensource has a whole new dimension.

Or, as the classic has put it, "given enough eyeballs, all bugs are shallow".

------
shacharz
Wow someone get linus torvalds to use it! I'm willing to buy the webcam.

~~~
insertnickname
Doesn't he just merge stuff and write on the mailing list these days?

------
askar_yu
He is an ex-Yandexer! :)

