+ 6
[DUPLICATE] pick a programming language
If you were to pick any programming language to teach beginning programmers with, what would you choose and why?
21 Answers
+ 30
@David Carroll thanks so much you C# Veteran āŗ
I learned python because it's easy, handles a big process and has multiple programming languages parsers like bs4, lxml and jinius
+ 29
python python python ! š
+ 13
As a veteran developer proficient in C#, Javascript, and Java, decent in C and C++... I'm always surprised to hear that Python is recommended for beginners. Much of the Python I've written and reviewed seems too cryptic and complex for beginners. I also find Python to be too verbose in some areas and not verbose enough in others. Does anyone else think this way?
+ 10
@David Carroll
It's not just him. most think the same about python. (excluding me :D)
Like in the below subjective question. where someone posted a code which says Python Is Great.
https://www.sololearn.com/Discuss/1076506/?ref=app
That code reminded of this interesting discussion & how i still have to check those 10 links. Hope i check them later rather than never XD
+ 9
I choose C++ , it's very simple and basic
+ 9
Python is the best language to teach to beginner programmers. This is in opposition of what you said, because Python has a very clean way of showing the learner the integrated concepts of computer programming, and doesn't have such a hard basis on memory functions as C++ does, and this will make it easier for the programmer to move on to another language and understand easier.
+ 9
@SQrL Where do I even begin... Bear with me as I put together this free flow of thought...
@CipherFox... Although your interpretation is far more interesting, my original point was in regards to simple language constructs that are either missing or require awkward alternatives.
A few examples include:
No Support for Switch Statement:
- Requires the verbosity of many if statements.
No Support for prefix/postfix increment operators:
- Requires expanded form of incrementing values.
No Support for Ternary Conditional Operator:
- Has an intentionally ugly alternative with awkward usage of if else statement.
Lack of Block Comments
- Requires using # on each line. Just Yuck!
There is actually more I could expand on with treatment of class inheritance being a second class citizen, the weird requirement for using the lambda keyword for anonymous functions, implementation of regex breaks conventions known in all other languages, the lame justification of the language's shortcomings by calling it Pythonic or the "deal with it" attitude of Guido van Rossum, the creator of the language.
https://mail.python.org/pipermail/python-dev/2005-September/056846.html
+ 9
I haven't even talked about the many inconsistencies and gotchas of the language that seem to be ignored or considered "Pythonic" rather than people being up in arms about.
- Mutable Default Arguments (WTF)
- Late Binding Closures
- Scope - Too many gotchas to list here...
- No compiler feedback for forgetting parentheses. (catching exceptions, calling functions vs accessing objects, so on and so forth)
- {is not} is not the opposite of {is} or {not}. This one is a fun one.
- {==} in chained comparisons
- No safe guards with iterating over query objects.
Okay... I need to stop the ranting... I'll post a lot of good articles in my next post to get a good sense of why I start twitching when having to work in Python and why I remain shocked to read that people find Python to be a good language for beginners.
+ 9
Reference Links for Above Points:
- http://docs.python-guide.org/en/latest/writing/gotchas/
- https://www.toptal.com/python/top-10-mistakes-that-python-programmers-make
- https://sopython.com/wiki/Common_Gotchas_In_Python
- https://stackoverflow.com/questions/1011431/common-pitfalls-in-python
- https://www.safaribooksonline.com/library/view/learning-python/1565924649/ch04s06.html
- https://franklingu.github.io/programming/2016/01/11/common-python-gotchars/
- https://pythonconquerstheuniverse.wordpress.com/2008/06/04/gotcha-%E2%80%94-forgetting-parentheses/
- http://blog.notdot.net/2009/11/Python-Gotchas
- https://franklingu.github.io/programming/2016/01/11/common-python-gotchars/
- https://www.quora.com/What-are-common-programming-errors-or-gotchas-in-Python
+ 9
@David Carroll. I see more of what you mean.
In contrast a lot of what you mentioned is not functionality touched by beginners. If someone wants to begin and then stop, python may or may not still be a good fit for a beginner. For intermediate or higher, these are some serious drawbacks.
As for block comments āāā works like/* and */ by putting the triple quotes at the beginning and end of the block.
I now have some reading to do. Thank you for the materials.
+ 9
@SQrL... It's likely that I'm too far removed from the beginner's experience to objectively assess the value of Python for learners. However, there is so much hype around this language, it concerns me that there are a community of beginners who might be developing a false sense of readiness for professional development with this platform.
Don't get me wrong, I don't hate Python and find it fun to tinker around with. However, without serious reconsideration about addressing these issues from the maintainer of this language, I could not, in good conscience, ever recommend this language for any serious production ready customer facing applications.
+ 9
Hi Warlord... It appears you are a fan of Python. Have you had a chance to do professional full scale development work with python? If so, what has been your experience with it? Specifically, are there any challenges around unit tests, debugging, and any of the issues I mentioned earlier in several of my posts on this thread? Or, have you found it to be quite easy to build applications with a larger Python code base?
Also, many of the things I mention as issues with the language are certainly things people can look past if they go in with both eyes wide opened. Are you one who still loves Python despite the issues I mentioned? Were you aware of the issues? Or have you simply not been affected by the issues to be worried about them?
Apologies for putting you on the spot. I'm just very curious about what the appeal is with Python to so many people world wide. Thanks for sharing if you are comfortable doing so. š
+ 7
if they know what programming is so I will choose c++
if they know nothing so python is the best š
+ 7
@SQrL... I forgot to mention, you might want to reconsider using triple quotes for multiline comments. This is actually meant to be used as a string literal for extracting documentation.
According to PEP8, it is recommended to use # for each line. This is another common gotcha that the Python community blindly accepts.
https://www.python.org/dev/peps/pep-0008/#block-comments
Beware of the Kool-Aid š
+ 6
@David Carroll. Do you have an example of it being overly verbose? I can see one for not being verbose enough, but not sure where it might be too wordy, except maybe the documentation
+ 5
python,
though my first language is java.
but u should learn python first. because many people recommend it to beginners.
+ 3
I would have to choose PYTHON because of its simplicity. Python is best for beginner programmers. If you are coming from c/c++ then you would consider this language as a piece of cake. Though, the advance python is not as easy as it looked.
0
At our school we use C# to teach programming. At first simple stuff like variables, if, loops and switch.
Then we throw methods in the mix, followed by classes.
We also do a bit of simple C programming (no pointers yet) in the beginning for programming Lego Mindstorms robots.
After a half year of programming we teach inheritance in C# and pointers, bit manipulation and such in C.
In the second year we teach C++.
C++ is IMHO not a language to start with. Too complex, both the language itself and the compiler messages.
C and C++ are highly relevant for us as we are an embedded software school.