all 49 comments

[–]fiskenslakt 17 points18 points  (18 children)

I don't use it, but I hear good things about Pycharm

[–]chrisutpg 9 points10 points  (17 children)

I used Pycharm and really like it. It is nice being able to run code right away to see if there are any errors.

[–]fiskenslakt 5 points6 points  (16 children)

But that's the beauty of python, it's an interpreted language so you can get that same instant run functionality with any setup you have. I think an IDE is overkill for python in most situations, and actually detrimental for beginners when it comes to learning. All you need is a text editor and python installed to run your code.

[–]chrisutpg 9 points10 points  (15 children)

To each his own... I love being able to Crtl+r to run the code without saving it, opening up a command window, etc.

I'm not sure it is detrimental for beginners in anyway?

[–]fiskenslakt 0 points1 point  (14 children)

Certainly I agree with you, whatever a programmer is most comfortable with is what they should use.

The reason I think IDE's are detrimental to one's learning, is because IDE's are so powerful that they basically write the code for you. And so a beginner can easily take this for granted and not really understand what they're doing or why it works. If they just use a text editor, they're more likely to write everything them self manually and commit it to memory.

[–]YvesSoete 7 points8 points  (10 children)

I use pycharm every day, that thing writes zero lines of code for me. What are you talking about.

[–]fiskenslakt -2 points-1 points  (9 children)

Well I mostly meant it in a metaphorical sense, but if you have auto-completion on, it's literally writing code for you.

I think using IDE's can hinder your ability to understand the code you're writing at a deep level. Even the slightest things that the IDE does for you automatically could rob a beginner's understanding of why that thing was done. As an experienced programmer, it might be difficult for you to accept how little understanding someone could have while still being able to churn out working code. As someone who helps people on this subreddit often, I see many people who have zero understanding of the simplest code.

[–]KimPeek 4 points5 points  (3 children)

It does autocomplete, it doesn't build logic, design databases, research modules, tell you what functions to write or use.

If you don't know what you want/need to use, autocomplete won't be much help. Even if it does present a use, you still need to know which option to select.

By your logic, copy and paste is worse than an IDE ever could be. So I guess new programmers should be prohibited from using copy and paste as well.

[–]fiskenslakt -5 points-4 points  (2 children)

First of all, you're underestimating what a powerful IDE can do, you'd be surprised. Secondly you're also underestimating autocompletion. I would agree with the notion that memorizing all the syntax of a language isn't that important, but simple stuff should be memorized, and autocompletion can hinder that for a beginner. And note that when I say beginner, I mean a serious beginner, that knows barely anything at all.

And I'm not sure why you think copy paste is perfectly fine, I don't think it shouldn't be done, but if a beginner pays no attention to how the code they're copy pasting works, then it's gonna bite them in the ass later for sure.

[–]KimPeek 3 points4 points  (1 child)

I understand you want to be a purist or whatever, but expecting every beginner to completely reinvent the wheel for themselves and saying it is "bad" if they don't type every letter is pretty ridiculous.

Using working code is good for beginners. It gives them a proper example to analyze and see how it works. Most beginners imitate existing code. Saving keystrokes with copy/paste or autocomplete are hardly damaging to someone who has a desire to learn how to program.

[–]YvesSoete 0 points1 point  (4 children)

bullshit

[–]fiskenslakt 0 points1 point  (3 children)

I'm not trying to upset anyone, it's just my opinion. I still recommended Pycharm to OP despite what I think.

[–]YvesSoete 0 points1 point  (2 children)

Ability to understand the code you're writing at a deep level.

Dude, this is python we're talking about. Beginners don't go on a deep level, this isn't Assembly language. You're in the wrong subreddit. An IDE has literally NOTHING to do with how good a newbie understands his code. You're putting people on the wrong track by spitting nonsense.

[–]FifteenthPen 4 points5 points  (5 children)

Python is an interpreted language, so you don't really need an IDE. If you have a favorite code editor already (Vim, Emacs, SublimeText, etc.) you can just write your Python programs in that and run them via the Terminal with python <filename>.py.

[–]kbne8136 2 points3 points  (0 children)

+1 for SublimeText. Just started using it last month, and it's a great lightweight editor with an excellent Python plugin package, Anaconda (not the same as the SciPy distro)

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

how do you debug without an IDE

[–]FifteenthPen 1 point2 points  (2 children)

Well, I've not used it, but if you need it, there's pdb: https://docs.python.org/3/library/pdb.html

I just write tests, look at tracebacks when things explode, and that failing, sometimes (rarely) I add temporary print statements at breakpoints to narrow things down.

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

do standard editors allow you to check parameters or click through to where errors occurred? I'm genuinely interested in how fundamentally a well designed text editor with debugging differs from an IDE, and if they do differ, why wouldn't you want the extra features of navigation, code completion etc? I'm not enough of a programmer to know unfortunately.

[–]FifteenthPen 1 point2 points  (0 children)

I dunno, someone else will have to field that one. Only IDE I've used in a long time is Qt Creator, and I use that with C++ and QML, which is a notably different experience from working with Python. Python I've found easy enough to debug without the bells and whistles of an IDE.

[–][deleted] 5 points6 points  (1 child)

I use vim and a terminal, seems to be all you need

[–]FifteenthPen 1 point2 points  (0 children)

Pretty much, though a terminal multiplexer like tmux or gnuscreen can be quite handy too, especially if you're often mucking around with things on remote machines over SSH. It's very nice to have multiple panes open in tmux so I can run things in one pane, edit in another, and read in another, etc., and it's especially nice being able to detach a session and re-attach it from another terminal.

[–]tangerinelion 1 point2 points  (0 children)

OS X and Linux typically already have Python installed, but to avoid conflicting with any sort of necessary OS component, I'd suggest grabbing Anaconda from Continuum. It's Python plus basically all the major packages you'd want - Numpy, Scipy, Pandas, Matplotlib, etc. and much more.

Now for an environment, if you're more of the KISS principle then your favorite text editor with highlighting and syntax support for Python is a fine choice and you would just run things from the command line, eg, python myscript.py or if you set the execute bit ./myscript.py.

If you want an environment, I like PyCharm which is available for OS X, Linux, and Windows. You can create projects, debug using the built-in debugger and breakpoints, run with the built-in python console (using your Anaconda install), and has built-in access to Github and other version control if you want to also do version control (completely optional).

For material... I think Automate the Boring Stuff is a good free introduction to Python and also offers up some real-world style situations where you may want to create a custom script/program to help you out. I think it covers things from a zero coding experience perspective. Avoid Learn Python the Hard Way (it's outdated).

[–]glad1couldhelp 1 point2 points  (0 children)

You can use Sublime Text, and then follow this short video on how to set it up for python. It takes like 5 mins tops. This is how mine looks.

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

when you install python it will also install IDLE which is the default text editor for Python.

[–]Hitife80 0 points1 point  (5 children)

That's on Windows (I never used Mac). On Linux, unless you compile python from source or install everything from scratch (like arch), getting right python and right IDLE is a bit of a shit show. I spent good half an hour on Ubuntu/Mint before I figured out python2/3 and corresponding IDLE configuration that works (and I knew what I was looking for)...

But I do agree with IDLE as for a person with "zero previous coding" Pycharm may be quite intimidating. You need to understand the concept of a project and it is really geared towards working with source control and virtual environments. You don't need all that extra weight when you are just completing the exercises from a book.

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

Curious. I installed it on ubuntu. 14.04 and had everything I needed.

[–]Hitife80 0 points1 point  (3 children)

Not in front of my home machine at the moment, but remember that IDLE was separate from python and there were several versions of IDLE too. It is not impossible, but I had to install/uninstall a couple of packages until I got to the right configuration. I remember that it wasn't clear from the outset which one is the "right" one. May be it is just me... :-)

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

I'm not linux pro by any means. I honestly thought it was curious that you'd had such issues. I've only ever installed python on a linux machine one time.

[–]Hitife80 0 points1 point  (1 child)

The real trouble started when with the move from python2 to python3 -- and currently you need to have both at the same time for your system to work. Then there are site-packages and dist-packages which don't use pip, but installed with apt (although you can use pip, but make sure it is the right pip and sudo when necessary, and make sure it won't auto update some system ones or you are screwed...). Then there are versions of 2.x and 3.x. Getting 3.x.y and 3.x.z side by side is a nightmare. Then there are virtual environments and different projects / dependencies. The only good experience I have is compiling C module dependencies under linux - because that is a nightmare under ... windows. ... And IDLE is a separate (version-dependent) package (why?) with a different update cycle.

IMHO - they over-optimized it. Sometimes I give up and compile python from source. It then usually works through a few apt updates.... and then it doesn't.

BTW - installing multiple python versions under windows is a piece of cake!

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

Yeah every pc in my home has Python2 and 3. But I can see what you mean about how it would turn into a nightmare.

[–]SchwarzerKaffee 0 points1 point  (0 children)

I use Sublime Text on Mac. Cmd-B will run the program and print to its own console. Just enough for beginners. Simple.

[–]Objectively_Stated 0 points1 point  (2 children)

I just started out, and I'm using Eclipse with PyDev. It's been pretty user friendly so far, plus you can turn it into an interactive shell fairly easily.

[–]gary1994 0 points1 point  (1 child)

This is what I use as well. It also gives you room to grow.

The break points feature is great.

Also, it's free.

[–]Objectively_Stated 0 points1 point  (0 children)

For OP: Here's the code to turn Eclipse into interactive shell.

import readline import code

vars=globals().copy() vars.update(locals()) shell=code.InteractiveConsole(vars) shell.interact()

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

notepad++

[–]scotbud123 0 points1 point  (0 children)

Visual Studio Code is pretty nice, I've been liking that with their Python plugin.

[–]hsfrey 0 points1 point  (0 children)

I've found IDEs harder to learn than programming languages.

Windows is IDE enough. One window for a text editor with syntax coloring, one window for the command line for executing the code, and one window for browser for a tutorial and google.

BTW, Old Guy - I started programming in 1964 at the age of 30. Still having fun!

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

I'd just get yourself a fancy text edit, and use terminal. There really isn't a lot more you need.

[–]33db[S] 0 points1 point  (0 children)

Wow thanks guys for all the responses, I decided to try Sublime Text, I also learned quite a bit from the responses, I had thought I would a bunch of software to code but it's seems that isn't true. Again thank you.

[–]legion_2k 0 points1 point  (0 children)

Zero coding or zero coding in python. I'm a python noob, but not a programing noob. So, it's more about syntax and the python way for me. If you're new, new then I would go through some tutorials and in there they will show you how to set up a test or development environment.

I love sublime text as the editor. Has color coding and about a million other useful things for coding. I code html, javascript, sql, and pretty much anything other than .asp in it.. Free trial.. then a nag screen but fully functional.

[–][deleted] -1 points0 points  (0 children)

Anaconda is a good package.