DjangoGirls / tutorial

This is a tutorial we are using for Django Girls workshops
http://tutorial.djangogirls.org/
Other
1.53k stars 1.86k forks source link

Suggest an IDE #1169

Open rix0rrr opened 6 years ago

rix0rrr commented 6 years ago

This thread has been moved from here.

PyCharm is free and, in my opinion and experience, a lot easier to get started with for an aspiring programmer than the "UNIX is my IDE" environment we are currently dropping them into.

Is our goal not to entice, to show what is possible? Instead, we're burdening them off with a giant load of new concepts that are not even essential to the idea we're trying to convey. Yes, learning the command line is helpful and important later on, but all in good time. From experience I have seen multiple students during a single day of DjangoGirls just be completely overwhelmed with all the computer concepts, before they even get to the meat of the workshop.

For my own professional work I use UNIX as my IDE, but I cut my teeth on a real IDE and I will argue that the experience is a lot better. I suggest PyCharm, since it's free and can do everything the workshop requires. Bonus points: it's the same on all platforms!

This thread is to start up a discussion and do a tiny poll around for support of this plan.

I started rewriting part of the tutorial in a fork, but it turns out to be a giant amount of work, probably requiring a large restructuring for the narrative to keep on making sense. Especially the "choose your own adventure" paragraphs are going to contain a lot of branching, which will detract from readability. I'm not too keen on putting in too much effort, only to have my PR rejected later on because it changes too much. Hence, this topic.

What say ye?

goanpeca commented 6 years ago

PyCharm is free and, in my opinion and experience, a lot easier to get started with for an aspiring programmer than the "UNIX is my IDE" environment we are currently dropping them into.

I would definitely disagree with this statement. PyCharm Free Version (not all versions of PyCharm are free) is still too convoluted for someone really just starting.

For what I have seen in all the workshops I have assisted as organizer and coach, the best to maximize the time of the attendees is to present them with 1 option that is good, simple and light. Some users are already used to another IDE if they have some minimal programming experience (even if it is something that would not necessarily be the best option).

So far in the different editors I have used I have found that VS Code to be the best in terms of good, simple and light. It is what I am using in the next workshop I am organizing on December 2nd

I usually tell the attendees to pick one and keep moving otherwise they will install all and open all and although this is a good experience for them to try out things, I think it just wastes too much precious time. I would rather encourage the use of 1 editor and hide the others as a footnote in another section.

rix0rrr commented 6 years ago

Thanks for the reply Gonzalo. I'm not opposed to VS Code either–what I'm most interested in is simplifying the whole experience and not dumping too much on the participants.

Let's make a list of requirements and see which IDEs match them best:

What PyCharm VS Code
Available on all platforms Yes Yes
Syntax highlighting Yes Yes
Built-in Python shell Yes Yes
Red squiggly underlining for coding mistakes Yes Yes
IntelliSense ? Yes
Run scripts from the editor Yes ? (I assume yes)
Built-in terminal Yes ?
Terminal has automatic virtualenv activation Finnicky, but yes ?

There's probably more I'm forgetting...

Can you elaborate a bit on what parts of PyCharm make it too "convoluted"?

goanpeca commented 6 years ago

I dont agree with those requirements in the first place. As a new user you dont and should not care about all that. Its just noise when you are learning you want to keep things simple. Convoluted as in its too crowded. Vs code can still do all your requirementd (not that its important to me in this case)

goanpeca commented 6 years ago

PyCharm is what one uses when you become a more proficient developer. I would never recommend it when learning for the first time, as it is the case of many participants.

victoriadrake commented 6 years ago

Came across this while wondering why VSC wasn't suggested in the tutorial. It's a free, cross-platform, very powerful editor that is also easy to get started with, and I'd be happy to write it into the list. To address the chart above:

VSC has extensive support for Python with the Python extension (two-step install). It includes syntax highlighting, linting (the red squiggly line mentioned), and IntelliSense. There's a built in terminal as well that is easily toggled with a keyboard shortcut, too.

This page may be helpful: https://code.visualstudio.com/docs/languages/python

ekohl commented 6 years ago

@hivickylai I think that might have similar problems as a full IDE: it mentions linting and things like coding style make the whole process even harder than it currently is. Back when I was a student our first programming course also used some plain text editor even without syntax highlighting. It may have been harder but it distracted less from the focus. Choices are also hard for students. I agree with with @goanpeca that there should be one preferred editor with alternatives mentioned.

goanpeca commented 6 years ago

I suggested VSCode because it really light, works well on all platforms and by default you get something like (probably the default theme is different... cant remember now)

screen shot 2017-11-16 at 07 45 31 screen shot 2017-11-16 at 07 46 32

It can't get less crowded than that, you get basic highlighting and the possibility of a plugin later on.


@hivickylai it has been added already on https://github.com/DjangoGirls/tutorial/pull/1139, but I think we should try to really focus on 1 (or 2 at most) and hide all the rest of the stuff in a different section/footnote etc...

ekohl commented 6 years ago

@goanpeca that sounds fair

goanpeca commented 6 years ago

There are just too many options out there :-p, so it is likely we will never agree on what we should use... but I think we can agree on what we should not use, PyCharm being one of them. And this is nothing against PyCharm per se (I have used it in the past as well), it's just not the right tool for this job.

ekohl commented 6 years ago

I see a big benefit in having one recommendation and only mention there are other options out there. They should just be links and not instructions on how to use them. The tutorial is already really long before you see any rendered HTML page. We should try to cut that time down.

goanpeca commented 6 years ago

@ekohl I would encourage you to open perhaps a new issue to discuss that topic then, this covers a different thing now? (I agree with you ;-) )

rix0rrr commented 6 years ago

Can we agree on the following?

It would be good if we were to suggest a single development environment, preferably one that does as much as possible to make following the tutorial as easy as possible, with not too much variation between platforms, and not too many steps to install? For beginners, a single recommended option is better than an abundance of choice.

If we can agree on that, we can focus on updating the tutorial narrative to be a single coherent story front-to-back, and not with too many jumps back and forth.

After agreeing on the first point, there's a second discussion to be had on what the recommendation ought to be. I see more support for VS Code, and opposition to PyCharm. Though I do not understand the reasons behind the antipathy, I have no dog in this race. I just want a sane default recommendation to be picked.

theevangelista commented 6 years ago

It would be good to have only one suggested editor, it would make easier to track issue with environment problems, so you guys don't get lost and focus on Django. I would also recommend VSCode, the python plugin is really great from the start, it does not add burden to learn because at first it is a simple editor, but when the learners get more advanced it grows with them. PyCharm is an awesome IDE but the problem is that the free version is the same as a simple VSCode, Django support is paid, also it adds extra burden to learn all the mechanics. Another point is that for beginners it can suppress doubts setting up the environment and getting the hands dirty on the terminal because the IDE handle everything, which is good for seasoned developers that already know what is going on but not to beginners.

Just two cents from a guy cruising github