You're looking at Less Wrong's discussion board. This includes all posts, including those that haven't been promoted to the front page yet. For more information, see About Less Wrong.

palladias comments on Open thread, September 22-28, 2014 - Less Wrong Discussion

5 Post author: Gunnar_Zarncke 22 September 2014 05:59AM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (213)

You are viewing a single comment's thread.

Comment author: palladias 22 September 2014 04:15:19PM 3 points [-]

I want to build a facebook app but I know very little about where to start (and the fb developer page FAQ is pitched to a way higher level than I am -- I need to know where I edit code, tutorials on using the API, etc). Any links to helpful resources/walkthroughs for a beginner?

Comment author: ZankerH 22 September 2014 06:56:37PM 3 points [-]

What is your programming background?

Comment author: palladias 22 September 2014 07:03:19PM 2 points [-]

I know some python (took Udacity classes -- Building a Search Engine, Into AI, etc). Can solve some project Euler problems.

Comment author: Baughn 24 September 2014 01:48:03PM *  2 points [-]

If patient, start by doing something easier.

Programs which don't talk to complex services are vastly simpler to write than programs which do. Typically, CS classes will build up with an escalating series of toy problems; there are good reasons for this. Additionally, Project Euler problems are more dependent on mathematical problem solving than high-level understanding of programming.

If impatient... well, you might be able to find cheat sheets on Stack Overflow, but quite frankly I'd give you a <20% chance of success until you can understand FB's developer page.

Comment author: palladias 24 September 2014 05:51:28PM 1 point [-]

I've done some toy problems (it's harder to be motivated when they're not leading up to something I want), but I don't know the sequence of toy problems that would help me get up to understanding FB's dev page. I know my current set (Project Euler) isn't moving me closer.

Where would you recommend looking for better toy problems to build the relevant skills?

Comment author: Lumifer 24 September 2014 06:07:50PM 3 points [-]

The thing is, it's not like you need to learn a programming language better, what you need to learn is Facebook's API and the libraries involved. That's a separate narrow domain of knowledge -- improving your Python skills will not advance you here.

Maybe start with a "Hello, world!" program inside Facebook, then incrementally add things to it? I am sure there is example code available -- take the simplest/smallest program, understand how and why it works, try modifying it...

Comment author: Baughn 24 September 2014 09:23:36PM 0 points [-]

I just had a glance at their API docs.

At a first glance, it seems reasonably well-factored, and I have little doubt that I could learn to use it in a matter of days, with "hello, world" in hours. There isn't anything terribly unusual there.

That's the starting point from which I'd give good odds at writing a facebook app. Unfortunately, it isn't palladias' starting point; unless I'm completely mistaken, he's several levels of inference away from understanding their API docs.

Attempting to spike, by learning just what is needed to understand Facebook's APIs, is likely to produce a fragile understanding that breaks the moment they change anything. Ideally, you'd want a broad enough base of understanding that you can predict where to look for bits of API because it's where you would put them yourself.

Comment author: gjm 25 September 2014 02:00:03PM 0 points [-]

he's several levels of inference away

As it happens, palladias is female.

Comment author: Baughn 25 September 2014 03:56:24PM -1 points [-]

So noted, though I don't see the relevance.

Comment author: arundelo 25 September 2014 04:38:30PM 1 point [-]

Just that you said "he".

Comment author: Baughn 24 September 2014 09:21:23PM *  0 points [-]

Universities. There are a large variety of BSc/MSc-grade courses online, some of which are actually good, and of course 'offline' is also an option. Unfortunately I don't know what the best ones would be now, but MIT is probably a good starting point.

It won't get you everything you need, though. See my response to Lumifer.

Comment author: Strangeattractor 25 September 2014 06:53:24AM 1 point [-]

Unless you have a specific reason that you want to use Facebook, I would recommend not using Facebook to build your app. If you use Facebook, you will be locked in to their platform, subject to their whims, and part of a system that does not respect the privacy of the users, or respect users in general.

Contributing to an open source project, or building your own open source application, would be a better way to improve and showcase your skills, in my opinion. It would also have a more positive impact on the world.

That said, Facebook's Developer page's Quickstart Guide says that Facebook's Graph API is based on HTTP. So, I would recommend learning about how HTTP works, getting a better understanding of it, then downloading Facebook's Graph API Explorer tool, and fooling around with that, as a place to begin.

There are probably many ways to learn about HTTP, but one way you might consider is the O'Reilly book on the subject: HTTP: The Definitive Guide by David Gourley and Brian Totty. I haven't read it, but I have found other O'Reilly books to be helpful with more clarity in the writing than in many other technical books.

Comment author: palladias 25 September 2014 02:18:34PM *  1 point [-]

My reasoning for using fb is that my plan involves fb (i.e. I'm picking a random friend of the person using the app and then [a slightly more involved version of gratitude journaling]). And that I figured that I wanted the app to occur within something the person was already using, to avoid the inconvenience of downloading a standalone app or visiting a website.

Comment author: lmm 25 September 2014 10:24:08PM 0 points [-]

The facebook API is probably the friendliest and best-documented "web API" out there (which is not to say it's good, and they're terrible about changing it all the time - but compared to their competitors...). Their docs have examples, and also the interactive "graph explorer" is a very good place to play around to start with. You edit code the way you normally do, and your code makes web requests to their APIs. If you're not comfortable with that, maybe some tutorials on e.g. web scraping (that's a popular thing to do in Python) would help you get more comfortable with doing HTTP in Python? Or from the other edge, try making the necessary HTTP ("REST") requests to facebook "by hand" using something like Postman, and then writing code to do that.

As others have said, start with a "hello world" and then add features to it.