2

I'm a first year Physics MSc student. This semester I'll attend to a practical course where we learn to use Python for scientific computing. The course is beginner-level. We will work on our own laptop, not institutional devices, and are expected to install all necessary software.

Yesterday, at the first lesson, the teacher informed us about the recommended environment and code editor (Anaconda and Spyder). He also told us, however, that, if one wishes to, he's free to use any other environment of his choice - only the teacher will have a harder time helping him.

The thing is, I already am a somewhat experienced Python coder. Of course I still have a lot to learn, but e.g. part of my BSc thesis was writing (and debugging) a 1500 line complex data processing Python program. While I wrote this, and other codes since, I got really used to a different environment (bare Python installation with Pip, and VS Code). If only for my convenience, I'd use this.

On the other hand, this is a beginner level course, and I'm sure a measurable deal of time will be spent learning the environment itself – so it's a good opportunity to learn something new. Also, if I get stuck and need the teacher's help, it'd be more convenient for him to use the environment he knows. And it's not my aim to get him frustrated... On the other hand, I think I'd be faster and more powerful using the editor I got used to, and that would be an advantage in time-critical tasks (like tests). Also, though I never used Spyder, from what I found online there's nothing it can do that VS Code couldn't – actually, VS Code seems to be the superior to me – so there may be no advantage in learning this environment.

Should I use the recommended environment, or is it okey if I use a different one? I'm sure the majority (maybe all) of my classmates will go with the recommended one, as they have no former experience with Python.

I'd like to get some point of view from educators. How big a trouble does a wayward student like me cause, may it annoy the teacher in the long run, even if he doesn't believe it now?

[I'm not really familiar with the tags here, I'd be grateful if someone more experienced could check them.]

  • 4
    You have pretty much listed the pros and cons. What do you expect we can add to that? If you are uncertain, just talk to your teacher. (S)he is probably the only person who can add something meaningful. – Maarten Buis Sep 6 '18 at 7:27
  • 2
    Is there an in-class final test? What is installed on the computers in the classroom where the test will take place? – Federico Poloni Sep 6 '18 at 7:34
  • 4
    By the way: this would get better answers at cseducators.stackexchange.com, I believe. – Federico Poloni Sep 6 '18 at 7:36
  • 1
    @Frederico We will write that "test" on our own device as well (with supervision, of course). Good point on the sceducators SE, I forgot about it. I ask for migration, if this can be done. – Neinstein Sep 6 '18 at 10:40
  • 2
    As a personal anecdote, I once had a C-programming course where the program you did the programming in was ostensibly irrelevant, but all compiling for grading would be done with gcc in a Unix environment with specific settings. And you could get very different results if you were compiling in visual studio. In my case, I made this mistake, and found out the hard way that in VS code that was completely unused wasn't compiled or checked, but the gcc ran everything, so an otherwise irrelevant missing semicolon wrecked the gcc compile but not the VS one. – zibadawa timmy Sep 6 '18 at 19:16
5

As a faculty member who has taught data analytics classes, one thing I hate to do is provide "tech support" to students in class. (In office hours is fine.) I would recommend a standardized platform to my students because it minimizes (but doesn't eliminate) the amount of technical problem solving I have to do. At least, if I solve a problem once* for the class I don't have to solve it again.

So the real question is: are you a complainer? If you can't make something work in class time, are you going to be calling on the professor to help you fix it? Or will you just muddle through, watch/help your neighbor do the lab on his computer, and figure out how to configure your own machine on your own time after class? If the latter, I as the professor would be fine with you doing whatever silly thing you want. If the former, or if the professor needs you to complete the lab during class time, I'd use the tools he recommends.

By the way: Spyder is to Python what RStudio is to R. In addition to being a code editor, it has window panes or tabs to explore datasets currently in memory, and to view and format any data visualizations generated by your code. So it's different than using a typical Python editor like PyCharm; it's a tool specifically well suited to data analysis. I can understand why your professor has chosen it, and I recommend you give it a try.

*Actually, twice: once for somebody with a Mac and inevitably also for someone with a PC.

  • PyCharm has added a few panes recently to give these kinds of views. – geometrikal Sep 6 '18 at 14:41
5

The biggest difference you're likely to see if you use your own set up is the level at which your instructor will be able to answer questions. With the recommended method you might be told "Find and replace the string using control/command + R", whereas with your own setup you're liable be told "replace the string". Providing you already understand things well enough that you can make the translations in your head, then for a beginner's course and a mixed group you aren't likely to miss that much.

It's worth pointing out that it's perfectly possible that the teacher is more used to using yet another setup when coding themselves. Anaconda + Spyder is a good choice in this setup mostly because it works cross-platform in a reasonably consistent manner, rather than because it's a high productivity environment.

2

The choice of editor probably doesn't matter so much, although I would lean to using something with the IPython console (default in Spyder, add-in for VS Code AFAIK) as it easier to work with. Spyder has features useful for data science, such as quick access to variables and an image pane to show plots. PyCharm has these too now.

However, I do think you should use Anaconda, as it provides a distribution of the common python libraries using versions that are supposed to be compatible. If you submit code for assignments or to share with classmates, this will ensure they run on everyone's machine. It will also ensure that your code doesn't have some weird bug using some half-baked release that no one else has.

1

I would suggest to use whatever you like as long as you are willing to invest the needed time and energy to get it to work.
For example, when I learned to use Anaconda for Data Science, I first wanted tot code in Atom, just to learn in the middle of the course that Atom (or rather the script plugin to run code) isn't able to work with the pandas package included in Anaconda...
Yes, you might be able to fix such issues with enough experience and time to google for fixes, but there is a real chance that it will take you a lot of time that would not be needed if you follow the prescribed steps.

Furthermore, there might be (homework) exercises that you have to do in the demanded environment for the teacher to be able to grade it.

1

I would suggest you start by "going with the flow" and using the recommended tools. If nothing else, you will get the chance to explore them, with help on hand if you hit any problems installing them and learning how to use them.

But if after a while you feel you can work more efficiently a different way, then change horses. After all it's your time that you are investing in taking the course and (you hope!) the course is supposed to be teaching you "Python programming", not "how to use one particular IDE."

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.