6 ms·
I recommend this to my students frequently. I teach an intro to programming class to college students who have no experience. Inevitably, some try to use PyCh
by F00Fbug 6y ago
I recommend this to my students frequently. I teach an intro to programming class to college students who have no experience. Inevitably, some try to use PyCharm and they just get lost in it! I tell them it's like learning to drive in an 18 wheeler with a manual transmission. Thonny is very much the Toyota Corolla of IDEs and it's perfect for beginners.
The debugger and variable pane really help beginners figure out what's going as their program runs.
- qwerty456127 6y ago> Inevitably, some try to use PyCharm and they just get lost in it! I tell them it's like learning to drive in an 18 wheeler with a manual transmission. Not really. You don't have to use all its features, they are neither necessary nor intrusive. E.g. I hardly know, let alone use more than 10% of its functionality. The only reasons I use it are very smart code completion, refactoring (rename variable/class/function/whatever, jump to definition, find all usages), breakpoint debugger, auto imports suggestions, and type hints derivation. I barely even use menu items besides "reformat code". But the smart code completion IntelliJ IDEs offer is by far the best on the market so its worth that. Extremely useful for lazy/occasional/novice coders who don't remember APIs by heart and don't want to sopend much time browsing the docs every time.
- mstolpm 6y agoI'd assume you are not working in education? Of course, PyCharm has great features and you don't need to use all of them when working with the IDE on your own as a novice coder. But as a teacher, you have a completely different problem: You need a really simple, easy to explain environment - no fuss, no unnecessary complexity. Students /will/ explore unused features on their own and get lost or mess up. There is simply no time to deal with all possible problems individually as a teacher.
- qwerty456127 6y ago> I'd assume you are not working in education? Not right now, but I did. > But as a teacher, you have a completely different problem: You need a really simple, easy to explain environment - no fuss, no unnecessary complexity. Just tell them to ignore that complexity and only press this and this. When I was a kid we were taught to code (simple games in C/WinAPI and C++/MFC) in Visual Studio 6 Enterprise Edition on Windows NT. Visual Studio (especially its enterprise editions) traditionally has tons of features which still seem extraterrestrial to me but you are safe to ignore them. Just don't click those weird menu/toolbar items. Just create a project, write the code (with help of super-smart auto-completion) and press Run, use some conveniences (like refactoring and debugging) once you are told or read about those particular. Easy-peasy.
- graphpapa 6y ago“Here’s something that isn’t meant for your use case, but just ignore most stuff” Vs. “This does exactly what you want” Of course, there are advantages to learning with the same tool you could also go on to use professionally.
- ineedasername 6y agoJust because you learned using a more complex tool doesn't mean it wouldn't be easier for most students to learn using a less complex tool. It just means learning with a complex tool is possible. I don't think anyone would argue against that. They're just arguing it might be easier the other way around.
- bxlcarson 6y agoI'm surprised that you find Vim unintuitive elsewhere and talk about "just" creating a project in VS. VS projects in the IDE are one of the most convoluted development ways I've ever seen. Students won't learn anything except developing Stockholm Syndrom for a bloated proprietary environment. If it must be Windows, I'd rather teach cl.exe and Makefiles or adapted .vsproj files with msbuild.
- qwerty456127 6y ago> I'm surprised that you find Vim unintuitive elsewhere and talk about "just" creating a project in VS. Just go to the "File" menu, Click "New project" there, choose the type (a console app or a GUI app), enter the name and press Ok. The teacher shown us when I was a kid and nobody found this difficult. Of course, we never cared (until grown up and started to care about versioning) about the auxiliary files the IDE created to accompany the code in the project - understanding those never happened to be a necessity.
- tasty_freeze 6y agoImagine telling the students to use vim if they have never used it before. In theory, one only needs to know a few things to edit: - type vi <filename> to start editing - there are two modes: 'i' to start insert mode, <esc> to leave it for normal mode - in insert mode, what you type is entered as you type - in normal mode, use the cursor keys to move around - in normal mode, type 'x' to delete the character under the cursor - type :wq to save and quit What are the odds a vim-virgin could complete a programming assignment without getting tripped up, despite the explicit directions to use just the features above?
- qwerty456127 6y ago> Imagine telling the students to use vim I can hardly imagine that. They would hate me for wasting their time they could use to learn something practical. To me Vim seems a crazy alien technology of particularly questionable usefulness (even for a keyboard-centric user), only suitable for fun and for looking cool. Unlike PyCharm or Visual Studio, Vim doesn't just have unintuitive features available to whoever chooses to invoke those, it is and can only be operated in a completely unintuitive way, impossible to learn without instruction. And I never needed any instruction on how to use, let alone exit PyCharm.
- nocman 6y ago> I can hardly imagine that. They would hate me for wasting their time they could use to learn something practical. To me Vim seems a crazy alien technology of particularly questionable usefulness (even for a keyboard-centric user) I know tons of developers and system administrators that use vim on a daily basis (that includes me). While I agree that I would not necessarily recommend it for a beginning student, it is entirely unfair to describe it as having "particularly questionable usefulness", and "only suitable for fun and for looking cool". I and many others use vim for real work, not for "looking cool". Yes, the learning curve is high, and it requires investing some time to learn. My experience is that the time I spent learning it was well worth the investment. It's not for everyone, but that doesn't mean that it not for anyone.
- 6y ago
- F00Fbug 6y ago> Not really No, really! Sorry, but I've run hundreds of students through this course and that's my actual experience. I love PyCharm. It's a great tool. It's not what beginner programmers need to learn the fundamentals of programming.
- alexhutcheson 6y agoI recommend Geany[1] to students learning Java for the same reason. Many students used to try to use Eclipse, but would get bogged down in Eclipse' notion of a "project" and other details that were unrelated to the simple tasks they were trying to do. Geany is much easier for them to get started with, and still provides a graphical way to run and debug code. [1] https://www.geany.org/ https://www.geany.org/
- barbs 6y agoI remember using Dr Java in my computer science course 12 years ago, not sure how relevant it is anymore.
- approxim8ion 6y agoBack when I was in school, we used BlueJ [1]. I still think it's an extremely approachable IDE that has all the basics but not much more. 1: https://www.bluej.org/ https://www.bluej.org/
- skocznymroczny 6y agoI recommend people starting with programming to try https://codewith.mu/ https://codewith.mu/ . It's a Python IDE that's very simple, it doesn't even use menus, just few big buttons so that it's not distracting the users with multiple options.
- stinos 6y agoThere's a point of difference though which is quite important especially for teaching: Thonny also works with MicroPython, i.e. it can do things like giving you a REPL which directly talks to the MicroPython interpreter running on a controller like ESP32 (so you say led.On() and the actual hardware LED goes on), upload code to it, has shims for common MicroPython modules which are implented in C (iirc), etc.
- dave_sullivan 6y agoSometimes I end up teaching friends a bit about programming. I should really stop starting them on vim...