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
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
raysan5Jun 17, 2021 10:07 AM
Maybe we could introduce ourselves and how we are connected with the topic?
RudyJun 17, 2021 10:07 AM
Sure, that would be great!
raysan5Jun 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.
CianMcJun 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
greensleevlessJun 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
ratchetfreakJun 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.
bumbreadJun 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
demetrispanosJun 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.
RudyJun 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.
ratchetfreakJun 17, 2021 10:06 AM
the podcast made the case that programming should be taught in a tradeschool instead of a uni
ratchetfreak
the podcast made the case that programming should be taught in a tradeschool instead of a uni
demetrispanosJun 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
ratchetfreakJun 17, 2021 10:08 AM
I kinda wanted to lean into some of those connotations though
demetrispanos
music school, art school, design school, architecture school, these are generally seen as equally prestigious as universities
ratchetfreakJun 17, 2021 10:08 AM
but could all be called trade schools
ratchetfreak
but could all be called trade schools
demetrispanosJun 17, 2021 10:09 AM
in a platonic sense certainly, you could throw in law and medical school too
bumbreadJun 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
greensleevlessJun 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?
ratchetfreakJun 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.
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?
demetrispanosJun 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)
CianMcJun 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?
ratchetfreakJun 17, 2021 10:28 AM
there are game dev schools already, though I'm unsure as to how effective they are
ratchetfreakJun 17, 2021 10:28 AM
broadening those out to general programming would be a natural step to take
greensleevlessJun 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?
greensleevlessJun 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)
demetrispanosJun 17, 2021 10:29 AM
@CianMc makes a good point that specifically for programming, there is a huge cost problem in getting good people
RudyJun 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"
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?
raysan5Jun 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
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.
CianMcJun 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
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.
greensleevlessJun 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
ratchetfreakJun 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
Rudy
@demetrispanos@CianMc one thing to consider is the market has already tried to address this in the form of "boot camps"
CianMcJun 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
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
demetrispanosJun 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
demetrispanosJun 17, 2021 10:33 AM
the idea that "anyone can be a programmer" is a real problem, and underlies the boot camp premise
demetrispanosJun 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
demetrispanos
@CianMc makes a good point that specifically for programming, there is a huge cost problem in getting good people
raysan5Jun 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...
CianMcJun 17, 2021 10:34 AM
Totally, along with all these courses you see advertised on youtube etc
demetrispanos
the idea that "anyone can be a programmer" is a real problem, and underlies the boot camp premise
raysan5Jun 17, 2021 10:34 AM
"learn programming in 20 days"
CianMcJun 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
demetrispanosJun 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
ratchetfreakJun 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
RudyJun 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
demetrispanosJun 17, 2021 10:37 AM
I think most traditional engineers could become programmers, that seems empirically true
demetrispanos
I think most traditional engineers could become programmers, that seems empirically true
CianMcJun 17, 2021 10:38 AM
There definitely is a certain shared problem solving mindset between those professions
RudyJun 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
raysan5Jun 17, 2021 10:37 AM
@Rudy Agree, it has MANY things in common!
greensleevlessJun 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)
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
demetrispanosJun 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)
RudyJun 17, 2021 10:39 AM
synthesis vs analysis
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
bumbreadJun 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.
raysan5Jun 17, 2021 10:39 AM
@bumbread well, I think it depends on the teacher
raysan5
@bumbread well, I think it depends on the teacher
ratchetfreakJun 17, 2021 10:39 AM
and the student
2
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.
CianMcJun 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)
RudyJun 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
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.
raysan5Jun 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...
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...
greensleevlessJun 17, 2021 10:42 AM
Curious: why do you say 'soft skills'?
greensleevlessJun 17, 2021 10:42 AM
or are your examples what you'd consider hard skills and you focus on other things?
RudyJun 17, 2021 10:42 AM
everyone also learns differently
greensleevless
Curious: why do you say 'soft skills'?
RudyJun 17, 2021 10:42 AM
I would also consider those hard skills
10:42
except things like attention to detail and patience
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)
bumbreadJun 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.
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.
CianMcJun 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
greensleevless
Curious: why do you say 'soft skills'?
raysan5Jun 17, 2021 10:44 AM
I mean, not that purely technical programming concepts but more a useful way to think to write code
CianMcJun 17, 2021 10:45 AM
would that not be more a case of theoretical vs practical skills/information?
greensleevlessJun 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?
bumbreadJun 17, 2021 10:46 AM
You only need to teach principles and show examples. The practice is something a student has to do themselves
greensleevlessJun 17, 2021 10:46 AM
Right, but ideally the institution facilitates that practice right? You have to learn how to practice too after all
CianMcJun 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
ratchetfreakJun 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
raysan5Jun 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)
CianMcJun 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
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)
CianMcJun 17, 2021 10:48 AM
that's a very good approach in my mind
demetrispanosJun 17, 2021 10:48 AM
one problem here is that "good" is contextual
demetrispanosJun 17, 2021 10:48 AM
good test-an-idea code is different from good ship-to-thousands-of-servers code
demetrispanos
one problem here is that "good" is contextual
CianMcJun 17, 2021 10:48 AM
agreed
RudyJun 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
Rudy
for example: writing non-clever code, always writing with the next person in mind
demetrispanosJun 17, 2021 10:49 AM
this is just not true for test-an-idea code though
1
CianMcJun 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
demetrispanosJun 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
RudyJun 17, 2021 10:50 AM
hard agree. I guess the problem is people tend to pipeline their "test an idea" code into production
1
demetrispanosJun 17, 2021 10:50 AM
yes this is an important counterbalancing weight
demetrispanos
and I think many many people suffer for lack of knowing "test an idea" practices
CianMcJun 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
CianMcJun 17, 2021 10:51 AM
a related skill is how to then progress from that test stage to a robust piece of software
CianMc
a related skill is how to then progress from that test stage to a robust piece of software
RudyJun 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
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
demetrispanosJun 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
CianMcJun 17, 2021 10:52 AM
same, but at least we're aware of it now, rather than not knowing where we went wrong
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
bumbreadJun 17, 2021 10:52 AM
Still suffering
Rudy
hard agree. I guess the problem is people tend to pipeline their "test an idea" code into production
greensleevlessJun 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
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
demetrispanosJun 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
greensleevlessJun 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
CianMcJun 17, 2021 10:54 AM
very much so, failure is punished rather than encouraged
CianMcJun 17, 2021 10:55 AM
which leads into something I've been thinking about, mandatory, but not graded assignments
RudyJun 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
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
greensleevlessJun 17, 2021 10:55 AM
absolutely
greensleevless
which our education system actively discourages
demetrispanosJun 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
demetrispanosJun 17, 2021 10:55 AM
schools say "you start with 100 points, and you lose points for making mistakes"
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)
demetrispanos
schools say "you start with 100 points, and you lose points for making mistakes"
greensleevlessJun 17, 2021 10:56 AM
The game designer in me went to "those are mechanically the same" but the perception is super important
demetrispanosJun 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
greensleevlessJun 17, 2021 10:56 AM
^ ah ok, yea - like the emphasis becomes "You got there" even if it took a while
RudyJun 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"
2
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
raysan5Jun 17, 2021 10:56 AM
I usually provide my students with a GitHub template to work over it
In this case they get the code from the instructor
raysan5Jun 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)
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)
greensleevlessJun 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?
raysan5Jun 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
RudyJun 17, 2021 11:01 AM
We're about an hour in
raysan5Jun 17, 2021 11:01 AM
wow! already an hour???
RudyJun 17, 2021 11:02 AM
Is there anything higher learning institutions, books, training courses, i.e. existing paths to learn software development, get right?
ratchetfreakJun 17, 2021 11:02 AM
they teach the theoretical well
11:02
though getting it down to practical code tends to be an issue
ratchetfreak
they teach the theoretical well
raysan5Jun 17, 2021 11:03 AM
well...
demetrispanosJun 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
ratchetfreakJun 17, 2021 11:03 AM
at least I learned the theories that my uni tried to teach me
raysan5Jun 17, 2021 11:03 AM
I think fundamentals are usually taught well
11:04
(well, maybe a bit outdated sometimes)
RudyJun 17, 2021 11:03 AM
let's be specific
RudyJun 17, 2021 11:04 AM
do we mean sorting algorithms? big O notation?
ratchetfreakJun 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)
raysan5Jun 17, 2021 11:04 AM
Logic, Maths, Physics, Computers Arquitecture (the basis)
CianMcJun 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
ratchetfreakJun 17, 2021 11:05 AM
or tie the foundation to the theoretical and make it practical
CianMcJun 17, 2021 11:05 AM
yep, I have been reading/doing nand2tetris lately and I love how it ties the two together
raysan5Jun 17, 2021 11:06 AM
the port of those fundamentals to practice is what I think could fail...
CianMcJun 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
RudyJun 17, 2021 11:07 AM
it's probably akin to true architecture
11:07
learning about physics and angles > actually creating something
raysan5
the port of those fundamentals to practice is what I think could fail...
greensleevlessJun 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)
CianMcJun 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
ratchetfreakJun 17, 2021 11:08 AM
unless they let the student BS their way out of the work of course
ratchetfreakJun 17, 2021 11:09 AM
but that's more of a lead the horse to water thing
ratchetfreak
unless they let the student BS their way out of the work of course
raysan5Jun 17, 2021 11:09 AM
yeap, but, again, it will depend on the teacher
CianMcJun 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
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
raysan5Jun 17, 2021 11:10 AM
agree!
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
RudyJun 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
Rudy
In my experience, and this was covered in the podcast a bit, but teaching is really an afterthought for professors
raysan5Jun 17, 2021 11:11 AM
also agree... and I think that's a big problem
1
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
raysan5Jun 17, 2021 11:10 AM
do you think fundamentals are actually conditioned by the way software is written today? should them?
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
RudyJun 17, 2021 11:09 AM
Could you elaborate
Rudy
Could you elaborate
greensleevlessJun 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.
2
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.
RudyJun 17, 2021 11:10 AM
love this
greensleevlessJun 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
greensleevlessJun 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
CianMcJun 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
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
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
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
bumbreadJun 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
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
demetrispanosJun 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
demetrispanosJun 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
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
bumbreadJun 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
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
demetrispanosJun 17, 2021 11:14 AM
I find that if you show kids they can do this in the browser, some are fairly interested
greensleevlessJun 17, 2021 11:14 AM
^ But this is exactly what things like Minecraft and Roblox are doing
raysan5
and so I created raylib
greensleevlessJun 17, 2021 11:12 AM
Ya so I'm curious what design considerations went into that?
greensleevlessJun 17, 2021 11:13 AM
Like, how is the design of raylib different because its designed for this purpose - with education in mind?(edited)
raysan5
and so I created raylib
bumbreadJun 17, 2021 11:12 AM
Oh I forgot that you are a person who created raylib lol
1
greensleevless
Ya so I'm curious what design considerations went into that?
raysan5Jun 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)
raysan5Jun 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)
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)
ratchetfreakJun 17, 2021 11:18 AM
immediate feedback on iteration is very important to keeping people engages in learning
it taught me how to use coroutines for waiting on something instead of sleeping
bumbreadJun 17, 2021 11:15 AM
I had fun building an actual computer in vanila minecraft
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)
greensleevlessJun 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?
demetrispanosJun 17, 2021 11:18 AM
re "revealing value", there's the saying "education is not filling a bucket, but lighting a fire"
6
demetrispanosJun 17, 2021 11:18 AM
(i.e. creating some self-sustaining process in the student)
demetrispanos
re "revealing value", there's the saying "education is not filling a bucket, but lighting a fire"
greensleevlessJun 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?
demetrispanos
re "revealing value", there's the saying "education is not filling a bucket, but lighting a fire"
bumbreadJun 17, 2021 11:20 AM
its a great quote
demetrispanos
(i.e. creating some self-sustaining process in the student)
raysan5Jun 17, 2021 11:20 AM
that's it!
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?
raysan5Jun 17, 2021 11:20 AM
what do you mean with externalities?
raysan5
what do you mean with externalities?
greensleevlessJun 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?
demetrispanosJun 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"
1
ratchetfreakJun 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
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"
greensleevlessJun 17, 2021 11:24 AM
That's interesting - I 100% agree, just never thought about it that way
greensleevless
That's interesting - I 100% agree, just never thought about it that way
demetrispanosJun 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"
1
ratchetfreakJun 17, 2021 11:26 AM
or kicking off a compile that takes the entire class to complete...
bumbreadJun 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
demetrispanosJun 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
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?
raysan5Jun 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.
greensleevlessJun 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
RudyJun 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
1
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
demetrispanosJun 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
and help them feel like it's ok that they don't feel like hollywood told them they would feel
RudyJun 17, 2021 11:29 AM
the swordfish scene lol
11:29
the worst
CianMcJun 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
greensleevlessJun 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)
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
raysan5Jun 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
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
greensleevlessJun 17, 2021 11:31 AM
That is really wonderful
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
RudyJun 17, 2021 11:30 AM
i think this has contributed to a subtle disdain I have always had for the word 'coding'
RudyJun 17, 2021 11:31 AM
even though there shouldn't be
RudyJun 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
RudyJun 17, 2021 11:31 AM
programming is a process
Rudy
programming is a process
raysan5Jun 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
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
demetrispanosJun 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
demetrispanosJun 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"
demetrispanosJun 17, 2021 11:32 AM
whereas today, making a polygon appear on the screen is like writing Wagner's Ring Cycle
1
ratchetfreakJun 17, 2021 11:32 AM
depends on which api you picked that day
ratchetfreak
depends on which api you picked that day
demetrispanosJun 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)
ratchetfreakJun 17, 2021 11:33 AM
like there wasn't a 5 hour opera on the applyII to put that polygon on screen
RudyJun 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?
demetrispanosJun 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?"
ratchetfreakJun 17, 2021 11:34 AM
because that's where people go to learn programming
1
raysan5Jun 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)
demetrispanos
for the first question I'd add "why do we even care if universities are good places to learn programming?"
RudyJun 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
RudyJun 17, 2021 11:35 AM
we have been trained to think that a university is the path to success
ratchetfreak
because that's where people go to learn programming
demetrispanosJun 17, 2021 11:35 AM
right, I agree, but this could in principle change
demetrispanos
right, I agree, but this could in principle change
ratchetfreakJun 17, 2021 11:35 AM
sure but that would require a mentality shift
demetrispanosJun 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
greensleevlessJun 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)
demetrispanos
the problem is that people have expectations for CS departments that are not realistic
RudyJun 17, 2021 11:36 AM
but they're sold that
11:37
chicken egg problem
demetrispanosJun 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
demetrispanos
so perhaps fixing the universities is not the most important avenue
raysan5Jun 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
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
demetrispanosJun 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
CianMcJun 17, 2021 11:38 AM
i don't think universities necessarily need to change, societies perception and expectation of the them does
ratchetfreakJun 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
CianMcJun 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.
RudyJun 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
Rudy
maybe the real lesson is universities shouldn't be the perceived route for becoming a developer
demetrispanosJun 17, 2021 11:39 AM
this is, I think, the most important thing
CianMcJun 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
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
raysan5Jun 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...
RudyJun 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
raysan5Jun 17, 2021 11:44 AM
that's it
ratchetfreakJun 17, 2021 11:44 AM
because college is the first time they are free from the rigor of high school
raysan5Jun 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
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...
demetrispanosJun 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
demetrispanos
but as I mentioned in the podcast, I didn't study CS
raysan5Jun 17, 2021 11:45 AM
I neither studied CS
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...
greensleevlessJun 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)
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?
greensleevlessJun 17, 2021 11:48 AM
Jumping back to the second question - thoughts?
raysan5Jun 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?
demetrispanosJun 17, 2021 11:49 AM
well, we can start from the closest things available, which I think are gamedev schools (the programming arms)
demetrispanosJun 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?
raysan5Jun 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)
ratchetfreakJun 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
ratchetfreakJun 17, 2021 11:50 AM
those are definitely second year subjects after they are comfortable with imperative programming already
ratchetfreak
those are definitely second year subjects after they are comfortable with imperative programming already
greensleevlessJun 17, 2021 11:52 AM
Do you have thoughts on how you do that first year?
ratchetfreakJun 17, 2021 11:53 AM
assuming they come with blank slate at the very least teach them a language
ratchetfreak
assuming they come with blank slate at the very least teach them a language
demetrispanosJun 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
greensleevlessJun 17, 2021 11:54 AM
I mean, that's true of design school too - I had to have a portfolio to even apply
demetrispanosJun 17, 2021 11:54 AM
yeah sounds similar I just didn't know
raysan5Jun 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
demetrispanos
I don't think there's a serious music school that accepts students who don't know either an instrument or composition already
greensleevlessJun 17, 2021 11:58 AM
what about this did you want to explore?
greensleevless
what about this did you want to explore?
demetrispanosJun 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
greensleevlessJun 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)
ratchetfreakJun 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
greensleevlessJun 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.
demetrispanosJun 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
greensleevlessJun 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
demetrispanosJun 17, 2021 12:07 PM
yeah obviously if the goals are not around programming as a practice this isn't necessarily a problem
greensleevlessJun 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
ratchetfreakJun 17, 2021 12:09 PM
teaching how to build APIs
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
raysan5Jun 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
greensleevlessJun 17, 2021 12:12 PM
oh that's super cool
raysan5
still, in terms of API design and architecture I think it can be greatly improved
greensleevlessJun 17, 2021 12:13 PM
do you have some specific things in mind?
raysan5Jun 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
ratchetfreakJun 17, 2021 12:15 PM
even in a field that is moving so fast
raysan5Jun 17, 2021 12:15 PM
yeah...
greensleevlessJun 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?
RudyJun 17, 2021 12:18 PM
Might be cheating for @raysan5
raysan5Jun 17, 2021 12:19 PM
hahahaha... I was about to share the University one
greensleevlessJun 17, 2021 12:19 PM
haha or it'll just put our curriculum that much further ahead
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?
demetrispanosJun 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
RudyJun 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
demetrispanosJun 17, 2021 12:20 PM
indeed the main problem is the parentheses
4
12:21
(sorry, language design joke)
RudyJun 17, 2021 12:21 PM
haha
ratchetfreakJun 17, 2021 12:21 PM
hello world is nice but far from a "first program"
RudyJun 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
demetrispanos
if the problem were that mundane it would be solved by now
raysan5Jun 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
demetrispanosJun 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
demetrispanos
the university is not especially interested in doing that
raysan5Jun 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)
demetrispanosJun 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
ratchetfreak
hello world is nice but far from a "first program"
bumbreadJun 17, 2021 12:27 PM
sorry I don't understand. Do you mean that it is far too simple to be meaningful?
bumbread
sorry I don't understand. Do you mean that it is far too simple to be meaningful?
ratchetfreakJun 17, 2021 12:28 PM
it's going through the motions of setting up the environment and verifying that it worked
demetrispanos
even though that is how they are sold to the public
raysan5Jun 17, 2021 12:30 PM
actually, many Universities here in Spain use that "connection with companies" for internships as a selling point
ratchetfreakJun 17, 2021 12:30 PM
I wonder what the split is in acquiring skills between formal classes vs. the internships
ratchetfreak
I wonder what the split is in acquiring skills between formal classes vs. the internships
raysan5Jun 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
greensleevlessJun 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.
demetrispanosJun 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)
greensleevlessJun 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
raysan5Jun 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)
demetrispanosJun 17, 2021 12:36 PM
yes exactly, this is partly why it's hard to get good teachers no matter what the institution
1
ratchetfreakJun 17, 2021 12:36 PM
and where the saying "those who can't, teach" comes from(edited)
raysan5Jun 17, 2021 12:37 PM
and the education quality problem intensifies...
12:38
teaching is also a very passionate job
demetrispanosJun 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
raysan5Jun 17, 2021 12:39 PM
@demetrispanos it's the same in Spain... but not only for entry-level
raysan5Jun 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
greensleevlessJun 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
demetrispanos
yes exactly, this is partly why it's hard to get good teachers no matter what the institution
RudyJun 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
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
demetrispanosJun 17, 2021 12:41 PM
yes also true
RudyJun 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.
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.
raysan5Jun 17, 2021 12:45 PM
that's one thing that I don't like from University...
1
RudyJun 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β
raysan5Jun 17, 2021 12:48 PM
@Rudy@demetrispanos@greensleevless@ratchetfreak@bumbread hey! I'm afraid I have to go...
2
bumbreadJun 17, 2021 12:48 PM
RudyJun 17, 2021 12:48 PM
thanks for joining @raysan5 ! It was an honor
1
greensleevlessJun 17, 2021 12:49 PM
Yea same here (in the middle of moving) - this has been wonderful yall! Thank you!
raysan5Jun 17, 2021 12:49 PM
thank you very much for the fishbowl, it was great! see you around!
RudyJun 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
demetrispanosJun 17, 2021 12:50 PM
yeah if there's nothing else pending, sounds good to me
RudyJun 17, 2021 12:50 PM
cc @bvisness
RudyJun 17, 2021 12:53 PM
Really appreciate everyone who was willing to participate.
bvisnessJun 17, 2021 12:54 PM
All right then, thanks for participating, everyone!