DEV Community

Cover image for Why should Python not be your first language?

Why should Python not be your first language?

krishnaa192 on February 14, 2024

While Python is the most hot topic these days, either in web development (not that much), data science, or AI/ML,. Python provides rich libraries f...
Collapse
 
wagenrace profile image
Tom Nijhof

I would say the lack of datatypes, low level things ect makes Python BETTER for beginners

Those new to programming need to get started as soon as possible, more roadblocks and points of frustrations will turn people away from programming

The only point against Python is the fact it is not easy to create a visual result easily beside prints

Collapse
 
sreno77 profile image
Scott Reno

I agree!

Collapse
 
aatmaj profile image
Aatmaj

I agree with @wagenrace

Collapse
 
krishnaa192 profile image
krishnaa192

but then we might not understand how actually things work internally.

Collapse
 
wagenrace profile image
Tom Nijhof

Is that the point of a FIRST language?
A first language should be welcoming to newcomers, help them get started, and remove as many roadblocks as possible.
Once people are comfortable with the basics you can introduce new or deeper subjects

Collapse
 
dolszewski97 profile image
Dawid • Edited

I started my journey in school with C++, which isn't the easiest language to start with, let's be honest. But this + few months with C on the studies had probably the biggest impact on my developers skills. The way you need to deal with pointers, memory allocation etc. changes the way you're looking at a program and programming itself. Today I don't use low level languages, but the ideas and knowledge related to them are still useful.

Collapse
 
krishnaa192 profile image
krishnaa192

great

Collapse
 
kwnaidoo profile image
Kevin Naidoo • Edited

Agree mostly, but times have changed. Most want to become web developers and there's so much to learn now with Docker, machine learning, 101 JavaScript frameworks, etc.. If you can do a full computer science degree, then I strongly suggest you do.

For those who want to get a job and work in the industry ASAP, it's not practical to spend months if not years learning and mastering a big language like C++ when most entry-level web development jobs focus on CRUD and UI stuff with JS.

Rather, get a good computer science book that teaches the fundamentals: data types, loose coupling, principles like SOLID, patterns, and algorithms, and spend a month or two properly understanding these.

Then spend some time learning SQL properly.

You now have all the fundamentals, it's time to pick a language and framework. Django is probably the best, followed by Asp.net and then Laravel. Whatever toolset is fine.

Build stuff, lots of diverse applications.

2-3 years later, now you can "build", you should work towards mastery. This is when you go back to the computer science aspect. Pickup Golang or C or Rust, and read lots of books or take courses.

By year 5, you are now well on your way to becoming a senior developer.

This is the most practical approach I feel.

Collapse
 
krishnaa192 profile image
krishnaa192

Yeah, I agree. But we can easily switch from one language to another if we learn the first one properly. In India, colleges still teach C to First-year students. So, if we give a bit of attention to it, we can get away with advanced concepts and learn Python too. My suggestion was for college students as they have plenty time of for 4 years.

Collapse
 
shricodev profile image
Shrijal Acharya

@kwnaidoo I Strongly agree with your thought on this one.
reach++

Collapse
 
terabytetiger profile image
Tyler V. (he/him)

I think this advice might be better as a list of things for people to learn about if they started with Python and are looking to either learn more advanced topics or transition to using one of these languages - growing from Beginner to Intermediate level developer type framing.

My philosophy for getting someone started with development is to start with the path of least resistance - it makes for a more encouraging start instead of running into frustrations about things that really don't matter if you're just getting started with programming.

Collapse
 
krishnaa192 profile image
krishnaa192

thanks for mentioning another way of approach.Haha.As a developer also you need to understand a few concepts—some I experienced.

Collapse
 
jimajs profile image
Jima Victor

When I started, I dabbled with c++, and I couldn't understand pointers and the reason for that is probably due to the fact that I didn't need them at that point. If you are a beginner programmer and you begin to notice the downsides of using python as a programming language, it means you've leveled up and it's time to move over to a more complex language.

Those advanced features in other programming languages gives the programmer more control, and they are appreciated by advanced programmers because they understand the need for them. But for a beginner, those things do not matter to them.

Python was created to be easy to read and write. And as a beginner, you don't need things in a programming language that are going to make you hate programming.

Start with python, and when there is a need to use something more complex, you change.

Collapse
 
krishnaa192 profile image
krishnaa192 • Edited

Agree. I just shared my experience.Surely I love Python the most

Collapse
 
610470416 profile image
NotFound404

Python was created to replace the more ancient language, The Perl language.
Perl was created to make unix shell code more powerful and organizable.
A lot packages which was formerly written in Perl are now written in Python in Unix/Linux system.
Python is now the infrastructure of Linux shell.
The indentation sensitive feature derived from languages like BASIC and Fortran is not good for sharing and reading.
I don't encourage use Python for new projects, I would like use node.js instead. :)
As for beginners, JavaScript is a more available choice.

Collapse
 
krishnaa192 profile image
krishnaa192

Most people are using Nodejs these days.

Collapse
 
fatihkurtl profile image
Fatih Kurt

I absolutely agree, the first language I learned was python and that's why I had adaptation problems when switching to another language, fortunately I overcame this problem when I was still a junior by reading and trying to understand programs written in other languages and other developers' code, I remember it was a bit difficult, I also remember that my friend who wrote php could read my python code while I could not read his php code, so I definitely do not recommend python to someone new

Collapse
 
krishnaa192 profile image
krishnaa192

yeah I felt same when I started learning Java .

Collapse
 
wagenrace profile image
Tom Nijhof

Why python SHOULD be your first language 🐍

dev.to/wagenrace/why-should-python...

Collapse
 
vivienne-m profile image
Vivienne Medrano

I totally get what you're saying about Python being popular, especially with its cool libraries for web dev, data science, and AI/ML. But, you've rightly pointed out some quirks, like Python's flexible variable types, which can trip up beginners. Exploring languages like Java or C++ and checking out their setup in a software development team structure might be a good call for a more rounded coding journey.

Collapse
 
krishnaa192 profile image
krishnaa192

thanks

Collapse
 
psypher1 profile image
James 'Dante' Midzi

I watched an interview with Dr. Chuck and he actually said:

  1. Python
  2. C

youtu.be/6uqgiFhW0Fs

Collapse
 
krishnaa192 profile image
krishnaa192

yeah . C is the base of all.

Collapse
 
voidzxl profile image
Xulin Zhou

For the 1st problem you addressed, there are some modern libraries to parse types and constraints for functions and classes at runtime such as utype and pydantic

Collapse
 
krishnaa192 profile image
krishnaa192

thanks for your information. will see

Collapse
 
crija profile image
Carla Crija

Very nice

Collapse
 
krishnaa192 profile image
krishnaa192

thanks

Collapse
 
thefluxapex profile image
Ian Pride

Although I'm not the biggest fan of Python (though I've certainly written my fair share over the last 30+ years) it's certainly a great scripting language for AutoKey in Linux! My point being (and as you have made clear) that it has its useful place. Only thing I hate is the use of indention for blocks...
Appreciate the article.

Collapse
 
krishnaa192 profile image
krishnaa192

thanks for your appreciation,