Don't start learning coding with Python, start with C





Python is amazing for its ability to advance programming. It seems to be a confirmation of the popular idea "if you know English, you should know how to write code." With syntax reminiscent of English, the paradigm of indentation, and the sheer number of libraries, languages ​​other than Python are starting to look useless.



Python is the default programming language for "the sexiest profession of the 21st century." Yes, big words about data still give data science a reputation for "sex work," although current circumstances no longer fully support this claim. Python has succeeded in solving most of the data science problems.



In addition, Python is also popular in blockchain, DevOps, and cybersecurity.



The hype around Python is growing. The language is used as a coding tool in countless online courses and curricula.



Despite all of this, and despite all the attractiveness of Python, it is not suitable for beginners in programming. The best option is C.



In this article, I'll explain why C should be used as a pivot point instead of Python.



Start with the strongest



My supervisor once told me, “Always start with the strongest. The first blow determines the fate of the battle. "



Python is a high-level programming language. That is, Python has a high degree of abstraction, which ensures the convenience of communication between the user and the language.



In other words, Python's interpretation engine tends to turn a blind eye to errors that other programming languages ​​would most likely report. It does not have variable declarations, it uses automatic type casting. All this simplifies programming and turns Python into a user-friendly language.



Curiously, the advantages of Python are also its disadvantages. This approach cultivates a mentality that encourages impatience and laziness.



On the other hand, C is a mid-level programming language. It sits between low-level (assembler, machine languages) and high-level (Python, Ruby, etc.) languages. From a practical point of view, this makes it harder to write in C than in Python. However, the effort is worth it.



C displays the true picture of what programming is. C programmers overcome difficulties to get their code to run and work, and this stimulates the development of good programming skills.



C developers are known for painstakingly writing orderly, clean code. And because the accumulation of such skills begins early enough, they affect not only C programming, but coding in general.



Simply put, C is a great launching pad because it provides a solid foundation for aspiring developers. Computer science fundamentals such as dynamic memory allocation and data structures make programming difficult, but in the future, developers will reap the benefits of their efforts.



Unrealistic expectations



What frustrates me in Python is how unrealistic expectations and false hopes it gives in advance. Many people think Python is the golden ticket to their career, which is why there are so many newbies looking to master the language.



For example, I recently came across a post on a Facebook group by a seven-year-old looking for a freelance data science job. As proof of his programming experience, he has attached an online Python course certificate.



I do not want to belittle this boy's efforts in any way, as many young developers create code that testifies to their skill. An unpleasant feeling in me made me want to look for a job at such a young age.



Seeing this, I realized that the situation in the technology market has changed significantly. Today, everyone wants to learn Python in order to get the promised lucrative job.



I am not saying that this is Python's fault. This is our own fault.



This is our fault because we tend to set the bar too high and act like Python is the alpha and omega. Realistically, success in today's unpredictable world requires more than desire and a programming language.



Take the economic downturn associated with a pandemic, for example. This crisis has turned the labor market into a battlefield. This, in turn, has crippled computer science graduates who once took jobs without exhausting searches. Therefore, if you don't go further than a stupid certificate and rub your fingers into the blood, then you don't have the slightest chance.



Yes, it's that simple!



C is a good choice for training your fingers and preparing your brain. Ultimately, you will at least get an idea of ​​the difficulties that lie ahead for you.



Python is cooked in C



Python is just a set of rules.



The rules governing Python can be implemented in some languages. Usually the name of a specific implementation consists of the abbreviation of the language used and the word Python.



For example, C has CPython and Java has Jython .



The most popular Python implementation is written in C. Therefore, some knowledge of C will definitely come in handy when decrypting Python code.



In addition, quite a few Python packages, such as NumPy, are written in C and its younger sibling C ++ to address efficiency drawbacks because Python is terribly slow compared to them.



When a person gets used to fast code, he begins to perceive painfully slow programs. This leads to the desire to create efficient code in both Python and other programming languages.



conclusions



I have worked with more than five programming languages ​​in my life, the first being C and the last being Python.



While I am grateful for the foundation I have gained from old-fashioned C, I am definitely not addicted to the language. My doubts about the validity of learning Python as the first programming language found their foundation when I worked with developers who started with Python.



I noticed that many (not all) developers I spoke with lacked refactoring skills. They rarely took program execution problems seriously and only cared about making the code work. In fact, coding is more than that.



At this point, I realized that underneath the Python make-up was an ugly face. A face that could be more beautiful if it was carefully looked after from the very beginning.



Ultimately, the path to mastery of Python becomes less difficult if you have a foundation of C knowledge.






Advertising



Epic servers are Linux or Windows VPSs with powerful AMD EPYC processors and very fast Intel NVMe drives. Disperse like hot cakes!



Subscribe to our chat on Telegram .






All Articles