Python Question about learning programming

Click For Summary
Learning Python provides a solid foundation for programming, but many find that basic courses lack depth in algorithms and data structures, which are crucial for understanding programming logic. Engaging with textbooks and online courses on these topics can significantly enhance comprehension and practical skills. While Python simplifies many standard algorithms, it's essential to practice problem-solving rather than relying on copying code from forums. Building a strong theoretical base is beneficial for future applications, and introductory courses can reveal critical insights. Overall, a balanced approach of theory and practice is recommended for effective programming education.
  • #31
sbrothy said:
Indeed, copy/paste is the backbone of programming. If someone already solved the problem for you reinventing the wheel is just stupid. If you can tell if it's worth copying that is. :cool:
stack overflow and geeks for geeks literally carry me... copy paste off those two is something I do way too often...

BUT please please do NOT try to learn by getting AI to generate code for you... it is not the same as copy pasting! When you copy paste sections of code... you have already broken things down and considered each step in solving the problem/building the software... however when you get AI to do it for you, there is no critical thinking involved whatsoever. You will not improve just by prompting an AI - using it to plan, to brainstorm, to compile... that's fine. But when you're learning - don't ask it to code. Sometimes you are getting it to do jobs you would benefit from doing without even realising.

By the way, a really fun programming challenge that comes out every year is Advent of Code (I am personally a huge huge HUGE fan...) - https://adventofcode.com/. Give it a shot when December rolls round. Or do the past year problems as practice!
 
Technology news on Phys.org
  • #32
Been programming nearly all my life, and I am now 70. I did it professionally for over 30 years.

Python is the best language to learn first.

But if you want to learn more, you need a language closer to systems programming. I do not like systems programming (to put it mildly). I am an application programmer through and through; for that, Python is excellent. But there is no getting around the fact that knowing more about systems programming will significantly enhance your computing knowledge.

I suggest learning the new system's language on the block, Zig. C and C++ have been the systems programming languages of choice for many years, but everything points to Zig as their modern replacement. Zig can compile both C and C++ (no kidding). It does this by translating it to C as an intermediate step and feeding the C into a C compiler or LLVM. It is a program optimiser that accepts several languages and spits machine code out or gives an optimised translation to another language.

It is gaining a foothold as the language to integrate with Python:
https://www.infoworld.com/article/3831676/how-to-boost-python-program-performance-with-zig.html

Thanks
Bill
 
Last edited:
  • #33
I'd recommend starting with assembler and coding your own operating system as you do as part of a proper CS education. Having a high level language handle your garbage collection may get you started quickly, but if you encounter a pointer or having to grasp the concept of a stack, learning Python doesn't prepare you for any of that.

EDIT: Then again I'm a retired dinosaur.
EDIT2: Assembler may be a little bit too low a starting point but you get my drift.
EDIT3: If you just want to learn programming go ahead with a high level language, but if you want to learn it in depth, I'd recommend starting from scratch.
 
  • #34
Posts #32, #33.
I tried to learn Python on my own many years ago and made NO progress. I have been only ever able to handle two different forms of BASIC. Initially, BASIC was most of the few little amount of Programming learning I had in school. I can not more than just guess that if Python was the main language to learn when I was a student then today I could have become familiar with and made progress with Python.
 
  • #35
Python is such a popular language that nowadays there is so much infrastructure for learning it and getting good at it, and from what I've heard (from large communities of young coders), it seems the go-to language for beginners.
My advice is stick with python until you encounter something that is such an annoyance to make in python that you're better off writing it in another language...
 
  • #36
TensorCalculus said:
Python is such a popular language that nowadays there is so much infrastructure for learning it and getting good at it, and from what I've heard (from large communities of young coders), it seems the go-to language for beginners.
My advice is stick with python until you encounter something that is such an annoyance to make in python that you're better off writing it in another language...
Yeah, I guess that's the rational way if it doesn't interest you enough to be anything but a means to an end.

EDIT: There. Taken care of.
 
Last edited:
  • Wow
Likes FactChecker
  • #37
FactChecker said:
You can go a long way in programming without diving into assembly language. I wouldn't call application programmers "tools".

I think he meant to be anything but a tool user, so, as a mentor, I took no action; to me, it was rather obvious. But I would ask the OP to change it to a tool user.

Thanks
Bill.
 
Last edited:
  • Like
Likes FactChecker
  • #38
bhobba said:
I think he meant to be anything but a tool user, so, as a mentor, I took no action; to me, it was rather obvious. But I would ask the OP to change it to a tool user.

Thanks
Bill.
Sorry. That didn't occur to me. I removed my comment.
 
  • #39
Oh! Sorry. Yeah, obvious language eff-up! I know that calling someone a "tool" is an insult, but due to my non-native language it slipped by me without me really thinking it through. My apologies.
 
  • Like
Likes FactChecker and bhobba
  • #40
sbrothy said:
Yeah, I guess that's the rational way if it doesn't interest you enough to be anything but a means to an end.
what do you mean? Because you can decide to learn a language that has a lot of infrastructure in place for it and still want to learn the language for the sake of having fun and learning interesting things...
 
  • #41
What I mean is that there are surely a lot of instances where you don't have to dwell deep into the inner workings of programming as a discipline onto itself to be able to use it in your chosen profession. And I think that's perfectly fine.

Where you draw the limit is up to yourself and your level of need and interest.
 
  • Like
Likes TensorCalculus
  • #42
Those few inflexible people among us were or are taught some beginning computer programming language in school. We are taught how to understand variables, some fundamental commands, some ways to handle input and output, and are taught (or is this now become "were" taught) to create flow diagrams and to convert these into lines of code; and we use just the one language and no others. The few inflexible people become stuck and find difficulty learning a different language. We can find that reviewing and improving in that one language is possible. Yet we have extreme trouble trying to learn a new or different language. That is how things have gone with me. We few never installed anything to begin learning our first programming language. We went to our instructional lectures, went to our lab sections, performed our assignments as best we were able. Nothing to install! We sat at a keyboard with monitor, while the computer was in a big room.

What did those few inflexible people do later if they wanted to review and try to learn just the one language better? If lucky we found some old, used textbook and studied from it and tried to perform some exercises from the book. By this time, we might have been able to use a personal computer at home, and we either had QBasic on our computer or were able to install something moderately similar which allow us to use the very similar language which we earlier studied in school. For these so few of us inflexible people, we originally started with BASIC-PLUS, and MINIMAL-BASIC. Doing our later review studying, we would have some kind of BASIC running on a Windows operating system computer.

Seem to be, the more motivated people studied more than just one computer science and programming course when they were still in school and learned more than just one language.
 
  • #43
Indeed. I started with C out of pure interest (and because a friend of mine told me that this would "be the future" and be sure to land me a job (formal education or no). I crossed into assembler and thus got a pretty thorough understanding of programming. This made it easy for me to pick up new languages, and it turned out he was right. It did land me several jobs. (Some of them involving unofficially bailing him out of trouble with his various jobs because, as it turned out he had the formal education and a good theoretical understanding but he was still a poor programmer in practice. He was good at talking himself into good positions but bad at actually solving his assignments.) In retrospect it looks like he took advantage of me, but on the other hand he made sure, that when I was unemployed, I got jobs in the same companies as him, until I got tired of the dynamic and stayed with the same firm for years. (Still didn't prevent him from calling for help sometimes though.) :smile:
 
  • Wow
Likes symbolipoint
  • #44
TGV320 said:
TL;DR: Need advice about learning intermediate subjects of programming

Hello,

I am currently learning Python as a basis for further studies in programming. The course that I took at college was quite basic, teaching us the basic concepts required for programming, and some web oriented concepts like data scraping, APIs, automated tasks using bots. As I delved deeper into programming, I noticed that the course didn't teach us much about algorithms. That part of programming seemed like a really important one, since I found out that when I try to program from scratch, I really didn't have much idea about how to do anything, like the deeper logic control loops or data structures.

Therefore, I am now contemplating studying some computer programming textbooks about algorithms and data structures.

The question is : should I study it as mentionned and do you think doing so might really help me understand the deeper logic involved in programming?

Thanks a lot,
Regards
Hey, I think yes, it will really help. You know with this you will understand how programs really work, or you will learn how to solve problems better, and most importantly, it will build your foundation strong. Here are some good books for beginners, which are useful for you.

1. Grokking Algorithms by Aditya Bhargava
2. Data Structures and Algorithms in Python by Michael Goodrich.

Hope this will help you.
 

Similar threads

Replies
86
Views
1K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
Replies
16
Views
3K
  • · Replies 15 ·
Replies
15
Views
3K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 107 ·
4
Replies
107
Views
9K
  • · Replies 56 ·
2
Replies
56
Views
10K
  • · Replies 397 ·
14
Replies
397
Views
19K