# Python IDE for beginners

With a bunch of colleagues we will start learning Python together. I'm a programmer, but I'm new to python. Most of my colleagues know some VBA, but are generally new to programming.

What IDE do you suggests? Features I'm looking for: simple interface, some debugging features, autocomplete, inline help, intlisense.

Thonny IDE looks promising, super simple to install with bundled Python interpreter, it does have autocomplete, but is nowhere near Visual Studio levels of inline help (like intellisense or pupup tooltips etc.).

Any recommendations?

• Keep it simple: intellisense and the equivalent in Eclipse, push my students in the wrong direction, a lot of their mistakes are because the tool told them to. e.g.It does not promote test-driven / test-first. – ctrl-alt-delor Jun 27 '19 at 14:51
• I do like Thonny. Simple debugging, and your audience has some experience. I like how Thonny opens up a new window for a function when you step into it. – TooManyCooks Jul 9 '19 at 2:13

I'm not a fan of full IDEs for beginners. A few years ago I switched my first year students (Java) from NetBeans to an online tool without any autocomplete or helpers for most assignments and found that they've gotten way stronger at writing code. I think the automatic stuff that helps out while programming becomes a crutch for newbies.

Our intro teacher, who teaches Python, really likes Idle for his first year students because it's so simple.

I've also used PyCharm with second and third year students, and really like it. It's what I personally use when I'm writing Python code. The free community edition is plenty for classroom use, but they've also got free licenses for students, teachers and classroom labs if you wanted to use the pro version.

a lot of their mistakes are because the tool told them to

So much this. When NetBeans highlights something in yellow, students feel that they have to click on it and follow the programs advice even when they have no clue what it's saying.

• Regarding the last paragraph: wouldn't it be better to raise general awareness and have a few lessons about common error messages and hints than prohibiting students to use tools that are used almost everywhere in real life? Of course you have to try to change the trained mindset of your students, but they will benefit from this their whole life! – csabinho Oct 12 '19 at 0:46
• I'm okay with it highlighting error messages. That's not what I'm talking about here. It's when NetBeans suggests another way of writing a loop or condition, or something else. But it's usually a loop or condition. Usually, when it does that the suggestion is out of scope for the course I'm teaching or whatever it suggests confuses the student. Sometimes it's something we just haven't gotten to yet. They go with it because it works, but have no clue why. – Ryan Nutt Oct 12 '19 at 18:24
• "They go with it because it works, but have no clue why." Nobody should EVER do this when learning to code. Maybe you'll have to stress this a bit more. Or let the students explain their submitted code, if the size of your class allows it. – csabinho Oct 12 '19 at 18:59
• Agreed. That's why I prefer to not use an IDE that drops hints with my intro students whenever possible. I want to see their solution, not the editor's solution. – Ryan Nutt Oct 13 '19 at 2:22

Visual Studio Code. Easy to set up and designed to be simple. I used to use PyCharm and PyScripter with good results. VSC is more versatile. Eclipse is a management pig for beginners. You have to learn Eclipse along with learning Python. Eclipse is great for pros.

My preference might be different from most, but some of the things you seem to be asking for are inconsistent. For me, an "IDE for beginners" is one that doesn't need to be abandoned for a different language. Once you spend the time to learn it, you can adapt it to anything. For me, also, that means a professional level IDE like Eclipse, which I now use for everything.

But Eclipse isn't, technically, just and IDE, but a plug-in platform. You can plug in just about any language, but you can also plug in UI elements that can tailor it to beginners, say, showing fewer elements - or more. But anyone who can handle Visual Studio won't be put off by Eclipse.

It supports just about anything you could want as a programmer, including unit testing. And, like riding a bicycle, once you know it, you know it.

Note: I'm not affiliated with Eclipse. Just a long-time user.

• Is this a myth "it took a long time to lean eclipse, therefore I won't learn a simpler one." However if the IDE is simple then it is quicker to learn 3 of them, than to learn one. Yes, you won't get that accumulation of knowledge. So may be switch to a more powerful one the 2nd time. I used to use emacs for the same reason (I can use it for all languages, operating system, and times that I have visited (1991 to 2020 so far). I now mostly program with sed ☺. – ctrl-alt-delor Aug 11 '20 at 22:24

I start my students on Blockly for coding, as I find it is really useful to develop some algorithmic thinking. There is a developer section where you can create code with blocks (like Scratch) and "see" the equivalent Python/Javascript/Lua/PHP/Dart.

We use NotePad++ for html and css but will swap to Atom.io next year (most like Sublime Text but free). When we start coding in Python, we use the same text editor for this as well, and so the class must use the terminal/shell to navigate to the file location and run their code.

As other answers suggest, there are no supports in Notepad++ such as autocomplete or autoindent. Learners really have to get used to doing it for themselves. After a few weeks, I introduce the PEP8 check. There is also an auto-correct version here but I don't show this until they have worked on fixing some code in class.

We are waiting to have Thonny installed as it looks like the best IDE for Python Beginners imho. I know learners last year struggled with PyCharm, which is my own preferred IDE. There are many great IDEs out there, but from my evaluation of them all, I have settled on Thonny as a great "beginner" IDE and PyCharm as my preferred "intermediate" IDE, although there is little difference with Eclipse or Visual Studio Code imho.

Hope this helps!

Why would you use an IDE anyway ? You can go directly with command line, either with Linux or Windows, you'll just need a text editor and a command line terminal and here you go. (I recommend Sublim Text)

If you’re interested in developing algorithms, I’ve found Jupyter Notebook to be a great way to develop Python (or R).

It lets you develop in a “web page” and everything displays in a browser.

I would really recommend Pyzo(formerly known as IEP) especially because of these three reasons:

• it's lightweight, so it works with any laptop if it is fast enough for the operating system
• it's simple and NOT too packed with features
• it includes an IPython console which uses the major advantage of interpreted languages that they are, Hello Captain Obvious, interpreted on the fly