If you learn by doing, this is for you.
March 26, 2015 12:10 PM   Subscribe

Code4startup is an online resource that lets you clone and hack copies of real services you already use on the web to make something new and cool You have an idea and want to quickly build your own web app for startup? Code4startup throws you into the deep end of the pool of established services, TaskRabbit, Udemy, AirBnb, Fiverr... explains how they are constructed with various technologies and then lets you bang on the code of these to make something new and cool for yourself. Angular JS, Bootstrap, Wufoo, ChromeDeveloperTools, Rails... and more to come.
posted by bobdow (36 comments total) 84 users marked this as a favorite
 
Honestly, I feel bad for the people who are taken in by stuff like this. They don't "throw you into the deep end" of the named startups, they don't even appear to have any affiliation with them at all. It seems like all they do is show you how to replicate existing ideas from pre-built components, like a programming course run by John Frum or something.
posted by frijole at 1:33 PM on March 26, 2015 [4 favorites]


You have an idea and want to quickly build your own web app for startup?

This could be cool, but the bad English in the subhead makes me queasy.
posted by Going To Maine at 1:37 PM on March 26, 2015


This seems to basically just be like how fourteen million Rails tutorials have you build your own Twitter that isn't really nearly as good as the real Twitter.

Except mine I can keep serial harassers from joining, so I guess there's one point for me.
posted by Sequence at 1:43 PM on March 26, 2015 [6 favorites]


Cargo cults for startups!
posted by Pronoiac at 1:55 PM on March 26, 2015 [3 favorites]


I think coding up clones is a great way to learn. My first coding experiences were attempting to clone Space Invaders-type games. I ripped so much stuff off the internet, decompiled Flash games...

Actually, I did code up a goofy clone of a college-oriented website that my friends liked, but closed. We kept on with our little clone for a while. Super fun and a good learning tool.
posted by BungaDunga at 2:02 PM on March 26, 2015 [5 favorites]


I think coding up clones is a great way to learn. My first coding experiences were attempting to clone Space Invaders-type games. I ripped so much stuff off the internet, decompiled Flash games...

The difference, I guess, is that you didn't have a tutorial for how to make a Space Invaders clone using Swift, or something like that. It loses the part of the process where you have to actually be inquisitive.
posted by Sequence at 2:24 PM on March 26, 2015


I like this but the github login is horked.
posted by Lord_Pall at 2:31 PM on March 26, 2015


The difference, I guess, is that you didn't have a tutorial for how to make a Space Invaders clone using Swift, or something like that. It loses the part of the process where you have to actually be inquisitive.

I actually did. It was not the most useful book I ever read, but it absolutely did teach me something. There were a lot of "how to clone X as a Flash game" tutorials floating around the internet at the time. A lot of them were useful (most were crap though).

At the very least, it can peel back some of the mystery about how you get from "10 PRINT HELLO WORLD 20 GOTO 10" to "this is how you produce a 'real' thing". Programming 101 teaches you how to program, but not how to explore APIs and compose them to produce what you want- and that's like 85% of building toy internet services.
posted by BungaDunga at 2:34 PM on March 26, 2015 [5 favorites]


I don't think finding value in "If you want to build something like ___, here are some tools you can use and how they work together" is failing to be inquisitive. This seems to me to be the manner in which we have taught all building skills since the beginning of time.
posted by bleep at 3:07 PM on March 26, 2015 [4 favorites]


It pisses me off how simply knowing what tools do what jobs is considered this cult-like knowledge that only those with the shibboleth have access to. The shibboleth of how to decode the shiny over designed landing pages of these tools that don't clearly describe their purpose or how to use them.
posted by bleep at 3:09 PM on March 26, 2015 [6 favorites]


Building a knockoff of a site to learn something new?... Awesome.
Hacking on the Arduino to automatically water your plants?... Amazing!
Working on the GitHub repo so you can find a job?... Sounds cool, whatcha got?
Interfacing with your car to tune the turbo?... Seriously nice stuff.
Writing your own queuing algorithm to see if you can make it faster?... Looking forward to seeing it.
Just finished your first "Hello, World"?... Sweet, setting up the system is the hardest part, what's next?
Finally building that game you've been thinking about for a decade?... Keep going!
Automating your Excel?... Great macro, so much better than doing it by hand.

There's no wrong way.
posted by underflow at 5:26 PM on March 26, 2015 [15 favorites]


*Everyone* should learn to code, so that tech companies have a huge applicant pool and can offer lower salaries.
posted by uosuaq at 6:08 PM on March 26, 2015 [3 favorites]


Uosuaq: where I work we call this place "India."
posted by Ogre Lawless at 6:25 PM on March 26, 2015 [3 favorites]


I am turned off by the approach but I might be the ideal target. I know programming, but I use a different set of technologies so I would like to see how a different toolset works. But the design screams "learn programming" to me.
posted by tofu_crouton at 6:27 PM on March 26, 2015


Everyone should build couch forts, so that construction businesses can offer lower salaries.
posted by idiopath at 6:31 PM on March 26, 2015 [13 favorites]


Everyone should learn to chew their own food, so that regurgitation agencies can offer lower salaries.
posted by Phssthpok at 7:10 PM on March 26, 2015 [2 favorites]


No one should do anything ever, so I can live like a god among men while whining that I can't find qualified applicants.

I think if one already knows how to code and what technologies they like to use then they are not the target audience.
posted by bleep at 7:14 PM on March 26, 2015 [1 favorite]


'learn how to code', where 'code' == 'copy-paste crappy brittle shit fast just like at a real web shop'.

i'd suggest there are other more rewarding values of 'code'.
posted by j_curiouser at 8:58 PM on March 26, 2015


I'm not keen on the "everybody should code" idea. I was in the first real Comp Sci program at UCSD (previously, Comp Sci was part of the Electrical Engineering major). There were, like, 20 of us, so we all knew each other and the instructors on a first-name basis. (Except for Ken Bowles, who was always Dr Bowles, to me at least.) After high school, being part of a group like this was like being admitted to Hogwarts.

But then, some bright spark in the Psych department decided that, in addition to torturing pigeons in the basement, the Psych majors should learn programming. Suddenly the "Intro to Programming" course was flooded with students who really didn't give two hoots about programming as an art. They just wanted to complete a requirement for their major. And this happy little community of kids that really loved programming were dissolved into a larger population of indifferent students. I was a teaching assistant and tutor in my final two years at UCSD, and it was heartbreaking to see the few real programmers yawning while the Psych majors struggled with concepts like "variables" and "algorithms."

I have never met a good programmer that didn't love programming. Programming, like violin playing or surgery, is something you devote your life to because you enjoy it. No sane person would devote so much of their lives to something so focused if they didn't derive satisfaction from it. But I've met many "programmers" that were in it just to satisfy an educational requirement or who thought of it as a step up to management. They just don't "get it."

Briefly: "everybody must code" devalues what dedicated programmers have brought to our society, for good and ill.
posted by SPrintF at 9:36 PM on March 26, 2015 [2 favorites]


There's a difference between dedicating your life to programming and learning enough to automate a few things that would otherwise be tediously repetitive. Software is the only way to access many important parts of the present-day world, so literacy is important.

Not everyone needs to learn to write (or even appreciate) novels, but everyone should learn to read. Living in a society of literate people does not devalue literacy, it adds a network effect to literacy.
posted by Phssthpok at 9:54 PM on March 26, 2015 [7 favorites]


Coding ability is to a large degree innate, and a coding-compatible approach to being in the world exists only in a minority of people. The idea that everybody should learn to code reveals a laudable egalitarian impulse and a healthy resistance to the rise of the New Tech Priesthood, but is about as well-considered as the idea that everybody should learn to play the violin. Most people will simply never find the exercise rewarding enough to put in the hours required.

Living in a society of literate people does not devalue literacy, it adds a network effect to literacy.

The ability to communicate with other people via reading and writing is only very slightly correlated with the ability to read, write, design, specify or conceptualize code. Most people can learn the former. Most people have neither the ability nor the desire to learn the latter.

I am in the coding-capable minority. I wish more people could and did learn at least a few of the fundamentals of programming. But 30+ years of experience helping people Do Stuff with computers has convinced me that most people can't or won't or both.

Most people learn to interact with technology via the recipe method: I need to learn how to make a machine do X, so I will get somebody to show me step by step how that's done, and then if I do that often enough I will remember it and be able to do it when I need to. And of course if I can't recall some intricate thirteen-step dance I last used a year and a half ago, that is because I am stupid and am just no good at computers.

As a paid-up member of the new priesthood, I find it far more efficient to interact with technology by seeking to understand its nature, so that instead of needing to remember this huge and brittle library of methods I simply invent step-by-step recipes on the spot as required. But doing that requires an ability to juggle abstraction and metaphor that most people are simply not comfortable with.

Even really simple metaphors (like documents within folders) are too much for most people. The response to "Where did you save that document?" is almost universally "In Word", and this is exactly why Apple has gone to such great lengths to hide any notion of an underlying filesystem from iPhone and iPad users.

Most people can't articulate the difference between a browser and a search engine. Despite the best efforts of well meaning priests I don't see that changing within my lifetime. The very notion of "a program" is so abstract as to be conceptually inaccessible to the overwhelming majority.

More people read Metafilter than code. Most people do neither. Expecting that most people are ever going to be able to control the machinery that we have so rapidly hitched our collective organizational wagon to, in anything more than the most superficial manner, is wild-eyed optimism not well supported by the available evidence.
posted by flabdablet at 11:24 PM on March 26, 2015


"everybody must code" devalues what dedicated programmers have brought to our society, for good and ill.

If "everybody can code" were true, this would not be so. But it's not true. Therefore, taking "everybody must code" seriously must inevitably warp its meaning toward "code must resemble that which everybody is capable of understanding".

That's an idea with an old and respectable pedigree in tech, and the result of believing in it are cargo-cult verbosity-masquerading-as-English horrors like COBOL (the first computer language specifically aimed at being understandable by managers in general, as opposed to specialist programmers) and AppleScript.

If the issue is that the intended end user is simply not capable of conceiving of an abstract container that can hold and regurgitate an arbitrary value, you can't fix that by requiring your code to read

MULTIPLY RADIUS BY PI GIVING CIRCUMFERENCE

instead of

circumference = pi * radius
posted by flabdablet at 11:51 PM on March 26, 2015 [2 favorites]


I've always taken the "everyone should learn to code" thing to be less about everyone being able to produce production-level programs and more about just having a better appreciation for how the computers you use every day work. Similar to how you don't need to be able to build a house, but if you know how walls are framed and that studs are generally 16" on center then when you want to hang a picture or a TV on the wall that task becomes easier. Likewise, understanding there are certain more or less immutable constants in every program imposed by the common APIs makes working with a program you've never used before easier. Maybe it'd be better to say "everyone should learn how programmers are taught to think, so the world of computers doesn't seem so impenetrable."
posted by Freon at 5:47 AM on March 27, 2015 [3 favorites]


At the risk of descending into mystical obscurantism, my point is that thinking the way a programmer does is a mindset, worldview and attitude that goes extremely deep and that most people just don't have.

It's related to, but not the same as, the romantic/classical distinction that Pirsig's protagonist makes in Zen and the Art of Motorcycle Maintenance. I don't believe it can be taught; it can only be entered by those inclined to do so.

Programmers inhabit a world that's fundamentally made of information, and we do that in a way that's so totally incomprehensible to non-programmers as to give rise to broken and ludicrous visual metaphors like the green gibberish waterfall from The Matrix.
posted by flabdablet at 5:59 AM on March 27, 2015 [1 favorite]


"Coding ability is to a large degree innate"

Well, if that's true, then yes any attempt to teach the general public the basics of programming is ill-advised. That's the kind of statement that requires overwhelming evidence, however, preferably in the form of Actual Science as opposed to anecdotes. Otherwise, the null hypothesis should really be that like most skills (including the violin) it's largely teachable, especially if it's taught at an early age.
posted by IjonTichy at 6:10 AM on March 27, 2015 [2 favorites]


And by the by, the world of computers is impenetrable, and this is increasingly true even for most programmers, by virtue of its exponentially increasing complexity.

It used to be possible for a young person with no prior computer experience to encounter a personal computer and teach themselves enough things - from fundamental electronics to digital logic design to the ins and outs of the operating system - to give a reasonably accurate account of how every piece of it worked at every level. That was my own experience with the Apple ][+, and I count myself extremely lucky to have grown up in an era that gave me that kind of access; I feel like a car mechanic who came of age alongside the Model T and has gone on from there.

There is simply no way, these days, to achieve anything even close to that. The machinery is insanely complex now, the software unimaginably more so. The only way to have a hope of understanding any project of commercially significant complexity - say, a web browser like Firefox - sufficiently well to make fundamental modifications to it is to have been part of its development for years at a stretch, and that's only getting worse.

The flip side is the existence of a host of rapid application development tools that let you do stuff like knock out games or web sites without needing much of an understanding of what you're actually doing; Code4startup appears to be one collection of such tools. The way these things generally get used is that you start with something that somebody else has made that's kind of close to what you want to make yourself, and you bash and prod and poke it more or less at random to see what happens, and if you're lucky you can work out a technique or two and get the hang of some of the controls. But the things you end up making this way are things that nobody actually understands, with the result that when they break, they do so in almost guaranteed-unfixable ways.

Most bugs don't actually get fixed any more; instead, the frameworks they exist in get superseded.

There is honestly no way for a non-programmer to grasp just how fucked-up this industry truly is.

like most skills (including the violin) it's largely teachable, especially if it's taught at an early age

Again, my point is that programming has much more in common with musicianship than it does with literacy. And no, I don't have big science to back my opinion up, merely a lifetime of confirmation bias; but it is a matter of objective fact that most people do not play the violin and are generally none the worse for that.
posted by flabdablet at 6:19 AM on March 27, 2015 [3 favorites]


Again, my point is that programming has much more in common with musicianship than it does with literacy. And no, I don't have big science to back my opinion up, merely a lifetime of confirmation bias; but it is a matter of objective fact that most people do not play the violin and are generally none the worse for that.

Most people also don't go rock-climbing, or write structured poetry, or do Super Mario World speed-runs, but they probably could if they put their minds to it. The difference between music performance and literacy isn't that music performance can't be learned except by a select gifted few but reading is comparatively easier, it's that reading is so important for functioning in society that everyone has to learn it whether or not they want to while the violin can be thrown away in disgust without consequences. Programming is becoming similarly important, but education hasn't caught up--there have been decades of research about how to teach reading to children, which is obviously not the case for programming.
posted by IjonTichy at 6:35 AM on March 27, 2015 [2 favorites]


Seems to me that the claim about programming being of comparable importance to reading is at least as bold, and requires at least as much support, as the claim that most people can't learn to program.

Of course we are all fucked - that's a given - but I can't see how we'd be less so if more people could code. We might be less so if more people were less inclined to treat the conveniences bestowed upon them by technology as an unalloyed good.
posted by flabdablet at 6:44 AM on March 27, 2015 [1 favorite]


I'm pretty sure anyone of average intelligence can learn to program, but it can't be a prerequisite for using a computer, because these days we need everyone else to be able to use a computer too. Thus a computer must be usable without programming ability, so learning to program is not necessary for the majority of people, even those of high intelligence. That's where we are now.

How do we move on from here? I'd like to see more specialist software come with good scripting support (and something better than VBA), which then allows programming to be immediately useful to a wider range of people. What if all functionality in every piece of software and every website was scriptable? Wouldn't that be great? The logic is already there, the API just needs to be exposed in some standard way. I very much doubt this will happen though.

About that site... I have nothing against it, I'm sure it'll help some people, I don't think it can really live up to the expectations it tries to set.
posted by dickasso at 7:16 AM on March 27, 2015


'learn how to code', where 'code' == 'copy-paste crappy brittle shit fast just like at a real web shop'.

That is pretty much exactly what I did to get started, nearly three decades ago. Eventually I started seeing the patterns and manipulating them, and eventually I understood how the patterns worked well enough to write my own code from scratch, but for the first few years I was most definitely just copying, pasting, and tweaking until it did what I wanted.

Of course it will help to actually understand what you are doing, but getting results is important for motivating people to continue with the hard work of learning, so I don't think there's anything wrong with showing people quick and dirty ways of getting something to work as a pedagogical technique.

broken and ludicrous visual metaphors like the green gibberish waterfall from The Matrix.

I actually thought that image was the first time anything from Hollywood came close to representing the inner experience of programming. I used to do a lot of low level machine coding and disassembly, and that green waterfall felt a lot like the kinds of hex dump memory maps I spent a lot of time looking at and thinking about back then. As a metaphorical representation for getting under the abstractions that are the surface of the system and manipulating the substrate in unexpected ways, I thought it did a good job.
posted by Mars Saxman at 10:37 AM on March 27, 2015 [2 favorites]


this is also good
posted by bobdow at 1:47 PM on March 27, 2015


flabdablet: I could spend a long time refuting various (sometimes hilarious) assertions have you made.

I'll take a stab at a couple though.

There is honestly no way for a non-programmer to grasp just how fucked-up this industry truly is.

Really? Program managers don't understand? Dev managers don't understand? Everyone else working in the industry that isn't a coder doesn't understand? Yeah, I'll agree that the industry is pretty messed up, and perhaps to an extent that only people IN the industry can understand... But I'd say it's a bit arrogant to think that coders are the only ones who realize who messed up everything is. I'll also postulate that most other industries are in similar positions (health care, the insurance industry, truck driving, factory work, etc); people in the industry understand how messed up a given industry is. But programmers aren't given a special insight into how bad the software industry is.

but it is a matter of objective fact that most people do not play the violin and are generally none the worse for that.

Yeah, um, about that. So, it's generally recognized that students that learn some kind of music are better off for doing so. (a google link). Maybe not the violin, but certainly learning music is a good thing, and we should probably teach music to kids.

Most bugs don't actually get fixed any more; instead, the frameworks they exist in get superseded.

Um, maybe? Look, in the projects I've worked on, most bugs that were found before we shipped the product were fixed. Most bugs that mattered were fixed in subsequent revisions of the software too.

Coding ability is to a large degree innate.

I wish. The quality of code in the world would be much better if everyone coding had some innate ability. There are some stellar programmers out there, but nearly half are of below average in their skillset.

(I'll stop here, I could really go on though, there were many more assertions that could be argued against effectively).
...

Look, not everyone is going to be a professional writer. But holy shit it's useful to society if we teach everyone to be able to construct a sentence. And a paragraph. And a sentence fragment (or at least to recognize one). Personally, I think most computer languages are easier to understand and use than English. There isn't any reason why we can't ensure everyone can program to some degree.

Even though there are 'priests' who wish to prevent everyone from joining. (sorry, but I'm a bit of an atheist, so the coding priests are more often charlatans than religious figures in my mind).
posted by el io at 4:11 PM on March 27, 2015 [1 favorite]


Assuming that coding is this mystical Chosen Ones Only bullshit is why we have this huge problem with diversity in the tech industry. Just look at the word "priesthood" - who gets to be priests?
posted by divabat at 6:49 PM on March 27, 2015 [1 favorite]




> There are some stellar programmers out there, but nearly half are of below average in their skillset.

If it were true, that'd actually be kinda unusual.

For most people a computer (mainframe, pc, tablet, phone) is a black box. They type, swipe and tap stuff in and stuff comes out. They don't know or care how this happens, as long as it does happen. If you can show them a shortcut in the user interface, that's cool. If you automate some back end process for them and show them how to run the automation, great! Fixing it when it breaks? That's someone else's problem (yours).

This doesn't make people stupid, it makes them different.

I might be able to write a database to help organise a lawyer's brief but I could never write that brief. A programmer might write a program to help an architect design a major building, but probably could not design the building. An electrician could design a device to help find breaks in pipes, but it takes a plumber to know how to fix those pipes correctly.

If the tools in the FPP help people that are interested in programming to develop skills they can use, that's great! But arguing that people should learn how to program is taking it too far.
posted by Autumn Leaf at 4:34 AM on March 29, 2015


Assuming that coding is this mystical Chosen Ones Only bullshit is why we have this huge problem with diversity in the tech industry.

That follows only to the extent that it's other people doing the choosing. Which it undoubtedly is if you're talking about actually landing a paying job, but that's really a separate issue from the one of who can or cannot learn to code in the first place.

Just look at the word "priesthood" - who gets to be priests?

In coding? Anybody who can sit down with a pencil and paper and write a precise and correct description of how to make a mindless though programmable machine play FizzBuzz. Because if you can get that right, you have what it takes to learn pretty much everything else.
posted by flabdablet at 5:11 AM on March 30, 2015


« Older 'casts for your 'pod   |   The biggest challenge for a woman working in... Newer »


This thread has been archived and is closed to new comments