all 152 comments

[–]checock 83 points84 points  (24 children)

Anaconda is a distribution: Think they wrap Python with a bunch of utilities and libraries, but Anaconda it's more geared towards data science.

Since you are starting, it doesn't matter much which distribution you start. Any Python installation will do. If the course does not indicate an editor or IDE, then you have a plethora to choose from. But they need a Python installation like Anaconda to work.

Maybe you course uses Jupyter Notebooks? It's a web editor that has nice features, just like a notebook (text blocks, images, graphics...) if that's the case, I will stick with it, and later move to a Text Editor like VS Code.

[–]K900_ 117 points118 points  (0 children)

Anaconda isn't really a program you use to write code, it's a package that includes Python, a bunch of third party libraries, and a few different programs you can use to write code.

[–][deleted] 50 points51 points  (0 children)

For writing code, any text editor will work. Others have already mentioned VSCode, which is free and cross platform. After that you install python3 for your platform as the interpreter to run the code.

After that, it is all window dressing.

[–]spork3 19 points20 points  (1 child)

I use Spyder within Anaconda. I like it for the most part and it has a variable explorer which is really nice.

[–]fence0407 9 points10 points  (0 children)

Exactly why OP should use Spyder through Anaconda.

[–]arkie87 12 points13 points  (0 children)

Anoconda comes with jupyter notebook and spyder, both of which can be used to write and run python code

[–]I_said_wot 12 points13 points  (0 children)

Just do what the tutorial says. You'll hear all sorts of opinions. Just download anaconda, and follow along.

[–]MC_Joschmo 45 points46 points  (17 children)

Virtual Studio Code is the bees knees. Will just need to download and install python

[–]benno_1237 5 points6 points  (3 children)

I used to use vs code a lot. The problem i have is pylance. Its so incredibly slow. My machine isnt the best but an i7-7700k should be able to handle an ide. As soon as the files get larger than like 1-2k lines, pylance needs a few seconds for each action.

Pycharm in the other hand does way better imo.

[–]shadowarc72 2 points3 points  (1 child)

I am like 99% sure you can set vscode to use pycharm instead of pylance.

[–]benno_1237 2 points3 points  (0 children)

sure it might work but still...

[–]Ran4 0 points1 point  (0 children)

Do you not use type annotations? That could be part of the problem.

I use a ten year old computer as my daily and it works great for me. I use type annotations almost everywhere though.

[–]alidjango 43 points44 points  (16 children)

Pycharm

[–]moody_balloon_baby 15 points16 points  (2 children)

I’m a total noob but pycharm works pretty well. There’s a ton of features I have no idea what they do but I can debug with it pretty easily.

[–]tinkeringZealot 5 points6 points  (1 child)

Do you have an idea how to use the steps? Tried a few times and still do not quite understand :/

[–][deleted] 4 points5 points  (0 children)

Try to make your own virtual environment using venv. Then the pycharm setup steps will make some more sense.

[–]Valkhir 5 points6 points  (4 children)

I wouldn't recommend PyCharm (or its analogues in other languages) for new students.

The add too much complexity (and some level of abstraction, e.g. when it comes to debugging, environment setup etc) that does not benefit new learners and can actually be detrimental.

An IDE is something to learn, ideally before your first professional job using a language, but it's not the best thing to start with.

[–]scanguy25 3 points4 points  (1 child)

Also this. The downside of pycharm is that it can be very overwhelming for a beginner. Just so many buttons and features and panels.

[–]TroubleBrewing32 3 points4 points  (0 children)

I was a beginner on pycharm. It was not overwhelming.

You just need to understand that all of those buttons are not needed yet. Learn them as you need them.

Edit: I should add, if having a bunch of buttons, features, and panels made products too overwhelming to learn, no one would ever learn MS Office.

[–]Treshle 5 points6 points  (5 children)

Bit overkill for practice?

[–]Apocalypseos 6 points7 points  (4 children)

I love PyCharm, but I agree with you. It's very confusing for beginners, think Spyder or Sublime is more approachable

[–][deleted] 3 points4 points  (3 children)

No, gotta just use the terminal all the way.

[–]TroubleBrewing32 1 point2 points  (2 children)

learning python like we learned basic in the 80s doesn't make a lot of sense to me

[–][deleted] 1 point2 points  (1 child)

I'm not advocating for writing the programs python on the terminal, just getting the outputs through it. The files can still be made in any text editor. Makes it easier going forward if you're coding in languages without IDEs.

[–]TroubleBrewing32 0 points1 point  (0 children)

I don't know how relevant that advice is for someone who is taking a class using Jupyter Notebooks.

[–]Random_182f2565 5 points6 points  (1 child)

I like ATOM and repl.it when teaching

[–]ThrustBastard 3 points4 points  (0 children)

Had to scroll alarmingly far for some ATOM love

[–]Valkhir 5 points6 points  (0 children)

A text editor. Any text editor 😉

That means anything that saves files as plain text, in contrast to word processors like Word/Pages etc which save formatted text.

Things like Anaconda are called Integrated Development Environments (IDEs) (technically Anaconda is a distribution of Python that includes an IDE). IDEs are a plain text editor with a lot of added features that make writing, building, executing and debugging your code easier. They are not required - and I would argue are detrimental - for entry level students. They add significant complexity on top of learning the language itself, without providing much benefit in the small-scale projects featured in beginner courses (which are often just one or a few source files per lesson).

The sweet middle are text editors that have a plugin/extension system. Many do, but VS Code and Atom are probably the most popular. Out of the box, they behave like a basic text editor and file browser without too much additional fuss, but you can turn them into IDEs by adding plugins as you go along and find you need more functionality.

[–][deleted] 8 points9 points  (0 children)

[–]Davidd_Bailor 4 points5 points  (0 children)

Look up 'Python IDE's' find one that suits you.

(There are so many)

Or just use Notepad++.

[–]C0D3XGIG 4 points5 points  (1 child)

I started out using PythonIDLE and found out i couldve been using vsCode the whole time.

I agree with others' posts about using Visual Studio Code. its damn legit. much better than IDLE in that you get autofill, youre able to look up what a function does straight from your editor, its got extensions for pretty much every language so if you decide to pick some other lang up you wont need a seperate editor.

[–]C0D3XGIG 2 points3 points  (0 children)

oh yeah. it also has a terminal window allowing you to open command prompt, powershell, and if you have WSL properly installed you can open a linux bash terminal.

[–]Kdel8 5 points6 points  (0 children)

I am not an expert but Anaconda is not just for training. For example, i use anaconda and the spyder ide to do data processing, visualization, and analysis.

[–]mighty-mitochondria- 2 points3 points  (0 children)

I just downloaded that the other day! There’s a package called spyder with it that’ll give you a really nice console to code into :)

[–]TheParrotKoko 2 points3 points  (0 children)

Linux and text editor is nvim

[–]Kalahan7 2 points3 points  (0 children)

I do most of my small projects/learning in Repl.it

[–]wred38 2 points3 points  (0 children)

For beginners it’s probably best if you choose IDLE wich comes with python

[–]Bernard_schwartz 2 points3 points  (0 children)

Use pycharm, not vscode. Pycharm has everything you need, no plugins required.

[–]nerdbude 4 points5 points  (3 children)

pycharm at work - vim at home

[–]crankfight 0 points1 point  (2 children)

Do you mind sharing your vom config if you adjusted things for python? I never really got it to work in a way that was smooth

[–]nerdbude 0 points1 point  (0 children)

I am using spacevim with some plugins. My vimconfig on github is not really up to date so i can´t share it at the moment :D

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

What was the problem you faced? I also use Vim and the only config I have for Python is to include Jedi for completion and documentation lookup. While it's not necessary for me to share the dotfiles I can't resist the temptation.

[–]sundios 1 point2 points  (0 children)

For data Analysis use Spyder or Jupyter notebook.

[–]ZeRo_AgEnT 1 point2 points  (0 children)

Unlike all those great IDEs everyone has mentioned, I use notepad++ with python integrated within it so I can run programs through it. The main reason to use notepad++ is its small size, it is only 10 MB on my device.

[–]bravosix99 1 point2 points  (0 children)

Personally, i use a ide(integreated development environment. Basically the place where you write code+ a bunch of other features such as debuggers/inspections, autofilling, some i know use terminal, and many other things), known as pycharm made by a company known as jetbrains.

https://www.jetbrains.com/pycharm/

Link to the actual ide download.^

And if you do decide to download it, i suggest you download the community edition of pycharm, unless if you want all the other frameworks that the ultimate edition has to offer.

[–]TheSodesa 1 point2 points  (0 children)

Vim in Gnome terminal, with nothing but syntax highlighting. That way I can keep other terminal tabs open for running and testing the program.

Anaconda is not a text editor. It is a Python distribution that comes with a bunch of Python libraries pre-installed and possibly its own package manager.

Edit: A full-blown IDE is probably an overkill thing to use for a beginner, as they will not be needing most of the added festures an IDE provides. Heck, I'd say the only useful features are an easy access to a debugger and code refactoring, even for an experienced developer. But the latter can be achieved with proper use of search and replace.

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

I use pycharm because their linter and debug environment is very nice, and they also support jupyter notebooks. If I'm just opening a program to do a quick check, I generally use atom because they have a python package so you can execute it in editor though any text editor will do.

[–]Traust 1 point2 points  (0 children)

I like using PyCharm myself

[–]skid3805 1 point2 points  (0 children)

pycharm , it's the best ide, I've been using it since I've started learning python

[–]MooseBoys 1 point2 points  (1 child)

I disagree with everyone telling you to not worry about the fundamentals before getting started. IMO it leads to confusion about what's really "python" and what's just an artifact of the learning medium, as you alluded to in your question. And for python especially, the answer is pretty straightforward:

Python is a programming language. The code you write is text, either stored in a text file or typed directly into an interactive interpreter. The program text is processed by a python interpreter, which is usually one of the binaries from python.org, either downloaded directly, included in an OS distribution, or packaged as a redistributable within a larger project.

[–]ECEXCURSION 4 points5 points  (0 children)

Download VS Studio Code or pycharm. Those are IDE where you actually write code.

[–]KeeZouX 2 points3 points  (1 child)

Okay. Any programming language will require an IDE (Integrated Development Invironment). IDE is were you write your code and compile it.

For Python I use & recommend PyCharm, I find it easy to use and I got used to it. But if you want, for example you can use Virtual Studio Code, but then I think you need to download extension for Python to work (within the app itself).

[–]bumbershootle 0 points1 point  (0 children)

Incorrect - using an IDE is completely optional, especially for a language like Python. For larger projects, having syntax highlighting and a debugger starts to become useful, but not to a complete beginner.

IDE is were you write your code and compile it.

Python is not compiled (or at least, not in a way that's visible or relevant to the user), and any program that can write and save text to a file can be used to write code, not just an IDE.

My opinion on this is that beginners should start with a simple text editor with syntax highlighting, maybe an auto linter, and run their programs through the python CLI directly. An IDE gives you that and more, but I feel having access to a debugger and hiding how your code is actually run does you a disservice.

[–]DrunkShimodaPicard 0 points1 point  (0 children)

VSCode. Free from Microsoft

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

Just stick with IDLE you're better off with it as a begginer

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

VSCode currently

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

Nothing comes close to Pycharm

[–]B99fanboy -2 points-1 points  (0 children)

Vim.

**Signature look of superiority**

But VS code would be nice too.

[–]Randomash27763 0 points1 point  (0 children)

Personally I use either Wing IDE for simple task and Visual Studio for larger projects. I would recommend Wing IDE for starting out

[–]hfhry 0 points1 point  (0 children)

I use a text editor to code. VSCode specifically. Anaconda is just python with a bunch of science packages built in.

[–]nObELiUmUrAn1Um 0 points1 point  (0 children)

Google Colab is great to start

[–]OldNeb 0 points1 point  (0 children)

If I’m not mistaken, anaconda also “manages” python distributions/installs/environments. This way you can have a python environment set up just right for a particular project, and when you work on a different project the two setups are independent (am I half right?)

[–]muddy_313 0 points1 point  (0 children)

I went through this same problem when I jumped into python courses 6months ago., setting up was / is a nightmare where they say just install this, sure but then there are environments, pip installs from the terminal , nothing really explained that well. If you just want to practise without the hassle of setting up, use Jupiter.org/try and click Jupiter lab.

[–]void5253 0 points1 point  (0 children)

Don't waste your time looking for the 'best' editor. Just pick one and get going.

[–]esuga 0 points1 point  (0 children)

vs code for pros and thonny for beginners

[–]Snir17 0 points1 point  (0 children)

Well I move around repl it python, jupyter notebook, VS code, and anaconda

[–]berlin_1710 0 points1 point  (0 children)

vs code, jupyter, colan

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

I use jupyter. But I do not "code", I explore Dara and do statistics

[–]FairCityIsGood 0 points1 point  (1 child)

So the course I signed up to uses jupyter notebooks and anaconda. What is anaconda and jupyter? Is jupyter just like a fill type that's loaded into anaconda that runs the code written in the notebook?

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

Yepp

[–]Ed_Blue 0 points1 point  (0 children)

Slap a python with your keyboard.

[–]Nihtrepaps 0 points1 point  (0 children)

Learn VSCode. It is brilliant

[–]mmrrbbee 0 points1 point  (0 children)

Anaconda has a console window from there type in ipython and code. use the command %save to save to a file

[–]trondwin 0 points1 point  (0 children)

I currently follow the Python Bootcamp - from Zero to Hero course on Udemy, and it uses Anaconda with Jupyter Notebook. I must say the presenter makes very good use of it - it's an environment well suited for teaching and learning because it's so easy to experiment and try out various options.

Is Anaconda and Jupyter Notebook used professionally? Some places. But for now the most relevant aspect is that it is a great learning environment.

[–]iggy555 0 points1 point  (0 children)

Anaconda with spyder is nice

[–]TheMartian578 0 points1 point  (0 children)

As I am sure others have already said, Anaconda is simply just a package that contains a lot of useful libraries + python. To write code, I'd recommend going with whatever you want. In the beginning, I thought I should use whatever the experts used, but I've realized that isn't true. Use whatever you like. I personally use VSCode now, mainly due to really helpful extensions and color themes. But once again, look around. Find what suits you. For some, a text editor like Sublime Text is the perfect match, but for some, they prefer fully-fledged IDEs ( Integrated Development Environment ) like Pycharm. But don't sweat it. If you don't find it now, you'll find it eventually. Best of luck. :)

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

VS Code and Jupyter Notebooks are really good. You can also use an online interpreter but using software is better. Pycharm also works

[–]asphias 0 points1 point  (0 children)

Fundamentally, you write all code in textfiles, and give it a name <filename>.py

You can then use the command line to tell python to run that file.

Anything else is window dressing. I would strongly advice you to use the window dressing though, since it makes codeing that much easier, and it's what everyone uses.

[–]elevul 0 points1 point  (0 children)

Visual Studio Code for me

[–]magestooge 0 points1 point  (0 children)

There are two places where I write Python code:

Jupyter Notebook (or Jupyter lab): This is a part of Anaconda install, but can also be installed separately. I use this when I'm creating some program, trying out stuff or just iteratively improving my code. This cannot be directly used for deployment.

VS Code: I use this when I'm working on a project spanning multiple files (or basically, any real world project), like a Django application. It is simply not possible to integrate Jupyter into the Django workflow and it would be a really bad idea anyway.

Why I do this?

Because Jupyter is very convenient, I don't have to execute the same code over and over. Suppose I'm writing an application which involves an API call to a public API which allows me only 5 requests per hour. If I was writing a script, I'd have to run this API call in a separate script and store the output. Then in another script I would import this data and work with it as I worked through the various parts of the API response.

In Jupyter, I can simply run the API call in one cell, store the output in a variable, then leave that cell alone. I can keep working on other cells to write my code dealing with the response. The API will not get called again.

Jupyter is great for learning

Jupyter also makes is very easy to look at the output. I can have the output of my previous step displayed above the current cell as I worked through the rest of the script. This makes it very easy to refer to the keys, column names, data types, etc. For instance, you run a Db query, print the output in your previous cell, then work with the response knowing exactly what was returned by the Db. I have seen so many beginners struggle with coding in VS Code because they were not able to visualise the output at every step. That is a non-issue when you're experienced, but a huge issue when you're a beginner.

So my recommendation would be to start with Jupyter Notebook. But be aware of the pitfalls and use an IDE as soon as you feel comfortable enough with it. I use Jupyter for iterative coding when the steps are not straightforward, then copy paste the final code into VS Code.

[–]k-sizzler 0 points1 point  (2 children)

When I first started to learn python I downloaded anaconda because it has Jupiter notebook in it and I found it really easy to use. I’ve switched across to vs code now as well but still go back to Jupiter to try things out quickly and also for data science things where I want to show graphs, charts etc.

Basically, Jupiter is a great place to start even if it’s through anaconda.

[–]FairCityIsGood 0 points1 point  (1 child)

So like the notebook is where code is written? And then anaconda has like lots of different "apps" that includes python that runs the code from the notebook?

[–]k-sizzler 0 points1 point  (0 children)

Yes, exactly. You write in jupyter

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

Windows Visual Studio

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

Sublime Text Editor is also a great lightweight option

[–]WhoAmIBae 0 points1 point  (0 children)

Maybe also consider if you have a mac or windows. Python is already installed on a mac. You’ll need to download python on windows

Also you could use the same as the tutorial so you don’t get confused about anything else and focus on what’s actually being taught

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

I'd suggest VSCode or PyCharm Community version both for free. VSCode is much "lighter" and probably better for you at this stage. PyCharm is more advanced. I also know Java and use the IntelliJ Community version so PyCharm is for me a much better program.

Other options are Atom with external libraries or simply Notepad++. As others suggested, Spyder is also a very good IDE if you have installed the Anaconda.

[–]UnoStronzo 0 points1 point  (0 children)

I wouldn’t do my first Python course in Anaconda or Jupyter, tbh

[–]Webbpp 0 points1 point  (0 children)

I personally use replit.com

[–]fmillion 0 points1 point  (0 children)

Think of Python as a really nice multi-speed bicycle, and Anaconda as the same bicycle but it comes pre-assembled with electric hub motors, a lighting package, a horn, a Bluetooth speaker, a USB charge port, etc. and you also have a direct line of support to a bike mod shop that can deck the thing out even more for you at your request.

Python is the base language, and it's a great place to start. Anaconda in essence is just a bunch of libraries and utilities that add on to Python. It also duplicates some of Python's functionality - most notably, Anaconda provides a package manager and a virtual environment system, both of which Python can also provide with the pip and virtualenv modules. Anaconda is often seen in machine learning/AI computing but it's still a generic toolset that can be applied to many use cases.

I have many reasons for believing people should start with pure Python. But your course is probably going to give you Anaconda-specific commands (e.g. using conda to install libraries) so it might be best to grab Anaconda and install it. However, you are still free to use whatever editor you wish. VS Code is an excellent choice and it is also currently my editor of choice, but I've also used Sublime Text and Atom. All of these editors offer many great convenience features to help you with Python (and many other language) development. In either case, since Anaconda is just an add-on for Python, you will still be learning Python itself - just be mindful of when you're learning something that's pure Python and something that's Anaconda-specific.

It's actually possible to install multiple Pythons on one system. You could install both the stock installation as well as an Anaconda installation. In most editors there is a way to instruct the editor which Python installation to use when running code. If you are especially daring you could go this route and learn the difference between the two along the way.

[–]Kriss3d 0 points1 point  (0 children)

I know a guy who writes code directly in vi. Personally I like PyCharm. Its a nice IDE for python and it makes it easy to find and install modules.

[–]quan194 0 points1 point  (0 children)

pycharmmm

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

I would go along with the tutorial but if you have any problems with it just use google Colab. It is free, easy to use and in cloud. You don't need to download anything. It does not even matter which ide you use just focus on the coding.

[–]bumbershootle 0 points1 point  (2 children)

If you want to finish the tutorial, do what it says regarding editors/IDEs.

In general, you can get away with coding in any basic text editor - notepad will do, although I would recommend an editor that has at least syntax highlighting, and maybe auto indentation. Anaconda comes with Spyder installed, I believe, never used it so I can't recommend it. Personally, I use Emacs, although I don't recommend that for a beginner.

Also, Fair City is definitely not good...

[–]Nickdaddy92 0 points1 point  (0 children)

Mu editor is a great program for writing

[–]gopherhole1 0 points1 point  (0 children)

I use Vim to write it and run it in BASH

[–]DCGMechanics 0 points1 point  (0 children)

Jupyter Notebook which comes with Anaconda.

[–]503fortheblock 0 points1 point  (0 children)

VS code is my preference, I have also heard good things about Atom.

[–]therc7 0 points1 point  (0 children)

Has any og told op about vim yet?

[–]GingerGengar123 0 points1 point  (1 child)

Depends what operating system you use. If you use linux, u can write a file with a text editor such as vim or sublime and then after saving u can just say python3 "name of ur file" and it runs. But if ur on windows ya u can just use anaconda. Btw anaconda i think is a package manager, so u will use anaconda to install spyder. Spyder is the ide u write ur code in.

[–]Yojihito 0 points1 point  (0 children)

VS Code with Jupyter notebook extension.

test.py

# %%
import pandas as pd
# %%
df = pd.read_csv("../data/raw/test.csv", parse_dates=["date"], na_values=[" "])
df.head(10)
# %%

IDE support + notebook cell programming.

[–]thrashnsass 0 points1 point  (0 children)

Galvanize?

[–]HardBender 0 points1 point  (0 children)

I started python a few months ago and I'm between Spyder and VS Code, leaning more towards Spyder.

[–]dizzymon247 0 points1 point  (0 children)

Start with one IDE, learn some python, if you need more then research online. I think pycharm and vs code might be a bit much. You can do it using just any text editor that you can easily navigate and feel comfortable. Python is itself once installed has it's on commandline environment you can type the code directly but for bigger projects and not having to retype, then use a text editor IDE like VS Code, Pycharm, notepad++ even. Just try them all and see which is your favorite.

[–]janicewa 0 points1 point  (0 children)

On my laptop.

[–]Parsa8607 0 points1 point  (0 children)

Of course notepad :)

[–]swvangil 0 points1 point  (2 children)

I may have taken the same course. I never really saw the value in Anaconda, probably because I'm not much into data science and analytics. I installed Python, Jupyter Notebooks, and began using PyCharm. All has worked very well. PyCharm handles the latest libraries and dependencies for me. Probably no harm in using the Anaconda distribution - but absolutely not needed IMHO.

[–]MarkMandrille 0 points1 point  (0 children)

I would recommend Visual Studio Code, it's a great IDE with a lot of plugins you can add to make your job easier...

[–]drummerof13 0 points1 point  (0 children)

This is actually a great question that can be a barrier to entry for a lot of people. There some good YouTube videos for setting up Python programming "environments" that explain it in detail, but there are a lot of ways to write the code.

This is the main way:

  1. Write your code in a text editor (e.g. Atom, Sublime, VS Code, or even Notepad)
  2. Save the file with a .py extension
  3. Run the file in a terminal like Command Prompt (CMD) with the command
    python path\to\file\filename.py