Rikers Inmates Learn How To Code Without Internet Access (fastcompany.com) 173
An anonymous reader sends the story of another prison where inmates are learning the basics of programming, despite having no access to the vast educational resources on the internet. Instructors from Columbia University have held a lengthy class at New York's Rikers Island prison to teach the basics of Python. Similar projects have been attempted in California and Oklahoma.
The goal wasn’t to turn the students into professional-grade programmers in just a few classes, [Instructor Dennis] Tenen emphasizes, but to introduce them to the basics of programming and reasoning about algorithms and code. "It’s really to give people a taste, to get people excited about coding, in hopes that when they come out, they continue," says Tenen. ...Having an explicit goal—building the Twitter bot—helped the class focus its limited time quickly on learning to do concrete tasks, instead of getting bogged down in abstract discussions of syntax and algorithms.
jobs (Score:1)
Go back in for the free doctors that cover more (Score:2)
Go back in for the free doctors that cover more then the ER, Medicaid and maybe soon even Medicare (more doctors as not taking that).
Also no more of this out of network BS.
Re: (Score:2)
Re: jobs (Score:1)
Have to do freelance work, fully paid after completion. Maybe after building some contacts doing that they can get a steadier job. Maybe.
Re: (Score:1)
Seriously, use to be an ex-con knew his place, and you could count on them to shovel all the shit you threw at them and they'd keep their traps shut.
But now they come out of Rikers with their heads full of nerd gibberish and they think they're fuckin' rock stars! You tell 'em you got a job for them and they demand free meals and a massage therapist! If you want a rub and tug, get it on your own damn time!
Re: (Score:2, Insightful)
You're more likely to get background checked as a gardener than a programmer at a startup or small business. Nobody expects a programmer to have a record, so they're not looking for it.
If there's even a checkbox on the application, you just lie. Chances are good that they'll never check at a small place. And it's a safe bet that while you won't get hired if they do, and an even smaller chance that you'd get fired if they find out later, they won't bin your application if you lie.
I did (Score:3, Informative)
I did, he was a corporate VP by the time we got bought out. It costs more to screen them, but they tend to stay a lot longer than the entitled generation, are willing to learn new things, and are a lot more resourceful than our standard employee with a CS degree. My experience has been largely in the programming field, with most of the convictions drug related, and we've only had about a dozen. Hell, one who worked with me for 5 years went to one of the defense contractors and got a security clearance; I w
Re: (Score:3)
Whatever happened to the "debt to society: paid" notion?
Can companies legally discriminate based on a served sentence?
Who will hire them? (Score:1)
Companies that want lots of cheap programmers, and that have no liability for the security holes in their app.
Which is to say, all of them.
Re: (Score:2)
Who is going to hire someone out of prison with a record as a programmer.
Pro-tip: If you don't want a them to know you were in prison, then don't put it on your resume. Many companies don't do background checks, and often they don't do any fact checking at all. According to The Economist, a criminal record is not correlated with poor job performance [economist.com] for many jobs. You are better off filtering out people that use MSIE to complete their job application, or that write in all single case (either upper or lower). Those are both correlated with poor performance.
It is tough to get hired as a gardener with a record.
Gardeners have mor
Re: (Score:2)
Re: (Score:2)
I have a good friend that makes quite a comfortable living as a senior dev, in spite of being a convicted felon. He got into a bar fight and put a guy into the hospital about 10 years ago, but he's actually quite pleasant to work with and writes solid code. He says it's never been a problem, as he's up-front about it and doesn't try to hide it, along with having a great work re
Re: (Score:2)
It's far cheaper to get 90% for not a lot, and fix the bugs.
Not if you have an entirely different person assigned to fixing the bugs.
I once knew someone who claimed that whenever an employee left his/her programs would end up being totally rewritten by the next person. Because it was easier to start from scratch than to deal with someone else's coding quirks.
Re:jobs (Score:5, Insightful)
You merely contract to an overseas resource. The Indian company sells their services to mega-corp US, and use you as part of a pool of developers. Don't expect a decent income, though. Most globals are doing this already. They buy coding resources from India, get the source back, bang it into shape. It's far cheaper to get 90% for not a lot, and fix the bugs. The banking/c-card industry got in their first. Manufacturing and retail will be next.
The Indian companies won't hire Americans. They only believe in Globalism when it benefits them.
Re: (Score:2)
The Indian companies won't hire Americans. They only believe in Globalism when it benefits them.
Who says it wouldn't benefit them? If they can hire a convict cheaper than a local then they will likely do it. The only reason they wouldn't is because they are either more expensive or they don't work as hard or some other factor. If there was no such factor then the first company that did it is going to be able to underbid everyone else. This is the same failed logic that claims that companies pay women less. If you could pay women less across the board then someone would start a new company that hi
Re: (Score:2)
Please show me the Jim Crowe era all black companies in the South, or you can admit your full of shit and more then money goes into people's considerations.
Re: (Score:2)
Believe it or not, Indian owned companies will hire Americans. I've worked for several small contracting firms that were owned by Indians in the DC metro area. Have you ever tried looking for a job at an Indian owned firm? Or would your racism not allow for such a thing?
I get called by them all the time, but when they ask my visa status and I don't have one because I am a citizen, then they lose interest.
Huh? (Score:5, Insightful)
Bah, when I learned programming there weren't "vast educational resources on the internet".
It's been done.
Since when the hell have we reached the point of "zomg, someone learned something without teh intertubes"??
Because if other people haven't learned to basics of coding over the last few decades without the use of the internet, I'd be completely shocked. The internet is not a pre-requisite to learning, as much as people seem to think it is.
Re: (Score:1)
Re: (Score:3)
The Internet isn't required for learning, but it is required for Twitter. It seems a Twitter bot was a strange project choice when he knew going in that there was no Internet. In fact, he even printed out Tweets to show them what they looked like.
How did they test their functionality? Did he have a fake API for them to hit against?
Re:Huh? (Score:4, Informative)
Absolutely this. I learned my programming back before the Internet. And I learned by reading manuals and text books. And I can still do that.
But why should I have to? I can get the same information faster by looking on the Internet. I still teach myself how to do new things by reading about it. The only difference is that I use my computer screen instead of dead trees. Well, that and the difference is that I can find answers to my questions in the literature a whole lot faster on the Internet than I can by digging through the appendix in the book(s).
While it's a good idea to learn the basics without having people on the Internet do your homework for you (so you actually learn it), having the Internet as a resource makes the day-to-day job of programming so much easier and I take full advantage.
Re: (Score:3)
I find that "book vs. Internet" it is analogous to the difference between instructor lead classes and just having access to the training material.
It is nice to have a text book that will shepherd you through a series of related subjects and ideas.
The Internet is great for quick answers to specific questions.
So, yeah, I love my Camel book and you will have to pry it out of my cold, dead hands.
Re: (Score:2)
If books work for you, keep using them. I wouldn't tell anyone to change what works for them.
I used to have a huge room full of books that I never used any more. I have since gotten rid of most of them except for the ones that have sentimental value, like my first edition K&R C Programming book. These days, I personally don't bother buying a book for anything new because the resources out there are as good as or better than the books you can buy. In large part because the online resources tend to be
Re:Huh? (Score:4, Informative)
Yep, it's two different things, and I find that the two sources compliment each other quite well.
The internet is great for getting instant answers and examples for specific questions, and that instant gratification is great for keeping me from being frustrated from being hung up on some stupid little thing for hours that the book forgot to mention. It comes with the downsides of learning how to do things but not why they're done (basically copying and modifying as opposed to creating), and feeling like I know more than I actually do (I know there's a term for this but I don't remember what it's called). There's also the loss of experiences gained through struggling with the code for hours at a time. A lot of the things I remember best I remember because I spent all day and all night fighting with it only to find out it was some stupid thing I'd missed somewhere else
On the other hand, books are good for getting a broad overview of the subject. Since it's a lot harder to search a specific question and find the answer distilled down to a sentence and a few lines of sample code, there's generally a lot of reading of things that aren't entirely relevant to my question. Even though said things aren't relevant then, I often encounter them later and think "oh yeah, this is that thing the book was talking about". The downside to books though is that it's a lot harder (compared to following some internet quickstart tutorial) to just dive in and start, and that in turn makes it hard to contextualize and store the information presented in the book.
Thinking back on my education, the best programming classes I took were the ones that combined a lecture and a lab segment. Get the broad overview of the concepts in the lecture and book portions, then get some practical examples that provide a base with which to test the lecture concepts on.
Re: (Score:2)
Absolutely this. I learned my programming back before the Internet. And I learned by reading manuals and text books. And I can still do that. But why should I have to?
Because the internet is such damned distraction. For example, right now I'm urgently preparing for class, but I'm posting on Slashdot! Arrrgggggh!
Re: (Score:2)
Re:Huh? (Score:4, Insightful)
Re: (Score:2)
Re: (Score:2)
Dot matrix? Bah. Chain printer.
Re: (Score:2)
ITYM "wrote programs w/o the Internet". Mind you, people *have* written programs without computers, but that's a lot rarer and has a harder time being useful.
Re: (Score:3)
Re: (Score:2)
When I learned programming, there wasn't even an internet. Well okay, ARPANET did exist then, but that was nowhere near what the internet is now, and there certainly wasn't Google and Stack Exchange.
It's always amusing when I can't get wireless, so I hack on something that's on my laptop, and people start asking me how they can get on the wireless too.
Re: (Score:2)
I know. It is almost soul crushing to realize that most people think that a laptop is for using Facebook, but with a bigger screen than their phone has.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
We reached that point a long time ago, bro. Where have you been?
Re:Huh? (Score:5, Funny)
" Because you can't just go to google or stackoverflow and copypasta your way out of a problem"
There seems to be an entire subcontinent who've been taught to use that exact method to program.
Re: (Score:2, Interesting)
Re: (Score:3)
I guess they weren't needed for object-oriented programming (OOP).
The flow chart method is only good for iterative programming. OOP is an entirely different way of approaching programming and flow charts aren't really useful.
And to be quite honest, flow charts were never really all that useful for a lot of us. I started coding in the 70's. I learned how to design flow charts but figured out that they were superfluous and wasted time when I could be getting real work done. I can't remember the last time I wasted the effort to draw a flow chart. Sure, I do actual desig
Re: (Score:3)
Re:Huh? (Score:4, Interesting)
Proper formatting and commenting was possible in the old BASIC. It was just rarely done. When dealing with spaghetti code I start by going through the original source and clean it up with a coding standard and it makes the job of reading it so much easier. Well formatted code is, to me, more useful than a flow chart.
True story. When I was in my assembly class, we were in the computer lab doing an assignment. One of my classmates asked me for help. His code had no spacing and his labels were just L1, L2, etc. so they didn't convey any meaning. I told him to go clean up his code and apply a decent coding standard with meaningful labels before I would help him. He found his problems pretty quick when he did that.
Re: (Score:2)
No way! That sounds like something from that TV show Heroes or something. Are you seriously trying to tell us that you recommended someone apply a decent coding standard with meaningful labels and by your grace they were able to see the problem? Are you frigging Billy Batson or something?
Re: (Score:1)
Flowcharts are great. Perhaps not for designing software but for documenting protocols and similar things.
I did have use for flowcharts during design once. I was writing software for a radio-modem. To get maximum throughput it wasn't running on a timer so each code path still had to take the same time to keep synchronization.
A simple flowchart to keep track of each path helped out a lot there.
Cycles spent in the comment after each instruction was also useful.
Re: (Score:2)
Talk about the blind leading the blind. So I take you just program out of your ass and don't bother with process flow diagrams. Wow...
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Where the hell did you ever get that idea? A flowchart [wikipedia.org]makes an excellent part of an orthogonal design in an OOP paradigm. Each class actually has methods, and each of those methods can be better designed with a good flowchart than without.
Re: (Score:2)
You should probably do it while naked, cold, hungry, and being beaten every time a verbose compiler flags an error. You should learn to code as if your life depends on it. Except no substitutes!
This is my Hello World. There are many like it but this one is mine. Without my Hello World, I am useless. Without me, my Hello World is useless.
Alternatively, you can get out of education what you put into it.
Re: (Score:3)
*** SYNTAX ERROR LINE 3 - UNEXPECTED VERB "EXCEPT"
Re: (Score:2)
I should probably be tied to the post and lashed. Usually I'd pay extra for that.
Re: (Score:2)
Yep. You also wrote much, much, MUCH LESS code, that did fewer things, and did many of them (especially the user-facing parts) in a much more primitive way. And that code used far fewer and far smaller libraries, which meant that you spent a lot more time re-inventing things. Sure, your low-level coding skills were sharp, but you just weren't getting that much done.
Re: (Score:2)
It used to be even worse - when you spent several hours writing a mainframe routine and coding it to punch cards, without knowing whether it would even compile until the next morning after the batch run, you took extra care to make sure you wouldn't have to waste another day because of something stupid.
Re: (Score:2)
If you coded at Microsoft then you'd have had access to the MSDN library on CD/DVD or installed locally.
Internet for programming? (Score:4, Interesting)
You mean they use .... books??? (Score:4, Insightful)
Say it ain't so!
My god, there's crual and unusual punishment, but making they have to read from a book - where's Amnesty International when you need them??
How does this idiot think everyone up until the 90s learnt to code?
Re: (Score:1)
The cruel punishment is actually making them use Python....
Re: (Score:2)
Or learned how to code in real HTML.
Wait, what? (Score:3)
Re: (Score:2)
All I want to know is if they get a year added to their prison sentence every time they trigger an illegal instruction.
awesome!!! (Score:1)
the kids these days (Score:1)
I learned to program when there was no internet you insensitive clod!
Weird post title aside... (Score:2)
It's pretty cool that there are educational resources for prisoners. Keeping their minds occupied on doing something productive is good for rehabilitation, something the prison system is sorely lacking.
However, and this is me being a cynical asshole, guaranteed there's no out-of-pocket payment for these classes, so one would think that it's just less painful to go to prison to get an education than go to college. (Yes, I know I'm vastly oversimplifying the long-term issues here, among them the cultural is
Re: (Score:2)
there's no out-of-pocket payment for these classes, so one would think that it's just less painful to go to prison to get an education than go to college.
Riight. People pick Attica over Harvard because the tuition's better. And the chicks are cuter.
Re: (Score:2)
Like I said, cynical, and that I was ignoring a fair amount of nuance there. But so are you.
A kid who has the resources and acceptance letter can go to Harvard. That kid's options are comfortable, pleasant, and are not borne out of desperation.
A kid who is languishing in relative poverty, feels he has little choice but to turn to crime, ends up in prison, can say "hey, it's an education", especially since he, in relative poverty, wouldn't have had access to that education anyway (I've met kids who have st
Weird choice of project (Score:4, Interesting)
Why have them write a Twitter bot if there's no internet access? There are thousands of interesting problems to solve with a computer code. Why that one?
Re: (Score:2)
#helpImTrappedInATweetFactory
Re: (Score:1)
"100% of our students created a Twitter bot."
-> More research funding
-> No idiot test subjects to screw this up, they can't prove they wrote non-functional code
Re: (Score:2)
Re: (Score:1)
Interesting anecdote I've heard indicate that it is the other way around.
A high school program directed at applied electronics had a course in alarm systems. They dropped that course since a lot of the students ended up in jail.
Not knowing how to commit crimes is a great deterrent. It's people that thinks they will get away with it that ends up in jail.
Python for Cons? Why not Racket or Scheme? (Score:1)
Re: (Score:2)
Despite your apparent misunderstanding of Heisenburg Uncertainty, how you perceive things actually doesn't make a god damn bit of difference. Python is a solid, well designed, efficient language. It isn't perfect, but most of its shortcomings would be true for any interpreted (With JIT/VM) dynamically typed language.
Without the Internetz? Horror! (Score:3)
How is this newsworthy at all? I learned programming as a kid from a book in the last 70s, before even BBSs were a common thing. LOTS of people learn that way. Hell it's actually better in many ways as you don't get distracted and can focus.
Gold Farmers (Score:2)
They should get a grant for a private WOW server and teach them to "farm" gold.
Coding vs Programming (Score:5, Interesting)
Coding and programming are two different things (they are related, but they are different). Coding is learning the syntax of a language and the mechanics of implementing a solution to a problem. Programming is analyzing a problem and determining what computational steps are needed to arrive at a solution.
In the mid 70's, my high school offered a FORTRAN programming class out of the math department. It was a full school year class that met daily. For the coding aspect of the class, we had one shot a week on the computer. On Friday we would hand in our punched cards and on Monday the teacher would return the cards and the compile/run printouts (the computer we used was the school district's main system). The time we spent actually coding was done outside the class room.
The majority of the class however was learning how to program. Coding was a secondary aspect of the class (typically one day a week was going over specific FORTRAN concepts). Our first assignment was to break down the steps one used to make a phone call (step 1, walk over to the phone, step 2 pick up receiver, step 3 listen for a dial tone, step 4 if no dial done ...., etc.). We discussed and went over problem solving, algorithms, and how to break a problem down into it's discrete steps. Sometimes the problem was able to be solved without a computer (just analyzing the problem gave the final solution). Our coding assignments were usually stripped down problems that demonstrated that we could actually implement the solution (if I remember correctly, the biggest coding assignment was maybe 50 or so statements long).
In the parent article, it sounds almost the same. They are being introduced on how to program.
In today's environment, there are a lot of coding frameworks that have pre-canned solutions that address many typical programming requirements. So it's easy to approach solving a problem by learning the frameworks and connecting the pieces together. The real programming has already been done within the framework. This is both a blessing and a curse. The blessing is that a lot of people can code a solution to many real-life problems without needing to really understand the programming aspect. The curse is that the solution will more then likely be bloated, and computationally inefficient.
The internet really helps with coding, it acts as a helpful reference for finding frameworks, the syntax of languages and little coding snippets.
Question is how to get a job (Score:3)
I think it's a really good thing to try to help prisoners learn a skill. Anything that reduces recidivism is a good thing.
However...have they thought of where these inmates would work when they came out? You can't get a job with the vast majority of companies if you have bad credit, let alone a criminal record. Everyone wonders why the recidivism rate is so high -- this is one of the reasons. If you can only get crappy off the books jobs, you're more likely to return to crime because it pays better.
This is the major problem with the age of easy, cheap record checks. The second you're involved with the police at all, even if you're not convicted, your resume will immediately be tossed in favor of someone who doesn't have a record. Basically, sentencing someone to prison is permanently writing them off no matter for how long or for which crime. The inability to get meaningful work later on, combined with being housed with violent angry people for a long time doesn't make for a well adjusted person when they do get out.
Would you hire John Valjean [24601]?? (Score:2)
you could be able to CURE CANCER | CREATE COLD FUSION | understand the US TAX CODE but if somebody will not hire you because you have a "Ticket Of Leave" then you are cooked.
Umm, yes? And? (Score:2)
An anonymous reader sends the story of another prison where inmates are learning the basics of programming, despite having no access to the vast educational resources on the internet.
Wow, you don't say. Just like I did for the first 20 years of my life. Amazing.
We had these things called "books"...
Anyone think of Riker in Star Trek? (Score:2)
I'm not crazy! :D https://www.youtube.com/watch?... [youtube.com]
Kinda jives with the institutional theme of this article...
No? :(
Re: (Score:2)
Creating tomorrow's cyber criminals? (Score:1)
Teaching inmates to program is admirable, but has anyone considered the drawbacks to that plan? IT in the U.S. is getting squeezed from all angles. Teaching these individuals to code is fine, but the jobs may not be there after they are released. Now you have someone with skills to perform a job for which no-one wants them. Unless there are plans in place to get them jobs at the outset, their skills may languish or be turned to other endeavors from old behaviors.
Better Programmers? (Score:2)
Just wondering if anyone has a thought on whether this would encourage better programming? I've always taught myself by jumping in and just figuring stuff out. I've sat own and absorbed a lesson on how to program. Is there merit in this?
Re: (Score:2)
There is no altruism here (Score:1)
Lesson 1 (Score:2)
They had to replace the "Hello world!" lesson with "Hello D block!"
Getting bogged down... (Score:2)
Worried about getting bogged down? Got something better to do for the next five years? Shouldn't prisons just become full-fledged universities and be done with it? Isn't that the rehab hope?
Learning to program without the Internet? (Score:2)
manual? (Score:2)
Re: (Score:2)
Probably a better way to learn how to code (Score:2)
"without internet access" (Score:2)
Me too! (Score:1)
Holy shit (Score:2)
I knew Rikers had a bad reputation, but that just sound brutal.
Seriously, couldn't they opt for hard labor or some alternative?
This could be a really slippery slope. I can just imagine a power mad warden giving some poor bastard the Malbolge [wikipedia.org] spec for light reading while in solitary.
Lots of us learned to code without internet... (Score:2)
Pretty much anyone using a computer before 1990 experienced this phenomenon.
My anecdote (Score:2)
True story. Offline theoretic self-education can certainly work. Especially with kids. Limits create creativity.
My anecdote: :) But i saved my programs, and later when someone told me about "qbasic.com" i was up and running ofcourse.
In fact, as a kid without a compiler or internet, that was how i learned programming QuickBASIC. By just studying an old reader that i found. I tried all my programming in "edit.com" but i couldn't run it.
Making more experimental programs for fun.
Re: (Score:2)
I learned in the 1960's. There was no internet to learn from.
How do people think people learned anything before the internet? It's amazing that humans ever made writing systems and internal combustion engines, without the internet, eh?
Yes, it is quite amazing that we achieved all we did with so little. That's why history is a fascinating subject. In many ways a lot of what was happening during World War II was just as technologically sophisticated as what we do today, and they didn't even have much in the way of analog computers to help them.
However, I'm sure people who lived in the early 20th century felt it would be equally difficult to get work done without written language and the printing press. It's hard to imagine someone building
Re: (Score:2)
Re: (Score:1)
Maybe they can start classes in a women's prison.
Re: (Score:2)
Re: (Score:2)