Live data from Hacker News

Teaching how to code is broken

neil.computer

81–90 of 258 posts

Re: Teaching how to code is broken

#81
post #23

Earlier quoted context omitted.

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.

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,…

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.

Re: Teaching how to code is broken

#82
post #17

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…

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.

Re: Teaching how to code is broken

#83
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)

Re: Teaching how to code is broken

#85
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.

Re: Teaching how to code is broken

#86
post #78

Earlier quoted context omitted.

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,…

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

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.

Re: Teaching how to code is broken

#87
(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!)

Re: Teaching how to code is broken

#88
post #36

(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…

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.

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.

Re: Teaching how to code is broken

#89

Earlier quoted context omitted.

> 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…

> 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…

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.

Re: Teaching how to code is broken

#90

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 w…

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"

Post reply on HN