Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Education Programming

Ask Slashdot: Do We Need Better Computer Programming Courses For Visual Learners? (bbc.co.uk) 159

Two-thirds of technology firms are experiencing a shortage of skilled workers, reports the BBC (citing a recent report from recruitment firm Harvey Nash).

But what's the solution? In an article shared by Chrisq, the BBC's business technology reporter field-tested some computer programming training: I attended Teach the Nation to Code, a free one-day Python coding workshop run by UK training firm, QA... But when it works, there's not much pay-off — just some lines on a screen. I also took classes with Cypher Coders and Creator Academy to teach me Scratch — a coding language for children with a simple visual interface... [I] found the step change from learning Scratch to Python similarly jarring in the children's toys — you suddenly go from colourful blocks to an empty screen with no handholding. What could help bridge this gap from fun games for kids, to more professional level complex coding?

Garry Law, founder of Australian coding training firm, Creator Academy, says IT education needs to be better. "We need to teach kids coding with visual, auditory and kinesthetic learning styles, and we need to adapt this learning method for adults, to attract more people to science, technology, engineering and mathematics (STEM)," he says....

Cost is also a big problem. According to Anna Brailsford, chief executive of social enterprise Code First: Girls, it typically costs £10,000 to learn coding and often there isn't a clear link between what is taught and the jobs available.

Long-time Slashdot reader AmiMoJo remembers that "the way I got started was by borrowing books from the library that contained example programs." Back then there were loads of books that were nothing but little BASIC apps for various machines. That got me started with a program that worked and often did something quite interesting or useful, like a graphical effect. Then I could tinker with it and learn that way.
But is that enough of a reward to attract new programmers — or should beginning courses target more learning styles? Share your own thoughts and experiences in the comments.

Do we need better computer programming courses for visual learners?
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Do We Need Better Computer Programming Courses For Visual Learners?

Comments Filter:
  • No (Score:5, Insightful)

    by ClueHammer ( 6261830 ) on Saturday January 22, 2022 @09:41PM (#62198289)
    Since visual learners is a myth. Well all use multiple systems for learning.
    • Re:No (Score:5, Insightful)

      by Brain-Fu ( 1274756 ) on Saturday January 22, 2022 @09:59PM (#62198313) Homepage Journal

      Professional programmers need to be able to read source code, with no pictures, and figure out what it does (in order to fix or enhance it). The same goes for in-house produced documentation (which rarely includes pictures, given the time cost of producing such documentation). Then there is searching the internet for solutions, which generally involves skimming forum posts that have...you guessed it....words but no pictures.

      So, if the reason a student can't or won't get good at programming is because the coursework doesn't have enough pictures, then such a student is probably not a good fit for professional programming.

      I DO believe that most people can learn most skills, and there is not something magical about computer programming that puts it beyond reach for most students. Maybe the really advanced roles are only suitable for gifted elites, but there are plenty of mid and low-level software development roles that I think anyone can serve if they merely have the drive to learn how.

      And that last bit is the key ingredient. You have to like programming. If you don't like it (regardless of the reason), then you will never have the drive to do the requisite study, and you will hate your career, and it's just a matter of time before you jump ship. But if laying code is your thing, then you will naturally be interested and devoted enough to learn what you need from what is available.

      And the sad cold fact is: normal people don't like programming. It's tedious, laborious, difficult, and unrewarding for them. Combine that with the mandatory long hours and other forms of programmer abuse to which new programmers are routinely subjected, and you have a recipe for "nope."

      • Re:No (Score:5, Informative)

        by Aighearach ( 97333 ) on Saturday January 22, 2022 @10:33PM (#62198365)

        They need to be able to read the manual to find out how things work, because there will be new versions and new features. Also, the limitations of human memory mean that even if your memory is at the 90th percentile, you're still consulting API documentation constantly, or else writing complete buggy garbage.

        People who think that pictures would help don't really realize the level of abstraction you have to be able to visualize on your own when you're thinking about the words.

        • People who think that pictures would help don't really realize the level of abstraction you have to be able to visualize on your own when you're thinking about the words.
          And people who think "pictures" do not help, usually have not a very high capability of abstraction.

          • by fazig ( 2909523 )
            There's a lot of elitist bullshit going on in these comments. (Not you from what I can tell so far)

            In my university lab, we regularly write out parts of our research project work for students as project work or for something a bit larger as a bachelor thesis. So I do have some experience in evaluating their work.
            So from personal experience, the students that do not use diagrams or use them very sparsely on average produce more convoluted code that's less encapsulated and a pain in the ass to refactor.
            No
        • People who think that pictures would help don't really realize the level of abstraction you have to be able to visualize on your own when you're thinking about the words.

          Exactly.

          When programming, I kind of "picture" data structures and program flow in my head, But it's not really visual, not even sure how to describe it.

          • I'm the same way. It's kind of a semi-abstract visual thing that simultaneously gives an impression of the solution in 3 dimensions plus a bit of time dimension, and at the same time has much hidden information that is "known" but not explicitly visual.

            As we discuss the problems and solutions in a group, I can see/feel the relationships between different sets of data, but again, it's like a semi-projection or layer on top of the more complete low level understanding.

            It's hard to say if it's part of the
      • Most work is "tedious, laborious, difficult, and 'unrewarding'".
        Welcome to the results of t-ball trophys.

      • So, if the reason a student can't or won't get good at programming is because the coursework doesn't have enough pictures, then such a student is probably not a good fit for professional programming.
        When i learned programming, course material and books where full with pictures they even had different types of pictures, e.g. flowcharts

        No idea how you learned, though.

        • by narcc ( 412956 )

          When programming became about chasing silly fashions and trends, the flowchart was the first victim. It was superseded by the structure chart, which wasn't bad, but still less useful. Since then, we've seen endless stupid fads come and go, none better than whatever it replaced. We've never come close to getting anything nearly as useful as the humble flow chart.

          They say fashions are cyclical, so if we're lucky they'll come around again.

          No idea how you learned, though.

          I feel bad for kids learning to program today. It's an absolute me

          • I even use resources from the 70's and 80's. You'd be amazed at how good some of those are.
            Well, I learned programming around 1982/1983 till 1987 (in school, first year was 1985 that in schools computer science got introduced).
            So most of my books were pretty old school. When I went to University 1887, I learned Fortran, JCL and stuff, to run vector programs on a Cyber 205. Later we got a Fujitsu vector processor, but don't remember the model. Same year I got a bit deeper into C (at school I learned C on my

      • by tlhIngan ( 30335 )

        Professional programmers need to be able to read source code, with no pictures, and figure out what it does (in order to fix or enhance it). The same goes for in-house produced documentation (which rarely includes pictures, given the time cost of producing such documentation). Then there is searching the internet for solutions, which generally involves skimming forum posts that have...you guessed it....words but no pictures.

        Source code contains plenty of pictures. ASCII art is a thing and spending a few min

      • by AmiMoJo ( 196126 )

        Visual learning doesn't mean just having pictures in the learning material. Back in the day when BASIC was the primary language kids used, a lot of example programs were graphical effects. Tinkering with those I learned a lot about how things like variables and loops worked. This was when I was about 8-9 years old and had trouble spelling some of the keywords.

        These days there are lots of visual programming languages, where you hook up modules and observe the output. It's a valid way of learning for young ch

      • by dublin ( 31215 )

        The vast majority of the code professional programmers write is code they simply should not be writing in the first place.

        If we're ever going to progress beyond the 1960s programming mentality (which was brilliant for the limitations of computers then, but fails today), we need a more standardized, modular approach to programming. Platforms were an attempt to do this, but, really, much of this needs to be integrated into the language. (For all its many faults, the Ruby/Rails combo was an attempt to do the

        • My wife worked in a multimedia sweatshop, with a sociopath manager and high turnover. The corporate culture was to produce spaghetti logic with extremely cryptic comments, almost like a code, so the boss couldnâ(TM)t simply fire people on a whim and replace them without consequence. At the time I think programmers in this space were fairly well respected, seemed like a strange situation.
      • by gtall ( 79522 )

        "Professional programmers need to be able to read source code, with no pictures,"

        No. A counter-example was Prograph (now called Marten) which was a diagrammatic, object-oriented, dataflow language. Best language I ever used for bog-standard UI and data processing. It probably could have been extended for OS and realtime if need be.

    • Yes, the learning styles 'meshing' conjecture has repeatedly failed to disprove the null hypothesis, i.e. it's bunk. However, there are these things called the visual encoding efficiency advantage & dual coding theory that have substantial bodies of high quality supporting evidence. Using visuals for learning can be highly effective, not just for some but for everyone. Check out Richard E. Mayer's work on multimedia learning. For a much deeper dive, check out cognitive load theory.
    • Myth denial is cancel-culture speak.

      A pivot away from symbolic language programming and APL, in particular, in the 60’s was the death knell for visual learning. It took HTTP for symbolic constructs to regain currency value for simple control-use. Just that has proven the worth of visual constructs in adoption for wider learning, alone.

  • Ugh (Score:5, Interesting)

    by RogueWarrior65 ( 678876 ) on Saturday January 22, 2022 @09:45PM (#62198297)

    Look, generations of good programmers created great software without candy-crush awards. The goal should be the satisfaction of getting a program to work along with good design in the code itself. One has to have the aptitude to code and to code well. Trying to teach everyone to code is akin to trying to teach everyone to perform surgery. You'll end up with a whole lot of people who think they know how to do it (and will be very vocal about it) but shouldn't be allowed anywhere near a patient.

    • You would be better served by teaching people to read error messages, read help screens, and understand input fields, navigation guidance, short cuts etc. Most people just need to use applications, and waste time not reading input errors (assuming edit checks have been coded). I am sure there can be screening/aptitude testing for programmers - not everyone will make the grade. Just as they do for sport ballet and piano lessons. I have found mathematicians, engineers, researchers and doctors do very well in
    • by AmiMoJo ( 196126 )

      Generations of good programmers learned BASIC first, often visually as for kids the most interesting commands were ones like LINE and PLOT.

      The abstract stuff comes later.

      • by vyvepe ( 809573 )

        There is a difference between programming visually (e.g. using an algorithm flowchart) and programming something which will result in a picture.

        Flowcharts may be good for very simple things when just starting to learn programming. They are terrible for programming of bigger systems. The primary reason is information density. Well structured text files with good naming are much more information dense and therefore more useful. Text files are easier to browse.

        You can see this trend even in electrical engineer

    • I think there is an unstated assumption behind "Teaching Kids to Code" and that is it will help them be better at critical and procedural thinking; without letting the Touchy-Feelly Artsy Right-Brain types know they are teaching ichy Left-Brain stuff. I think everybody should learn some programming the same as everyone should learn some drawing and painting.

  • by joe_frisch ( 1366229 ) on Saturday January 22, 2022 @09:47PM (#62198299)
    Peoples innate talents and skills can be in all sorts of directions. At the moment we need more programmers, but it takes a long time to train people and a few years form now we may need something else. Are visual learners better suited to other fields?

    Most software development is lines of text on screens, and the type of thinking that is required for creating those lines. These days (unlike 30 years ago) it also involves the ability to read and mentally integrate a very large amount of documentation on the interfaces to the rest of the software system.

    There are lots of other good fields - some other forms of engineering are much more visually based.
    • by gTsiros ( 205624 )

      When you say we need more programmers, what, exactly, do you mean by "programmers" ?

  • Much like learning an instrument, it really needs to call you if you're to maintain practice and progress.

    But also like an instrument, everyone needs to be given a chance to see if there's an affinity there.

    I don't think everyone is born to code, but some never get the chance to find out.

    • I think nearly anyone could learn to play an instrument. And not everyone is interested in playing one for fun, and I think it would be difficult to do it professionally if you hated it. While most people are interested in listening to music, they may not be interesting in playing it.

      Learning to program as a means to express creativity in an art or game project is a good solid reason to start. Learning to code because you think it's the only way to make money in the future is a bad idea that ignores the hum

  • by cowdung ( 702933 ) on Saturday January 22, 2022 @09:59PM (#62198311)

    This is why, in the introductory programming classes we've presided we always use something visual with Windows.

    For example: start basic programming classes by teaching with a robot (physical or virtual), or by teaching some form of mobile programming, or by teaching how to draw things in Python.

    Starting the "Hello World" route was really really exciting in 1983. It blew ME away..

    But today's young people grew up with computers, internet and mobile phones.

    The last thing they want to learn is how to print "hello world" onto a terminal screen they didn't even know existed.

    Introductory classes should start by showing the range of cool stuff than can be done even with basic tools. And then build from there.

    We've done it for over a decade with great success.

    Stop teaching programming like it's 1980.

    • by cowdung ( 702933 )

      By "Windows" I meant GUIs.. not the operating system.

  • Those people can be influencers instead.
    • I once saw a joke somewhere. Girl meets boy.
      Boy: what are you doing?
      Girl: oh, I do the cat walk, modelling a bit and I have an instagram account and work as influencer!
      Boy: cool! I also learned nothing!

  • by jensend ( 71114 ) on Saturday January 22, 2022 @10:04PM (#62198325)

    There [psychologicalscience.org] is no [scientificamerican.com] evidence for [sagepub.com] learning styles [apa.org]. There is LOTS of research on this point and it is well confirmed that this is just a myth.

    Do we need more approaches to teaching programming? Sure.

    One approach that I wish we'd find ways to pursue more - in the past people devised 'soft introductions' via applications that pushed their users to gradually pick up programming concepts - command line shells, spreadsheets, RPN/RPL on HP calculators, word processor macros, HyperCard, etc. There's been rather little innovation in that space in the last twenty-five years. There's been an ever-widening gulf between what interfaces invite regular users to do and anything that resembles programming.

    There'd be plenty of other approaches. But starting with "learning styles" as a primary target is just clearly barking up the wrong tree.

    • I was one of many people trapped in marketing/finance with cheap bosses who hacked away at Excel until it was more like Access. Iâ(TM)m not proud of the things I did to Excel. (Actually, I kind of am. I had a really cute colleague who spent 3 hours a day looking at a spreadsheet and making another one off it. I tossed in a bunch of lookup functions and turned it into âoeopen, save, close.â She hugged me so hard.
  • by sandbagger ( 654585 ) on Saturday January 22, 2022 @10:07PM (#62198329)

    There is zero evidence for the existence of different learning styles.

    • Maybe but there are definitely people who get sleepy after a reading a couple of paragraphs and would prefer to be scrolling tiktok
      • Depending on what I'm supposed to be working on, that could be me. College assignments way back when? Yeah, let's head to the library and procrastinate. (No tiktok back then.) My own projects? I can work for hours, or until I'm called to come down for dinner, or go somewhere. Key difference: level of interest. In which case, how do we increase the level of interest in something that's typically not interesting? Even with decades of development experience, I don't find studying the minutiae of Swift,
    • There is :P

      a) learning by concept, and deriving examples
      b) learning by examples, and deriving the concept

      Two main differences. Probably the biggest ones. Some people are good at a), some at b) rarely you find one good at both.

      c) learning by doing
      d) learning by formal training

      Also two big differences

      e) learning by watching and mentalizing (e.g. a Sushi Chef)

      f) learning by making a Cheat Sheet, and continuously scratching stuff you meanwhile have internalised

      g) rot learning - but never grasping what the stuff

  • ... if 'visual' is the correct concept. Moving back and forth between multiple mental models is more accurate. Example:

    Compare civil or structural engineering to electrical engineering. In civil/structural, most of the concepts map to actual physical entities. There's a beam, a column or a cable under tension. In electrical engineering, often there is nothing to see. A bunch of wires or traces on a board or chip. But what is going on has to be modeled in the abstract using vectors, phasors and EM fields.

  • Debugging takes more time and talent than writing good code. Too much code is written by untalented hacks and too often programmer time is wasted on superficial purposes. Good programmers are a scarce resource. Use them wisely. Apparently just throwing more programmers at a problem still looks cheap enough. Look how many software developers are in the employ of Facebook and Amazon. What have these companies to show for it in terms of actually useful software? The management attempt to commodify software development wastes untold resources. Layers upon layers of abstractions are erected in the vain hope that eventually the problems can be broken down into small enough pieces to be solved by trained monkeys. The idea that hardware is cheap and developers are expensive has caused many managers to believe that you can make up for developer time by buying more computers. This only works for code that scales well, but cheap or stressed developers do not write that kind of code. We've hit "peak software developer" and managers are still metaphorically driving tanks to get the groceries.
  • In contrary to Betteridge's law, the answer is yes. I really need to visualize something to understand.

    It cost £10,000 to tech someone programming. What does there even mean? I'll do it for half that. It starts with a copy of Python the Hard Way.

  • by JBMcB ( 73720 )

    Next question?

  • Lazy procrastinators and hard workers. Average human intellectual abilities are good enough to become almost anything. What is variant is the things we are interested in and, because of that, our ability to be distracted. What I am saying is, no matter who you are .. if you put in decent studying time .. you will get the results and it will get "easier" over time.

    Do you know anyone who put in hours of studying time and still failed a class (assuming there was no language barrier)? I don't think so.

    What I m

  • Start with a spreadsheet and see if people can insert formulas into cells -- you can use the wizard, it's ok -- and get the answers they expect. If not, let's not try to jump the gun.
  • Creating software is not about coding, any more than a good house is about hammering nails. Programming is fundamentally about software architecture.
  • If you are a visual learner and want to program then program in National Instruments Labview or HP VEE (now Keysight VEE)
  • if so many of us weren’t working on useless, frivolous crap.
    • Yep some really great minds are working for Wall Street, coming up with better ways to place bets milliseconds before the mob. Not too long ago they would have been chain-smoking at Mission Control. Sad
    • A few years ago I was at the beach talking about the weather with a bystander. His appearance and use of language sent a signal, and I constructed a shibboleth test by using a specific word in the conversation. He did not flinch, and used the concepts around that word in subsequent discussion. It turns out that he had a PhD in particle physics, and was trying to get funding for a phone app to find parking in San Francisco.
  • by oldgraybeard ( 2939809 ) on Saturday January 22, 2022 @11:57PM (#62198521)
    There is a shortage of companies that what to pay IT people.
  • What level are we talking about? Children, of course, are probably not going to be able to crack open a copy of K&R and crank out C code. But, for them, we can use pictures, or cute little cartoon characters to show abstractions and the value of flows, particularly sequence ordering, which is a critical aspect of development. Some action has to come before another, and if the orders are reversed, it doesn't work. That level of detail - and the attention to it - is important. For kids, you could alm
  • Bret Victor, Learnable Programming [worrydream.com] (2012): "People understand what they can see. If a programmer cannot see what a program is doing, she can't understand it."

  • We just don't know how teach programming well enough. Even at a college level, there is a ton of reliance on people having acquired certain skills and saying very motivated to practice and learning how to program. And in the end, there is still a massive variation in people's ability to maintain a career.

    As an aside (and just to poke at some people), lack of diversity makes this worse, so add that into the mix.

    So, there's so much to be done in terms of pedagogy before we can even have a chance of answering

    • Even at a college level, there is a ton of reliance on people having acquired certain skills and saying very motivated to practice and learning how to program.

      Yes. I am in the middle of grading a stack of "programming 1" exams. Throughout the course, I emphasize the need to practice. Not just to look at the book and think "I could do that", but to actually *do* it, to write programs.

      The exams show, as they always do, who actually did write their own programs, and who didn't. Those who did will pass, those who didn't will be kicked out of the program.

      Those students who fail, whether for lack of talent or lack of motivation? They're welcome! Weeding them out ea

  • Not everyone should be a programmer
    Not everyone should be a welder
    Not everyone should be an sculptor
    Not everyone should be a technician

    Desperation to flood the market with those inherently unsuited to inherently specialized tasks is foolishly naive and not the route to quality product.

    The way to reduce the need for low-end labor is automation not training every meatbag off the block. Humans are obstacles to efficiency. Humans who lack talent and ability are best used where their defects do not matter rather

  • In short, no. Programs are built with text. Documentation is in text. You will be searching for answers to knotty problems with ... text.

    That said, I have no problem with child level programming concepts being taught with graphical building blocks. Especially if those building blocks have words on them ...

    Or basic programming being taught with graphical output. Heck, I'd often rather take a stab at a new language by calling some graphics library, instantiating a window with some buttons or what have you.

  • It's been said before: Learning styles ("visual, auditory and kinesthetic learning styles") are a myth. Anyone trying to sell a product or service on that basis is an obvious fraudster.

    I was quite impressed by the video that Veritasium published a few months ago on the subject. Includes comments by cognitive scientist Daniel Willingham. Tellingly for the current case, the thumbnail cover on YouTube is a placard that reads, "You Are Not a Visual Learner".

    Veitasium on YouTube: The Biggest Myth in Education [youtu.be]

  • "Two-thirds of technology firms are experiencing a shortage of skilled workers [...] But what's the solution? "

    Stop hiring.

    Do you know why there's a shortage of skilled workers? It's not because they're all unemployed. It's because companies are hiring more workers.

    Why are companies hiring more workers? They've made a lot more profit in the past 2 years than they expected and they were a lot more efficient with work from home (because they overworked people) and they want to build new things with that money

  • Yes we need more course for visual learners. However, Python is not for visual learners, it was designed for neurotypicals by neurotypicals and its goal is to enforces neurotypical semantics by forcing people to think in a specific way. The Fundamental Theorem of Algebra states that every polynomial equation of degree n with complex number coefficients has n roots, or solutions, in the complex numbers. So at a minimum, there is always least two ways to accomplish something.

    https://www.youtube.com/watch?... [youtube.com]

2.4 statute miles of surgical tubing at Yale U. = 1 I.V.League

Working...