Ask HN: Advice for a prisoner learning to program
I have been in contact with a prisoner who is very interested in learning to program. He has no access to the internet and is not up for parole for another 11.5 years. He does have access to some older computers and is computer literate. I’m not sure yet how he can get access to a development environment if he has no access to the internet.
He is primarily wondering what computer language(s) to focus on. He would like to focus on a language that will still be relevant in 11.5 years. My initial thought is to focus more on learning the basics in a language with good offline documentation. It sounds like most of his learning will have to be through books.
What (development) advice can I give this man that will best prepare him to be successful when he is out of prison?
17 comments
[ 3.3 ms ] story [ 51.5 ms ] threadEdit: Another idea -- good excel and data science and visualization skills probably won't be going away too and may be more accessible if he doesn't have access to a command line
One other thing, most companies that still use this language are older/larger companies (like finance). They tend to be less forgiving in their background checks.
Maybe they prison computer admin can install python, C++, or similar and an IDE to go with it.
EDIT: Something else to consider: instead of programming, where knowledge has a very short half life, what about electrical work? Can't outsource a trade, the knowledge doesn't go stale nearly as fast, and we're never going to run out of electrical work to be done.
https://www.electricianschooledu.org/state-by-state-licensin...
https://www.nabcep.org/
Outside of that - say it's an old Windows XP box. He could still program using windows shell script. I think most windows boxes going back to 98 have VBScript installed.
https://stackoverflow.com/questions/8746653/what-programming...
One of the most underrated books in programming. I'd say it has value even if you are not interested in programming. To bend your brain. Seems overly simple sometimes, then before you know it you have to bend your mind backwards and jump through a flaming hoop.
Either way, the industry landscape will change, but the old stuff will still be around and still relevant reference. Therefore, start studying old classics of CS, with a focus on fundamental algorithms, compilers and older, simpler language specifications.
It is extremely likely that even if this man doesn't have access to the Internet, the computer he uses has a web browser, and therefore some version of Javascript. Therefore, I would pick Web tech as the entry point: Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics, Javascript the Definitive Guide, Eloquent Javascript, and Javascript the Good Parts.
Failing that, he will probably have to bootstrap from Windows batch files and x86 machine code into a programming environment. I will ignore that possibility, since AFAIK nobody has tried to tutorialize such a task.
To complement the JS stuff, a general outline book. I like Schaum's Outline of Principles of Computer Science.
Then all the "big hits":
The Art of Computer Programming
Algorithms + Data Structures = Programs
The C Programming Language
The Little Schemer, Structure and Interpretation of Computer Programs, and Common Lisp the Language.
Starting Forth, Thinking Forth, and the Forth-83 standard
Smalltalk-80 the Language
Programming in Prolog: Using the ISO Standard
A Relational Model of Data for Large Shared Data Banks (Codd 1970) plus SQL Queries for Mere Mortals for the practical.
Are VBScript and JScript still available on modern Windows?
Though if they're older computers, these are probably available (or maybe even QBasic, if they're old enough).