Matching learners to the right introductory software courses
Many enterprise organizations offer employees a catalog of software courses as part of company learning initiatives. This approach can work well for developers who want to upskill or learn adjacent technologies. But for people who are brand new to coding, it’s vital to make sure they get the right foundation. That foundation starts with understanding the difference between courses that teach languages—and courses that teach employees how to code.
Learning to program versus learning a programming language
There’s a widespread assumption that beginner level courses in programming languages are a great launch pad for learning to code in general. Unfortunately, this assumption can lead to frustrated, dissatisfied course participants.
Imagine a class called Introduction to Automobiles. Suppose the registration blurb doesn’t include a lot of detail or (as is often the case) registrants don’t read it thoroughly. Participants arrive at the first session, and some expect driving lessons. A second group thinks the course will cover the basics of auto mechanics. And a third segment wants tips for buying the right car. This analogy is uncomfortably similar to what sometimes happens in an Introduction to Python class.
Because Python is easy to learn, many view a beginning Python course as a great place to start a coding career. If the curriculum is specifically tailored for students who have never programmed before, Intro to Python can work well. However, a course with an “Introduction to ____” title will often attract distinctly separate audiences, such as:
- People who are brand new to coding and believe “Intro to Python” is equivalent to “learn to code.”
- Experienced software developers who already know one or more languages and want to add Python to their toolkit.
- Data scientists who want to leverage off-the-shelf Python packages for their analysis work. While this audience needs some rudimentary coding and Python knowledge, their main focus is using prebuilt data science tools.
- DevOps and QA engineers who want to use Python to automate tasks they’ve previously done by hand. They often are writing scripts, not programs.
These four groups have vastly different learning goals and expectations that cannot be met with one-size-fits-all software courses.
People who’ve never programmed before need a learn-to-code foundation
Many organizations choose Python to lay the foundation for coding skills. But the language itself is not the foundation. Learning to code and learning a programming language are not synonymous. This distinction is important when designing or selecting training programs for people who are brand new to software development.
“When people learn their first programming language, they also must learn how to program,” said Dave Wade-Stein, senior instructor at DevelopIntelligence, in a recent post. “Typical Intro to Python software courses do not cover coding principles. In addition to the syntax of a new language, these students need instruction on why programmers use certain constructs and how they combine those constructs to solve problems.”
Double check the curriculum for foundational elements
Learners who are completely new to coding will benefit from practicing two activities, according to Wade-Stein:
- Breaking down a problem into a series of written steps.
- Converting each step into Python or another programming language.
As software developers gain experience, these two activities become more automatic, and coders may do them in their head. Beginners, however, learn best by writing down all the steps of the problem they are trying to solve. This way, if their code doesn’t produce the expected result, they have a tool for troubleshooting. They learn to spot where they may have introduced errors into the process by asking questions such as:
- Have I articulated all the steps correctly and completely? A human brain might do a step so automatically that a new coder might not think to add it as a discrete step.
- Is the sequence of the steps correct? New coders need instruction and practice to execute steps in the correct order.
- Did I leave out a step? Maybe the step is on the written list, but the learner didn’t translate it into code.
- Is a mistranslation causing the problem? Perhaps the individual got the steps right, but wrote code that does not actually perform the step.
This foundational practice reduces frustration for new developers, builds confidence and speeds the learning process.
Experienced software developers, data scientists and DevOps/QA engineers, however, may not appreciate having content like this in their Intro to Python class.
Striking the right balance in software courses
To the degree possible, monitor the composition of open enrollment classes. Think carefully about the ramifications of mixing varied audiences. Ideal cohorts should have participants with similar experience levels, focusing on the use cases they’ll be working on in their jobs.
When you have beginners and experienced students in the same course, it’s hard to serve both groups effectively. Participants who lack a foundation in coding principles can get discouraged quickly, while seasoned developers become impatient, craving more challenge. In contrast, enthusiasm soars when you match learners to the right course. And when employees can apply their new learning on the job with confidence, your training investment yields better results.
Interested in learning more? Employers are taking a fresh look at their open enrollment strategies to boost ROI on training investments. For more information, email [email protected].
Photo credit: istock.com/robynmac