+ 32

Python as a beginner language: is it a right choice ?

That's a question that has been in my head for a while, since in informatics schools introduce students and beginner programmers to programming with Python. However, I personally think it's not a good idea since Python has a very specific semantic as well as methods you won't find in other more generalist languages. I'm aware teachers prefer to teach Python because of its simplistic syntax, but my choice would rather be to learn Java first. That's personally what I did, and I found it really helpful, as it introduced me not only to the algorithms world but also to other core programming concepts, OOP for instance, and taught me a fairly common syntax you can find in more common languages (the C family, and also high level languages like JS and PHP). What are your thoughts ? Do you think choosing Python as a beginner language is a right, or a poor choice ?

26th Oct 2019, 8:02 AM
Winston-Delbert Gaster
Winston-Delbert Gaster - avatar
105 ответов
+ 22
I think Python for beginners good choise! it is not so useless at first glance, with its help you can create a lot of complex and necessary things. the main thing is to use it for its intended purpose first of all, it is a prototyping tool. what you long and hard to try to create in another language, Python can easily and quickly recreate the task and already see how everything works, it is also used for backend in the web, you can make games, well, this is the first language for machine learning, artificial intelligence and data science. it easily immerses the beginner in the world of programming and does not cause rejection
26th Oct 2019, 8:19 AM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 18
I think that if someone's main goal is data science or biology or ML etc. and programming is just means to their end goal, teaching them Java first will distract them from their main purpose.
26th Oct 2019, 12:26 PM
Sonic
Sonic - avatar
+ 16
I think to a beginner they should teach Python first and then teach a language with a C like syntax.
26th Oct 2019, 11:56 AM
Sonic
Sonic - avatar
+ 14
I started with Python when I was 12 and I don't regret it. I think that learning Java at first can make learning other languages easier, even though I didn't have any problems learning Java afterwards.
26th Oct 2019, 8:15 AM
Jannik Müller
Jannik Müller - avatar
+ 14
HonFu No my friend, I didn't miss the question. I set the infographic as a landing pad because it is very useful, (I didn't  marked post with 'mfd').😉 In my country, Python can taught in elementary schools. It all depends on how you teach children to program. I think Python provides the most opportunities there, which is why it is increasingly popular at school. Through playing and working with the Python language, children can learn a lot, which they will manifest at older age when they become aware of what they learned and when they reach the level that they can learn more complex things. No one teaches elementary school kids how Python works under the hood.
26th Oct 2019, 1:26 PM
Danijel Ivanović
Danijel Ivanović - avatar
+ 13
Yeah, that thread is a year old, and David hasn't really changed his mind about Python since then. ;) Look, there are a few things I can not judge from my POV, since I haven't crossed the 1000 lines per code threshold yet. So the professionals disliking Python for several things, like that it's not statically typed, that you have no real privacy for classes, that const, switch and other things are missing, I get all of that. But unreadable?! That doesn't make sense in my opinion. From the languages offered here, I think, Python looks like English the most. At least you CAN write code that almost looks like English. Yeah, you can also do the opposite: build monster blocks of chained lambdas, endless list comprehensions and stuff like that. Now make all your names single lettered, let lines be 200 letters long, indent 8 levels deep consistently. Yeah, you get quite unreadable code. But what sort of argumentation is that really!? You can write crappy, unreadable code in the other languages just as well!
26th Oct 2019, 11:42 AM
HonFu
HonFu - avatar
+ 11
Here’s a really cool [ INFOGRAPHIC: ] • https://www.sololearn.com/post/69481/?ref=app  that should make things easier for you. 😉 Winston-Delbert Gaster Please, Remember to use  🔍SEARCH. . .  bar to avoid from posting duplicate threads! • https://code.sololearn.com/W26q4WtwSP8W/?ref=apphttps://code.sololearn.com/WvG0MJq2dQ6y/https://www.sololearn.com/post/58816/?ref=app
26th Oct 2019, 12:09 PM
Danijel Ivanović
Danijel Ivanović - avatar
+ 11
If someone has a goal of only writing enterprise software, I say teach them Java or C# first.
26th Oct 2019, 12:28 PM
Sonic
Sonic - avatar
+ 10
(2) Python, on the other hand, does a great job letting the hardware disappear. You almost don't have to think about stuff like bitpatterns, overflow, operating system stuff, types, compiling and all of that - you can jump right in and write code, with if, elif, else, while and for, flexible containers, functions, classes. So in a way it lets you jump more quickly into the design process.
26th Oct 2019, 12:50 PM
HonFu
HonFu - avatar
+ 9
(1) Ярослав Вернигора (Yaroslav Vernigora), okay, I'll try, although I can not do this from a professional standpoint. I think there are good arguments for both paths. If it's about being compatible to the status quo, I would say C would be best, because it lets you enter relatively low, while at the same time you'll not be overwhelmed by the size of the material. After that, when you've written quite a bit of procedural code and begin to see, how certain things could be easier, you'll be set up well for learning C++, Java or C# which build on C.
26th Oct 2019, 12:48 PM
HonFu
HonFu - avatar
+ 9
You would learn c, c++.before learning any programming language Python is 😎😬easy but you know Basic syntax and class methods including, c++
26th Oct 2019, 7:12 PM
ant
ant - avatar
+ 9
I don't know about point 3 Sudhakara Bathala .
26th Oct 2019, 9:51 PM
Sonic
Sonic - avatar
+ 8
(3) I have personally started with Python and felt it worked well enough. I learned a bit of C and C++ later, and it's harder, you need to watch out more for stuff you didn't even know about. But that is more of a mental problem: Aw, Python was so easy, and now this! But that's just something you need to get over. On the other hand, although I could do a lot of the little stuff with C or C++ now as well, I normally wouldn't, because it would just be more work for the same effect. When the code gets larger, I can see, how static types, privacy, const and other things may help not to get lost and prevent or find mistakes. But as a beginner, when you don't understand anything yet, I found it totally appalling to look at Java code. Everything has to have all that class, privacy, types babble, even if it's the most simple of things! If I had started with Java, I might have quit completely after a few weeks, to be serious. (While I see how that 'babble' can help when things get more complicated.)
26th Oct 2019, 12:57 PM
HonFu
HonFu - avatar
+ 8
Aduyeboah Francis, how about you read the question properly before you slam down a wall of links?
26th Oct 2019, 7:01 PM
HonFu
HonFu - avatar
+ 7
Thanks bro
26th Oct 2019, 7:07 PM
Isaac Duah [Active!]
Isaac Duah [Active!] - avatar
+ 6
(5) I want to touch one last aspect. For that I need a little digression. Lately, I wanted to learn a different keyboard layout. You know, how all the world uses QUERTY or something quite similar? There are systems, like Dvorak, that place the letters differently and allow you to write with HALF the effort and less mistakes. Potentially! Because there's all sorts of pitfalls. 1.) Maybe you won't find a keyboard like that. 2.) Maybe you won't find a proper driver. 3.) If you need advice, no one can help you, because you're a nerd now. 4.) You will be A LOT slower for quite some time. So even if it's objectively better, you may not like it and not profit from it for a long time. I don't want to say that Python is 'objectively better', but the maker tried to switch things up from 'looking like C', in a way that he thought *simplified* stuff that looked unnecessarily complicated in other languages. Has he failed? Probably hard to tell, but it's... just different. Quite different.
26th Oct 2019, 1:08 PM
HonFu
HonFu - avatar
+ 6
(6) When I hear professionals complain about Python, to be honest, I usually hear one half good points, where I can see what they are missing. But for the other part they seem to be saying - if they're honest to themselves: 'It annoys me that everything is so different.' THEY don't feel comfortable with it because they're used to C family. THEY find it unreadable because they read it a lot less than different code. And that doesn't mean that they suck at it - they would kick my butt writing Python. But they'd rock a lot better and quicker if they can work with THEIR tools, which they are used to and most of the professional world seems to be.
26th Oct 2019, 1:11 PM
HonFu
HonFu - avatar
+ 6
Because if they wanted to teach kids how Python worked under the hood, they would have to teach them C.
26th Oct 2019, 1:37 PM
Sonic
Sonic - avatar
+ 6
The SoloLearn content creation guidelines. You should read them sometime.
26th Oct 2019, 7:05 PM
HonFu
HonFu - avatar
+ 5
Honfu y Who gave you the right to dislike my comment?
26th Oct 2019, 7:03 PM
Isaac Duah [Active!]
Isaac Duah [Active!] - avatar