13 comments

[ 4.4 ms ] story [ 39.6 ms ] thread
Not a mention of the official tutorial[0]. Classic omission mistake.

[0]: https://docs.python.org/3/tutorial/

Or the author may have been aware of it, but decided not to include it.

The Python tutorial teaches a good bit of the language, but it doesn't teach how to use it. You're on your own for figuring out good problems to solve to practice using it. It's more of a less thorough but less dry companion to the Language Reference and the Library Reference.

What are good, credible courses that come with a certification (that can signal a certain level of understanding and economic value)?
MITx's 6.00.1x on edx is a low cost certificate for beginners and people without a cs degres.

Generally, certificates can even have negative value in a CV, really depends on the technology and where you want to apply

Actual results, e.g. something you've built or an open source contribution you've made beats most certificates

I'm asking for a friend who is looking to pivot careers into CS, or at least bolster their resume in their current field by adding programming to the mix. They're a long way from having an open source portfolio, but want to be able to signal some baseline value on their resume, the same way a degree does. Online courses/certifications seem like they could be that signal, without the immense time demand and expenses of going back to college.

Are there any universities' whose online certifications are taken seriously?

Does anyone else feel like there's a disconnect in resources like these, a confounding of the syntax of a language and the fundamental skills? I recently had a student I'm tutoring go look up the syntax of for loops, if statements, and function definition in four imperative languages just to get the idea that there's a deeper structure and the language is just details you have to deal with. But I don't see that in lists of resources about learning languages for beginners.
Wouldn’t you say that understanding the deeper structure would be learning programming, while learning the syntax is for the language. Both are useful and needed, but they have different goals.
That's fair. Maybe it's that I see very few resources on learning programming.
For true beginners to programming (e.g. my elementary age kids), I found these resources to be really effective at what I think of as the most important lessons in programming:

* it's okay to try things

* you can't break it

* programming is very literal and precise

* there's syntax, there's structure, and there are operations

https://github.com/Akuli/python-tutorial/blob/master/README....

This one is the best, it is aimed square at anyone whose only experience with computers is typing and web browsing.

https://github.com/eka-foundation/numerical-computing-is-fun...

Also great for the leveling down, but you also have to teach some math and some concepts around functions and algorthms, which can definitely feel a little boring / pigeonhole programming as mostly a fancy calculator.

Use sparingly and wisely.

https://www.pythonforbeginners.com/code-snippets-source-code...

This is just one example, but the code snippets at Python for Beginners are well documented, designed with simple constructs, and are a great way to see "applied programming" / provlem solving to achieve an outcome.

One useful technique is to give your student the "problem" the code snippet solves and ask your students to describe how they would code it in words and you transcribe it as some pseudocode on a board, and then "debug" it together to address input validation, logic, efficiency, then they write it.in Python, and then compare your code to the actual snippet.

When their code is basically spot on with the snippet it's like they've won the lottery, I definitely had forgotten that magic ...

I should make a YouTube playlist of thr videos I've shown them, here's one they liked

* 15 Sorting Algorithms in 6 minutes - https://youtu.be/kPRA0W1kECg

I paused at each one and we broke down how it's sorting, by the 5th or 6th it only took a few seconds to figure out the algorithm, and then theyre just fun to watch.

For you as a programming educator, this is essential viewing

https://youtu.be/azcrPFhaY9k

These are some great resources, thanks!
I don't know (yet) about any of the resources mentioned in this post but let me share my experience. Last year I came back to Python after several years spent mostly in JVM land and I was looking for some refresher so when I saw Python book bundle on Humble Bundle I didn't hesitate for a moment. While all books were solid, one really stood out. Fluent Python[0] is one of the best intermediate/advanced level books on any programming language I've ever read. It's like an average advanced course, Effective Java and JavaScript: The Good Parts blended together. Bonus points for numerous references to other languages(How is Python different from X?) and other technical digressions. I couldn't recommend it more if you, like me, wrote some Python before but have the feeling you never really understood its essence.

[0]: http://shop.oreilly.com/product/0636920032519.do

I work professionally in C/C++ and the instances I needed to use Python I always felt like I was missing the core understanding of the language and was writing C in a different syntax.

I found James Powell's PyData 2017 talk "So you want to be a Python expert?" (https://www.youtube.com/watch?v=cKPlPJyQrt4) to be incredible at helping me to gain that core understanding of the language. It's legitimately the best technical talk I think I've seen and I can't recommend it highly enough.

I'd recommend any Python talk by Raymond Hettinger (Python core developer). The content is top notch, and he is also very good at delivering it.