Handmade Network»Fishbowls»How software development is taught

How software development is taught

The Handmade Network exists because we are unhappy with the software status quo. To a large extent, this is because of how software development is taught. What are the good parts of software education today, what are the flaws, and how might we change things to improve the state of software?

This is a fishbowl: a panel conversation held on the Handmade Network Discord where a select few participants discuss a topic with depth and nuance. We host them every two months, so if you want to catch the next one, join the Discord!
Avatar
Rudy Jun 17, 2021 10:00 AM
๐Ÿ‘‹ Hello, and welcome to Fishbowl Day 8! ๐ŸŸ ๐Ÿฅฃ 8๏ธโƒฃ Topic: How software development is taught โ— Idea Source / Discussion Context: https://github.com/AsafGartner/hmn_fishbowl/discussions/35 ๐ŸŽง Relevant additional context: https://handmade.network/podcast/ep/eeac46c9-5e90-4b1c-9104-cff49734764d (edited)
Avatar
Rudy Jun 17, 2021 10:01 AM
๐Ÿ‘‰ Please read over the discussion context if you haven't already. It is recommended that you also listened to the podcast as some of this was explored a bit by @demetrispanos and @ryanfleury , though if you haven't that's alright too. A few goals I have for this fishbowl are: 1. Discuss how formal software development education is flawed. From the podcast, we learned how societal and economic pressures have influenced universities to become this way, let's break down exactly what they're doing wrong and what they could do differently if these factors weren't a concern. For example, if professors were completely and entirely motivated on producing the best programmers they possibly could. Let's also discuss what they're doing right. 2. Let's extend this example to other formal learning environments: Books, Online Courses, Videos, etc. What goes wrong there? What goes right? 3. Perhaps most important, and what I would like to spend the most time focusing on, are solutions. What would be a better way to train someone in software development? How does it start, what does the journeyman path look like, what about advanced learning? Be specific. Participants: @Rudy [moderating] @raysan5 @demetrispanos @greensleevless @ratchetfreak @CianMc @bumbread
pogchamp 6
fishbowl 3
BestPractice 4
10:02
@bvisness is adding roles now (thank you ๐Ÿ™‚ )
Avatar
bvisness Jun 17, 2021 10:02 AM
You can read adjacent conversation from #fishbowl-audience, the peanut gallery, here: https://discord.com/channels/239737791225790464/708458209131757598/855128040811003966 (edited)
๐Ÿ‡น 2
๐Ÿ‡พ 2
Avatar
Rudy Jun 17, 2021 10:06 AM
Feel free to kick it off with anything relevant to the discussion, or directly addressing the first question via your experience. I am especially excited to hear your perspective, @raysan5 as if I'm not mistaken, raylib was born out of the lack of a better way to teach students proper programming concepts in an interesting and fun way
Avatar
raysan5 Jun 17, 2021 10:07 AM
Maybe we could introduce ourselves and how we are connected with the topic?
Avatar
Rudy Jun 17, 2021 10:07 AM
Sure, that would be great!
Avatar
raysan5 Jun 17, 2021 10:12 AM
I'm an Electronic Engineer and I've never had formal Computer Science education (despite I've studied several related subjects in the University). For the last 10 years I've been working in Videogames Development education, at different levels, teaching undergraduate courses and also as University lecturer. Most of the subjects I've taught have been related to Programming and Projects development. I've also been a point-of-contact for companies looking for interns.
Avatar
CianMc Jun 17, 2021 10:13 AM
Hi guys, I'm Cian, I am a recently graduated Computer Science student. Entering into university after leaving school, it became clear pretty quickly that the course didn't quite line up with what I thought it would be, sometimes for the better and sometimes not. While I do think Computer Science departments do a lot right, they also get a lot wrong, regarding things like how they advertise the course(as mentioned on the podcast by @demetrispanos ), how programming is taught(or isn't lol), how external popular employment trends and buzzwords heavily influence the types of modules included, leading to fairly narrow bands of potential specialisation for students and finally how professors, being more researched oriented, can be out of touch with the practicalities of modern development
Avatar
greensleevless Jun 17, 2021 10:14 AM
Hi folks! I'm Peter - I've been working as a game designer at a design consultancy (happy to shed some light on the consultancy discussion from the podcast - IDEO is a bit different, but same ballpark), and I spent a good portion of the last 5 years working on using games to get kids excited/intro'd to engineering. I've also taught game development to high schoolers. And fun note: my formal education is a BFA in Illustration - never formally studied anything engineering related
Avatar
ratchetfreak Jun 17, 2021 10:16 AM
I work at an engineering bureau where I design and simulate trafficlight programs. For which I created and maintain several tools to streamline the entire process into something manageable.
Avatar
bumbread Jun 17, 2021 10:17 AM
HI, i'm bumbread (haha), currently I am a 1st year CS student. Also I do like teaching programming and maths and I could become a school teacher potentially. I'm also doing a project related to education, particularly one with notes about osdev. Even though those are notes, i'm trying to format them in a way that is close to a resource that could actually teach someone who doesn't have understanding
Avatar
demetrispanos Jun 17, 2021 10:19 AM
I have an academic background in computational mathematics including a PhD, and several years experience as an academic myself before settling full time on my own professional ventures in Machine Learning and AI, where I do the relatively rare work of linking up new mathematical approaches with (IMO) high quality software design. I have taught at university and graduate school level, and done volunteer events for high school and middle school students.
Avatar
Rudy Jun 17, 2021 10:21 AM
Hey folks Iโ€™m Rudy ๐Ÿ‘‹ - I proposed the topic and will be moderating the discussion. I work as a jack-of-all trades on our systems team at Automattic - we are the group responsible for the availability, performance, reliability, and security of all Automatticโ€™s services. Iโ€™m currently focused primarily on Tumblr.com (yes that one ๐Ÿ™‚ ) I spent a long time in the Military where some of that time was served as an NEC 9502 (Instructor), I spend some time making educational videos on youtube and I earned a Bachelors and Masters Degree. My wife is also a professor at the University of Texas at San Antonio and through her, I understand many of the topics related to higher education are not necessarily specific to computer science.
Avatar
ratchetfreak Jun 17, 2021 10:06 AM
the podcast made the case that programming should be taught in a tradeschool instead of a uni
Avatar
Avatar
ratchetfreak
the podcast made the case that programming should be taught in a tradeschool instead of a uni
demetrispanos Jun 17, 2021 10:07 AM
I might expand this to something like a "specialist school" since "trade school" has connotations (at least in the US) that maybe aren't helpful
10:08
music school, art school, design school, architecture school, these are generally seen as equally prestigious as universities
10:08
but trade school (for reasons that are out of scope here) is not
Avatar
ratchetfreak Jun 17, 2021 10:08 AM
I kinda wanted to lean into some of those connotations though
Avatar
Avatar
demetrispanos
music school, art school, design school, architecture school, these are generally seen as equally prestigious as universities
ratchetfreak Jun 17, 2021 10:08 AM
but could all be called trade schools
Avatar
Avatar
ratchetfreak
but could all be called trade schools
demetrispanos Jun 17, 2021 10:09 AM
in a platonic sense certainly, you could throw in law and medical school too
Avatar
bumbread Jun 17, 2021 10:12 AM
Thinking about it there are programming schools, which ~ in a sense ~ are like the music schools. The similarity is that they aren't part of the education system, and when you enroll you gotta pay
Avatar
greensleevless Jun 17, 2021 10:22 AM
I thought the podcast discussion about universities existing across this gap of "centers of aggregated knowledge" <-> "human capital factories" was really interesting. How do you see specialist schools differing / why would they avoid the pitfalls of existing higher ed?
Avatar
ratchetfreak Jun 17, 2021 10:23 AM
my biggest peeve with the programming education that I was given at uni is that many concepts that I consider important were never mentioned. For example the main event loop and how gui frameworks can deal with them, and how to interact with them through those abstractions (rule number one: never block). I had to figure that out on my own.
Avatar
Avatar
greensleevless
Nice! Jumping back up to the conversation that started ^pre intros^ - I thought the podcast discussion about universities existing across this gap of "centers of aggregated knowledge" <-> "human capital factories" was really interesting. How do you see specialist schools differing / why would they avoid the pitfalls of existing higher ed?
demetrispanos Jun 17, 2021 10:24 AM
the "HCF" view is explicitly the view taken by music schools, architecture schools, and so on
10:24
they exist to create good musicians and architects
10:24
separately there are music and architecture researchers in universities, and those people do things like study history and so on (there is of course overlap, and many universities have embedded music or architecture schools to facilitate this)
Avatar
CianMc Jun 17, 2021 10:27 AM
With trade schools, does anyone think that there could be an issue with attracting the necessary teaching talent. I agree with the concept but with such a competitive job market would it not be difficult to attract the required teaching talent?
Avatar
ratchetfreak Jun 17, 2021 10:28 AM
there are game dev schools already, though I'm unsure as to how effective they are
Avatar
ratchetfreak Jun 17, 2021 10:28 AM
broadening those out to general programming would be a natural step to take
Avatar
greensleevless Jun 17, 2021 10:28 AM
Calling back to the podcast again - seems like it could potentially fill a gap in the market - those people who are closer to generalists that couldn't find teaching gigs at universities, but who still want to teach?
Avatar
greensleevless Jun 17, 2021 10:29 AM
But the matter of recognition of those institutions matters (both in a "I taught there" and as a "I learned there, give me a job" sense)
Avatar
demetrispanos Jun 17, 2021 10:29 AM
@CianMc makes a good point that specifically for programming, there is a huge cost problem in getting good people
Avatar
Rudy Jun 17, 2021 10:29 AM
@demetrispanos @CianMc one thing to consider is the market has already tried to address this in the form of "boot camps"
Avatar
Avatar
CianMc
With trade schools, does anyone think that there could be an issue with attracting the necessary teaching talent. I agree with the concept but with such a competitive job market would it not be difficult to attract the required teaching talent?
raysan5 Jun 17, 2021 10:29 AM
On my experience, trade schools are more open to professionals teaching some specific subject than at University level where usually some specific titles (as a PhD) are required to teach there.
โž• 1
Avatar
Avatar
raysan5
On my experience, trade schools are more open to professionals teaching some specific subject than at University level where usually some specific titles (as a PhD) are required to teach there.
CianMc Jun 17, 2021 10:31 AM
that's true, it would definitely be more attractive and open to a working professional with a Bachelors/no degree
Avatar
Avatar
raysan5
On my experience, trade schools are more open to professionals teaching some specific subject than at University level where usually some specific titles (as a PhD) are required to teach there.
greensleevless Jun 17, 2021 10:31 AM
My experience at design school feels similar to that aspect of trade school - our teachers were often people commuting in from their ~jobs as designers/illustrators/artists/etc - they often didn't have higher degrees than the ones we were studying for, but relied on portfolios of work instead.
๐Ÿ‘ 1
Avatar
ratchetfreak Jun 17, 2021 10:31 AM
but there is still the prestige of being a programmer with the implication that it's a highly intellectual job, It isn't, not to the point of university professor doing research
Avatar
Avatar
Rudy
@demetrispanos @CianMc one thing to consider is the market has already tried to address this in the form of "boot camps"
CianMc Jun 17, 2021 10:33 AM
I feel like boot camps, generally, I don't have much experience of them, try and do the bare minimum in the least amount of time to make someone "employable" without delving too much into any one subject, which is fine, but there's also a need for something like a trade school where a deeper understanding can be developed
๐Ÿ’ฏ 1
Avatar
Avatar
CianMc
I feel like boot camps, generally, I don't have much experience of them, try and do the bare minimum in the least amount of time to make someone "employable" without delving too much into any one subject, which is fine, but there's also a need for something like a trade school where a deeper understanding can be developed
demetrispanos Jun 17, 2021 10:33 AM
at the risk of being provocative, I think most boot camps are either cynical or one step removed from cynicism
Avatar
demetrispanos Jun 17, 2021 10:33 AM
the idea that "anyone can be a programmer" is a real problem, and underlies the boot camp premise
Avatar
demetrispanos Jun 17, 2021 10:34 AM
it would be out of scope I think to get into boot camp economics, but if you dig into how they make money vs how recruiting companies make money you'll see a lot of overlap
Avatar
Avatar
demetrispanos
@CianMc makes a good point that specifically for programming, there is a huge cost problem in getting good people
raysan5 Jun 17, 2021 10:33 AM
I think it's very difficult for Universities to find teachers for high-technical subjects, at this moment there are many better offers out-there for those profiles than what the University can offer...
Avatar
CianMc Jun 17, 2021 10:34 AM
Totally, along with all these courses you see advertised on youtube etc
Avatar
Avatar
demetrispanos
the idea that "anyone can be a programmer" is a real problem, and underlies the boot camp premise
raysan5 Jun 17, 2021 10:34 AM
"learn programming in 20 days" ๐Ÿ˜›
Avatar
CianMc Jun 17, 2021 10:35 AM
while I feel everyone should be introduced to programming at a young age so that everyone can see if it's for them or not, the idea that just because there's a large demand for developers that everyone should consider learning it is ridiculous and inherently leads to a reduction in software quality
Avatar
demetrispanos Jun 17, 2021 10:35 AM
to steelman boot camps for a moment, I do think there's a place for a boot camp for someone like an electrical engineer who already knows (say) matlab, who just needs to be taught the basics of mainstream programming languages and databases ... but this is not the most common case for boot camps
Avatar
ratchetfreak Jun 17, 2021 10:36 AM
you need a certain mindset for programming and I don't believe that everyone will be able to grasp it
Avatar
Rudy Jun 17, 2021 10:36 AM
right, more of a transitionary program
10:36
not 0 to software engineer
10:37
but, I actually do think a focused "trade school" type of program might be a good fit
Avatar
demetrispanos Jun 17, 2021 10:37 AM
I think most traditional engineers could become programmers, that seems empirically true
Avatar
Avatar
demetrispanos
I think most traditional engineers could become programmers, that seems empirically true
CianMc Jun 17, 2021 10:38 AM
There definitely is a certain shared problem solving mindset between those professions
Avatar
Rudy Jun 17, 2021 10:37 AM
the example I keep coming back to is music school
10:37
which I think is a very good fit for software development
10:37
I have always thought programming is akin to learning an instrument
Avatar
raysan5 Jun 17, 2021 10:37 AM
@Rudy Agree, it has MANY things in common!
Avatar
greensleevless Jun 17, 2021 10:38 AM
It might be an interesting point of discussion to talk about how music is taught and what we can translate to how to teach programming /sw engineering
10:38
(potentially something to come back to)
Avatar
Avatar
greensleevless
It might be an interesting point of discussion to talk about how music is taught and what we can translate to how to teach programming /sw engineering
demetrispanos Jun 17, 2021 10:39 AM
one essential part of music/arch/design/art school is you spend most of your time doing the thing
10:39
(vs studying underlying theory about the thing)
Avatar
Rudy Jun 17, 2021 10:39 AM
synthesis vs analysis ๐Ÿ˜‰
Avatar
Avatar
CianMc
while I feel everyone should be introduced to programming at a young age so that everyone can see if it's for them or not, the idea that just because there's a large demand for developers that everyone should consider learning it is ridiculous and inherently leads to a reduction in software quality
bumbread Jun 17, 2021 10:38 AM
I believe that everyone can learn to program quality software. We just don't have any teachers that would teach how to do it. Universities do not concentrate on correctness of the code too much, even though the point is spoken, the actual quality is not checked ~ the code is "tested" in the best case.
Avatar
raysan5 Jun 17, 2021 10:39 AM
@bumbread well, I think it depends on the teacher
Avatar
Avatar
raysan5
@bumbread well, I think it depends on the teacher
ratchetfreak Jun 17, 2021 10:39 AM
and the student
๐Ÿ‘ 2
Avatar
Avatar
bumbread
I believe that everyone can learn to program quality software. We just don't have any teachers that would teach how to do it. Universities do not concentrate on correctness of the code too much, even though the point is spoken, the actual quality is not checked ~ the code is "tested" in the best case.
CianMc Jun 17, 2021 10:39 AM
that's an interesting view, maybe those that currently excel at programming have a natural ability/are good self learners, and others who struggle could become better developers if the proper guidance and resources were available to them? (edited)
Avatar
Rudy Jun 17, 2021 10:39 AM
We just don't have any teachers that would teach how to do it.
@bumbread @raysan5 this is what I would like to spend the bulk of the time discussing later
10:40
let's stay focused on the problem at hand
๐Ÿ‘ 1
Avatar
Avatar
bumbread
I believe that everyone can learn to program quality software. We just don't have any teachers that would teach how to do it. Universities do not concentrate on correctness of the code too much, even though the point is spoken, the actual quality is not checked ~ the code is "tested" in the best case.
raysan5 Jun 17, 2021 10:41 AM
personally, I focus way more on the soft skills that students need to actually learn programming than in advance programming concepts. For example: organization, coding conventions, focus to detail, variables naming, debugging, patience, understanding the process...
Avatar
Avatar
raysan5
personally, I focus way more on the soft skills that students need to actually learn programming than in advance programming concepts. For example: organization, coding conventions, focus to detail, variables naming, debugging, patience, understanding the process...
greensleevless Jun 17, 2021 10:42 AM
Curious: why do you say 'soft skills'?
Avatar
greensleevless Jun 17, 2021 10:42 AM
or are your examples what you'd consider hard skills and you focus on other things?
Avatar
Rudy Jun 17, 2021 10:42 AM
everyone also learns differently
Avatar
Avatar
greensleevless
Curious: why do you say 'soft skills'?
Rudy Jun 17, 2021 10:42 AM
I would also consider those hard skills
10:42
except things like attention to detail and patience
Avatar
Avatar
CianMc
that's an interesting view, maybe those that currently excel at programming have a natural ability/are good self learners, and others who struggle could become better developers if the proper guidance and resources were available to them? (edited)
bumbread Jun 17, 2021 10:41 AM
I don't like the idea of "natural ability", nor do I believe in it. All people have different experience, e.g. some were doing painting, so naturally everyone would understand different concepts differently. Some people also can learn based on the experience.
Avatar
Avatar
bumbread
I don't like the idea of "natural ability", nor do I believe in it. All people have different experience, e.g. some were doing painting, so naturally everyone would understand different concepts differently. Some people also can learn based on the experience.
CianMc Jun 17, 2021 10:43 AM
neither do I, and maybe that's the wrong term for it, it's more probable that certain people can learn things by themselves in an unstructured in environment whereas others just need a structured/guided learning experience
Avatar
Avatar
greensleevless
Curious: why do you say 'soft skills'?
raysan5 Jun 17, 2021 10:44 AM
I mean, not that purely technical programming concepts but more a useful way to think to write code
Avatar
CianMc Jun 17, 2021 10:45 AM
would that not be more a case of theoretical vs practical skills/information?
Avatar
greensleevless Jun 17, 2021 10:45 AM
How do you go about teaching those things? (I'm thinking about how this relates back to the convo of music schools having students spending lots of time playing music)
10:45
but like, what constitutes quality practice/effort?
Avatar
bumbread Jun 17, 2021 10:46 AM
You only need to teach principles and show examples. The practice is something a student has to do themselves
Avatar
greensleevless Jun 17, 2021 10:46 AM
Right, but ideally the institution facilitates that practice right? You have to learn how to practice too after all
Avatar
CianMc Jun 17, 2021 10:46 AM
In my mind, quality practice includes consistent work on some problem with some form of objective criticism and critique, by yourself or someone else
Avatar
ratchetfreak Jun 17, 2021 10:46 AM
for example getting a new library and then figuring out how to use it based on the (somewhat lacking) docs and functions available
10:47
doing that with the different API paradigms would be a great help as a programmer
Avatar
raysan5 Jun 17, 2021 10:47 AM
for example, I require my students to follow strict coding and naming guidelines, not only on the deliveries but also on the daily work; I question my students a lot about the concepts I explain, I don't want that they just believe what the teachers says (edited)
Avatar
CianMc Jun 17, 2021 10:47 AM
And that's one the big issues in my mind, students don't know what "good" code looks like, especially since that term has become so polluted by many accepted conventions that are taught
Avatar
Avatar
raysan5
for example, I require my students to follow strict coding and naming guidelines, not only on the deliveries but also on the daily work; I question my students a lot about the concepts I explain, I don't want that they just believe what the teachers says (edited)
CianMc Jun 17, 2021 10:48 AM
that's a very good approach in my mind
Avatar
demetrispanos Jun 17, 2021 10:48 AM
one problem here is that "good" is contextual
Avatar
demetrispanos Jun 17, 2021 10:48 AM
good test-an-idea code is different from good ship-to-thousands-of-servers code
Avatar
Avatar
demetrispanos
one problem here is that "good" is contextual
CianMc Jun 17, 2021 10:48 AM
agreed
Avatar
Rudy Jun 17, 2021 10:48 AM
there are some overarching practices though that can always be attributed to good code
10:49
for example: writing non-clever code, always writing with the next person in mind
10:49
code is written once and read forever
Avatar
Avatar
Rudy
for example: writing non-clever code, always writing with the next person in mind
demetrispanos Jun 17, 2021 10:49 AM
this is just not true for test-an-idea code though
โ— 1
Avatar
CianMc Jun 17, 2021 10:49 AM
I think Casey talked about this somewhere, that the label of "good" code needs to be objectively proven/backed up, whether that be through performance testing or some other measurable metric
Avatar
demetrispanos Jun 17, 2021 10:49 AM
and I think many many people suffer for lack of knowing "test an idea" practices
10:50
"find out if this is even worth doing well" is an essential task
10:50
and to do that time-efficiently it is often optimal to write terrible throwaway code
Avatar
Rudy Jun 17, 2021 10:50 AM
hard agree. I guess the problem is people tend to pipeline their "test an idea" code into production ๐Ÿ™‚
๐Ÿ‘ 1
Avatar
demetrispanos Jun 17, 2021 10:50 AM
yes this is an important counterbalancing weight
Avatar
Avatar
demetrispanos
and I think many many people suffer for lack of knowing "test an idea" practices
CianMc Jun 17, 2021 10:51 AM
that was a big one for me, often I would never make any progress as I thought that my first implementation had to be flawless rather than a proof of concept
Avatar
CianMc Jun 17, 2021 10:51 AM
a related skill is how to then progress from that test stage to a robust piece of software
Avatar
Avatar
CianMc
a related skill is how to then progress from that test stage to a robust piece of software
Rudy Jun 17, 2021 10:52 AM
this feels like the natural solution to this
10:52
whether it's iteration or a complete reconstruction of the idea properly
Avatar
Avatar
CianMc
that was a big one for me, often I would never make any progress as I thought that my first implementation had to be flawless rather than a proof of concept
demetrispanos Jun 17, 2021 10:51 AM
I suffered from this myself for a few years and I had to train myself consciously to just write the simplest and stupidest thing first
Avatar
CianMc Jun 17, 2021 10:52 AM
same, but at least we're aware of it now, rather than not knowing where we went wrong ๐Ÿ˜‚
Avatar
Avatar
demetrispanos
I suffered from this myself for a few years and I had to train myself consciously to just write the simplest and stupidest thing first
bumbread Jun 17, 2021 10:52 AM
Still suffering coolcool
Avatar
Avatar
Rudy
hard agree. I guess the problem is people tend to pipeline their "test an idea" code into production ๐Ÿ™‚
greensleevless Jun 17, 2021 10:51 AM
Throwing something in from design school - the idea of a sketch is super important. It's never meant to become the final piece, just something you do to prepare for when you actually start
Avatar
Avatar
greensleevless
Throwing something in from design school - the idea of a sketch is super important. It's never meant to become the final piece, just something you do to prepare for when you actually start
demetrispanos Jun 17, 2021 10:52 AM
right, well this brushes up on my favorite hobby horse the "plastics and metals" metaphor, which is based on how industrial product designers prototype things
10:53
if you can answer 50% of the questions with something that cost 1% to produce, you'd be silly not to do that
Avatar
greensleevless Jun 17, 2021 10:53 AM
A related mindset is being ok with the fact that most of the time, the answers you learn are going to be "seek elsewhere" or "start over"
10:54
which our education system actively discourages
Avatar
CianMc Jun 17, 2021 10:54 AM
very much so, failure is punished rather than encouraged
Avatar
CianMc Jun 17, 2021 10:55 AM
which leads into something I've been thinking about, mandatory, but not graded assignments
Avatar
Rudy Jun 17, 2021 10:54 AM
maybe a better structure in formal learning would be the same assignment three times. 1. get it to "just work" 2. reconstruct it entirely with the next maintainer in mind 3. have someone else read and optimize it
Avatar
Avatar
Rudy
maybe a better structure in formal learning would be the same assignment three times. 1. get it to "just work" 2. reconstruct it entirely with the next maintainer in mind 3. have someone else read and optimize it
greensleevless Jun 17, 2021 10:55 AM
absolutely
Avatar
Avatar
greensleevless
which our education system actively discourages
demetrispanos Jun 17, 2021 10:55 AM
100% very important here, schools condition you to see your performance as deviation from perfection, as opposed to deviation from failure
Avatar
demetrispanos Jun 17, 2021 10:55 AM
schools say "you start with 100 points, and you lose points for making mistakes"
brain 3
10:55
instead of "you start with nothing, and you earn points for success"
10:55
(I'm oversimplifying here but I think it's an important point)
Avatar
Avatar
demetrispanos
schools say "you start with 100 points, and you lose points for making mistakes"
greensleevless Jun 17, 2021 10:56 AM
The game designer in me went to "those are mechanically the same" but the perception is super important
Avatar
demetrispanos Jun 17, 2021 10:56 AM
they're not mechanically the same if the set of activities is not fixed
10:56
but I agree for a fixed set of activities they are formally the same
Avatar
greensleevless Jun 17, 2021 10:56 AM
^ ah ok, yea - like the emphasis becomes "You got there" even if it took a while
Avatar
Rudy Jun 17, 2021 10:56 AM
I'm trying to keep the jokes out of this but can't help my brain from typing "10 POINTS TO GRYFFINDOR" ๐Ÿ˜›
kekw 2
Avatar
Avatar
Rudy
maybe a better structure in formal learning would be the same assignment three times. 1. get it to "just work" 2. reconstruct it entirely with the next maintainer in mind 3. have someone else read and optimize it
raysan5 Jun 17, 2021 10:56 AM
I usually provide my students with a GitHub template to work over it
๐Ÿ‘ 1
Avatar
raysan5 Jun 17, 2021 10:56 AM
{game project description here}. Contribute to raysan5/game_project_template development by creating an account on GitHub.
Avatar
Rudy Jun 17, 2021 10:57 AM
In this case they get the code from the instructor
Avatar
raysan5 Jun 17, 2021 10:58 AM
they have some base code to start working with, they can use it or not, but the good thing about it is that they already have a preconfigured package for a nice delivery and presentation of the product, not only focused on the code itself (edited)
Avatar
Avatar
raysan5
they have some base code to start working with, they can use it or not, but the good thing about it is that they already have a preconfigured package for a nice delivery and presentation of the product, not only focused on the code itself (edited)
greensleevless Jun 17, 2021 11:00 AM
That's interesting - makes me think about the skill of "getting started well". Using your example to show them what that looks like, but do you ever have them then try and start on their own on follow up assignments? Is there value in that?
Avatar
raysan5 Jun 17, 2021 11:00 AM
by the way, the code in that template is not written by me, it was created by a previous teacher, I just tried to adapt it a little... but I was not allowed by University to adapt it to what I'd like it to be... that's probably another discussion point... (edited)
๐Ÿ™‚ 1
Avatar
Rudy Jun 17, 2021 11:01 AM
We're about an hour in
Avatar
raysan5 Jun 17, 2021 11:01 AM
wow! already an hour???
Avatar
Rudy Jun 17, 2021 11:02 AM
๐Ÿ˜„ Is there anything higher learning institutions, books, training courses, i.e. existing paths to learn software development, get right?
Avatar
ratchetfreak Jun 17, 2021 11:02 AM
they teach the theoretical well
11:02
though getting it down to practical code tends to be an issue
Avatar
Avatar
ratchetfreak
they teach the theoretical well
raysan5 Jun 17, 2021 11:03 AM
well... ๐Ÿค”
Avatar
demetrispanos Jun 17, 2021 11:03 AM
I think anything around analyzing algorithms and data structures is covered relatively well, though maybe not how to apply that analysis
Avatar
ratchetfreak Jun 17, 2021 11:03 AM
at least I learned the theories that my uni tried to teach me
Avatar
raysan5 Jun 17, 2021 11:03 AM
I think fundamentals are usually taught well
11:04
(well, maybe a bit outdated sometimes)
Avatar
Rudy Jun 17, 2021 11:03 AM
let's be specific
Avatar
Rudy Jun 17, 2021 11:04 AM
do we mean sorting algorithms? big O notation?
Avatar
ratchetfreak Jun 17, 2021 11:04 AM
that was part of it yeah, but my courses included databases, parallel compute, operating systems, oop patterns, computer graphics, etc. (edited)
Avatar
raysan5 Jun 17, 2021 11:04 AM
Logic, Maths, Physics, Computers Arquitecture (the basis)
Avatar
CianMc Jun 17, 2021 11:04 AM
I agree, the fundamentals are taught well generally, the only problem being that they fail to expand on this foundation
Avatar
ratchetfreak Jun 17, 2021 11:05 AM
or tie the foundation to the theoretical and make it practical
Avatar
CianMc Jun 17, 2021 11:05 AM
yep, I have been reading/doing nand2tetris lately and I love how it ties the two together
Avatar
raysan5 Jun 17, 2021 11:06 AM
the port of those fundamentals to practice is what I think could fail...
Avatar
CianMc Jun 17, 2021 11:06 AM
Computer Systems/Architecture can be quite a dry theoretical topic, but when combined with a practical element it becomes very enjoyable
Avatar
Rudy Jun 17, 2021 11:07 AM
it's probably akin to true architecture
11:07
learning about physics and angles > actually creating something
Avatar
Avatar
raysan5
the port of those fundamentals to practice is what I think could fail...
greensleevless Jun 17, 2021 11:07 AM
To be a bit provocative - and this comes from the way the question was originally phrased ("when do we switch from foundations like mathematics, algorithms and data structures to creating software") - is that I think that order is backwards
11:08
(this is kind of bringing what @demetrispanos and I just mentioned in #fishbowl-audience in here) (edited)
Avatar
CianMc Jun 17, 2021 11:08 AM
Another thing institutions do well are labs, either where structured work is given or where it's used as a place where students can ask the professor/tutor for help with the current assignment
๐Ÿ‘ 1
Avatar
ratchetfreak Jun 17, 2021 11:08 AM
unless they let the student BS their way out of the work of course
Avatar
ratchetfreak Jun 17, 2021 11:09 AM
but that's more of a lead the horse to water thing
Avatar
Avatar
ratchetfreak
unless they let the student BS their way out of the work of course
raysan5 Jun 17, 2021 11:09 AM
yeap, but, again, it will depend on the teacher
Avatar
CianMc Jun 17, 2021 11:09 AM
Yep, or what happens quite often is that the college doesn't hire enough tutors so students get very little or no 1-1 time
Avatar
Avatar
CianMc
Yep, or what happens quite often is that the college doesn't hire enough tutors so students get very little or no 1-1 time
raysan5 Jun 17, 2021 11:10 AM
agree!
Avatar
Avatar
CianMc
Yep, or what happens quite often is that the college doesn't hire enough tutors so students get very little or no 1-1 time
Rudy Jun 17, 2021 11:09 AM
In my experience, and this was covered in the podcast a bit, but teaching is really an afterthought for professors
11:10
their main focus is advancing their field through research
Avatar
Avatar
Rudy
In my experience, and this was covered in the podcast a bit, but teaching is really an afterthought for professors
raysan5 Jun 17, 2021 11:11 AM
also agree... and I think that's a big problem
๐Ÿ‘ 1
Avatar
Avatar
greensleevless
To be a bit provocative - and this comes from the way the question was originally phrased ("when do we switch from foundations like mathematics, algorithms and data structures to creating software") - is that I think that order is backwards
raysan5 Jun 17, 2021 11:10 AM
do you think fundamentals are actually conditioned by the way software is written today? should them?
Avatar
Avatar
greensleevless
To be a bit provocative - and this comes from the way the question was originally phrased ("when do we switch from foundations like mathematics, algorithms and data structures to creating software") - is that I think that order is backwards
Rudy Jun 17, 2021 11:09 AM
Could you elaborate
Avatar
Avatar
Rudy
Could you elaborate
greensleevless Jun 17, 2021 11:10 AM
Yea so a lot of what I've worked on was building an engagement curve for kids - how do we show them why engineering is interesting/worthwhile - and the way you do that is by letting that have perceived impact early on. We can't start by teaching them algorithms - they don't care. And I think this scales up to adults - we aren't fundamentally different from kids, we just have more experience.
catjam 2
Avatar
Avatar
greensleevless
Yea so a lot of what I've worked on was building an engagement curve for kids - how do we show them why engineering is interesting/worthwhile - and the way you do that is by letting that have perceived impact early on. We can't start by teaching them algorithms - they don't care. And I think this scales up to adults - we aren't fundamentally different from kids, we just have more experience.
Rudy Jun 17, 2021 11:10 AM
love this
Avatar
greensleevless Jun 17, 2021 11:11 AM
So when we're talking about how to teach people software engineering better, I think the best thing to do is to get them to the thing they care about as quickly as possible
Avatar
greensleevless Jun 17, 2021 11:11 AM
because the software isn't the point when you start out right? Its about the increased capability in some other area
Avatar
CianMc Jun 17, 2021 11:11 AM
absolutely, it can be very obvious sometimes too, like where it's clear the professor didn't write the notes they're giving and the first time they're reading them is in the class or shortly before class lol
Avatar
Avatar
greensleevless
So when we're talking about how to teach people software engineering better, I think the best thing to do is to get them to the thing they care about as quickly as possible
raysan5 Jun 17, 2021 11:11 AM
and so I created raylib
Avatar
Rudy Jun 17, 2021 11:11 AM
I learned a little bit about electricity / electronics later in life, and I bought a book to do it. Instead of teaching about the concepts in theory, each chapter started with the thing you were making/testing and it almost always blew up. then you learned about the theory of why, then you re-made it properly
Avatar
Avatar
greensleevless
So when we're talking about how to teach people software engineering better, I think the best thing to do is to get them to the thing they care about as quickly as possible
bumbread Jun 17, 2021 11:12 AM
And then the possibilities are endless. You could say "hey see your program is a piece of shit. in this course I will teach you how to make this piece of shit into an actually good program"
๐Ÿ‘ 1
Avatar
Avatar
greensleevless
So when we're talking about how to teach people software engineering better, I think the best thing to do is to get them to the thing they care about as quickly as possible
demetrispanos Jun 17, 2021 11:12 AM
yes this also relates to programming language design, and the huge gap between when I learned basic/logo vs what people learn today
Avatar
demetrispanos Jun 17, 2021 11:12 AM
when I started as a kid, you just booted the thing and wrote a few lines of code and you had pixels on the screen
Avatar
Avatar
demetrispanos
when I started as a kid, you just booted the thing and wrote a few lines of code and you had pixels on the screen
bumbread Jun 17, 2021 11:14 AM
nowadays this thing is rarely exciting unless they have call of duty running, and IMO having that created in under an hour is a very poisonous idea
Avatar
Avatar
bumbread
nowadays this thing is rarely exciting unless they have call of duty running, and IMO having that created in under an hour is a very poisonous idea
demetrispanos Jun 17, 2021 11:14 AM
I find that if you show kids they can do this in the browser, some are fairly interested
Avatar
greensleevless Jun 17, 2021 11:14 AM
^ But this is exactly what things like Minecraft and Roblox are doing
Avatar
Avatar
raysan5
and so I created raylib
greensleevless Jun 17, 2021 11:12 AM
Ya so I'm curious what design considerations went into that?
Avatar
greensleevless Jun 17, 2021 11:13 AM
Like, how is the design of raylib different because its designed for this purpose - with education in mind? (edited)
Avatar
Avatar
raysan5
and so I created raylib
bumbread Jun 17, 2021 11:12 AM
Oh I forgot that you are a person who created raylib lol
raysan 1
Avatar
Avatar
greensleevless
Ya so I'm curious what design considerations went into that?
raysan5 Jun 17, 2021 11:14 AM
Simple, I had 50h to teach art students to program games (they had never written a single line of code before)... and still I wanted that they actually wrote some code, so, I tried to create something simple and self-contained that could fit in my teaching methodology (edited)
Avatar
raysan5 Jun 17, 2021 11:17 AM
sincerely, I didn't expect it to work... but students start seeing things moving on the screen connected with the code and that was VERY engaging for them (edited)
Avatar
Avatar
raysan5
sincerely, I didn't expect it to work... but students start seeing things moving on the screen connected with the code and that was VERY engaging for them (edited)
ratchetfreak Jun 17, 2021 11:18 AM
immediate feedback on iteration is very important to keeping people engages in learning
๐Ÿ‘ 2
Avatar
ratchetfreak Jun 17, 2021 11:15 AM
I had fun with computercraft in minecraft
11:15
it taught me how to use coroutines for waiting on something instead of sleeping
Avatar
bumbread Jun 17, 2021 11:15 AM
I had fun building an actual computer in vanila minecraft
Avatar
Avatar
raysan5
sincerely, I didn't expect it to work... but students start seeing things moving on the screen connected with the code and that was VERY engaging for them (edited)
greensleevless Jun 17, 2021 11:17 AM
This reminds me of something Dan Cook (from Spry Fox) said on Twitter a few months ago - how good game design (and design more broadly) is about arranging the world to reveal value in specific places. That seems to intersect with good education as well. Is it fair to say that this is kind of how raylib facilitates education early on? How do you think about growing past that - to where you have to start dealing with externalities?
Avatar
demetrispanos Jun 17, 2021 11:18 AM
re "revealing value", there's the saying "education is not filling a bucket, but lighting a fire"
๐Ÿ”ฅ 6
Avatar
demetrispanos Jun 17, 2021 11:18 AM
(i.e. creating some self-sustaining process in the student)
Avatar
Avatar
demetrispanos
re "revealing value", there's the saying "education is not filling a bucket, but lighting a fire"
greensleevless Jun 17, 2021 11:20 AM
Yep - its kind of where I was heading with thinking about growth past that initial intentionally-designed-for-education environment. Once you light that fire, does growth beyond your initial introduction kind of happen on its own?
Avatar
Avatar
demetrispanos
re "revealing value", there's the saying "education is not filling a bucket, but lighting a fire"
bumbread Jun 17, 2021 11:20 AM
its a great quote
Avatar
Avatar
demetrispanos
(i.e. creating some self-sustaining process in the student)
raysan5 Jun 17, 2021 11:20 AM
that's it!
Avatar
Avatar
greensleevless
This reminds me of something Dan Cook (from Spry Fox) said on Twitter a few months ago - how good game design (and design more broadly) is about arranging the world to reveal value in specific places. That seems to intersect with good education as well. Is it fair to say that this is kind of how raylib facilitates education early on? How do you think about growing past that - to where you have to start dealing with externalities?
raysan5 Jun 17, 2021 11:20 AM
what do you mean with externalities?
Avatar
Avatar
raysan5
what do you mean with externalities?
greensleevless Jun 17, 2021 11:22 AM
This is where I think this discussion starts to have a ton of overlap with the HM philosophy. So you constructed raylib in such a way that students get to impact (pixels on screen) very quickly. But the world isn't like that. Eventually you have to get them to start engaging with the existing software environment - build grit towards things like poor documentation, bad APIs, etc.
11:22
Those are what I mean by 'externalities'
11:23
And I'm not saying this to downplay the value things like raylib have - I think that role is possibly the most important (calling back to the 'light a fire' idea). But there are steps beyond that as well that are important too right?
Avatar
demetrispanos Jun 17, 2021 11:23 AM
yes absolutely, but I think there's a big difference in emotional investment
11:23
once you know that you can, in principle, do things you want with programming then you're more willing to tolerate "ok here's all the ugly stuff"
BestPractice 1
Avatar
ratchetfreak Jun 17, 2021 11:23 AM
jumping out of the sandbox into a whirlpool will kill any enthusiasm
11:24
so your sandbox better give them the tools to survive the maelstrom
Avatar
Avatar
demetrispanos
once you know that you can, in principle, do things you want with programming then you're more willing to tolerate "ok here's all the ugly stuff"
greensleevless Jun 17, 2021 11:24 AM
That's interesting - I 100% agree, just never thought about it that way
Avatar
Avatar
greensleevless
That's interesting - I 100% agree, just never thought about it that way
demetrispanos Jun 17, 2021 11:25 AM
there's a psychology "trick" that is common in the military, which is often summarized as "embrace the suck" where you actively discuss how bad something is going to be
11:25
and I think something similar can be used with programming (I certainly do a version of it)
11:25
where I tell people "ok, now we're going to do a bunch of stuff that's really awful and stupid, and you shouldn't feel bad thinking that it's awful and stupid ... everyone feels that way"
lol_sobbing 1
Avatar
ratchetfreak Jun 17, 2021 11:26 AM
or kicking off a compile that takes the entire class to complete...
Avatar
bumbread Jun 17, 2021 11:26 AM
personally I lose motivation when I program something awful and stupid. That's the only reason its so hard for me to do
Avatar
demetrispanos Jun 17, 2021 11:26 AM
a huge problem I felt early on with "real programming" was that I kept feeling like, if I knew what I was doing, surely it wouldn't be so awful
11:26
and it was a revelation to me when I realize that actually it just is that awful
11:27
even experts fight with stupid linker errors ~daily
Avatar
Avatar
greensleevless
And I'm not saying this to downplay the value things like raylib have - I think that role is possibly the most important (calling back to the 'light a fire' idea). But there are steps beyond that as well that are important too right?
raysan5 Jun 17, 2021 11:27 AM
raylib was originally created to be just a playground for art students, as you said, to "light a fire", most of those students just had fun for a while and never wrote code again... but some of them (and those are the key) decided to learn more and go deeper down the rabbit hole... and they learned Unity or Unreal later on but when some fundamental question pop-up, most of them came back to raylib sources (that are very readable) to understand how things work in the background.
Avatar
greensleevless Jun 17, 2021 11:28 AM
I wonder if a piece of the education discussion is around how teaching is equal parts expertise + experience design? Like its not enough that @raysan5 is a good engineer, but also that raylib incorporates thoughts on the experience of the student
Avatar
Rudy Jun 17, 2021 11:28 AM
it makes it harder to sell that idea when in military movies their friends are dying and you know it's going to suck then you watch movies with hackers and they're in the CIA mainframe in 5 minutes
STOPIT 1
Avatar
Avatar
Rudy
it makes it harder to sell that idea when in military movies their friends are dying and you know it's going to suck then you watch movies with hackers and they're in the CIA mainframe in 5 minutes
demetrispanos Jun 17, 2021 11:29 AM
yes another thing I do with young students is talk to them about misleading hacker portrayals, and just make fun of it a bit
11:29
show them the NCIS thing, the Swordfish thing, a scene from Hackers etc.
11:29
and help them feel like it's ok that they don't feel like hollywood told them they would feel
Avatar
Rudy Jun 17, 2021 11:29 AM
the swordfish scene lol
11:29
the worst
Avatar
CianMc Jun 17, 2021 11:30 AM
a huge reason for the high dropout rates in Comp Sci is the lack of understanding of what programming is, usually fuelled by hollywood lol
Avatar
greensleevless Jun 17, 2021 11:30 AM
This is like how bad it is for young artists to watch speedpainting videos on youtube. You just feel awful cause you're slower than a video that's been sped up 20x (edited)
Avatar
Avatar
greensleevless
I wonder if a piece of the education discussion is around how teaching is equal parts expertise + experience design? Like its not enough that @raysan5 is a good engineer, but also that raylib incorporates thoughts on the experience of the student
raysan5 Jun 17, 2021 11:30 AM
if you have never written code before and it looks like magic to you, being able to make some magic for a while is an unforgettable experience
Avatar
Avatar
raysan5
if you have never written code before and it looks like magic to you, being able to make some magic for a while is an unforgettable experience
greensleevless Jun 17, 2021 11:31 AM
That is really wonderful
Avatar
Avatar
CianMc
a huge reason for the high dropout rates in Comp Sci is the lack of understanding of what programming is, usually fuelled by hollywood lol
Rudy Jun 17, 2021 11:30 AM
i think this has contributed to a subtle disdain I have always had for the word 'coding'
Avatar
Rudy Jun 17, 2021 11:31 AM
even though there shouldn't be
Avatar
Rudy Jun 17, 2021 11:31 AM
it's made out to be some secret special experience
11:31
but it's really just hard, and takes time, learning, frustration, and repetition
11:31
it's a process, which is why i prefer the term programming
Avatar
Rudy Jun 17, 2021 11:31 AM
programming is a process
Avatar
Avatar
Rudy
programming is a process
raysan5 Jun 17, 2021 11:32 AM
yes, but not all the students want to be programmers
11:33
some students just want to feel like programmers for a while
Avatar
Avatar
raysan5
if you have never written code before and it looks like magic to you, being able to make some magic for a while is an unforgettable experience
demetrispanos Jun 17, 2021 11:31 AM
yes this is what I mean about the old-days experience, where you boot your Apple II and write 10 lines of code and you have a polygon
๐Ÿ‘ 3
Avatar
demetrispanos Jun 17, 2021 11:31 AM
that makes you feel like "ok, making a polygon is roughly the same level of effort as solving a math problem"
Avatar
demetrispanos Jun 17, 2021 11:32 AM
whereas today, making a polygon appear on the screen is like writing Wagner's Ring Cycle
WorstPractice 1
Avatar
ratchetfreak Jun 17, 2021 11:32 AM
depends on which api you picked that day
Avatar
Avatar
ratchetfreak
depends on which api you picked that day
demetrispanos Jun 17, 2021 11:33 AM
there are APIs that hide the 20 hour opera, but the opera is happening
11:33
(I don't know if wagner's is really 20 hours, I'm just ballparking :P)
Avatar
ratchetfreak Jun 17, 2021 11:33 AM
like there wasn't a 5 hour opera on the applyII to put that polygon on screen
Avatar
Rudy Jun 17, 2021 11:33 AM
Alright everyone, fishbowls normally run about 2-3 hours, and weโ€™re about 1.5 hours in. We have discussed the flaws in current software development training flows, we have discussed a little about what they do right. Letโ€™s spend the remainder of the time discussing solutions. Things like: - Is it possible for formal institutions to change course to incorporate the necessary changes, or is this not possible given the structure of academia? - What would a โ€œtrade schoolโ€ or โ€œmusic schoolโ€ for software development look like? Be specific, imagine you were responsible for everything from the timeline to the curriculum. What do students learn, in which weeks, and how? - Anything else you would like to discuss?
Avatar
demetrispanos Jun 17, 2021 11:34 AM
for the first question I'd add "why do we even care if universities are good places to learn programming?"
Avatar
ratchetfreak Jun 17, 2021 11:34 AM
because that's where people go to learn programming
kekw 1
Avatar
raysan5 Jun 17, 2021 11:34 AM
Is it possible for formal institutions to change course to incorporate the necessary changes, or is this not possible given the structure of academia?
11:35
I think it is possible but it requires a lot of work from the teacher side and from the University side, also it's about money... (edited)
Avatar
Avatar
demetrispanos
for the first question I'd add "why do we even care if universities are good places to learn programming?"
Rudy Jun 17, 2021 11:35 AM
I would assume it's because of the systemic changes to academia over the last 40 or so years, like you mentioned
Avatar
Rudy Jun 17, 2021 11:35 AM
we have been trained to think that a university is the path to success
Avatar
Avatar
ratchetfreak
because that's where people go to learn programming
demetrispanos Jun 17, 2021 11:35 AM
right, I agree, but this could in principle change
Avatar
Avatar
demetrispanos
right, I agree, but this could in principle change
ratchetfreak Jun 17, 2021 11:35 AM
sure but that would require a mentality shift
Avatar
demetrispanos Jun 17, 2021 11:35 AM
so perhaps fixing the universities is not the most important avenue
11:36
I'm obviously biased here, having many friends and family in academia, but I think they are more in the right than in the wrong with the choices they (as professors) make
11:36
the problem is that people have expectations for CS departments that are not realistic
Avatar
greensleevless Jun 17, 2021 11:36 AM
One synthesis (to borrow the term) of the discussion up to now seems to hint at a flow of: show high impact early -> build a visceral understanding of why some of the abstract stuff matters -> drill to specific subjects -> spend lots of time practicing. Maybe a flip on the university discussion is - where is the best place to facilitate this flow? (and does this synthesis seem right to yall?) (edited)
Avatar
Avatar
demetrispanos
the problem is that people have expectations for CS departments that are not realistic
Rudy Jun 17, 2021 11:36 AM
but they're sold that
11:37
chicken egg problem
Avatar
demetrispanos Jun 17, 2021 11:37 AM
I agree they're sold that, but people are not sold (for example) that getting an English Literature degree makes you a novelist
11:37
so it's not a fact of the universe, it's a fact of choices made in society
Avatar
Avatar
demetrispanos
so perhaps fixing the universities is not the most important avenue
raysan5 Jun 17, 2021 11:37 AM
I think Universities are still a strong point of reference for education, so, if their educational offer can be improved, it's a positive thing
๐Ÿ‘ 1
Avatar
Avatar
raysan5
I think Universities are still a strong point of reference for education, so, if their educational offer can be improved, it's a positive thing
demetrispanos Jun 17, 2021 11:38 AM
my point is that improvement presumes a goal, and I'm saying that for the university's true goal (advancing knowledge) they do an ok job
๐Ÿ‘ 1
11:38
again, there is much blame to go around, but I don't think it's wise to expect universities to change their focus to be mainly about creating good programmers
๐Ÿ‘ 1
Avatar
CianMc Jun 17, 2021 11:38 AM
i don't think universities necessarily need to change, societies perception and expectation of the them does
Avatar
ratchetfreak Jun 17, 2021 11:38 AM
for sure the things that must be learned is learning and using a variety of api paradigms, dealing with an event loop (how to split processing up in multiple parts, wait for inputs, etc.), understanding how much performance is actually at their fingertips
Avatar
CianMc Jun 17, 2021 11:39 AM
it should be more socially and professionally acceptable to not go to university and to attend a trade school etc.
Avatar
Rudy Jun 17, 2021 11:39 AM
maybe the real lesson is universities shouldn't be the perceived route for becoming a developer
11:39
but learning more about computer science, or advancing the field
Avatar
Avatar
Rudy
maybe the real lesson is universities shouldn't be the perceived route for becoming a developer
demetrispanos Jun 17, 2021 11:39 AM
this is, I think, the most important thing
Avatar
CianMc Jun 17, 2021 11:39 AM
the same could be said for many fields tbh! I feel like many of the issues with computer science education are shared by other fields
Avatar
Avatar
demetrispanos
again, there is much blame to go around, but I don't think it's wise to expect universities to change their focus to be mainly about creating good programmers
raysan5 Jun 17, 2021 11:43 AM
personally, the main lessons University taught me were not technical but being organized, responsible, punctual, to learn fast, to adapt to changes, identify key elements to learn... but I imagine not all the students learn the same way...
Avatar
Rudy Jun 17, 2021 11:43 AM
most people attribute their learning in college to those exact things
11:43
and almost never to the discipline they studied
11:44
i feel very similar in fact
Avatar
raysan5 Jun 17, 2021 11:44 AM
that's it
Avatar
ratchetfreak Jun 17, 2021 11:44 AM
because college is the first time they are free from the rigor of high school
Avatar
raysan5 Jun 17, 2021 11:44 AM
also note most of those things could be learned in many other places
11:44
and I really thing that helps to be a better programmer
Avatar
Avatar
raysan5
personally, the main lessons University taught me were not technical but being organized, responsible, punctual, to learn fast, to adapt to changes, identify key elements to learn... but I imagine not all the students learn the same way...
demetrispanos Jun 17, 2021 11:45 AM
as a counterpoint, for me personally, I learned an enormous amount of domain knowledge from my university courses
11:45
but as I mentioned in the podcast, I didn't study CS
11:45
I think university was the most efficient path by far for me to get the knowledge I wanted
๐Ÿ‘ 2
Avatar
Avatar
demetrispanos
but as I mentioned in the podcast, I didn't study CS
raysan5 Jun 17, 2021 11:45 AM
I neither studied CS ๐Ÿ˜„
Avatar
Avatar
raysan5
personally, the main lessons University taught me were not technical but being organized, responsible, punctual, to learn fast, to adapt to changes, identify key elements to learn... but I imagine not all the students learn the same way...
greensleevless Jun 17, 2021 11:46 AM
This is interesting in the context of more online/distributed/self directed learning. I feel like the biggest thing I learned from school was a work ethic (I certainly learned a ton of domain specific stuff) - but I wouldn't have gotten that if my school weren't so demanding. (edited)
Avatar
Avatar
Rudy
Alright everyone, fishbowls normally run about 2-3 hours, and weโ€™re about 1.5 hours in. We have discussed the flaws in current software development training flows, we have discussed a little about what they do right. Letโ€™s spend the remainder of the time discussing solutions. Things like: - Is it possible for formal institutions to change course to incorporate the necessary changes, or is this not possible given the structure of academia? - What would a โ€œtrade schoolโ€ or โ€œmusic schoolโ€ for software development look like? Be specific, imagine you were responsible for everything from the timeline to the curriculum. What do students learn, in which weeks, and how? - Anything else you would like to discuss?
greensleevless Jun 17, 2021 11:48 AM
Jumping back to the second question - thoughts?
Avatar
raysan5 Jun 17, 2021 11:49 AM
What would a โ€œtrade schoolโ€ or โ€œmusic schoolโ€ for software development look like? Be specific, imagine you were responsible for everything from the timeline to the curriculum. What do students learn, in which weeks, and how?
Avatar
demetrispanos Jun 17, 2021 11:49 AM
well, we can start from the closest things available, which I think are gamedev schools (the programming arms)
Avatar
demetrispanos Jun 17, 2021 11:50 AM
I don't have any direct knowledge of gamedev schools but it seems DigiPen produces at least some successful programmers?
Avatar
raysan5 Jun 17, 2021 11:51 AM
Actually, I've been there. I worked for a "trade school" for 6 years, teaching multiple videogames development subjects and defining the syllabus for all of them. That school was the first in Spain offering a 2-years specialized course in Videogames Development. (edited)
Avatar
ratchetfreak Jun 17, 2021 11:50 AM
I'll reiterate:
for sure the things that must be learned is learning and using a variety of api paradigms, dealing with an event loop (how to split processing up in multiple parts, wait for inputs, etc.), understanding how much performance is actually at their fingertips
Avatar
ratchetfreak Jun 17, 2021 11:50 AM
those are definitely second year subjects after they are comfortable with imperative programming already
Avatar
Avatar
ratchetfreak
those are definitely second year subjects after they are comfortable with imperative programming already
greensleevless Jun 17, 2021 11:52 AM
Do you have thoughts on how you do that first year?
Avatar
ratchetfreak Jun 17, 2021 11:53 AM
assuming they come with blank slate at the very least teach them a language
Avatar
Avatar
ratchetfreak
assuming they come with blank slate at the very least teach them a language
demetrispanos Jun 17, 2021 11:53 AM
actually this is a great point that I think we should explore, in comparison to music schools
11:54
I don't think there's a serious music school that accepts students who don't know either an instrument or composition already
11:54
I may just be underinformed
Avatar
greensleevless Jun 17, 2021 11:54 AM
I mean, that's true of design school too - I had to have a portfolio to even apply
Avatar
demetrispanos Jun 17, 2021 11:54 AM
yeah sounds similar I just didn't know
Avatar
raysan5 Jun 17, 2021 11:56 AM
my school was mostly art oriented, in terms of programming, they started with Programming I -> C basics (20h) + raylib (30h). Second subject, Programming II -> intro to OOP with C# and MonoGame (60h). Third subject: Unity (60h) (edited)
11:57
no previous experience was required
Avatar
Avatar
demetrispanos
I don't think there's a serious music school that accepts students who don't know either an instrument or composition already
greensleevless Jun 17, 2021 11:58 AM
what about this did you want to explore?
Avatar
Avatar
greensleevless
what about this did you want to explore?
demetrispanos Jun 17, 2021 11:59 AM
well, assumptions baked into what universities or other schools should expect
11:59
so I can tell you from direct experience, CS professors have no idea what to do with an introductory CS course
11:59
because half the students have been programming since they were 12, and the other half have never programmed before
Avatar
greensleevless Jun 17, 2021 12:00 PM
ah yea - the intro courses I took actually let you test up into a more advanced intro course. (My problem was that the test was making a game, which I knew how to do, but the course was all algorithms stuff that I was horribly underprepared for XD)
Avatar
ratchetfreak Jun 17, 2021 12:00 PM
and it's tricky to separate them out, because quite a few of those 12yo will still benefit from a course aimed at blank slates
Avatar
greensleevless Jun 17, 2021 12:02 PM
^ yep - I was in that bucket. I had some pretty specific skills around game dev, but was in need of some application-oriented theory.
Avatar
demetrispanos Jun 17, 2021 12:02 PM
even late in the degree, the spread of programming fundamentals skill is enormous
12:03
it's quite ordinary to have a 4th year student who can only just barely create a working project from scratch
Avatar
greensleevless Jun 17, 2021 12:05 PM
I guess the impact of that depends on how many of those students want to stay in university as a part of the 'knowledge development' institution vs go out and work right?
12:05
I mean, we know its not a good ratio, but that is a factor
Avatar
demetrispanos Jun 17, 2021 12:07 PM
yeah obviously if the goals are not around programming as a practice this isn't necessarily a problem
Avatar
greensleevless Jun 17, 2021 12:09 PM
bringing this back to the discussion of an improved way of teaching software development: it'd be interesting to think about how you utilize that skill gap to teach some of the finer details. I'm thinking about how you could use something like @raysan5's project template to teach new students what a good project looks like, but then when they advance, have them create the template for new students so they start to understand what kinds of considerations lead to the systems baked into the template they learned from
Avatar
ratchetfreak Jun 17, 2021 12:09 PM
teaching how to build APIs
Avatar
Avatar
greensleevless
bringing this back to the discussion of an improved way of teaching software development: it'd be interesting to think about how you utilize that skill gap to teach some of the finer details. I'm thinking about how you could use something like @raysan5's project template to teach new students what a good project looks like, but then when they advance, have them create the template for new students so they start to understand what kinds of considerations lead to the systems baked into the template they learned from
raysan5 Jun 17, 2021 12:11 PM
actually, in the University were I taught, students have several subjects connected along the 4 years, they have that template to start with but it evolves into a big engine with an IDE
12:12
at the end of the 3rd year, not much of the original code is still there
12:12
still, in terms of API design and architecture I think it can be greatly improved
Avatar
greensleevless Jun 17, 2021 12:12 PM
oh that's super cool
Avatar
Avatar
raysan5
still, in terms of API design and architecture I think it can be greatly improved
greensleevless Jun 17, 2021 12:13 PM
do you have some specific things in mind?
Avatar
raysan5 Jun 17, 2021 12:13 PM
well, not really because I was not allowed to do big changes...
12:14
University could be a bit reluctant to changes...
12:15
and more when those changes involve multiple subjects along 4 years
Avatar
ratchetfreak Jun 17, 2021 12:15 PM
even in a field that is moving so fast
Avatar
raysan5 Jun 17, 2021 12:15 PM
yeah...
Avatar
greensleevless Jun 17, 2021 12:18 PM
I just reread @Rudy's questions again and noticed: "What do students learn, in which weeks, and how?" Could be fun to put together a curriculum in the time we have left?
Avatar
Rudy Jun 17, 2021 12:18 PM
Might be cheating for @raysan5 ๐Ÿ˜„
Avatar
raysan5 Jun 17, 2021 12:19 PM
hahahaha... I was about to share the University one ๐Ÿ˜›
Avatar
greensleevless Jun 17, 2021 12:19 PM
haha or it'll just put our curriculum that much further ahead
Avatar
Avatar
greensleevless
I just reread @Rudy's questions again and noticed: "What do students learn, in which weeks, and how?" Could be fun to put together a curriculum in the time we have left?
demetrispanos Jun 17, 2021 12:19 PM
personally I think this is missing the forest for the trees, I don't think the main problem is that universities have mis-optimized their course sequences (edited)
12:19
if the problem were that mundane it would be solved by now
Avatar
Rudy Jun 17, 2021 12:20 PM
I think there is a problem with throwing python at someone, having them type print("hello world") and telling them they wrote their first program
Avatar
demetrispanos Jun 17, 2021 12:20 PM
indeed the main problem is the parentheses
lol_sobbing 4
12:21
(sorry, language design joke)
Avatar
Rudy Jun 17, 2021 12:21 PM
haha
Avatar
ratchetfreak Jun 17, 2021 12:21 PM
hello world is nice but far from a "first program"
Avatar
Rudy Jun 17, 2021 12:21 PM
i don't really miss python2 too much
12:21
but i know some folks like our friend zed have picked that hill to die on
12:21
off-topic, anyway
12:22
I do think there is a misconfiguration of courses to take someone from nil to competent developer
12:22
I do think it could be optimized
Avatar
Avatar
demetrispanos
if the problem were that mundane it would be solved by now
raysan5 Jun 17, 2021 12:22 PM
I think one problem with Universities is not the the syllabus but the teachers
12:24
It's difficult to find technically experienced teachers that can also teach and also have all the titles required to teach in the University
Avatar
demetrispanos Jun 17, 2021 12:25 PM
well a lot of that is just goal misalignment
12:25
the university is not especially interested in doing that
12:25
and there are very reasonable reasons, from a narrow perspective, for them to hold those views
Avatar
Avatar
demetrispanos
the university is not especially interested in doing that
raysan5 Jun 17, 2021 12:28 PM
but I think students require that kind of teachers to see the connection between their studies and the professional world (edited)
Avatar
demetrispanos Jun 17, 2021 12:28 PM
I agree, but for reasons that are complicated and historical that's not what universities are
12:28
even though that is how they are sold to the public
๐Ÿ‘ 1
Avatar
Avatar
ratchetfreak
hello world is nice but far from a "first program"
bumbread Jun 17, 2021 12:27 PM
sorry I don't understand. Do you mean that it is far too simple to be meaningful?
Avatar
Avatar
bumbread
sorry I don't understand. Do you mean that it is far too simple to be meaningful?
ratchetfreak Jun 17, 2021 12:28 PM
it's going through the motions of setting up the environment and verifying that it worked
Avatar
Avatar
demetrispanos
even though that is how they are sold to the public
raysan5 Jun 17, 2021 12:30 PM
actually, many Universities here in Spain use that "connection with companies" for internships as a selling point
Avatar
ratchetfreak Jun 17, 2021 12:30 PM
I wonder what the split is in acquiring skills between formal classes vs. the internships
Avatar
Avatar
ratchetfreak
I wonder what the split is in acquiring skills between formal classes vs. the internships
raysan5 Jun 17, 2021 12:32 PM
internship depends a lot on the company you get, in some companies you can really learn a lot
12:32
companies are supposed to teach interns but that's not always the case
Avatar
greensleevless Jun 17, 2021 12:33 PM
yea - the degree to which companies prioritize mentorship / intentional design of the internship is really important. Really a lot of the things we've discussed here apply to internships with different priorities.
Avatar
demetrispanos Jun 17, 2021 12:33 PM
yes, one of the many problems involved here is the economics of training
๐Ÿ‘ 1
12:34
it's a little tangential so I won't elaborate much, but given 1) programming skill can make you a good income, 2) teaching you programming skill takes a lot of effort from people who can make a good income, 3) teaching you to program doesn't guarantee you will program for me, then it's not surprising that training is spotty
12:35
selfishly, why should a business spend resources to make you wealthier with no guarantee they will get anything out of it
12:35
(obviously there are possibilities to recruit you down the line etc. I'm just giving the cartoon version)
Avatar
greensleevless Jun 17, 2021 12:35 PM
Yea - especially when internships function just as well at snapping up already skilled workers earlier.
12:35
ah you got there before me sorry for reiterating
Avatar
raysan5 Jun 17, 2021 12:35 PM
2) teaching you programming skill takes a lot of effort from people who can make a good income
this also applies to teachers... ๐Ÿ˜‰
(edited)
Avatar
demetrispanos Jun 17, 2021 12:36 PM
yes exactly, this is partly why it's hard to get good teachers no matter what the institution
๐Ÿ‘ 1
Avatar
ratchetfreak Jun 17, 2021 12:36 PM
and where the saying "those who can't, teach" comes from (edited)
Avatar
raysan5 Jun 17, 2021 12:37 PM
and the education quality problem intensifies... ๐Ÿ˜›
12:38
teaching is also a very passionate job
Avatar
demetrispanos Jun 17, 2021 12:38 PM
speaking personally, the salary a full-time entry level professor had when I was at USC was about 30-40% of my total income as a professional ML/AI engineer
12:38
and even less now
Avatar
raysan5 Jun 17, 2021 12:39 PM
@demetrispanos it's the same in Spain... but not only for entry-level
Avatar
raysan5 Jun 17, 2021 12:40 PM
you need to be a PhD to get a full-time position, if not, you are on contract per hours
Avatar
greensleevless Jun 17, 2021 12:40 PM
places like HMN are interesting in this discussion since there's plenty of people who are very willing to teach on here - albeit in bite sized increments.
๐Ÿ…ฑ๏ธ 1
๐Ÿ‡พ 1
๐Ÿ‡น 1
๐Ÿ‡ช 1
Avatar
Avatar
demetrispanos
yes exactly, this is partly why it's hard to get good teachers no matter what the institution
Rudy Jun 17, 2021 12:40 PM
also the fact that being a pretty good teacher in a bunch of concepts across the board won't get you hired, but being an expert in ML and shit at everything else will
๐Ÿ‘ 1
Avatar
Avatar
Rudy
also the fact that being a pretty good teacher in a bunch of concepts across the board won't get you hired, but being an expert in ML and shit at everything else will
demetrispanos Jun 17, 2021 12:41 PM
yes also true
Avatar
Rudy Jun 17, 2021 12:43 PM
Thereโ€™s also name bias, in both people and schools - i.e you might have a research paper with strong results but it will immediately met with more scrutiny than a paper submitted from an Ivy League, or even if youโ€™re the 5th author on that paper, or if the author is a big name in the field.
Avatar
Avatar
Rudy
Thereโ€™s also name bias, in both people and schools - i.e you might have a research paper with strong results but it will immediately met with more scrutiny than a paper submitted from an Ivy League, or even if youโ€™re the 5th author on that paper, or if the author is a big name in the field.
raysan5 Jun 17, 2021 12:45 PM
that's one thing that I don't like from University...
โž• 1
Avatar
Rudy Jun 17, 2021 12:45 PM
Itโ€™s really all pretty unfair, and counterintuitive to promoting the best possible advancement in any field
12:45
Especially when the vast majority of your PhDs are indeed โ€œtrue believersโ€
Avatar
raysan5 Jun 17, 2021 12:48 PM
@Rudy @demetrispanos @greensleevless @ratchetfreak @bumbread hey! I'm afraid I have to go...
๐Ÿ‘‹ 2
Avatar
bumbread Jun 17, 2021 12:48 PM
๐Ÿ‘‹
Avatar
Rudy Jun 17, 2021 12:48 PM
๐Ÿ‘‹ thanks for joining @raysan5 ! It was an honor
๐Ÿ‘ 1
Avatar
greensleevless Jun 17, 2021 12:49 PM
Yea same here (in the middle of moving) - this has been wonderful yall! Thank you! ๐Ÿ™‚
Avatar
raysan5 Jun 17, 2021 12:49 PM
thank you very much for the fishbowl, it was great! see you around! ๐Ÿ˜„
Avatar
Rudy Jun 17, 2021 12:49 PM
It's about the stop time anyway so I'm okay with wrapping up the official discussion and moving anything residual to #fishbowl-audience as we're losing participants
๐Ÿ‘ 1
Avatar
demetrispanos Jun 17, 2021 12:50 PM
yeah if there's nothing else pending, sounds good to me
Avatar
Rudy Jun 17, 2021 12:50 PM
cc @bvisness
Avatar
Rudy Jun 17, 2021 12:53 PM
Really appreciate everyone who was willing to participate.
Avatar
bvisness Jun 17, 2021 12:54 PM
All right then, thanks for participating, everyone!
๐Ÿ‡น 3
๐Ÿ‡พ 3
12:55
You can read the whole conversation from the beginning here: https://discord.com/channels/239737791225790464/707742863076622358/855129752028971058
12:55
And you can see all our other fishbowl conversations by checking the pinned messages!