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?
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.
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?
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...
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.
Hmm. Well, I don’t have much of a gender identity, so I don’t know how annoying being addressed like that would be. On the other hand, English doesn’t have any gender-neutral pronouns that don’t make me feel silly, and I refuse to make one up when I’m not writing fiction.
Well, obviously it’s up to you. My own preference is to do one of
determine the gender of the person you’re referring to
use a gender-neutral pronoun
restructure the sentence so as not to need a gendered pronoun
use a construction like “he or she”
in preference to possibly misgendering someone, since I know some people find that very unpleasant. But if those are all too much trouble, fair enough.
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.
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.
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.
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.
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?
What is your programming background?
I know some python (took Udacity classes—Building a Search Engine, Into AI, etc). Can solve some project Euler problems.
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.
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?
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...
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.
As it happens, palladias is female.
So noted, though I don’t see the relevance.
Just that you said “he”.
Hmm. Well, I don’t have much of a gender identity, so I don’t know how annoying being addressed like that would be. On the other hand, English doesn’t have any gender-neutral pronouns that don’t make me feel silly, and I refuse to make one up when I’m not writing fiction.
Well, obviously it’s up to you. My own preference is to do one of
determine the gender of the person you’re referring to
use a gender-neutral pronoun
restructure the sentence so as not to need a gendered pronoun
use a construction like “he or she”
in preference to possibly misgendering someone, since I know some people find that very unpleasant. But if those are all too much trouble, fair enough.
Yes, it does: “he”.
Unfortunately, the mental image of maleness overrides any hope of that working consistently in people’s imagination.
Example: “Man is the animal that suckles his young”.
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.
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.
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.
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.