[HN Gopher] Teaching how to code is broken ___________________________________________________________________ Teaching how to code is broken Author : neilpanchal Score : 99 points Date : 2022-01-12 06:53 UTC (2 days ago) (HTM) web link (neil.computer) (TXT) w3m dump (neil.computer) | hamolton wrote: | I don't know of any of my peers that took a course that heavily | relied on a textbook; it feels like most university intro CS | courses spend most of the time commitment in lectures and problem | sets. I think many would agree that you learn the most doing | homework. | | It's been common for a decade now to recommend beginners on the | internet looking for an intro to CS the course Harvard CS50. The | course has attracted criticism for be overwhelming for a single | semester, as it requires submitting assignments in Scratch, C, | Python, SQL, and HTML/JS. However, I think it, like other well- | acclaimed intro to CS courses do teach problem solving in via | hand-held labs and problem sets. Perhaps its prevalence suggests | the course is influential in the way CS is taught, but outside of | Yale copying the course, I'm not sure. | | I think the problem sets in CS 50 are effective for teaching | problem solving. Looking at examples of problem sets for the most | recent semester (I did the Fall 2012, so it's changed a bit) | there is... | | - making an animation or game in Scratch which must have have a | loop, condition, and variable - printing pyramids of # characters | - caesar encryption - ballot counting - implementing bitmap image | filters - a spell checker - writing SQL queries against a | database of movies - writing the frontend of a website - writing | a basic full-stack web app | | I guess the main difference between the course and the post's | proposal is that it doesn't follow a single narrative, so when | you apply concepts in your head is only after the first | introduction. | | Looking on other resources I encountered at Georgia Tech, I | remember both the intro to CS class I saw others take and the | cool, interactive intro to CS textbook Mark Guzdial showed my | class How to Think Like a Computer Scientist [1]. They both start | with python turtle graphics towards the beginning to teach | variables and loops before venturing off into other concepts. I | think the first half of Automate the Boring stuff with Python | actually faces the issues the author cites before diving into | common applications in the second half; I do wonder now many | working professionals learned from this text which I've generally | liked at a glance. I suppose the most influential intro to CS | materials are for AP CS A, although I'm not familiar with the | course. | | [1] | https://runestone.academy/ns/books/published//thinkcspy/inde... | imbnwa wrote: | As a self-taught, highly agree almost all intro material I was | coming upon back in 2013/14/15 was basically just a reference | throwing concepts at you without a context that was incrementally | increasing in complexity to guide you. I was one for trivia, so | this was fine to a certain extent, but he's dead right, the _job_ | is not writing code (as much as the JIRA Industrial Complex would | like to make it out to be), the _job_ is thinking and problem- | solving. | | I only began to understand the _thinking_ needed for doing my job | after after mentoring by a consultant who fully grasped and could | communicate this, where all the other in-house seniors were too | stuck in the Complex for whatever reason to transmit this clearly | (likely related to the near-unihibited freedom the consultant had | relative to the in-house seniors). | DwnVoteHoneyPot wrote: | Tutorials do exist for absolute beginners. Seems like the author | is implying they rarely exist which is incorrect. "Hello world" | is a tutorial/real world example. I learnt the how to code | through the "Ruby on Rails Tutorial" by Michael Hartl. | | The tutorial market is different than the computer science 101 | crowd, so you have tutorials for one, textbooks for the other. | | The issue with using tutorials in textbooks is that it's more | effective to use 1 great example per chapter, than shoe-horn 1 | monolitic project as an example for 13 chapters. And the three CS | 101 books I've read do have good examples or interesting problems | to solve. If I remember correctly the Harvard 101 book does use | cards for objects. | | One problem that the Ruby on Rails tutorial has as a CS 101 book | is that there is so much boiler-plate stuff needed to have a | functioning monolithic example. To do "hello world", need | Database -> Code -> Template... when you can do: print("hello | world"), then move on to next chapter. | | The article is much-ado about nothing. | Apocryphon wrote: | I was going to make a comment very similar to yours- there's | been plenty of programming 101 books, though maybe more so in | previous decades starting in the '90s, which has the author | present a project or a series of projects and each chapter | involves building out the project while introducing concepts. | While those books tend to be about teaching how to use a | specific framework, SDK, or language rather than programming in | general, that project-based method of pedagogy is common. | | What's annoying about those books is that sometimes you don't | care to go through the entire project, you just want to jump to | a specific topic, but you're forced be part of a continuous | narrative. Though in modern times where every technical book | has a corresponding repository somewhere with code samples, you | can at least use that code rather than starting chapter one. | | Whether you want to learn from how-to projects, or from | abstract first principles, there's resources out there for | both. Teaching how to code is not broken at all. Maybe teaching | data structures and algorithms could use more work- but that's | the subject for a different article. | hateful wrote: | This reminds me of when I took Java in college. One of the | prerequisites was Introduction to Computer Programming 1 & 2 (101 | and 102). | | 1 was along the lines of what was on the top of this article: | Chapter 1: Types Chapter 2: Variables Chapter 3: Operators/Math | Chapter 4: Control structures Chapter 5: Arrays Chapter 6: | Functions Chapter 7: Structs Chapter 8: Classes and Objects | Chapter 9: Methods Chapter 10: Inheritance and Polymorphism | | And 2 was algorithms (sorts, etc) | | Then the Java class was: Chapter 1: Types Chapter 2: Variables | Chapter 3: Operators/Math Chapter 4: Control structures Chapter | 5: Arrays Chapter 6: Functions Chapter 7: Structs Chapter 8: | Classes and Objects Chapter 9: Methods Chapter 10: Inheritance | and Polymorphism | | But not much about what you can do in Java specifically. | | I understand going over these concepts briefly and how to do them | specifically in that class, but to have the whole class focus on | them was not very useful. Again, 101 was a PREREQUISITE! So there | shouldn't be anyone in the class who hasn't taken it! | TaylorAlexander wrote: | I must share the very wonderful video by Seymour Papert on | teaching LOGO. He makes a similar observation: imagine if we | taught people dancing by sitting them at a desk and explaining | all the steps to them, making them memorize them and write them | down, but they were never allowed to actually move or try the | steps. We find when teaching people a language for example that | immersion works very well. So Papert suggests teaching math by | immersing students in "Math land", and shows off his computer | language LOGO designed to do that. It is a wonderful video in | many ways and a big inspiration for me as I think about hopefully | teaching in the future. | | https://www.youtube.com/watch?v=ZG9cYhekB8A | | Youtube link for easy viewing but the entire video series he | helped produce is here: | | https://el.media.mit.edu/logo-foundation/resources/onlogo/in... | a-dub wrote: | personally i've always thought the best way to teach is with | already working code. given a reference (the internet will do | these days), some well written working code with examples of all | constructs and idioms in it for a lesson, and possibly a sequence | of prompts to change what it does with increasing difficulty, | seems the best way. | | most importantly, it must do something that the learner at least | has some remote interest in and for best results the activity | should be creative and constructive. | JoeAltmaier wrote: | My approach is to employ folks with enthusiasm. If they're | teachable, they'll figure out whatever pile of tools they get | thrown into on the first task. Then they'll have some skills and | the next task will seem less daunting. | | Of course some mentoring is useful. But just the stuff that's | pertinent to the task at hand; concrete help that gets them | moving forward. Because, somebody is paying for results. And | because producing results has a very positive effect on | confidence. | | I just offered work yesterday to a young person helping me at a | big box store. I mentioned I was buying a device to test an | Android build, and they got excited and started making cogent | comments about the tool chain and devices available. I game them | my card, and when they graduate in 3 months (from a local | community college) I'll find them work on a client's contract. | | The first project will cost me more than I earn from | subcontracting them (because it takes me away from my high-rate | work I would otherwise be billing). Maybe break even by the 2nd. | But it's a sort of enlightenened-self-interest thing. If young | people get into the field, everybody benefits. | | And of course as an old guy with resources, I can afford to take | some risks. Because it's everybody's job to look out for the | other guy. | financetechbro wrote: | I wish there were more people out there like you. You sound | like a great mentor / boss | PaulDavisThe1st wrote: | I still don't any see initial introduction to the art of problem | decomposition. | | We want to do X ... what are the parts of X? How might we | accomplish them? For each of them, what are their parts? How do | we take a complex task and break into pieces that we know how to | do and then compose them back together to meet the goal? What | kinds of decomposition can we do? What kinds of decomposition | work well? | | Until you understand this high-level sense of what you're trying | to, type list container map iterate immutable functional lambda | coroutines are just noise. | 999900000999 wrote: | >Why is all this important and what problems does it solve? | | Couldn't of stated in better. | | My why was creating a few games with my friends. | | It's been a real gift to see it turn into a career. | | You can teach yourself to code for free with an old laptop ( | Ubuntu with Xfce works) , it's one of the last accessible | careers. | friendlydog wrote: | Teaching everyone the same way is wrong. Everyone has different | learning styles, education and life experience. | | If there is a large enough market share for a topic grouping like | learners together can be very efficient. | | Creating a one sized fits most solution is the default setting | for many educators and yields an "okay" result. | | Allowing learning at your own pace, with community support and | many styles of consumable content will give a excellent result | for self motivated individuals. | | Students who are not motivated or need help with motivation can | be handled differently. | | Edit: | | Learning styles has a broad meaning more than just the "I'm a | visual learner." | ratherbefuddled wrote: | I thought "learning styles" were largely debunked as a myth | now? | | The linked article describes the structure of a reference book, | identifies it as a structure suitable for a reference and those | with significant experience, and then decries it as a tutorial | for newbies. It seems rather obvious - I wouldn't try learning | a new language by reading a dictionary either. It doesn't | support the hyperbole in the title. There are many good | tutorials for learning to code in different programming | languages, sometimes it's hard to pick them out though. | | What works for me, and pretty much everybody I've watched try | to learn anything, is a simple loop. Conceptual explanations | (whether written, verbal, or visual), applying the concepts | with exercises / practice / work with examples to follow, | digging into the details using a reference, and then broadening | to the next set of concepts. Eventually the pattern recognition | kicks in and people can see the connections and predict the | rest. | jhjhvhvnv wrote: | "Everyone has different learning styles" is a common | misconception. | dragonwriter wrote: | > "Everyone has different learning styles" is a common | misconception | | The myth of different sensory orientations to learning is | definitely, well, a myth; it is probably _not_ justified to | go beyond that and say everyone learns best with the same | pacing and other details of approach. | bob1029 wrote: | I have always struggled with how to advise my friends & family on | this path of learning. It seems like _everyone_ wants to be a WFH | developer these days, but I don 't know how to enable them to | succeed on that path. "Go build something you want to build!" is | something I keep reiterating (as does this article). But most | don't seem to be interested in that for whatever reason | (presumably because its fucking hard). | | Maybe I should just leave it at that - I am getting to a point | where if someone doesn't have the willpower to go burn a whole | weekend on a pile of bullshit that won't even compile (i.e. | because they _really_ want to solve some problem), then maybe | they won 't have the necessary pain tolerance required to truly | master the skillset. | dj_mc_merlin wrote: | I have never met a programmer I respected skill-wise that | wouldn't randomly spend a weekend locked in a room solving an | esoteric problem they felt they had to solve (for no reason). | Over the Christmas holidays everyone at my company writes PoCs | or hobby projects, being glad to have some free time away from | paid programming in order to enjoy recreational programming. | | What I'm trying to get at is software engineering is an easy | career if you're literally obsessed with it, and most software | engineers are, or at least were at some point (it goes in | cycles). | | If you're not gonna do that, you simply can't assimilate the | huge amount of knowledge needed to truly excel in even one | facet of programming. | rjbwork wrote: | >or at least were at some point (it goes in cycles) | | Indeed. And the periods in which I can be obsessed seem to be | increasingly less common as I get older, but every now and | then I get bitten and just have to bang it out. | [deleted] | khendron wrote: | When non-tech folks ask me how to learn programming because | they want "jump on the money train", I ask them if they ever | take the initiative to solve a problem with programming. You | don't have to work in tech to do this. For example: | | Work in an office writing documents and making spreadsheets? | Have you ever simplified your job by writing a Word or Excel | Macro? | | Own a smart TV? Have you dug into its features until you know | them backwards and forwards and can program it to | (metaphorically) sing and dance on command? | | Have you connected multiple things in your house together so | you can control them from your phone, just because you could? | | These are all examples of taking the initiative AND having | the curiosity to dig into technical problems, and implement | solutions. If you are like this, you will likely do well in | tech and really enjoy it. If you DON'T have the tendency to | do these sorts of things, you are probably going to have a | bad time. | cloverich wrote: | You can show people the door, but they have to walk through it. | I learned programming, and a bunch of other stuff later in life | (now 39). They all have the same process - you decide you want | to do it, and you start doing it. You will absolutely fail hard | and regularly at it. You'll pick the wrong course or book or | language or whatever, but that's all part of the process. If | people see you doing the work and are able, they'll help you | out (ideally, not IME). | | In a way its kind of nice to get started with something new, | because you don't need a plan at first. You just start kind of | doing it, and then when you take breaks, you figure out the | plan. Its amazing how quickly you can pick things up once you | get into the habit of doing it very regularly. That initial | hump is always, ALWAYS a huge pain, but there's no escaping it. | Failing and flailing for that initial period is how you learn, | not how you fail. | 908B64B197 wrote: | > I have always struggled with how to advise my friends & | family on this path of learning. It seems like everyone wants | to be a WFH developer these days, but I don't know how to | enable them to succeed on that path. | | The best advice is to get a proper CS or Engineering degree | honnestly. | shagie wrote: | That pain tolerance bit... | | There's a blog post that I really like titled "Find The Hard | Work You're Willing To Do" - | http://www.cs.uni.edu/%7Ewallingf/blog/archives/monthly/2018... | (HN post w/ 76 comments | https://news.ycombinator.com/item?id=26209541 ) | | The article concludes with... | | > But I had enjoyed working on the hard projects I'd | encountered in my programing class back in high school. They | were challenges I wanted to overcome. I changed my major and | dove into college CS courses, which were full of hard problems | -- but hard problems that I wanted to solve. I didn't mind | being frustrated for an entire semester one year, working in | assembly language and JCL, because I wanted to solve the | puzzles. | | > Maybe this is what people mean when they tell us to "find our | passion", but that phrase seems pretty abstract to me. Maybe | instead we should encourage people to find the hard problems | they like to work on. Which problems do you want to keep | working on, even when they turn out to be harder than you | expected? Which kinds of frustration do you enjoy, or at least | are willing to endure while you figure things out? Answers to | these very practical questions might help you find a place | where you can build an interesting and rewarding life. | | > I realize that "Find your passion" makes for a more | compelling motivational poster than "What hard problems do you | enjoy working on?" (and even that's a lot better than "What | kind of pain are you willing to endure?"), but it might give | some people a more realistic way to approach finding their | life's work. | | --- | | A lot of people don't have the pain tolerance for the "this | isn't fun" part of software development that is necessary to | get past certain plateaus of skill. | rabuse wrote: | I've attempted to teach multiple family members/friends over | the years "how to code", and they give up almost immediately. | They "just don't get it", and I'd argue one needs to seriously | find enjoyment in building things, and knowing how long things | can take, to get started. | riversflow wrote: | I'm not trying to level this against your friends and family, | just an observation that I've been meaning to share, spurred | by "just don't get it": | | When I was in community college I had to take "Critical | Thinking" as a pre-req for Symbolic Logic. | | We spent the first 1/3 of the class, 8 weeks, analyzing truth | statements, basically and, or and not. I was bored to tears, | but attendance was mandatory, so I got to see how people | absolutely struggled with this, and "just didn't get it". The | average score on the mid-term covering that was a low D after | 8 weeks of (excruciating for me) examples. I finished in <15 | minutes and got 100%. | | When you are in a bubble of people who work in engineering | fields, especially in tech where logic is fundamental, I | think it's easy to think that logic comes naturally to | everybody, but it's far from ubiquitous and reading on here | it sometimes feels like some people just don't realize this, | especially those deep in tech. | andrewzah wrote: | That's like most hobbies/careers. | | People want to learn the guitar|piano|violin, until they | realize the amount of work it takes. | | People want to get fit and jacked, until they realize the | amount of work it takes. | | People want to be a lawyer/doctor/engineer, until they | realize the amount of work it takes. | | Or they realize that they just don't really like it. | | Programming isn't any different. One needs a particular | mindset, and a level of patience to deal with debugging. It's | not for everyone, and that's fine. | jholman wrote: | E'ybody wants to be a bodybuilder, but don't nobody want to | lift no heavy-ass weights. | | https://youtu.be/4UlgXIL0-3g?t=10 | closeparen wrote: | I know it's a pithy saying, but is it true? People tend | to report the actual lifting of the weights as pretty | pleasurable. It's the whole supporting lifestyle grind of | consistently making it to the gym, only and always eating | food whose ingredients you have weighed, etc. where you | lose most people. | andrewzah wrote: | It's a pithy saying. It's basically shorthand for: | "nobody wants to put in the work and adjust their | lifestyle to achieve that goal of being ripped". But I | wouldn't say doing 3x or 5x sets of lifting heavy weights | ever is "fun"- you just get used to it. | tmountain wrote: | Applies to learning foreign languages too. I've spoken to | many people that want to "learn Spanish" without having a | clue that it's a huge grind to get to basic competency. | cloverich wrote: | Only caveat is, and this is where I feel bad, if the person | hasn't learned something new in a very long time, they | forget what it feels like to change, or even become | convinced that they can't. It can be hard to convince | someone that no, you don't need to have aptitude or be any | good at it after a few days, weeks, even months. You just | need to keep doing it. As long as the goal is realistic, | you'll succeed. Whether you are more or less "talented" | than someone else affects the timeline (a little) but you | are going to the same place (again, realistic goals). | nomel wrote: | > one needs to seriously find enjoyment in building things | | I would say you have to also be happy with/enjoy confusion | and frustration. | [deleted] | ModernMech wrote: | > I've found that modeling or simulating something real like a | card game is very effective. | | I think the last paragraph of this article should have really | been blown up to be the entire article. I want to know more about | this experience the author had. | | Because one question I have is: should we even be teaching | object-oriented programming to beginners? The rationale for the | modified class schedule is that it answers the question "WHY!?", | but I still feel myself screaming that question after reading | this piece. | | Let me propose something entirely different: what if trying to | get everyone to learn Python is too much to ask? In fact, why | would we use such a niche programming language when there's one | out there used by far more people: Excel. Why are we reaching | toward the object-oriented model of program design, when the | people have spoken as to what works for them? Far and away, the | masses prefer the reactive, dataflow experience provided by | Excel, so let's meet them at their level. And SQL to the list. | There are people in my life who I wouldn't trust to turn change | the battery on my laptop, and yet they somehow know and | understand SQL for their job. They are completely mystified by | Python, yet can write a SQL query like no one's business. | | I think it's far past time "learning to code" meant "learning | Python/JS/C". Let's stop trying to force them to use a tool that | we developers are comfortable with, and teach them how to code | using tools they already know how to use. | macrowhat wrote: | kenjackson wrote: | I love the last chapter of "No one teaches the end so lets put | concurrency here" -- is so true. I feel like I've almost never | done the last chapter of any textbook I studied in school. And it | does seem like concurrency shows up in a lot of comp sci | textbooks at the very end. | [deleted] | yawnxyz wrote: | I don't really see how the proposed way of teaching how to code | is any better... I do like the idea of use-case based teaching. | | Have the student choose what kind of thing they're trying to | accomplish, then structure the class dynamically based on the | needs of their choices, or something like that | dboreham wrote: | Article seems to be complaining about the typical chapter layout | for a reference book on a given programming language. Such books | aren't intended to teach coding. The intended audience is those | who already understand how to code, in a different language. | cloogshicer wrote: | From my experience, many beginner books are structured in a | similar way. | systemvoltage wrote: | Basically, every YT tutorial is exactly like the Chapters | listed. Corey to Sentdex, or pick your favorite "How to code" | book from Amazon. It is quite rare to find a book that the | article describes (use-case based learning). Can you share a | few if you know? | wiseleo wrote: | The Head First series of books. They are available for | multiple programming languages and use the same set of use | cases across them all. The books are even written with | techniques to suggest to the brain it should remember this | information. | HPsquared wrote: | Coding is usually learnt, not taught. | teeceetime2 wrote: | An "Intro to Logic" (Pseudocode) class was required at my | university before you could move on to any of the actual | programming courses. It was a glorified linear programming course | - think BASIC or BATCH with a bunch of jumps and goto's. | qsort wrote: | This is unironically a good idea. The main stumbling block | isn't programming per se, it's breaking down a conceptual, | informal idea of what you have to do in a formal language. | | It matters very little whether it's linear programs, ASM | instructions, LISP forms or C++ classes. | systemvoltage wrote: | On the other hand, our University course started with half- | baked explanation of what "public static void main" means | (Java entry point) on the first day. It was horrible and no | one understand anything until a few classes later we go to | the meat of making/building stuff. | qsort wrote: | Yeah, I probably already commented on this some time ago, | but I think Java is really, really bad as a teaching | language. The language itself is just fine and much better | than most people give it credit for, _if you are a | professional developer_. As a teaching language is full of | cerimony and it forces upon you an object model that you | can 't fully understand until much later. It's too much "in | the weeds", if that makes sense. | __mharrison__ wrote: | (Disclosure: I do corporate training (Python and Data Science) | for a living.) | | I generally don't teach coding to newbies, so a lot of the coding | I teach is correcting poor mental models and teaching features | (somewhat) unique (or different) in Python. | | My best Pandas courses have been when the client opts to use | their data for the course (instead of my canned data). The | students are already subject matter experts with the data and | when they learn some of the tricks to slice and dice, summarize, | and visualize, they are off to the races. They dig right in. | | Teaching as the article suggests is very difficult because | examples that appeal to some or boring or confusing to others. | I'm not saying it won't work, but there are cons as well. When | I'm teaching with my "canned data", I try to mix in a few | different datasets from different areas so students can see that | the ideas are generally adaptable. | lawl wrote: | I always thought the best way to learn programming is to find a | program you want to create, and then figure out how to make | that happen. | | This is still how i learn (most effectively) today. If i want | to learn a new language or something, i write something that i | always wanted to write in it anyways. That way it doesn't get | boring. | | I think what you're describing might be similar in that canned- | data is not interesting. | chmod600 wrote: | But you need some concept of what kinds of problems are | solvable with a computer before you could really be inspired | to program one. | | And more than that, you need to have a concept of the | difficulty of a given problem for a beginner or expert. | Obviously a beginner will be wildly off, but probably needs | some concept of the level of difficulty. | | For example, lots of people have motivation to write a game. | But few have the level of obsession to follow through with | it. Maybe they should do a basic iPhone convenience app or | something first instead. | paulryanrogers wrote: | It's a matter of scope and expectations. Leave your epic | space opera in your dreams and take baby steps using easier | tools and concepts. Once you find some fun try product- | izing it. | erwincoumans wrote: | Yes, learning is much easier if you have motivation. How do | you motivate kids, if they rather play games rather than | coding (and they even ignore in-game scripted coding such ad | Minecraft or Roblox coding)? | wobbly_bush wrote: | > How do you motivate kids, if they rather play games | rather than coding (and they even ignore in-game scripted | coding such ad Minecraft or Roblox coding)? | | Do such kids need to start with regular programming | languages? Wouldn't visual languages be a simpler starting | point for them to get motivated? | xmprt wrote: | Try a game like Factorio or Satisfactory. Even just | Minecraft can be good enough to train their problem solving | and critical thinking skills. | | They don't need to start with redstone to learn to code. | They should play the game and naturally realize that | redstone is a way to solve their problem (like making an | automatic sliding 2x2 door) and then solve it. | | I feel like those skills will take you much further in life | because now you have an extra tool to solve problem no | matter what field you end up going into. And since | programming is so powerful, it's often one of the best | tools for the job so kids will naturally pick it up. | asleepawake wrote: | Having a good mental model of a language seems like one of the | fastest ways to be more productive in that language. Do you | have any recommended resources for developing a strong mental | model of python? For reference, Dan Abramov's course | JustJavascript [1] provides an amazing mental model of | JavaScript, and Josh Comeau's css for js developers [2] course | provides an amazing model for understanding css. I have 5+ | years programming in python but admittedly do not know much | about the internals so my mental model is pretty weak! | | [1]: https://justjavascript.com/ [2]: https://css-for-js.dev/ | hexane360 wrote: | One way I've found is to dig into C/C++ extensions to Python. | The Python C API reference is very helpful: | https://docs.python.org/3/c-api/index.html | | It can be quite fun to implement a simple data structure | (tree, queue, etc.). in C and bind it to Python. | | Otherwise, you can get a lot of dirty details by reading the | source to complicated/magical libraries (e.g. pickle). | touchngthevodka wrote: | Have you tried Fluent Python? It really helped to level up my | knowledge of the language. | raincom wrote: | Any teaching, training, has to hook with the experience of | students. Otherwise, it will lead to cramming, etc; that's what | we see in grade-driven teaching. You are doing a great service | by using the client data to solve "mini-problems" of your | students. | gumby wrote: | Structure and Interpretation of Computer Programs follows this | advice: designed for people who'd never used a computer before | (no kidding -- this was common in the early 80s), the first | lecture introduced the idea of procedures and abstraction and | went on to demonstrate root finding, prime factorization, and a | little symbol differentiation IIRC. A great way to get started. | lanecwagner wrote: | I agree there are so many issues with coding education, (full | disclosure, that's why I'm building Qvault.io) but I don't think | the big problems are the ones presented here. | | I see the following as the biggest unsolved problems: | | 1. Online learning rarely teaches you what you should be | learning. Resources are useless if you don't know which subject | matter is right for you yet. 2. Platforms don't give you a feel | for "completion", e g. when and how should I start job searching. | 3. You don't get personal mentorship or cohort support like you | would at school 4. Too many videos, not enough code. Almost all | learning when it comes to coding should include writing code. 5. | Healthy mix of guided and unguided learning. Courses are great | for abstract concepts, projects need to follow so that you can | apply what you learn on your own | mzehnder wrote: | +1 to use-case driven teaching (especially growing the same use | case to include more complex topics). I would have loved to learn | this way :) | enchiridion wrote: | IMO coding should be taught like a trade. Take woodworking for | example. Sure you spend some time learning to make straight cuts | etc, but you quickly move to building thing with a lot of | feedback. | dboreham wrote: | It isn't taught that way? | habeebtc wrote: | When I was in school (it's been a while), we built super | boring things that nobody cared about as our assignments. | Various inventory systems, which you have to sort/search. | | That was a big challenge of mine in school. I wasn't that | interested in the assignments, because I was building boring | stuff that didn't really solve problems, let alone ones I | cared about. | | I am pretty prolific in my career, and I'm not even what you | would call a hardcore dev. Which brings me to my next gripe | with CS curriculum: It is geared towards training hardcore | devs and not any other type of engineer. | | The types of coders we should have some sort of curriculum | for, which we to this day mostly do not: | | -SRE's -Ops people -Support people -PM's -Accountants/General | finance -DBA's -SysAdmins -Network engineers -Cloud engineers | qsort wrote: | I partially agree, but how isn't the usual CS curriculum | relevant for Sysadmins, DBAs, network engineers and the | like? | | What CS curriculum doesn't include networks, relational | theory, hardware architecture, os architecture? How can | anybody in those roles be successful without at least | informally understanding the rudiments of big-O notation or | without having some light scripting skills? | | Certainly CS curricula could be improved, but a good one | doesn't do too bad of a job at preparing you for technical | roles IMO. | habeebtc wrote: | My inclusion of them on the list is from just 2 data | points: | | Those sorts of classes were available when I was in | school, but it was not a whole track, it was 1 class | each. | | Second data point: These are the types of roles I meet in | the wild who would benefit from coding, and they usually | cannot (or can do some very light scripting). | | I cannot explain it exactly. They just usually are | missing that skill. | Jtsummers wrote: | In the US, the kind of programming most immediately useful | for sysadmins and DBAs, and other operations fields, are, | or were, typically present in community colleges and | technical colleges, not university programs (where CS | dominates, or "programming for engineers/statistics" basic | classes). At least that was the case 10+ years ago, have | they stopped teaching those classes and providing | certifications/associates degrees appropriate to those | fields? | lordnacho wrote: | IMHO it should start with some tools, so that changing the code | is not too cumbersome. How git works, how the IDE works, how some | basic OS commands work. Everyone starts with a different base but | often it's the people who messed around with a computer a lot who | know some shortcuts that to most coders are obvious. | | The less pain you have with changing the code, the more code you | can try. | travisd wrote: | I have opinions(tm), but mostly agree with this article. Most | intro coding classes and course materials read more like a | glossary than a lesson. This contributes (rather directly) to the | failure to retain a diverse student base in intro CS program. | We've gotten a lot better at recruiting CS students from | underrepresented groups (women and BIPOC chiefly), but numbers | drop off quickly[1]. | | Studies in math education have shown that the way material is | presented/courses are run has a huge impact on reducing | disparities[2]. This is especially important in CS especially | when boys are encouraged from a young age to do "techy" and | "geeky" things in ways that girls usually aren't. Students arrive | in intro CS courses, are sat next to students who have been | coding since they were 10, and are rightfully intimidated even | though they could succeed in the course. | | While I was at the University of Michigan, I helped a professor | develop "Joy of Coding," a mini-course for high school students | that focuses on sparking desire ("joy") rather than teaching CS | first principles[3]. By the end of the first lesson, students are | manipulating images with code - a real "WOW!" moment. It's built | on Pathbird, a platform that I built (in conjunction with UMich | faculty) to run more engaging and accessible courses in computer | science and computational subjects. (Shameless plug: if you're | interested in Pathbird, or even just to chat, drop me a line at | travis@pathbird.com). | | [1] https://cse-climate.engin.umich.edu/wp- | content/uploads/sites... (see page 8) [2] | https://www.colorado.edu/eer/sites/default/files/attached-fi... | [3] https://continuum.engin.umich.edu/programs/jumpstart-coding/ | skinkestek wrote: | > This is especially important in CS especially when boys are | encouraged from a young age to do "techy" and "geeky" things in | ways that girls usually aren't. | | Just be aware that this is not everyones experience. | | Many places boys are held back and girls are pushed forward. | | And then afterwards boys gets told they are somehow | "privileged" and would never be were they are if it wasn't for | "male privilege". | | Obviously this goes both ways, but there is at least some focus | on it when it hurts girls. | | If you try to mention the problems young innocent boys have, be | prepared to get laughed out. | | (I'm halfway expecting that even on HN too.) | JoeAltmaier wrote: | This seems entirely created out of thin air. | skinkestek wrote: | I think that was neither nice nor fair from you. | | This is experience. | | If you had a cushy life, good for you. But don't tell | others their experiences aren't real. | [deleted] | foxfluff wrote: | Meanwhile my sister's first programming course at university | involved making a game using an existing bespoke framework. It | mostly involved adding graphics and a few methods & some | properties to objects (which already had physics etc. | implemented) in an otherwise more or less done project base. I | don't know about retaining or intimidation but I feel like it | was way too much "just fill in the gaps, look you have a | character on the screen now" and that they really failed to | _teach the basics of programming_ and I got the vibe that | students finished the course not really having any clue how the | whole thing works at all. The next course was object oriented | programming at the deep end. | | I feel like she's still struggling with the basics and doesn't | have much self confidence at all. And she's not dumb. | stingraycharles wrote: | > Meanwhile my sister's first programming course at | university involved making a game using an existing bespoke | framework. | | I had exactly the same exercise on my first day on uni, we | had to take some robot maze pathfinder game and adjust the | algorithm a bit. | | As someone who had been writing code for over a decade at | that point (but who was unfamiliar with Java), I still | remember it was intimidating. | | I cannot imagine how it must have felt for people without | prior coding experience. | freebreakfast wrote: | Do you know of any comparative studies with other countries? Or | is this a predominately US/Canada issue? | | For example, do BIPOC students in Botswana drop out at similar | rates? Do non-BIPOC students in Taiwan experience similar drop | out rates? What are the classes and course materials like in | these countries in comparison to the US/Canada? | | What about drop out numbers from international students? For | example, do Polish women studying CS at American universities | drop out at the same rate as American women? For those who do | drop out, do they drop out for the same reasons? | | If we want to get to the root of the problem we need both more | breadth and more depth in our understanding. Too often we stop | at the men/women (in America) or BIPOC/non-BIPOC (in America) | divides, and then provide generalized solutions which have very | limit impact. | tonguez wrote: | Yes, I remember back in the day the girls would always try to | come into the computer lab to play video games. My friends and | I were always like, "GET OUT! WE HATE WOMEN!" Then they left. | The girls wanted to learn how to code so badly, but we wouldn't | let them. My friends and I were getting lots of sexual | attention from women, but we thought that was boring, and | preferred to spend our time alone on computers. The girls were | having sex, but they thought it was boring, and wanted to learn | to code instead, but my friends and I physically prevented them | from entering the computer lab, using our strong muscles. My | friends and I all had zero sex drive, and if we had any | attention from the opposite sex we would have rejected it and | continued to spend all our time on computers. | Der_Einzige wrote: | Is this GPT-3? It looks like it is. | imglorp wrote: | This comment covered several hot topics. | | 1. Girls in STEM: society needs to quit telling people "math is | hard, tee hee" and quit shopping in the Pink Aisle at the toy | store and reinforcing that culture. Buy your kids Lego and | Raspberry Pi circuit kits and see what happens. | | 2. CS is part coding, part science of algorithms, and part | software engineering. We have to quit intertwingling all terms | into the catchall "CS" bucket because sometimes "how to run | excel" gets thrown in there too. Maybe best to drop the term | altogether and use more descriptive names for each study. | travisd wrote: | RE: 2: I think I agree. There are lots of "CS" programs | targeted towards high-school students which I have mixed | feelings about. The goal shouldn't be to turn every student | that walks through the door into a SWE (there's somewhat of a | conflict of interest here considering most programs are | sponsored by big tech companies who are desperate for talent | - Microsoft does a lot in this space). Instead, I think it | should serve a few roles: expose students to new | opportunities (learn if you _do_ want to be a SWE); give | students the skills to understand that computers and | algorithms are not magic (important from a public awareness | perspective); and also to teach enough "deep" technical | skills to prepare them for a world dominated by software | (e.g., learning how to query databases, write small | automations, etc.). | | But I think most important is that intro courses need to | serve as jumping off points (i.e., they should be _INTRO_ | courses). Give students a taste and let them decide if they | like it and want to take another bite. | throw_m239339 wrote: | > 1. Girls in STEM: society needs to quit telling people | "math is hard, tee hee" and quit shopping in the Pink Aisle | at the toy store and reinforcing that culture. Buy your kids | Lego and Raspberry Pi circuit kits and see what happens. | | Girls in STEM =/= Girls becoming professional programmers. | | There are plenty of girls in STEM fields such as medicine, | biology, geology, physics, Math, civil engineering... | | The fact that not a lot of them want to be forced to sit | before a computer 10 hours a day for the rest of their lives | certainly isn't an issue if you asks me... | 908B64B197 wrote: | > Girls in STEM: society needs to quit telling people "math | is hard, tee hee" | | To me, the very existence of "Girls in STEM" groups is | sending a weird message to girls (and I'm apparently not | the only one to think that). Something along the lines of | "sure you can do STEM, you're just not good enough to do it | the regular way so we created a group just for you". | | Honestly that's the message a lot of diversity initiatives | end up sending. | ejb999 wrote: | couldn't agree more - have STEM groups and encourage | everyone that wants in, to join, but don't make them sit | in the 'special class' separate from everyone else. | another_story wrote: | True to some degree, but I think it does help girls get | involved in areas where boys are dominant. In high school | the comments from boys towards girls interested in such | pursuits can deter them. Having a space free of that, at | least until they've developed the motivation to continue, | is important. | | As a high school CS teacher, I've seen how boys can be | towards girls interested in coding. | | All of this swings both ways, of course, and men are | deterred from positions like elementary school teacher, | nursing, and secretary roles. Gender being attached to | jobs is just dumb in general, and keeps a lot of capable | people from doing what they'd love. | andrewzah wrote: | Sitting at a computer for 10 hours a day isn't a gendered | thing. | | There is nothing about computer science or programming that | is gender specific. It, ideally, should sit around 50-50, | +-5%. So yes, it is a problem that it so heavily skews | male. | | As to why, it's multi-faceted cultural issue, with how our | society treats boys and girls starting from birth. In other | words, a pipeline issue. | throw_m239339 wrote: | I never said or implied that programming was sexed, I | told the parent that just because they are fewer female | developers doesn't mean the sex imbalance is the same or | even skewed heavily toward males in every STEM | discipline. | hackinthebochs wrote: | It is not clear that interest in extended computer use | isn't gendered. For example: https://www.ncbi.nlm.nih.gov | /labs/pmc/articles/PMC3166361/ | 908B64B197 wrote: | > We've gotten a lot better at recruiting CS students from | underrepresented groups (women and BIPOC chiefly), but numbers | drop off quickly | | Are you really better at it if you can't retain them in the | long run? The stats you shared are interesting, but to me it | seems to highlight that students are getting "weeded out" at | the beginning of the course. I would be curious to attempt a | correlation with High school GPA and SAT scores. Because, if | lower performing students leave, regardless of gender or race, | that's to be expected. But if overachieving students of color | leave and their (white or asian) peers with lower grades don't, | now that's an interesting issue. | | > Students arrive in intro CS courses, are sat next to students | who have been coding since they were 10, and are rightfully | intimidated even though they could succeed in the course. | | I would argue the solution here is to have different "levels" | of intro courses. Because the converse is also true; students | that are coming in with a decade of coding and who already had | an introduction to programming might assume they will be able | to "coast out" courses and then suddenly realize they are | falling behind their peers. And then drop out. | khaledh wrote: | Exactly this! To quote myself from a couple of years ago: | | I wish the style of teaching complex programming topics walked me | through the pain of making something work, exploring a few | alternative solutions, showing the tradeoffs, and then after the | pain has been experienced by the learner, a proper solution is | finally introduced and recommended. IMO it's a much more powerful | technique for teaching if you walk the learner through the pains | first, then arrive at a solution, and tell them that "you've just | [discovered how ownership works in rust]"; i.e. the concept is | given a name at the _very end_, not defined at the beginning as a | solution to a pain the learner never experienced. Unfortunately | very few books/tutorials take this approach. | Gigachad wrote: | I feel like the average person already knows why. They know what | they want and they just want the info on how to do it. | | I don't think the order of teaching presented in the article as | bad actually is bad. What I think the problem I and others had is | learning from a book to start with is really hard. Stuff doesn't | get retained well or make sense. | | Programming finally clicked for me when I did the codeacademy | class for JavaScript in 2012. What helped was it wasn't just | shoving walls or text at me. It was "here is a very tiny concept, | go try it. Now here is another tiny concept, try this" | nathias wrote: | 'Typically' better known as the straw man. Teaching to code was | broken in the 90s, today it is the least broken of anything you | can possibly learn. | optymizer wrote: | I'm a huge fan of Nature of Code and I agree that it's a | wonderful book, but I don't think it's a book for people who are | beginners (i.e. they're learning how to code). Daniel Shiffman | has a ton of resources which are better suited for people who | want to learn how to code - Learning Processing, the Coding Train | channel, etc. | | Motivation is the primary hurdle when teaching folks how to code. | Having a goal to accomplish keeps them motivated, especially if | there's feedback early - games, robots are good starting points. | wodenokoto wrote: | From the Nature Of Code, chapter 1: | | > If you've read any of the introductory Processing textbooks | or taken a class on programming with Processing (and hopefully | you've done one of these things to help prepare you for this | book) | | Yeah, that doesn't sound like a beginner book at all. | japhyr wrote: | I've been thinking about this topic for a long time. I was a | secondary math and science teacher for 25 years, and I taught | intro programming classes whenever I could. Later I wrote Python | Crash Course, which was largely informed by my experiences | working with students - my direct classroom teaching, and my | attempts to find resources for students who were capable of | independent learning. I've looked critically at many learning | resources over the years. | | I certainly agree with the author's main point. Giving people a | series of dry lectures or chapters that focus on syntax, without | any intentional narrative about what it all means or why we | should learn it is not particularly effective. | | I'll make a brief comparison to the math materials I've reviewed | for secondary education. There are many curriculum resources that | are really well structured mathematically - all the math is | correct, and each new topic builds on previous topics coherently, | and leads somewhere specific in the end. But most of these kinds | of resources are fairly dry to students who are not intrinsically | motivated to learn math. Then there are many resources that | present things in a fun or interesting way, but lack a coherent | structure to the math that's presented. These are better at | catching students' interest, but they still don't bring students | to a place where they understand math well enough to use it | effectively in their own lives. There are few curriculum | resources that truly do a good job of hitting both of these goals | - well structured mathematically, and with compelling topics. | It's difficult because the people creating the resources need a | really strong pedagogical background and a really strong | mathematical background. People often tend to focus on one or the | other of these areas. | | I see the same issue in how learning resources are developed for | programming. There are probably thousands of books that have a | table of contents similar to what the author presents here, | without a coherent narrative to motivate people through all those | topics. Many of these books are technically sound, but they don't | carry people through all the topics because there's too little | tying all the topics together. Then there are a whole bunch of | resources that use a specific compelling topic to grab people's | attention; the author uses the example of card games. There are a | couple limitations here: if you pick an interesting context, you | only appeal to the people who like that subject. Also, you then | have to stretch the context to cover concepts that aren't | specifically needed for that context. That is, building a card | game project brings up many topics and ties them together. But | what do you do with important topics that weren't needed? Do you | leave them out? Do you present them separately? Do you force them | into the context? | | One of my big frustrations with learning resources, especially | k-12, is that they do a great job of grabbing kids' attention. | We've kind of solved that problem - young people are plenty | interested in learning to code. But to really gain the ability to | build out your own ideas, you need to work through the list of | topics that the author of this article presents. | | What's the conclusion? There's no one way to teach people to | code. We need a variety of resources that address all of these | issues in ways that meet the needs of a variety of learners. | People who are designing these resources, whether they're | developing a book, video course, online tutorial, etc, need to | think through these issues and have a clear and intentional | approach to how their resource is structured. | codazoda wrote: | I created a series of small books that teaches code by making | art. I give them a chunk of code to type and then I break it down | after that. This is how I learned long ago. | | People tend to learn slowly as they work, understanding more and | more as they go. Often, they can make minor changes after their | first project. Change the color? Make it larger? | | Splash of Code: Learn Programming by Making Computer Art | https://www.amazon.com/dp/B082FMPXW6 | nickstinemates wrote: | I like trade schools like Holberton School | maerF0x0 wrote: | Interestingly related to the author's point of teaching using | cards. | | When I used to give coding interviews one of my favorite tasks | was to implement the scoring rules of poker[1]. People would | often ask "why ask them about poker?" and I'd show them that | there is a ton of skill coverage | | 1. Decomposition of requirements into sub problems | | 2. pattern matching for code reuse and composition | | 3. seeing if they can come up with a decent algorithm to | communicate to and from sub functions the results | | 4. seeing if they can come up with an ordering mechanism for | cards | | 5. seeing if they can come up with a for loop that counts if | there are 5 of something | | 6. String parsing to their own intermediate representation of | cards | | All these skills are used basically daily (at least in my | workplace) | | [1]: a good description of the rules, sample IOs, and myself as | an oracle (ask me anything, no expectation of knowing poker | itself) served to help keep "poker" from being the subject matter | tested | shagie wrote: | The scoring poker is indeed an interesting problem - and its | Project Euler #54 ( https://projecteuler.net/problem=54 ) | | Starting from high card on gets to some interesting | increasingly complex "can I identify it rules" | ramses0 wrote: | If you truly believe that "poker" isn't the subject matter | being tested, run the same interview question (this weekend) | with a friend, blind, on scoring hands of cribbage. I'll wait. | https://bicyclecards.com/how-to-play/cribbage/ | Cupertino95014 wrote: | "<x> is broken" -- clickbait title. His approach is fine, I like | it. Let him offer it to paying customers, and see how _they_ like | it. | | There are many different approaches to teaching out in the world, | some free and some not. There are code boot camps, which survive | only if they work -- since they only last 12-20 weeks, bad | feedback would sink them pretty fast (unlike 4-year colleges, | where the worthlessness of your degree doesn't become apparent | until years later). | empressplay wrote: | When I was in junior high school in the 90s in my computer | science class we learned Pascal by programming our own Light | Cycles clone. Everything we learned was in service of making our | game work. And we each came up with different solutions to | accomplish the same things, and learned from each other. | | This article seems to imply this isn't how things are done now, | but surely they still are by most? | spankalee wrote: | Similar for me. Even though I had already been programming on | my own, my first school-led programming classes were with done | with Logo, then Apple Basic, then Pascal, always used to build | specific and simple programs. I never had an intro class start | with types. | shadowgovt wrote: | I once got to be a fly on the wall (well, a member in the | audience) to a graduate project presentation where a team had put | together a simple game development environment to get young | people excited about programming (Alice, which is still around: | https://www.alice.org/). They were presenting their (relatively | positive) results on how much engagement they'd seen getting | students involved using Alice as opposed to available | alternatives for learning beginner programming. | | One of the professors in the School of Computer Science raised | the question of why Java was chosen as the backing language for | the whole project, since it's not a very strongly-typed language | and for pedagogy, there are much better languages with more | rigorous type safety. | | The student presenting began to get a bit flustered when she | answered (I believe her answer was something along the lines of | familiarity of potential mentors and teachers with the language) | and the professor seemed to reject her answer out of hand. | Finally, her advisor stepped in and just dead-panned across the | room "Because elementary-school students are excited about seeing | cool things on screen, not about computing the Ackermann | function." General murmurs of laughter all around. | | I think those two professors had an ongoing debate behind the | scenes that the unfortunate student had just gotten caught in the | middle of. | | (Fiction short story related to this topic: | http://thecodelesscode.com/applicant/2) | dfdz wrote: | > Why? Because none of these chapters answer the most important | question a reader has, the entire time, WHY!? Why is all this | important and what problems does it solve? When should I use this | thing that I learned? | | When I was an undergrad taking an advanced class about | probability theory, I asked my professor for help understanding | the bigger picture. I could solve each of the problem sets, but I | couldn't see the bigger the picture. Why the hell are we doing | this? The professor told me something like "Oh don't worry, | somethings are just impossible to fully understand the first | time. Once you take a second and third class that uses these | ideas the bigger picture will come together" | | I have found this mindset to be incredibly true. Rather than | philosophizing about the optimal way to learn to code (or | anything) just: | | 1. read/take a class about the subject | | 2. use the ideas you learned | | 3. goto 1 | | While it seems efficient, I think it can be a very natural way to | learn and avoid all catch-22 situations | akihitosan wrote: | I think it is better to learn concept for those who has a hacker | mindset. Going through examples is for super users at most, imho. | godot wrote: | IMO this was why the early web was so powerful as a way to on- | ramp new developers. I learned coding a little bit before the | web, from school materials like writing Pascal programs in DOS, | in early 90s. Those were fun little exercises for school, but | that was about it. In the late 90s I got the internet and got | curious about making web pages, did View Source everywhere and | taught myself HTML and basic CSS/JS (nothing more advanced than | alert boxes and such at the time) while in high school, and it | was what really got me to start my career in software | engineering. | | Building a web site gives you all the "why"s. It gave you a | motivation to learn different aspects of coding. Whether it's the | presentation layer in HTML, or application logic in PHP and | Javascript. Conditions, loops, arrays and even data structures | all make sense when you have all the context of the thing you're | trying to build. | systemvoltage wrote: | Yeah, I built a bunch of things in Macromedia Flash | (Actionscript 4.0). It was when I realized that I can tie the | animation with code. Hell, I didn't even know that it is code. | It is just some structured text to automate thigns. Mind blown. | | I also like: https://handmadehero.org/ series but it was too | much of a time sink. | paradaux wrote: | (Disclaimer: I work as an online Tutor for an Irish EduTech | company which teaches children ages 8-18 to code via after-school | and weekend classes.) | | This article has the right idea. Our style of teaching varies on | the kids age. Younger kids (8-11) are treated much like school | children, the teacher presents a topic, kids are given activities | to do which they screenshare, then we work through them as a | class. This is done in Scratch, mostly. | | As the kids get older we take a more hands-off approach, we have | tonnes of exercises which take kids through Java via Processing. | Learning variables by moving shapes, if statements by adding | constraints to those moving shapes, collision detection by moving | the mouse around and watching shapes change color as they | collide, in the hopes to build their confidence to start building | their own games. | | This is a highly adaptable form of teaching, although it's only | really possible and practical as we have such small class sizes, | allowing tutors like me to be able to spend ample time with teach | student when issues arise. | | Younger students often have the enthusiasm, but they don't know | where to guide it, this lends itself well to a lecture then | activity format where there's at most a 7-8 minute period of | "lecture" followed by an equal amount of activity time. | | The older kids often don't need the "lecture" part at all, rather | we set them more and more challenging exercises and explain | things individually as issues crop up, it allows them to use | their own problem solving and initiative and we have seen some | excellent programmers come through because of this (some of whom | have began working with us as Tutors after they turned 18!) | 0xbadcafebee wrote: | Yes! I find all of academia to have the same broken teaching | method. Connect what you're teaching me to something tangible | that I can relate to! | _hao wrote: | I think people are missing the main point here. It's not about | problem solving. | | From my experience people that are good programmers are people | that like to tinker with things. The logical part of programming | can be learned by any intelligent person reasonably fast. It's | not about variables, statements, expressions, ifs, loops etc. | It's about having a conversation with the machine and trying | things out. The tools, languages, frameworks are just extensions | of this. | | Computers and the way they work are fundamentally alien to our | human way of thinking about things. You need patience and | dedication. One approach might work for person A, but not for | person B. At the end with time just like everything else in life | you forge a meaningful "relationship" where you understand each | other and can work together with the machine. ___________________________________________________________________ (page generated 2022-01-14 23:00 UTC)