# Teaching students to code

**URL:** <https://discourse.julialang.org/t/teaching-students-to-code/49927>\
**Category:** Offtopic\
**Created:** [November 10, 2020, 5:44pm UTC](https://discourse.julialang.org/t/teaching-students-to-code/49927 "2020-11-10T17:44:02Z")\
**Posts on this page:** 7\
**Page:** 2

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [November 13, 2020, 8:17am UTC](https://discourse.julialang.org/t/teaching-students-to-code/49927/21 "2020-11-13T08:17:02Z")

</div>

> [@tim.holy](#):
>
> Since most of us here in the Julia community like & value coding, it’s easy to imagine it should be required, but with so many worthwhile skills one should proceed cautiously before elevating any particular one to the status of “required.”

I assume that many (most?) people in this community are self-taught when it comes to programming (cf [this topic](https://discourse.julialang.org/t/how-did-you-get-interested-in-programming/46943/)). We

1. _wanted_ to learn to code, usually badly enough to overcome various obstacles (hardware and learning material was much harder to access in the 1980–1990s and even later, compared to today),
2. ended up _liking_ it (otherwise we would not be using Julia, or any programming language),
3. acquired a lot of relevant _additional skills_ during the process (learning something on your own is always educational, even counting the rabbit holes and the difficulties you encounter).

Reflecting on this, I realized that I do not really have a good mental model for why someone would _not_ want to code if they are otherwise interested in STEM, and if they want to, what prevents them from doing so. It is easier than ever if you have access to a computer and the internet.

The exception may be children from disadvantaged socio-economic backgrounds who may not be aware of the possibility. I think that the best approach is to address that, with programs like

> **[Bootstrap](https://www.bootstrapworld.org/)**
>
> Teaching Algebra through Computer Science

---

<div class="post-metadata">

**Author:** ![tim.holy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tim.holy/32/52_2.png) [@tim.holy](https://discourse.julialang.org/u/tim.holy)\
**Post date:** [November 13, 2020, 8:40am UTC](https://discourse.julialang.org/t/teaching-students-to-code/49927/22 "2020-11-13T08:40:52Z")

</div>

You raise a really good point, and I agree with a lot of it, but I think awareness of the possibility and/or lack thereof extends far beyond socioeconomically disadvantaged kids. At least in my own case (you may be different), I received huge but implicit benefit from being raised in a family that was highly educated and who conveyed a “can-do” sense about learning; if I asked enough questions my parents didn’t know the answer to, I could pretty much predict that a trip to the library would be on the agenda soon. Enough experiences of being turned loose in the stacks and told “here’s how you figure things like this out, now go do it” and the message sticks and starts generalizing to other things. We were not financially rich, but I have no doubt that when it comes to inheriting an adventurous intellectual spirit I was lucky to be born with a [silver spoon in my mouth](https://en.wikipedia.org/wiki/Silver_spoon). Professors tend to breed professors, and genetics & raw talent explains only a small part of that.

For that reason, my sense is that things like realizing that it’s even possible to self-teach programming—independent of that person’s potential for doing it successfully—may be distributed very unequally across the population.

---

<div class="post-metadata">

**Author:** ![Tomas\_Pevny](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tomas_pevny/32/25466_2.png) [@Tomas\_Pevny](https://discourse.julialang.org/u/Tomas_Pevny)\
**Post date:** [November 13, 2020, 8:51am UTC](https://discourse.julialang.org/t/teaching-students-to-code/49927/23 "2020-11-13T08:51:52Z")

</div>

That a nice summary. I have say that me experiences are similar to those of Tamas.

---

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [November 14, 2020, 10:25am UTC](https://discourse.julialang.org/t/teaching-students-to-code/49927/24 "2020-11-14T10:25:30Z")

</div>

> [@Tamas\_Papp](#):
>
> Reflecting on this, I realized that I do not really have a good mental model for why someone would _not_ want to code if they are otherwise interested in STEM, and if they want to, what prevents them from doing so

I work at an applied research institution and we have a lot of students, mostly studying chemical, biological, medical, environmental engineering, with an occasional chemist, physicist or mechanical engineer. At least some of them are indeed interested in STE (but likely not M). Mostly they had some kind of CS in their curricula.

They do experimental work, they do some processing of data using Excel, Origin, sometimes ImageJ and other tools. Some tasks could be probably made less time consuming by investing (probably more) time into writing scripts. I would - just because it’s more fun than doilng repetitive tasks. They mostly wouldn’t.

In many cases the systems under research/development are so complicated that no reasonable modelling is possible. Where it is possible, it would make rather sense to use a serious commercial package like COMSOL than to start from scratch.

It appears to me that nowadays in many STE fields one doesn’t really need any serious coding (and mathematical) skills - you got powerful tools ready to use, you don’t have to build them yourself.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [November 14, 2020, 10:48am UTC](https://discourse.julialang.org/t/teaching-students-to-code/49927/25 "2020-11-14T10:48:04Z")

</div>

> [@Eben60](#):
>
> It appears to me that nowadays in many STE fields one doesn’t really need any serious coding (and mathematical) skills - you got powerful tools ready to use, you don’t have to build them yourself.

Maybe it is only implicit in the context (see the opening post of the topic), but I was talking about _primary- or secondary-school students_. I think that at that age, interest is not that narrowly focused and learning a bit about various things, even if they are not directly practical or applicable, is more important than being productive (as in a day job).

---

<div class="post-metadata">

**Author:** ![sgjanssens](https://avatars.discourse-cdn.com/v4/letter/s/9f8e36/32.png) [@sgjanssens](https://discourse.julialang.org/u/sgjanssens)\
**Post date:** [November 14, 2020, 11:19am UTC](https://discourse.julialang.org/t/teaching-students-to-code/49927/26 "2020-11-14T11:19:01Z")

</div>

> [@anon60034542](#):
>
> Is the whole teaching high school students CS overblown?

Yes, at least where I currently live (Western Europe).

> [@anon60034542](#):
>
> Do you consider it a necessary course for the future?

No, at least not in high schools.

I wish the high school students would learn (again) to read and write comprehensively, understand basic mathematics and structure, and learn to appreciate literature and the natural and cultural world that surrounds them. Also, I wish for them to get their heads out of their screens and get some fresh air from time to time.

---

<div class="post-metadata">

**Author:** ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)\
**Post date:** [November 14, 2020, 11:37am UTC](https://discourse.julialang.org/t/teaching-students-to-code/49927/27 "2020-11-14T11:37:21Z")

</div>

> [@Tamas\_Papp](#):
>
> I think that at that age, interest is not that narrowly focused and learning a bit about various things, even if they are not directly practical or applicable, is more important than being productive (as in a day job).

You spoke about **self-motivation** to learn coding. If a kid is interested in technics and build robots - surely that’s a motivation to learn coding. If he is interested in explosions - that’s motivation to learn chemistry, but not coding. Similarly an interest in pets may lead to learning about genetics and DNA, but not coding. That is not qualitatively different from university students.

As for what is important: Any learning, any skill is useful in some broad sense, even if afterwards never applied directly in the real life, be it musical theory, ancient Greek or Euclidian geometry.

P.S. “He” instead of “(s)he”, “them” etc. is intended.

[Previous page](https://discourse.julialang.org/t/teaching-students-to-code/49927.md?page=1)
