
Tech Prep by Facebook - fahimulhaq
https://techprep.fb.com/
======
icewater
For intermediate programmers they are recommending a terrible book full of
fake reviews by a scammy author (I purchased the book earlier in the year and
returned it). Were any of these recommendations vetted?

The book... [http://www.amazon.com/Programming-Success-Day-Beginners-
Effi...](http://www.amazon.com/Programming-Success-Day-Beginners-Efficient-
ebook/dp/B00Q3Y55PM/ref=asap_bc?ie=UTF8)

~~~
envy2
This seems bad, thanks for flagging. I'll try to track down how/why this got
recommended.

------
sotojuan
This was pretty cool and seems great for young beginners.

I wonder, though, what is the modern equivalent of messing with BASIC after
school? It certainly isn't Coding for Dummies is it? Would it be messing with
the browser console? Messing with Python?

On a side note, I still think the beginning of the first SICP lecture is the
best introduction to Comp Sci (I watch it to get motivated/inspired
sometimes!). What got me into Comp Sci and programming was Ableson's quote:

> So as opposed to other kinds of engineering, where the constraints on what
> you can build are the constraints of physical systems . . . the constraints
> imposed in building large software systems are the limitations of our own
> minds.

Just made it feel limitless, because it really can be.

Also I am surprised that for "Expert" they recommend Coursera, edX, Udacity...
but no books. In my experience, most "video courses" tend to be aimed at
beginners or intermediates, with a few awesome exceptions like the Algorithms
courses in Coursera and some on edX. Still though, I believe the most
interesting and "Expert"-level knowledge of Comp Sci and programming is in
dead tree format. But I guess it's hard to pick a few books to recommend.

~~~
zachrose
I would hope it's messing with the browser console. Most "learn to code"
literature that I come across still seems focused on unixy input-output type
programs. I think there's an underestimated market of people who would be
interested in programming if it were easier to see where the rubber hits the
road and "programs" become "software." Being able to deconstruct what would
otherwise be a sleek and opaque media experience seems like a good place to
start with that.

~~~
gedrap
Also, the Web is much easier to relate to.

Many people have ideas for websites, they are facing them everyday, and it
should feel pretty cool because you make something that you can share and the
Web is not the huge mystery anymore. You know how it works now!

HTML5 games are also a great alternative (technically, it's still Web but it's
really different from a typical web site). There are easy to use great
frameworks like Phaser where you can develop the first platformer game in an
evening/day/weekend (depending on experience) and no knowledge about graphics
etc doesn't get in the way. As a nice bonus, it's ridiculously easy to deploy
and share with friends. Just drag and drop the the files on FTP and it Just
Works. Can't say the same about python or ruby.

In contrast, when you develop a unixy command line application to calculate
the area or volume of something... Nowhere near.

------
anonymouscow0
Given recent other posts about trying to get women and minorities in to tech
the first thing I saw was the background marketing. Facebook is very good with
data and I wonder if they can quantify a positive result. It felt forced, I
didn't even notice the text I just kept scrolling around looking at all the
photos. I didn't see anyone that looked like me, it all felt too social and
nothing at all like programming. Not one felt cubicle, nothing I've seen over
years of coding.

How did it make you feel?

~~~
crazyjosh
I agree with the forced feeling. Also odd to me, looking through the
"Community & Events" there aren't any opportunities listed for a white males.
Every organization and event listed is for women and minorities.

~~~
wahnfrieden
White males are not already an underserved demographic. White men don't need
yet another resource catered to them; tech is already doing a fantastic job of
being full of them.

------
superskierpat
As cool as this is, It would be nice if choosing the expert path would also
offer links to recommended books on programming. I've personally found books
like sicp, the c++ programming language and etc to be the best source of
programming knowledge (after an appropriate math or programming intro).

But it's often pretty hard to find out which books are worth reading, of all
the books that have been published in the last 30 years, are any still
germaine to modern programming?

I tend to prefer books because just listening to a video about something does
not work for me (especially when it's just a guy talking), a book with a bunch
of exercices and ideally a corriger really allows you to learn at your leasure
(and are much more portable than a video on a mooc site)

------
gtrubetskoy
I wonder why there exists "computer science" but not "finance science" or "air
conditioning science" or "automotive science". It makes me doubt that computer
science is really a thing. Algorithms, logic, computation, electronics are
covered by other more fundamental "sciences" such as mathematics, statistics,
physics, etc. Is computation really justified as a scientific discipline of
its own?

~~~
tikhonj
Meh. "Automotive science" was cleverly branded as "mechanical engineering".
"Financial science" is "financial engineering" or if you're less keen on
making money, "economics".

Besides, the exact fields and their delineations are largely arbitrary.
They're just historical artifacts. Why is there a line between math and
statistics? Where did "applied math" as a separate field come from?

We could just go all European and call CS "informatics". After all, that's
probably the best description of the field: it's the study of information. If
not for historical and social reasons, I'd say that _CS_ was a superset of
math, not the other way around. "Computer" is just the name we give to _the
whole class_ of physical tools we use to study information.

~~~
eastWestMath
> I'd say that CS was a superset of math, not the other way around. "Computer"
> is just the name we give to the whole class of physical tools we use to
> study information.

Then you'd be ignoring that a whole mess of math is not, in fact, computable
(axiom of choice, law of excluded middle, etc). I think the problem is way too
many "computer scientists" are pretty much software engineers.

~~~
tikhonj
I am not ignoring any of that. Nothing says that you can't work with non-
constructive logic in a programming language, or analyze non-constructive
logics _as_ programming languages. In fact that can be extremely useful
although it's also, at present, difficult and not super common.

The things you listed are extremely close to one of the foundational fields of
CS, namely programming language theory. It's funny that you should bring up
the law of the excluded middle because I learned _a lot_ about it by studying
PL theory: did you know that adding callCC to your typed lambda calculus turns
it from a constructive logic system to a classical one? And that double
negation translation is just a CPS transform which, at least for me, is a heck
of a lot easier to reason about than proof theory directly?

Everything in math is, at least in theory, provable. Provable in a discrete
system (ie a formal logic) even if it's reasoning _about_ something that isn't
discrete. So there's nothing fundamental stopping us from doing exactly the
same proofs in a formal system that a _computer_ can understand. Oh, say, a
programming language.

Of course, with current technology, it's difficult from a practical
standpoint, but there's nothing fundamental stopping us. And ideally it's
something we _should_ do to ward off errors and also to create proof artifacts
that can be analyzed and manipulated systematically.

Wouldn't static analysis for mathematical proofs be great? Or papers written
as libraries so that relying on a lemma literally links against the proof it
was first defined in.

Seriously, if you dive into PL theory you'll see that the line separating CS
from math doesn't really exist except as a social and technological
phenomenon. (Lots of things are fundamentally possible but too difficult to do
in reality, at least right now.)

~~~
eastWestMath
Dude, I'm a grad student in categorical logic and I've worked with PLT. That's
why I used them as an example. To formalize most math, the simply typed lambda
calculus won't do, you need dependent types. But the logic used in math is
almost always extensional, and type checking an extensional type theory isn't
computable. Huge chunks of math, from analysis to chaos theory, are simply not
computable.

------
laurentoget
I wish they had involved ACM and IEEE in it instead of doing their own thing.

------
k_bx
Isn't that.. awful?

Computer science is not about computers, it's not about code either. It's
about ideas! Ideas, related to computations.

Here is a great Ted-talk from Simon Peyton Jones that explains this very well
[https://www.youtube.com/watch?v=Ia55clAtdMs](https://www.youtube.com/watch?v=Ia55clAtdMs)

------
lsiebert
There is something weird about saying 18-25+.

------
pboutros
Interesting that it's tied in with McKinsey & Co.

Without having dug into it much, I quite like it. There are definitely a lot
of resources out there to learn, and - regardless of how true it is - feeling
like a resource is the _right_ one for you probably helps.

------
saurabhjha
That's really cool.

------
outliers
Why do they have to make these videos so cheesy.

------
throwitallaway1
With Facebook's Tech Prep, you too can create shiny monstrosities that chug
while trying to scroll on an i7 with the very latest JS engine!

It's tied in with McKinsey because they hate programmers. They hate the fact
that the firms they're raiding and "advising" are currently having to pay
people a living wage to build and fix their systems. They want to flood the
market with a bunch of cheap framework cut-and-paste developers and flood the
culture with a bunch of inch-deep strivers [1]. Meanwhile, the McKinsey
always-be-closing Powerpoint jockeys will bring the "real ideas". Does
somebody have to keep bringing this up every time one of these "get people who
never bothered to understand programming on their own to understand
programming" articles gets posted?

[1] Disclaimer: I am merely foot-deep.

~~~
pinewurst
I was "blessed" enough to see one of their engagements - the young Bob and Bob
McKinseys. So much money, so little results.

Which prompts me to recommend my favorite book on management consulting, the
life, the legends, the myths:

[http://www.amazon.com/Management-Myth-Debunking-Business-
Phi...](http://www.amazon.com/Management-Myth-Debunking-Business-
Philosophy/dp/0393338525/ref=sr_1_1?s=books&ie=UTF8&qid=1445487698&sr=1-1&keywords=management+myth+stewart)

~~~
anonbanker
just found it via a search of "management myth ebook". Thanks for the
recommendation, I'll be reading this one tonight.

