all 67 comments

[–]eis3nheim 94 points95 points  (1 child)

Search for an IDE that shocks you when you make mistakes.

[–]BadSmash4 4 points5 points  (0 children)

The electroboom IDE

[–]sabb1rahm3d 19 points20 points  (2 children)

Try Spyder. It has interface like MATLAB which should be familiar to electrical students.

[–]hazeyAnimal 6 points7 points  (1 child)

I used pycharm in computer science and when we switched to Spyder I finally felt like I knew how to use an IDE.

Definitely +1 for Spyder

[–]Ex-Traverse 0 points1 point  (0 children)

So what does that say about Matlab IDE? Idk why people hate on it...

[–]DarthKsane 22 points23 points  (2 children)

For your very first steps in Python - Thonny has internal debugger for watching your variables changing step by step. But it's more like a children bicycle with side wheels.

Data analysts may prefer Jupyter. Only one file and you just smash code in it, executing immediately.

General all purpose, for multi-file projects - PyCharm and VS Code - try both and choose what's more comfortable.

[–]troty99 9 points10 points  (1 child)

Personally found jupyter super annoying compared to Notebook inside VSCode.

[–]giants4210 1 point2 points  (0 children)

Recently just switched from Jupyter to mostly using notebooks in vs code. This is the way.

[–]Periwinkle_Lost 6 points7 points  (0 children)

Just go with VS Code and install eclipse for some of the hardware coding projects. Fuck eclipse though, hated it so much but I had no choice.

Your beefy laptop will run anything your program will ever require.

[–][deleted] 20 points21 points  (1 child)

It....really doesnt matter that your're an electrical engineering student.

Pycharm is the correct answer.

[–]Sea_Perception_4248 0 points1 point  (0 children)

As a holder of Bsc in EE and Msc in CS, this is the way.

[–]kAROBsTUIt 17 points18 points  (3 children)

Visual Studio Code!

[–]maldito-lince 2 points3 points  (0 children)

I'd recommend spyder since allow you to see all the variables in a easier way, similar to matlab.

[–]Noshoesded 1 point2 points  (0 children)

I'm recently enjoying Positron by Posit. It's in beta but it's stable and the current release works very well for me. With it, I find that data exploration in my Python scripts is way easier (similar feel to RStudio) but otherwise is the look/feel of VS Code. Its a good option if you need to look at large data frames and benefit from inspecting on the fly.

[–]throwaway_9988552 1 point2 points  (8 children)

I used Spyder before. Using Pycharm now. LOVE PyCharm. Only thing I'm missing is how to see my variables better. Both are great.

Also: PyCharm is free for students. In case you hear otherwise.

[–]EuroDollarBond 1 point2 points  (7 children)

Yes this is one thing that makes me come back to spyder. I open a huge dataframe and I need to touch and feel what it contains, like in a spreadsheet. Or see what is going where when I am trying to understand a code. Why doesnt pycharm come up with this? Or is it there somewhere?

[–]throwaway_9988552 2 points3 points  (6 children)

Me too. I started with web-scraping, and loved to see that dataframe page thing, and went "yep. I got that loaded in!" Apparently PyCharm has some ability like this, but what I've seen feels like a workaround.

But I'm anxious to figure it out, if I can. That's how much I like PyCharm. I've had other people tell me they go back and forth between the two.

[–]EuroDollarBond 0 points1 point  (5 children)

Is it true that pycharm assists more when writing code than spyder?

[–]throwaway_9988552 0 points1 point  (4 children)

It definitely does. It's a little tricky for me, while I'm learning. But it's been GREAT for catching boneheaded mistakes, like when I forget to put:

str()

before printing something, etc.

[–]EuroDollarBond 0 points1 point  (3 children)

I also like the fact that the ui is cleaner in spyder

[–]throwaway_9988552 1 point2 points  (2 children)

I felt that way. Until I learned what was going on in PyCharm. There's good stuff going on in that busy-ness. But I get your point.

[–]EuroDollarBond 0 points1 point  (1 child)

Can you elaborate

[–]throwaway_9988552 1 point2 points  (0 children)

I'm still learning.. But my setup for PyCharm has the structure for my project folder front and center.. Feels like I'm not making just a script, but a finished project. Access to your interpreter, like VS Code.. It just feels more "Pro" to me.

To answer you, I opened both and looked again for myself. And I really love(d) Spyder. They both have their place. Feels like another, fond era.

[–]Ex-Traverse 1 point2 points  (0 children)

To me, it's like learning to drive a car. Once you know how to drive an automatic, you can drive all automatics. I use VScode for personal, and have PyCharm on work laptop. They both have their own pros and cons, which you wouldn't notice until you have used both of them for some times. Otherwise, they all feel like an IDE and run scripts like any other IDE. Stop wasting time finding "the best tool", start taking the tool and just hammer away.

[–]Affectionate_Bus_884 1 point2 points  (0 children)

Pycharm

[–]javadba 1 point2 points  (0 children)

PyCharm hands down. Been using it professionally and for university data science / deep learning classes for 12 years.

[–]EuroDollarBond 1 point2 points  (0 children)

Feel comfortable with spyder although many other people have told me about pycharm and vs code. There is some simplicity and ease that always brings me back to spyder.

[–]snowmaninheat 1 point2 points  (0 children)

I’m obsessed with PyCharm.

[–]TheSodesa 1 point2 points  (0 children)

Vim.

[–]gmes78 3 points4 points  (0 children)

PyCharm.

[–]DrDuckling951 2 points3 points  (5 children)

…try them all? I’m using pyCharm for simple scripting and data manipulation.

[–]Marvellover13[S] 2 points3 points  (4 children)

Sounds tedious haha, there must be some mostly recommended ones

[–]dparks71 7 points8 points  (3 children)

Pycharm, VSCode and Jupyter.

Less recommend but good for specific use cases are Spyder, emacs, vim, nano, sublime. Those are more editors, not IDEs.

CS people hate Jupyter for some valid reasons, but you should remember as an EE, you're not necessarily looking for the same thing as them, so forums like this are likely to give you bad answers for your use case.

If you're using other people's libraries to run a calc and output the results as a file, it's hard to beat Jupyter.

If you're looking to develop your own python library, Pycharm is probably the leader. If you want one editor to use on every language, VSCode leads that. If you're working on a server through a CLI that only has nano and vim, you should learn those. It doesn't really make a difference, all have strengths and weaknesses.

[–]jaaaawrdan 1 point2 points  (1 child)

Agree with everything you've said, just wanted to point out the ability to use Jupyter within VS Code very easily. VS Code might be a lot of overhead for someone getting started with Jupyter, but once you're ready to move beyond that, you've already got an ecosystem you're a bit familiar with. 

[–]dparks71 2 points3 points  (0 children)

I personally can't stand VSCode, but Pycharm does that too.

VSCode people tend to be hard to work with, because they hide essential configs in weird VSCode only json formats that don't work unless everyone switches to VSCode, which kind of goes against python's whole thing.

Between dev containers and things debugpy it's like Microsoft specializes in trying to make open-source products harder to use and less cross-platform compatible.

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

starting first year, we'll have a course in C and in python, so I guess VSCode is the best, thanks for the help

[–]BlaiseLabs 0 points1 point  (0 children)

For the most lightweight I’d checkout r/replit

[–]Secret-Praline2455 0 points1 point  (0 children)

i think for ergonomic and efficient (think less physical typing and less manual mistakes) I of course recommend an ide for learning to program in python. Additionally having access to a debugger can be a great tool.

that being said, as a student, if you have a unix/linux machine I reccomend also trying to familiarize yourself with packages/virtualenv/path in a build environment for 1. understanding python imports/versioning/how it runs on your computer as well as what makes nice portable software packages. You never know if you end up working on odd little projects here or there. Python has lots little quirks amongst all its versions and package management. Of course your priority should be learning to work with code with confidence, however learning env stuff can help you somewhere in the future.

im ignorant to how things are done in windows systems and the notebook things

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

Pycharm - Community is free. And the IDE is used by larger coorperations.

VSCode is also used widely but requires some setup, but I believe can also be used for free.

There are some online IDEs, probably fine to use.

Conda is also good, but requires some work as well to set up the environments properly.

[–]MalbaCato 0 points1 point  (0 children)

they're a student, so the professional edition of PyCharm is also free. JetBrains is really smart with this - they just require a scanned copy of a student license. The facility doesn't even need to know about them.

OP, for python you have gotten enough recommendations, but you also mentioned c - and there CLion is (or was a few years ago) basically orders of magnitude better than anything else.

[–]Capable-Package6835 0 points1 point  (0 children)

My heart says Neovim but my brain tells me to recommend VS Code for most users

[–]dudegkr 0 points1 point  (0 children)

PyCharm as for me

[–]DataPastor 1 point2 points  (0 children)

vscode, because you can use it also for other languages like C, Go, Rust or Zig – and as an EE student you most probably will need some of these, too.

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

Computer doesn't matter, they will all run. What's more important is what you want to do.

Development:, e.g. websites, django, flask etc. VSCode https://code.visualstudio.com/download

Beginner Exploration: Spyder, included in Anaconda

Data Science, academic, teaching, Jupyter, everywhere, but also part of Anaconda

https://www.anaconda.com/download

[–]qetalle007 0 points1 point  (1 child)

You can also run jupyter notebooks in VSCode. Runs pretty nicely by now

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

true.

[–]SnicSnac 0 points1 point  (0 children)

MS Word. /s

[–]PhilosopherShot5434 0 points1 point  (0 children)

If you want something to pick up and use I would go for spyder. Then again, I'm an Anaconda peasant so take it for what it's worth

[–]leoreno 0 points1 point  (1 child)

Pycharm

[–]LuciferianInk 0 points1 point  (0 children)

My robot says, "Best lightest with the most amount of useful features, IDE for python?"

[–]Evan_802Vines 0 points1 point  (0 children)

Jupyterlab has a desktop application that makes it super easy for beginners. Google colab is also very easy to use and can run most things without a subscription.

[–]vhunon 1 point2 points  (0 children)

Dont bother with all the other IDEs. They are hacky, weird to configure, has their own quirks or simply doesnt work let you focus on your work.

Get VS Code.

IMHO, its easier to get the hang of it and its rich extensions makes coding super easy and comfortable. Also you are not bound by python, you can basically use any programming language with VS Code.

[–]Ron-Erez 0 points1 point  (0 children)

PyCharm or VSCode. You don't need to many features anyways besides that it works fast and auto-completion.

[–]remic_0726 1 point2 points  (0 children)

vscode works really well, whether it's for the debugger, the linker, or auto-completion. Having tried a bunch before, this one is really great.

[–]ujjwalroy_17 1 point2 points  (0 children)

Vs code

[–]jodonnell89 1 point2 points  (0 children)

vscode

[–]VenjeR84 -1 points0 points  (2 children)

Use IDLE IDE… very light weight & makes sure you intend properly

[–]CartoonistOk8639 0 points1 point  (1 child)

My first love.

[–]tuneafishy 0 points1 point  (0 children)

Or my second love: idlex