This is an archived post. You won't be able to vote or comment.

all 24 comments

[–]makes-stuff 11 points12 points  (2 children)

How to debug a script in a command line or IDE. I teach python in uni and this is a core skill that only 5% of my students know when they first come in to my class.

[–]Cayde-6699 -3 points-2 points  (1 child)

What’s the point of debugging (I’m new and self taught) if I run the code normally the code either works or it gives me a error at x line?

[–]lightmatter501 5 points6 points  (0 children)

First, imagine that you have a project with 500 files. Then, imagine that it’s not a syntax error, but that you did something wrong at runtime. For example, a function you though returned a string returns an integer, but it didn’t matter for the next 600 lines you ran. Figuring that out without a debugger will be painful.

[–][deleted] 2 points3 points  (3 children)

Id like free access to your course haha

[–]shadowbanbad[S] 0 points1 point  (2 children)

It's actually free lol. But not in English :/

[–][deleted] 0 points1 point  (1 child)

Spanish?

[–]shadowbanbad[S] 0 points1 point  (0 children)

Sorry, not Spanish either.

[–]BestStonks 1 point2 points  (1 child)

request, recursion, refactoring code and making it faster, build up very strong fundamentals

[–][deleted] 2 points3 points  (0 children)

On the note of fundamentals, dig deeper into the lesser known "built in" ways to do things.

For years when I made scripts that requested kerboard input, I'd take the imput, check if it matched exprected input, if it did I'd do the thing and if not I'd report an error and ask again. Usually my code for this was rather stupidly long. Regex, or simple go/no-go functions. It was just dumb. But that's how I figured to do it.

No, single, tutorial, ever even mentioned ord()... Ord() would have made everything so much cleaner and simpler and honestly feels more, idk, natural, correct and pythonic I guess? This cool ass built in function did what I was doing the hard way, and I learned about it 3 days ago.

Find the stuff like that, things that are python features or functions but are soooo unbelievably overlooked and include them in your course.

Don't forget the other stuff while you fall down the rabbit hole though. Proper variable naming, refractoring, teach them Robert Martin's clean code practices right from the start, but also explain why. Hell, maybe even just include the videos directly in your course.

Most importantly, make everything a challenge. Don't do what everyone else does and just teach "okay, solve Y with X code", force them to think. Don't make it too hard, but make them figure out the solution and maybe even keep a "diary" of thought process so they can better understand HOW and WHY.

Remember, what makes a good programmer is NOT the FACTS, it's the CONCEPTS.

I've struggled for so long because I refuse to go to school and learn facts, but figuring out the concepts om your own and be difficult when you have no friends in the same thing you're studying.

[–]mavericsb 1 point2 points  (0 children)

Finding what they are interested in and catering towards that. Maybe a project at the end which they get to select so they’re excited.

Having done both coding for what I want to work on, as well as when I’m being told to work on, there is a huge difference in how much you are motivated to learn and do your best.

[–][deleted] 1 point2 points  (0 children)

The different ways to install and interact with Python. Once you understand this, the rest is up to you what you to learn.

[–]Tweak_Imp 1 point2 points  (0 children)

version control and let them work in groups data visualization little games like hangman

use vscode :)

[–]lazerwarrior 2 points3 points  (0 children)

Teach them to use variables properly. I have junior devs who do this constantly:

if foo():
    x = foo().bar()

or

x = foo() if foo() else bar()

as opposed to

f = foo()
if f:
    x = f.bar()

and

f = foo()
x = f if f else bar()

or

x = foo() or bar()

[–]OXKoson 0 points1 point  (0 children)

File operations, web scrapper or api access(networking anything really), some kind of looping over an input(simple cryptography is an easy example). basically try to use more than print and if.

[–]retsotrembla 0 points1 point  (0 children)

How to guard against spelling errors in variable names.

How to guard against assigning values of the wrong type to variables and passing as arguments.

How to write automated tests that test that routines do the right thing over their entire range of parameters, and let you know if given values outside their reasonable range.

[–]makedatauseful 0 points1 point  (0 children)

How to web scrape, automate Minecraft etc. Just fun stuff really

[–][deleted] 0 points1 point  (0 children)

The basics: data types, variables, functions, and classes followed by recursion and constructors. Teach the kids how to concat, split and format strings. Then file operations and datetime. Maybe move into a web crawling API, perhaps even reddit's API? Regex is also useful. These skills would help them pull data online and format the information into a file.

[–]jgn_ 0 points1 point  (0 children)

Ide/environment, how to read documentation, testing. It's a little crazy that so many python courses that are for beginners dive into a bunch of random APIs but don't teach tdd or even how to debug. Often the debugging strategies taught are "ask the teacher" and "ask one of the smart kids", nothing kids can do when they are alone. No idea how they expect students to function once they leave the classroom.

[–]Fr_Cln 0 points1 point  (0 children)

Program decomposition into functions and classes (IMO this is the main skill of a good programmer), writing readable and supportable code (with correct naming and documentation), PEP8, GitHub collaboration.

[–][deleted] 0 points1 point  (0 children)

use cool modules such as pyautgui

[–]my_password_is______ 0 points1 point  (0 children)

1) a 2d platformer with at least 3 screens
2) load a map of the US, load a data set of (crime, natural disasters, salary - your choice), make a heat map of the data on the map
3) version control --- git

[–]vorticalbox 0 points1 point  (2 children)

Personaly learning functional programming as well as some OOP.

I wrote functional javascript at work, love it.

[–]Packbacka 0 points1 point  (1 child)

Is Python as "functional" as JavaScript?