Ask HN: Learning to code, without a computer?
101–110 of 194 posts
Re: Ask HN: Learning to code, without a computer?
#102I'd recommend he read the "structure and interpretation of computer programs". It's written for audience who would, at the time, have found programming novel, but would be at home with math. Hence it's written in a language that allows you to expand out the program by pencil and paper, much the same way you would simplify an equation, to see if it works. Also the following books, which I've copied and pasted from som…
Wow, this is an incredible list. I think this is probably the best first step, and some of the other excellent responses I've got here would be a step two or three. I really appreciate you taking the time to provide these suggestions.
SICP: "We are about to study the idea of a computational process. Computational processes are abstract beings that inhabit computers. As they evolve, processes manipulate other abstract things called data. The evolution of a process is directed by a pattern of rules called a program. People create programs to direct processes. In effect, we conjure the spirits of the computer with our spells."
Code: "You're 10 years old. Your best friend lives across the street. In fact, the windows of your bedrooms face each other. Every night, after your parents have declared bedtime at the usual indecently early hour, you still need to exchange thoughts, observations, secrets, gossip, jokes, and dreams. No one can blame you. After all, the impulse to communicate is one of the most human of traits."
Re: Ask HN: Learning to code, without a computer?
#103Sounds like a great opportunity to learn set theory, abstract algebra, number theory, linear algebra. You could get a working comprehension of cryptography or computer graphics. You could get a handle on category theory. Those are topics that one could make progress on with only a pencil, paper, and the occasional phone call to a mentor. I cannot imagine submitting punch cards and reading JavaScript stack traces by m…
He wants to learn to code, not how to become a mathematician. As an EE student, there are plenty of engineers who know nothing about those topics (except maybe linear algebra) that have successfully completed the image processing/computer vision course.
"Featuring a strong emphasis on the fundamentals underlying contemporary logic design using hardware description languages, synthesis, and verification,"
You mean to tell me that set theory is too abstract, but full-adders and VHDL are right up his alley.
Re: Ask HN: Learning to code, without a computer?
#104We'd go line by line and change the relevant registers, arrays, pointers, counters, etc. Exams consisted of doing that, too. Sometimes you're given a piece of code and asked about the state at a certain break point. Sometimes you're given a succession of register values an asked what the program is doing. A missing semicolon had a direct influence on your grade, not on stdout.
It's not guaranteed that it produces excellent programmers, but one can learn a lot and it was almost a meditation to focus like that and ask yourself "Why isn't it running?". It was cool (at least for me, I disassembled programs as a teenager and I had a computer, but I still think this was useful).
Re: Ask HN: Learning to code, without a computer?
#105I came across CS unplugged a while ago. Looks like it might be useful http://csunplugged.org/
Re: Ask HN: Learning to code, without a computer?
#106But I feel like I saw an actual curriculum without a computer recently, but now I can't remember what it was, curious to see if it shows up in this thread. Great idea for the incarcerated! I'm going to see if I can figure out what I'm thinking of.
Ah, I think I was thinking of the CS Unplugged that others have mentioned, sweet!
Thanks for this post, I think I'm going to buy a few copies of Little Schemer and CS Unplugged and ship them directly to a Books to Prisoners program I know that sends books to prisoners in response to topical requests.
Re: Ask HN: Learning to code, without a computer?
#107It is very much an introductory text to programming, something that can be picked by someone who has an inclination to the craft but with no prior experience. It doesn't even get into Haskell's powerful type system and sticks to primitives and lists. The intention is to teach the building blocks of programming through small, pure functions.
The text is very conversational, chapters are short and sweet, and have a lot of bite-sized exercises along with their answers which will greatly help a self-learner. It will also be easy to evaluate since functional code don't tend to get very verbose.
Re: Ask HN: Learning to code, without a computer?
#108What is the most capable programmable device, that would not be considered a computer by the rules? How about a graphical calculator like a TI-83? While I was stuck in school and did not have access to a computer, I wanted to challenge myself during classes. The most interesting distraction by far was to play around with the programming functions of my TI-82 calculator that was required for math classes. Even with al…
I don't get why people continue to recommend TI-83s. I showed up to Algebra II with an 85, but 83s were weirdly prevalent until calculus "strongly recommended" TI-89s. In this context, the 83 is an awful, awful choice, because TI-83 programs only allow for variable names to be one character long. I was lucky, when someone asked me to copy my TI-85 blackjack program into their TI-83, that I had used less than 28 varia…
Re: Ask HN: Learning to code, without a computer?
#109Earlier quoted context omitted.
Wow, this is an incredible list. I think this is probably the best first step, and some of the other excellent responses I've got here would be a step two or three. I really appreciate you taking the time to provide these suggestions.
SICP might be a good programming book, but I'm not sure it's a good book. If your friend doesn't have programming experience something like "Code: The Hidden Language of Computer Hardware and Software" might be an easier way to start. Here is the first paragraph from each for comparison: SICP: "We are about to study the idea of a computational process. Computational processes are abstract beings that inhabit computer…
Re: Ask HN: Learning to code, without a computer?
#110Learning to code without a computer is what we all did, 40 years ago! He may write programs on paper, and send them to you to type them in, compile them, and print out a listing with the errors. You then send back the listing, and he will correct his program and repeat. He'll become a great programmer, since he will have to be extra careful to avoid losing one week on some typo. Now, it's been a few years since gcc h…
Comments like this reminds me of how much of a difference is to live in a 3rd-world country compared to a 1st-world country. I am still on my twenties and I can still relate to what the parent comment says, I learned the basis of my programming skills reading books around ~8 years ago because during that time having a personal computer in my home country was a luxury. Very often I joke with my friends that most of the innovative things that we find in the market are already +3 years old. I still remember the popularity of the BlackBerry when it was already obsolete in the US because of the iPhone.
One thing I did during that time to learn some algorithms was to buy a deck of cards — which I suppose is allowed in jail — which allows you to understand sorting algorithms and some of the basic data structures like queues and stacks. Writing things on paper might also help to visualize and memorize some concepts (I know, memorizing is not the solution, but what else can you do when you cannot run your code in a computer).
I hope it helps, and good luck to @givinguflac 's friend.