+ 42

Is Python really the language to start with?

Learning Python was my first time in the world of programming and after a lot of practice and learning from several sources I reached a level where 'If I could understand the question, I could solve it in Python'. I learnt how it was way slower than the other languages and I thought that I could learn another language as a secondary language. I tried C++ and I realized I was really frustrated because 1. I had become used to the simplicity of Python and had to search the web for how to do things in C++. 2. I had become used to using built-in methods of Python. 3. I always had to debug my program for semi-colons, data types etc. 4. I couldn't deal with very big numbers due to the limit of digits(maybe I can deal with, don't know how) .....and ultimately, thanks to my low patience, I quit. So my question is, is Python really the language to start with and if so, where did I go wrong in my course? Should I encourage others to start with another language? Please note: *almost* all concepts in C++ were clear.

2nd Jan 2020, 4:43 PM
XXX
XXX - avatar
86 Answers
+ 27
When you learned Python, I'm sure, stuff was difficult. You got indentation wrong, forgot parentheses, didn't understand error messages, wrote messy code, had a lot of bugs... Then you became fluent. All you have to do is accept that you're not yet finished, and there is more to learn. So on to the next level, where you suddenly have types, overflowing ints, pointers, includes, compilers etc. and learn all of that just as successfully as you learned Python.
3rd Jan 2020, 8:00 PM
HonFu
HonFu - avatar
+ 15
Also Python has a quite uncommon syntax that doesn't use semicolons which also makes it harder learning other languages. Btw. Pythons indentation syntax is probably as painful for me as semicolons are for you: a simple space can break your whole code... It all depends also on which things you value. Each language has key values and Python provides simplicity. And this simplicity certainly helps a lot of people getting into programming. But it comes at a high cost: About 200 to 400 times slower programs (compared to C/C++). If don't need to be efficient with resources that's fine but if you need speed that's by far too slow. To summarize all points: Python is good for beginners but can make it hard to make progress in other languages. Therefore I wouldn't recommend it as "the generally best language for beginners". It might be but depending on your goals you might also better start with a different language.
2nd Jan 2020, 5:35 PM
Aaron Eberhardt
Aaron Eberhardt - avatar
+ 7
{ Aza } I think starting with C# is a strong first language. If you feel it necessary to learn C++ for gaming, then go for it next. Otherwise, I would make the plunge into Javascript next. Just focus on Javascript using NodeJS so you can avoid having to learn about thing HTML DOM. After you learn HTML and CSS, add ReactJS into the mix. I might recommend MongoDB next for its use of BSON and Javascript for database queries before learning SQL. You should learn both. But, SQL will involve a steeper learning curve and MongoDB will fill that void in the meantime. Personally, I think hype and circumstances tragically dethroned Ruby with Python. Universities have far more impact on this hype than they deserve. If it was me, I would learn Ruby over Python. Python had potential for being a great language. But the whole one way of doing things farce known as Pythonic or PEP8 really crippled the language from evolving. That and the ridiculous focus on using indents over explicit block closings.
3rd Jan 2020, 1:55 AM
David Carroll
David Carroll - avatar
+ 7
I am late to write something in here. Anyway, let me add one thing. In my opinion, proceeding from Python to another language is *merely* a psychological problem. I get a feeling in quite a few of the posts here as if starting with Python would spoil you forever for learning a different language. I think that's just not true. All one needs to do is accept that you have get used to do more, to take care of more things in, let's say, C++, and then get to work and write a lot of code in it until it feels normal. If it's necessary to be 'abstinent' from Python for a while, in order to stand the 'shock', so be it. I also see value in starting with e. g. C instead, because you get the basis for understanding how higher languages work, but I don't believe this is an absolute must.
3rd Jan 2020, 7:39 PM
HonFu
HonFu - avatar
+ 7
Thanks HonFu . You are actually right. I feel C++ is hard more because everyone says it is. When I'm tryna do some stuff in C++, I can almost feel my brain say 'You're just an idiot. C++ is too big for you'.
3rd Jan 2020, 7:51 PM
XXX
XXX - avatar
+ 7
HonFu what you're saying makes sense. Thank you.
3rd Jan 2020, 8:04 PM
XXX
XXX - avatar
+ 7
Bassam Salim Abdulrazak for me semi-colons aren't a problem any more as the compiler tells you the line number. But the syntax change is still a bit hard. Thankfully now, I'm starting to understand C++(a bit).
4th Jan 2020, 8:26 AM
XXX
XXX - avatar
+ 6
「HAPPY TO HELP」 . Thanks for your time, but I really want to learn C++ because after all, that's real programming, but at the same time I don't want to let go of Python. Any advice or tips that you can give..... Or any books which make C++ easier.
2nd Jan 2020, 5:20 PM
XXX
XXX - avatar
+ 6
Great
3rd Jan 2020, 5:46 PM
Ahmed Hassan
Ahmed Hassan - avatar
+ 6
NixxTV bro/sis, HTML is not a programming language
4th Jan 2020, 9:56 AM
XXX
XXX - avatar
+ 6
Who knows... maybe if you tried to learn C++ as your first langauge, you MIGHT have given up on programming sooner.
4th Jan 2020, 12:17 PM
🇲​🇴​🇭​🇦​🇲​🇲​🇦​🇩​ 🇯​🇮​🇱​🇦​🇳​
🇲​🇴​🇭​🇦​🇲​🇲​🇦​🇩​ 🇯​🇮​🇱​🇦​🇳​ - avatar
+ 5
That's indeed a good question. I think it's good to learn things "the hard way" at least if you plan to go further. If you just want to write a couple of scripts Python is fine, but if you're a professional programmer you'll need other languages eventually. Now the problem is that Python has such a high level of abstraction that you have no idea of what's happening behind the facade of the syntax and built-in functions. If you learn C for example first you understand quite a lot of what's happening when your code runs and also understand how other languages build abstractions on top of that and therefore you automatically understand all other languages more in depth. And as you said once you're used to certain features you miss them in other languages and get frustrated. However if you are used to a limited set of functions you need to implement certain things yourself or look for existing libraries, something that might be tedious first but again helps you again understanding the underlaying problem better.
2nd Jan 2020, 5:24 PM
Aaron Eberhardt
Aaron Eberhardt - avatar
+ 5
Guys please, let me make one thing clear. Python is clear to me. The problem I'm facing is in learning another language. Please don't give answers saying Python is in demand or that I should learn Python.
3rd Jan 2020, 10:47 AM
XXX
XXX - avatar
+ 5
HonFu you make alot of sense, and coming from the same lane i did say exactly similar. Your view is quite objective and unbiased. In school I was taught with C+Lang and Java. But learnt PHP on my own for quick development. I learnt python and its quite interesting and a tool for alot of things n sticked to it. XXX using library is not so necessary but to speed up work. Me love solving without libraries to see if i understood before using libraries. Happy coding##
26th Mar 2020, 11:51 AM
BlackRose Mike
BlackRose Mike - avatar
+ 4
Thanks for your answer Aaron Eberhardt .
2nd Jan 2020, 5:45 PM
XXX
XXX - avatar
+ 4
「HAPPY TO HELP」 thanks a lot. Will surely check them out. Searching on the web is way messier. I found many books but didn't know which one I should read. Thanks for your recommendations.
2nd Jan 2020, 5:56 PM
XXX
XXX - avatar
+ 4
Gregor Dietrich the problem is I'm not searching the web for *quick* answers, I'm searching the web for almost every answer because I could do it all in Python in my subconscious. Building my own library seems like a good idea. Not exactly a language with easy syntax is beginner-friendly. That's what this whole question is about. Switching to another language is freaking me out. Thanks for the info on the numbers, though what I meant was there is simply no limit in python for the length of an integer. Thanks for your answer. It was good to know your opinion.
3rd Jan 2020, 5:18 AM
XXX
XXX - avatar
+ 4
\•/ Python is really great as long as you don't get used to its syntax and methods.
3rd Jan 2020, 2:00 PM
XXX
XXX - avatar
+ 4
Priyanka Sharma that makes sense. When I started fresh in Python, I made programs that seem lame now (like fibonacci, sorting without algorithms, hcf), but those lame programs were what gave me the confidence. In C++, I jumped directly from nothing to too much, thinking that I am too good in coding to make these small programs. I should have started in C++ as I started in Python- step by step, advancing from small programs, gaining confidence and then moving on to the big stuff. Thank you for that answer. I just found the biggest flaw in my learning.
4th Jan 2020, 9:44 AM
XXX
XXX - avatar
+ 4
Python is a whole lot different from all the other languages. Unlike other languages it's extremely easy to learn, it can be used across a WHOLE bunch of disciplines and can be applied to 'most anything. If you wanted to teach a child programming at a very young age without using 'Scratch' or 'Panda' the best to use is python. And besides C++ is a heck of alot of work to learn. JavaScript is (in my opinion) kinda difficult. Html is html. And python just stands out, plus is just has a cool name!
4th Jan 2020, 12:15 PM
Akachukwu Orekyeh
Akachukwu Orekyeh - avatar