The Poor Standard Of Teaching In Computer Science | Aino Corry In The Engineering Room Ep. 17

แชร์
ฝัง
  • เผยแพร่เมื่อ 13 มิ.ย. 2024
  • Aino Corry is an agile expert, a teacher and a consultant. She is an expert on how teams work, and how to help them to do better.
    She is also an extremely popular public speaker with a wickedly dry sense of humour.
    Aino has been a prolific conference organiser and has been involved in selecting the content for some of the worlds major software conferences over many years, including GOTO, YOW! and QCon.
    From her 25 years experience teaching computer skills in academia and industry, Aino talks to Dave about what is wrong with Computer Science teaching at Universities (or at least why it often isn't helpful to actually working in IT), her research into this problem and her work to help teachers improve their teaching.
    In this episode of "The Engineering Room" Dave Farley and Aino Corry discuss the eductation of software developers, and how we can all learn to do better.
    -
    ⭐ PATREON:
    Join the Continuous Delivery community and access extra perks & content!
    JOIN HERE ➡️ bit.ly/ContinuousDeliveryPatreon
    ___________________________________________
    🖇 LINKS:
    🔗 Dave has a playlist of videos to guide junior developers ➡️ • For Junior Developers
    ___________________________________________
    📚 BOOKS:
    📖 Retrospectives Antipatterns, by Aino Corry ➡️ amzn.to/2Py8BxT
    📖 Dave’s NEW BOOK "Modern Software Engineering" is available as paperback, or kindle here ➡️ amzn.to/3DwdwT3
    and NOW as an AUDIOBOOK available on iTunes, Amazon and Audible.
    📖 The original, award-winning "Continuous Delivery" book by Dave Farley and Jez Humble ➡️ amzn.to/2WxRYmx
    📖 "Continuous Delivery Pipelines" by Dave Farley
    Paperback ➡️ amzn.to/3gIULlA
    ebook version ➡️ leanpub.com/cd-pipelines
    NOTE: If you click on one of the Amazon Affiliate links and buy the book, Continuous Delivery Ltd. will get a small fee for the recommendation with NO increase in cost to you.
    -----------------------------------------------------------------------
    📄CHAPTERS
    0:00 Welcome
    0.33 Introducing Aino Vonge Corry
    2:11 Improving Computer Science Teaching
    8:21 The gap between graduate skills and working in IT
    11:19 Understanding v Learning Objectives
    13:23 The mismatch between an academic approach to a very practical subject
    16:33 You can’t learn this stuff from a book
    18:10 But industry isn’t training people either
    19:33 Preparing for the many different roles in IT
    25:15 Is it better to hire junior devs without a computer science degree?
    27:47 Achieving a change, not just getting the certificate
    31:31 Improving Computer Science Teaching
    34:30 Some education kills curiosity
    37:00 The spectrum from Global to Sequential Learning
    38:47 Make learning examples relatable
    41:23 Cognitive Load Theory
    44:07 The role of the student in technical education
    49:08 Be comfortable with your ignorance
    50:50 Learning from each other
    51:51 Ambivalent about Certification
    55:40 Threshold concepts, e.g recursion
    57:42 The value of learning from the best programmers
    1:02:47 Thank You
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 89

  • @JeffryGonzalezHt
    @JeffryGonzalezHt ปีที่แล้ว +13

    Fantastic conversation. One of the things I do is about four times a year at a Fortune 500 in the states is I get the newly hired software developers, usually right out of CS programs, for two weeks (~80 hours). It's the beginning of their training at this company, and so much mentioned here resonates. They largely are not taught how to write software as part of a team, how to translate business requirements into code, etc. They come out, to use the analogy from the talk here, have a lot of "sequential" knowledge, but, understandably, don't have much context for it. The whole CS vs. Software Engineering thing is real. What percentage of professional software engineers are working on optimizing garbage collection, to use your example, vs. writing line of business applications? I'd say the majority of professional software engineers are *applying* other people's code to make it "real" in terms of deliverable software. I remember in the 80's, in my education, one of our senior projects was implementing a subset of the SQL-72 DML in C. If a company now, other than a database vendor, paid developers to do that kind of work it would be ridiculous. One thing that really resonated with me in this discussion is the talk about how new developers feel like they should know everything already. The phrase "Imposter's Syndrome" is in vogue now, and it's such BS. I've always dreamed of starting a "school" for recent CS/CE grads that would be like a "bootcamp" (or maybe "Officer's training") where you work together for six months as a team to build a real-world application, practicing CI/CD, agile, all that - before you throw them to the wolves writing code for a >50 billion a year corporation. Having something they could show they helped build (with a source control contribution history!) would be way more helpful than any "certification". Super helpful conversation. Thank you both!

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว +5

      Thank you :-) And I think the Bootcamp you talk about would be brilliant!

  • @SuperPranx
    @SuperPranx ปีที่แล้ว +9

    90% of what I do today, as a senior developer, are things I learned on the job, from my more experienced colleagues. I still consider Uni to be an extremely valuable part of my education because the 10% I learned there were the basics of how stuff works (and more importantly, why), which prepared me to learn the other 90%. I consider learning about algorithms and data structures to be an essential part of my education.
    What I would’ve liked to have more of, are practical things I was going to need. I got my 4y bachelor’s degree almost 15 years ago and until I started working I had never even heard of testing, let alone told how to write a single test, or how to set up a server, or even how to deploy/package/deliver the software I’m working on… so much has changed since then and yet there are still so many things missing…

  • @dehman6836
    @dehman6836 ปีที่แล้ว +18

    Thanks for sharing your experience about this. I've studied CS in a well-known institute in my country, and aside from my final year's project, I felt that I wasted my time there. Mostly because the people who were teaching had nothing to do with the industry and had never worked a job other than teacher or assistant in an auditorium.

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว +3

      Thank you :-) Yes, which we cannot blame them for, but it is still unfortunate.

    • @llothar68
      @llothar68 ปีที่แล้ว

      Well a university should prepare for research and development and not daily job works.
      Thats a huge difference. And i got a lot of theory out of my CS courses opening a window of view i wouldn't get otherwise.
      I know that current students are failing on theory when they aren't able to write a specification for a protocol or language in BNF or other formal language. And i know they failing in practice if they can't write a compiler for a language without bison or other parser generators.

  • @peterlinddk
    @peterlinddk ปีที่แล้ว +4

    I teach computer science in Denmark - not at university though, but at associate degree-level, I think it is a very danish invention, we have these "erhvervsakademi" that gives you half a bachelor, and is somewhere between trade school and university.
    We really try to give our students as much of a practical experience as possible - we work with (some of) the actual tools and languages used in industry, we make the students run their own projects every semester (where they have to use frameworks or methods like Scrum, XP, UP, AUP, depending on the year), they have to work from user stories and build testing and deployment pipelines and all that - we focus much more on building products than teaching the theory.
    But our graduates are still having a hard time competing with those with a masters from university - a lot of companies only hire masters, not because they actually need employees to invert binary trees or calculate running time of algorithms, or implement a sorting algorithm from scratch, but because they think that a longer education == more knowledge in the field. Even though they always get new candidates that don't really have any experience in testing, running projects, or even building anything larger than a few hundred lines of code.
    I think that it is a big misunderstanding that university level "Computer Science" should have anything to do with working "as a programmer", just like I wouldn't expect a carpenter to have a 5year degree in "wood and nail science". And it is something I would like to change.

    • @therealdecross
      @therealdecross ปีที่แล้ว

      This kind of degree also exists in Brazil.

  • @actionimme
    @actionimme ปีที่แล้ว +3

    This was a wonderful episode! When I studied Computer science for a year at the university, after a previous career i psychology, I had some heated. Discussions with my teachers and the programme leaders. I complained about the pedagogy, the teachers complained about lazy students. Of the 70 students that started with me, more than half dropped out during the first year...

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว +2

      Thank you :-) That sounds very typical, unfortunately. Teachers find themselves blamed for bad teaching and if they do not know how to do something about it, they lash out. We need to offer the teachers ways to improve their teaching, but historically that has not had priority at universities. On the contrary it seems like a badge of honour for students to "get it" without any help from teachers....

  • @brownhorsesoftware3605
    @brownhorsesoftware3605 ปีที่แล้ว +2

    Thanks for this excellent and dry conversation. Looking forward to those future contributions!
    After 46 years I can safely say that the most important and valuable skill I've learned as a software engineer is asking questions.

  • @dodandos
    @dodandos ปีที่แล้ว +2

    Thank you so much Aino for presenting us your knowledge.

  • @DevinWeaver
    @DevinWeaver ปีที่แล้ว +14

    My CS degree was 101 content calling simple things like Bubble Sort “Advanced” and the professors got a lot of things wrong. I was sad that I had to teach myself OO Design and that I got more value from a 30 minute TH-cam video or conference talk then I did from a full semester course.

    • @GeneraluStelaru
      @GeneraluStelaru ปีที่แล้ว +3

      Speaking of bubbles, CS teachers are in a field that's in a state of perpetual change, yet very few of them are in touch with what's going on in production. They're very much out of touch on anything beyond embedded.

    • @BryonLape
      @BryonLape ปีที่แล้ว

      Sounds like the professor I had for a compiler writing course 35 years ago. So how he had doctorates in both Math and CS, but his graduate TA had to correct him multiple times during lectures.

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว +3

      That is indeed sad. On the positive side, you taught yourself from the beginning so you know how to continue to do that!

    • @dageekoftheweek
      @dageekoftheweek ปีที่แล้ว

      I graduated with a bachelor's degree in CS in 2017, I have had a single job in that time, QA, (clicking on buttons,not even coding or editing code)
      This talk is 100% true

    • @orange-vlcybpd2
      @orange-vlcybpd2 ปีที่แล้ว

      Well, universities provide fundamental knowledge. Knowledge which is not bound to some specific implementation technology or environment. And that is why for many university is a wrong place to get practical knowlege of the profession. But on the other hand, knowing the fundamentals and abstractions, like let's say Turing Machine, will definitely help them to be better at what they do. Universities are good at shaping your abstractions, shaping your way of thinking, to shaping and widening your problem analysis repertoire. And definitely the wrong place to learn something like 'frontend development', because this topic too much depends on the environment (platform, OS, p. language, etc) , and therefore not fundamental. On the other hand, design of programming languages fits very well into the university program. And of course one practical skill the university teaches you first and foremost: how to educate yourself.
      Don't think that university is a blackbox, human in - computer scientist out. It much depends on a type of a person. And not for everyone university is a good fit, for their learning type.

  • @devagr
    @devagr ปีที่แล้ว +6

    Best way to enjoy this episode - take a shot every time someone says the word "teaching"

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว +3

      Sounds like a very Danish way to watch it :-) Enjoy!

    • @ContinuousDelivery
      @ContinuousDelivery  ปีที่แล้ว +5

      It may be a bit risky, don't operate any heavy machinery at the same time 🤣

    • @devagr
      @devagr ปีที่แล้ว +4

      @@ContinuousDelivery does a deployment pipeline count as heavy machinery

    • @ContinuousDelivery
      @ContinuousDelivery  ปีที่แล้ว +1

      @@devagr 🤣🤣

  • @jimhumelsine9187
    @jimhumelsine9187 ปีที่แล้ว +2

    This was a great conversation that generated a lot of ideas in my head. I apologize for how long this post may go.
    As others have posted, computer science != software engineering. To borrow an analogy that I think Dave's used in other videos, Computer Science is to Software Engineering as Chemistry is to Chemical Engineering. Both pairs have lots of overlap, but they are different disciplines.
    Computer Science is a hard science. Many of the problems, at least those seen by undergraduate students, are well defined and narrowly scoped. The solutions can often be proven correct with mathematical rigor. Data Structures and Algorithms are prime examples.
    Software Engineering is a soft science. Many of the problems are fuzzy and could be broadly scoped. Software engineers provide solutions to customers and users who may not be able to describe what they want or need. They may not even know themselves. Software engineering is also about tradeoffs. There may be several competing approaches to solve a problem, and their resource constraints may be competing and contradictory.
    Computer Science is about how to get the computer to do what you want it to do.
    Software Engineering is about how to communicate to others what you wanted the computer to do and do it such a way that others can maintain or enhance your architecture, design and code. The skills one needs to be a good software engineer may be more closely aligned with Sociology or Psychology than Computer Science.
    Aino mentioned professors who lecture and think that their students will just understand. I suspect that many professors, in possibly other disciplines too, suffer from the Curse of Knowledge. en.wikipedia.org/wiki/Curse_of_knowledge. This is forgetting what it was like to not understand the subject material.
    And at the other end of the spectrum, we run the risk of professors who teach material that they've only read in books. This starts to get into the Dunning-Kruger Effect. en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect. This is where a little knowledge is confused with a lot of knowledge.
    Should there be Software Engineering degrees much like there are Chemical Engineering degrees? What overlaps with the Computer Science curriculum? I think there are some universities offering Software Engineering, but not to the degree that Computer Science is offered.
    Would the traditional 4 years be enough time to get a Software Engineering degree. There's a lot to learn. And would students be receptive some of these ideas? I think a lot of Software Engineering practices aren't appreciated until one has suffered in the trenches for a while.
    Some universities in the US, and probably other countries, feature a CO-OP program. Students alternate semesters between classes and industry experience. While I didn't do this myself, I feel like it could be a great way for students to be exposed to the real world to see how the sausage is really made. Plus, it may provide the trench experience to prime them to be more receptive to learn Software Engineering practices in the classroom.
    And while we're at it, let's rotate the professors through industry every few years as well. I'm not thinking about a research position, but as a member of a development team. They need to experience what they're teaching as well.
    Finally, I have two other podcast references along these lines. I'm sure there are many others too.
    At the risk of appearing a bit self-serving, I was the guest on the Tabs and Spaces podcast where we discussed this topic: tabsandspaces.libsyn.com/103-what-they-didnt-teach-you-in-uni-feat-jim-humlesine
    John Ousterhout was the guest on Legacy Code Rocks! where he talked about how he tries to emulate real world experiences in his Stanford design course: legacycode.rocks/episodes/137/

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว

      I think there are a lot of discussions to be taken. It seems there are some disagreements on terms and reasons for studying. I started studying mathematics, but had to learn to program as part of that and fell in love with programming.

    • @ContinuousDelivery
      @ContinuousDelivery  ปีที่แล้ว

      I agree with a lot of what you say Jim. I think the 4 years for a SW Engineering degree is fine, but like engineers straight out of college in other disciplines, you don't let them loose in designing space ships and bridges. There is also graduated, on the job, supported, learning.
      In conversations like these, I am always reminded of Fred Brook's model in "Mythical Man Month" where he talks about SW dev being like Surgical teams, with consultants assisting junior doctors. Thanks for the references.

  • @bleki_one
    @bleki_one ปีที่แล้ว +1

    The point made by Aino about difference between problems you have to solve at school and at work.
    I heard somewhere great explanation of this. It is because school problems have know answers. There is an expected result which can be easily marked. And students are expected to provide expected answer. In the industry we need to find the solution to problems which have no defined answer, otherwise no one sane would waste money to reinvent the wheel.
    And as result when we leave the school we are prepared to give solutions to well defined problems with already defined answers. Not so much to cope with ambiguity

  • @dehman6836
    @dehman6836 ปีที่แล้ว +4

    Key takeaways:
    - Give relatable examples.
    - Cognitive load theory (don't say too much, don't say too little)
    - People learn when they apply the knowledge that they're taught.

    • @IronCandyNotes
      @IronCandyNotes ปีที่แล้ว

      the whole frontal-assault/eat-or-die-teaching is just madness but fits well in the social darwinist view of the people who run society

  • @raulsaavedra709
    @raulsaavedra709 ปีที่แล้ว +3

    Watched only the first half hour, but it took me more than an hour because I was taking notes. Must say this is the most significant video about CS education I have ever seen. Need to stop and take a brake for processing before continuing with the second half. Will comment more later after that.

  • @amyIsFlexable
    @amyIsFlexable ปีที่แล้ว +1

    I really enjoyed this conversation, and I wanted to dig into the point she made about how students who had learned recursion couldn't do it on a test 2 years later. As a working programmer, I frequently encounter skills I understood at some point but haven't used in a while. And I think the way most programmers handle this is to just go look it up and relearn it. The field is so vast there's no way to hold 100% of what we need to know in working memory all the time. What makes an expert is that you can quickly find a good resource to get back up to speed on the things you forgot since last time. Am I alone in feeling this way?

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว

      Agree. And for every time you have to relearn, it becomes easier.

  • @travisabrahamson8864
    @travisabrahamson8864 ปีที่แล้ว +1

    This conversation hit on so many things I try to foster at every company I've ever worked with. Enjoyed. I could have kept on listening to the conversation.

  • @StreetsOfBoston
    @StreetsOfBoston ปีที่แล้ว +1

    Looking forward to what you will bring to this channel, Aino!

  • @serroba
    @serroba 5 หลายเดือนก่อน

    Such a great conversation!! Really resonated a lot with my own experience. Loved the thoughts you guys shared. Thank you!!!

  • @CodeShudder
    @CodeShudder ปีที่แล้ว +1

    I always thought other people get understanding from listening someone's explanation and felt like my brain works differently, because to truly understand something I need to break that explanation into pieces and recreate it on my own (introducing some modifications).

  • @gullijons9135
    @gullijons9135 ปีที่แล้ว +1

    23:04 Paraphrased: "Should we have universities for academic and universities for practical?" - YES, GOD YES! I had several good professors in my studies but most of what was taught was completely academic, having already worked as a developer at the time and done a lot of my own programming, and with no interest in an academic career I would have chosen a practical side in a heartbeat. Only a tiny minority will stay in academia so it makes no sense teaching everyone to become professors.
    Nothing wrong with the theoretical stuff but when you know at the beginning of a course that none of what will be taught is even remotely relevant in the practical world it's pretty hard to get motivated, let alone keep that motivation through a whole semester.

  • @bleki_one
    @bleki_one ปีที่แล้ว +1

    From perspective if my still short career in Software Engineering (6 years) I can say that I was lucky with my university time:
    1. I had few PhD students as lecturers and they try to teach us many useful skills. Linux, git, unit testing comes to my mind right now.
    2. I joined local development community when still at 1st year of my course. I could ask all these 101 questions to practicioners.
    3. I'm not affraid to ask questions, even these which seems stupid.
    4. I was a mature student who was highly motivated and concentrated on what I want to get from the degree
    Probably some more. I guess what I want to say is that each student can do more for themselves than just attending lectures. And good teacher should be able to show them that there is more, feed that curiosity maybe not by cramping more knowledge into slides but just showing "other paths" to follow

  • @petropzqi
    @petropzqi ปีที่แล้ว +1

    I wonder what Frodo would have said when he reflected about his trip to Mordor.

  • @ApprendreSansNecessite
    @ApprendreSansNecessite ปีที่แล้ว +1

    That was such an interesting conversation.
    I had this experience with a junior who had just graduated and who was very puzzled by the whole project management process and the development practices that go along with it. I should have expected it, but for some reason I just assumed that a software engineer would have learned about it at school. At least in theory. I was wrong and it lead to misunderstandings.

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว

      Thank you. Yes, assumptions can lead to bad misunderstandings..

  • @nikitaproit
    @nikitaproit ปีที่แล้ว +1

    4 Key Tips:
    0. Improve the relation between the student and the content (30:11) instead of your relation to the content. 29:56
    1. Analogies must be related to something that already have in your (audience) brain. 40:02
    2. Thinking about goals instead of just thinking about what the students should understand. 41:04, 11:35
    3. Don't put so much information information into your lecture. 42:13

    • @nikitaproit
      @nikitaproit ปีที่แล้ว +1

      In programming, we have very close practical recommendation:
      0. don't fix someone else's code during a code review (Instead, you should probably point to a place where you can read something that will allow the implementor to correct the code.)

    • @nikitaproit
      @nikitaproit ปีที่แล้ว +1

      I can add that university education is often against teamwork, because university education is based on personal assessments. Although students quite often resist this. In my time, the problems issued at the university differed only in the personal initial data, so we worked together on their solution, and then simply substituted personal initial data before sending the work.

    • @jimhumelsine9187
      @jimhumelsine9187 ปีที่แล้ว

      Good computer scientists start counting with zero.

  • @seinfan9
    @seinfan9 9 หลายเดือนก่อน

    An academic's motivation for doing their work is looking for a topic to do research on that would garner as much funding as possible. They are not inherently looking to solve a problem that the market needs a solution for. In fact, finding a solution is actually the antithesis of their academic work: they actually just want to characterize the phenomena that they are studying. They make contributions to research and maybe someday they can bank on royalties if a company ever were to want to implement their experimental set ups and need them for consulting. The more convoluted the process, the more they are necessary in being involved.

  • @mineshpatel2424
    @mineshpatel2424 ปีที่แล้ว +1

    Would a technical college like what we have for metalworkers and woodworkers make more sense for engineering?

  • @onursahin7970
    @onursahin7970 ปีที่แล้ว +2

    Disclaimer: I am commenting before watching the video.
    Computer Science is not Software Engineering. I think schools could do better but they do fine for teaching the Computer Science. Those programs never claim that they are teaching Software Engineering. The problem in my opinion is that people want to be software developers and not computer scientists but most schools offer only computer science and people don't know the difference. The result is disappointment by the students.

    • @ContinuousDelivery
      @ContinuousDelivery  ปีที่แล้ว

      I don't think that they do do fine at teaching the Computer Science. I think we have a weird view of what "CS" means and so we agree that what they teach is what is defined by the teaching of "CS". For example, how many CS course teach the experimental method? How many teach how to solve problems, you learn that kind of thing on Physics or Chemistry courses?

  • @fredoverflow
    @fredoverflow 11 หลายเดือนก่อน

    Dave, you seem to be wearing a Lavalier microphone, but it doesn't sound like you're actually using it? Kinda weird that the guest sounds better than the host... Nevertheless, great content!

  • @jaaguitar
    @jaaguitar 11 หลายเดือนก่อน

    Juniors have no problem picking up a new Programming language. What they lack is general computer science knowledge and professionalism. So there is a need for good education.

  • @bleki_one
    @bleki_one ปีที่แล้ว +1

    Maybe idea for another video. What are you looking for in graduates when hiring for entry position? They can't compete with experience, past projects, places they work before. Even Computer Science degree is not always an advantage. So what makes you think. I see potential in this person and I'm willing to invest my resources in them?

    • @ContinuousDelivery
      @ContinuousDelivery  ปีที่แล้ว

      I talk about that, and other aspects of interviews, in this video: th-cam.com/video/osnOY5zgdMI/w-d-xo.html

  • @DavidRodenas
    @DavidRodenas ปีที่แล้ว +2

    How to use MobProgramming or PairProgramming in University?

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว

      Thank you for the question. That should be doable. Some universities already focus on group work and peer review. That could easily expand into mob and pair programming under surveillance of TAs or even the lecturer.

    • @georgehelyar
      @georgehelyar ปีที่แล้ว +2

      It's a slippery slope if you do group work in university and then share credit for it though.
      I always ended up doing all the work, and one group I was in there were two members who claimed they did it all and so they should get all the credit and the rest of the group did none.
      I hated having my grades dependant on other people.
      That said, it's still really important that people learn how to work as a team, it just needs to be graded fairly.

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว +1

      @@georgehelyar Not a big fan of group exams myself, but working together like that, I believe, would still be valuable

  • @alessandrob.g.4524
    @alessandrob.g.4524 ปีที่แล้ว +1

    Who is the author of that book she mentioned, "Teaching After Now"?

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว

      I don't remember which book I mentioned that sounded like that, could you give me more details?

    • @alessandrob.g.4524
      @alessandrob.g.4524 ปีที่แล้ว

      @@ainocorry3004The teacher you mentioned at around 22:10. You said he wrote a book. What is his name and what is the title of the book he wrote?
      Thanks in advance

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว

      @@alessandrob.g.4524 It was Henrik Bærbak Christensen; "Flexible, Reliable Software"

    • @alessandrob.g.4524
      @alessandrob.g.4524 ปีที่แล้ว

      @@ainocorry3004 Thank you!

  • @raulsaavedra709
    @raulsaavedra709 ปีที่แล้ว +1

    @ainocorry3004 Ok here some questions and feedback. Following specific comments in the video.
    With respect to academia vs. industry first:
    @9:39 So there's been a big mismatch.
    Completely agree. But I think the serious magnitude of that mismatch is still not being properly assessed.
    Academia ultimately wants to produce excellent researchers and professors, e.g. scholars. PhD candidates must be able to show both "breadth and depth of knowledge" in their respective specialization areas, must indeed be able to meta-read entire collections of books and papers in full and in depth, must be able to carry a phd-level research, write a (likely boring as you say :) phd thesis in full, and also typically must successfully publish some number of research papers. Academia has clearly this focus in building such "scholar throughput capacity and competencies," if we could call them that, for someone to be able to later conduct and continue independent research in that area. Oddly enough, the more specialized you get in your research area, the fewer job opportunities you are the best fit for, in fact even within academia. But in any case, industry rarely cares about such scholar throughput competencies. The chasm is massive. Academia and industry handle massively different teaching/learning goals because there are massively different priorities and objectives overall.
    That goes for PhD levels, but let's move down to master's. There is an online page that can be found by searching for "The case against CS master’s degrees". That page claims that at least some (industry) recruiters seem to operate under the general impression that an MS degree is one of the strongest indicators of poor technical interview performance. So much so to even claim that many startups are "catching on to how useless an MS degree can be." This was a shocking revelation for me. I wonder if any of you have comments on this.
    But still within academia, let's now move down to undergraduate degrees. There is for example this website called "Teach Yourself Computer Science" which lists 9 core topics for CS. I think that is a very representative working list of what core CS topics appear in the curriculum of any modern CS major in any university degree anywhere in the world:
    1) Programming
    2) Computer Architecture
    3) Algorithms and Data structures
    4) Math for CS
    5) Operating Systems
    6) Computer Networking
    7) Databases
    8) Languages and Compilers
    9) Distributed Systems
    As important as these core topics are, within the scope of those I don't see where very important things in current industry practices could properly fit. Examples: nothing less than CI/CD itself, also agile methodologies, tools and practices, and actual first-hand teamwork experience.
    But there are what we could call many other big elephants in an IT room that do not properly belong in any of those core subjects: IT operations, IT infrastructure/platforms (e.g. systems design,) IT security, documentation, compliance, ...
    Industry itself is showing signs that the academic vs. industry mismatch is just not sustainable, and the cracks are showing. Which is why even some top elite IT companies explicitly say they don't care about actual degrees or background for some ITC positions, they encourage interested candidates to apply regardless of university degree or background.
    Yet... they say so, but then there's the industry side of the problem. What Dave mentions at about 18:50: Industry wants to hire people that can bring all the skills in all of the technology, yet they are not willing to train them.
    ITC Industry is like an orchestra needing musicians. That means, they want very competent performers, highly skilled in playing their specific instruments from day 1. Maybe even virtuosos. But the fact is, you can only find such competencies if taking them from other "orchestras" where they trained long enough, where they gained that experience. Because music schools (CS programs in this analogy) are actually *not* providing any training for their graduates to be proficient performers, even if that's precisely what orchestras need. It's as if musical schools were just training students in an attempt to eventually put out some grandiose "composer" (e.g. researchers that can put out lots of papers, ideally ground breaking research,) but if their skill level at playing any instrument was just mediocre, that is of no concern. If orchestras need those competencies, well that's their problem, not the music school's (rolleyes)
    What is more, near 19:40: "there are so many different ways of being in this profession. I think we've put too much under that hat." Funnily enough, i think the very title of this video vs. text in the thumbnail kind of hint at that. Because they seem to use "CS education" and "IT education" as if they were the same thing. Are they?
    Even if we decide to look only at the industry, non-academic side of things. As crucial as "writing better software faster" is, IT, or rather ITC (IT and Communications if we want to highlight the never insignificant role of networking and communications in IT) is already a hat with quite a lot more under it than just software development/engineering. How about systems administration, a devops engineer, a security analyst, a systems integrator???? In fact many companies do not do any internal software development whatsoever, yet they still need pretty much all the rest of services that fall under the ITC acronym. And even within development, there is such immense variety. How about a skilled embedded systems programmer, or a linux driver developer, a linux kernel developer, a cloud engineer, a mobile platform developer, a full stack developer in one of the many specific tech-stacks, a specialized front-end developer, a game developer, a game-engine developer, etc. etc. etc.
    About certifications, I would comment that at least the CompTia certifications very explicitely list all their learning objectives, and in principle their exams are perfectly aligned with those objectives. And at least those seem somewhat in line with that gap between academia and industry needs. Also they have certifications from entry levels to intermediate and "advanced", but their exams as far as I know are still mostly multiple choice though, so they do not guarantee first hand experience. Also, CompTIA is technically American, not really international. But my question on this: aren't certifications really the only best existing alternative to the scholarly focused academia, which keeps going its own way like a horse with blinders, vs. the practical current needs in industry, when industry is not willing to train but rather just reuse already experienced staff from other companies, while at the same time mostly holding a disposable mindset towards them?
    PS. Finally something not mentioned in the video I think, but that in principle also tries to fill the gap between academia and industry: bootcamps. Any comments on those?

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว +1

      Thank you for taking the time to think about this and share your thoughts! With respect to: "general impression that an MS degree is one of the strongest indicators of poor technical interview performance", I have heard that as well, and I think it is as stupid as saying that you are useless without a degree.... I think companies should accept that hiring the right people for the job is not easy and they should spend more time on it, instead of counting degrees, certificates, listening to generalising gossip, or outsourcing it to companies that make useless, depressing tests...

  • @banatibor83
    @banatibor83 ปีที่แล้ว +4

    I am afraid her work will be fruitless. You can teach as much as you want a teacher about how to teach CS they still will be teachers. Their knowledge will become obsolete in a couple of years.
    The only solution I see is an "industry university", a school where actively working software developers teach the new generation of software developers. So instead of teaching teachers of how to teach, we should software developers how to teach.
    About the academic side. I think I am starting to see the lack of formal knowledge about some things. But I am in my 11th year in my career as a software developer. I think the bachelor level, should be practical only, then on master level the theoretical and deep mathematical background should be revealed. Very important a master course should require at least 5 years experience in the field.

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว +3

      Thank ou for your comment! And yes, my work is partly fruitless because I cannot change everything that I want to change, but I do see small changes over time. The people who are to starting to teach in the department now have been taught by the people I taught 10-15 years ago and I hear my words coming back through them :-) Small steps, but consistently will do the trick, I hope.

    • @llothar68
      @llothar68 ปีที่แล้ว +1

      Seriously? Almost nothing has changed the last 30 years of who it should be teached. I started my CS in 1992 and almost everything from the first years is still as valid as today. Learn formal syntax of languages, Hoare verification, using boolean math (why the fuck does anyone need more then 1 week for this is beyond my mind), learning how CPU's work, what Caches and TLB are. How you do multithreading (dinning philosophers). Etc. It's amazing. Thats the basic a university needs to tell you, not learning Javascript or the latest features of CSS or C++.
      And how to do research and write papers and give conference talks. Because a university is for academics not for job training.

    • @quangainguyen6209
      @quangainguyen6209 ปีที่แล้ว +1

      ​@@ainocorry3004 Thank you very much for your work. I am a self-taught person but I learned a lot from your talks too.
      I wish you good health and happiness!

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว

      @@quangainguyen6209 Thank you for taking the time to write this. Good health and happiness to you too. And well done being self-taught!

  • @duckydude20
    @duckydude20 ปีที่แล้ว +3

    i always say, computer science != software engineering.
    and academics always teach computer science.
    also, i like the idea of required learning. i can learn when required.
    i compare it to art. a creative field. esp when called code "author".
    i dropped my univ. with these things in my mind. i can't cope up with maths, physics, chemistry.

    • @duckydude20
      @duckydude20 ปีที่แล้ว

      your husband is such a lucky person, i also want to be her student, it's like a dream come true... 😊

    • @duckydude20
      @duckydude20 ปีที่แล้ว

      my learning is all through books. tdd video series from james shore. goos, tdd book by kent beck, ppp and clean code, posa.
      i am always thankful to them. and they are my mentors.
      and still i have many books on my readlist.
      i like self learning. but its very difficult to make way through without a degree.
      still, the startup i am in, there's no agile way, no pair programming. workforce is low. but i didn't have any other choice.
      but i am learning, and i am learning in my own way. self learning. now k8s.
      sometimes it feels like its too much on my own, but i am getting this opportunity. so. maybe after some time. i might switch for better, but idk. ¯\_(ツ)_/¯

  • @mr.needmoremhz4148
    @mr.needmoremhz4148 ปีที่แล้ว +1

    51:10 Well, isn't that normal? It's why some industries or "set of skills" require a continues training/evaluation program or have some form of "train the trainer" activity going. I mean, most things in life aren't like learning "how to ride a bike". But people somehow think it is and also require or demand it? Anyone who's honest and evaluates themselves has come to terms with this, I think?
    It reminds me a bit of the broader silly thing we do if someone is saying, "but I told, showed or explained it to you at x time/place" and is asking, did you forget (how to do that)? And you are making up a reason why to motivate it😂 Instead of answering "I did or can't do it anymore" or saying "No, I just like wasting both of our time and I have become so good at pretending not to know something I do know for situations like this" 😂🤣
    Yes, the educational system so many things it could improve on. For me, it should start with getting out of high school and going to work, spend some time in the real world to get some life experience and come back in a year or two for the next part. Instead of the direct high school - higher education link. But who am I to ask society to change this? I know the social objections, and the studies saying your brain can only effectively learn until x age. I say you should evaluate that and define learning and skills more broadly 😉

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว +1

      Thank you for your comment :-) I am afraid many countries now, including my own, are trying to make young people race through the "system" to get them out to the other side and earn money and pay taxes...

    • @mr.needmoremhz4148
      @mr.needmoremhz4148 ปีที่แล้ว +1

      @@ainocorry3004 True, although you have the rising unemployed level even in countries with a socialized safety net who provide some reeducation program. So, how much are they missing out on or spending on it from another budget? They could optimize the system from the start🤔

    • @ainocorry3004
      @ainocorry3004 ปีที่แล้ว +1

      @@mr.needmoremhz4148 Indeed, but that would mean a more holistic view and not just cannibalising your own "organisation". Which, in my unfortunate experience, happens way to seldom...

  • @BryonLape
    @BryonLape ปีที่แล้ว

    It is utter chaos out here. Many have ideas how to make it better, but none of them work.

  • @Hofer2304
    @Hofer2304 ปีที่แล้ว

    If you are an experienced programmer, you know what you shouldn't do and therefore don't do. How should you be able to answer questions, that never arise for your programs.

  • @niksatan
    @niksatan ปีที่แล้ว +1

    TEACHING in 95% is for teaching sake, to make money by it. Job requirements are hard for a good job, and is unrealistic anyone would learn you that, except - real world job!

  • @kitastro
    @kitastro ปีที่แล้ว

    isn't agile evil?

    • @ContinuousDelivery
      @ContinuousDelivery  ปีที่แล้ว +1

      No, read the agile manifesto, nothing evil in there. What some big companies do in the name of "agile" maybe. agilemanifesto.org