Question about learning programming

  • #1
TGV320
40
22
TL;DR Summary
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
 
  • Like
Likes DeBangis21
Technology news on Phys.org
  • #2
I think you should study some important algorithms and especially data structures. Those are important topics in programming.
 
  • Like
Likes DeBangis21
  • #3
"THE ART OF COMPUTER PROGRAMMING" by Donald E. Knuth

(volumes 1, 2, 3 are the ones I remember and I think there are also 4 and 4A, and possibly 5.) Well worth the time and effort!
 
Last edited by a moderator:
  • Like
Likes FactChecker
  • #4
Tom.G said:
"THE ART OF COMPUTER PROGRAMMING" by Donald E. Knuth
The first three volumes are classic. But it is a very heavy amount of work to study them. I'm not sure that the OP is asking for that kind of commitment.
 
  • Like
Likes phinds and Tom.G
  • #5
TGV320 said:
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?
No.

You have tagged this post "Python"; this already implements standard algorithms and data structures (as do other high level languages) so you don't need to know how to write them.

Programming does not involve any "deeper logic", what it consists of is breaking down a problem into smaller parts and writing code for each part using the logic you already know. In order to do this successfully you need to practice. If you don't already have problems to practice on try www.codewars.com.
 
  • Like
  • Informative
Likes DeBangis21, sbrothy and symbolipoint
  • #6
Hello,

Thanks for the advice. It is true that I don't practice enough on programming. What I frequently read on the internet is that beginner programmers just use a lot of Stackoverflow and such for solving programming problems, often being caricaturized as "copy and paste".

Thanks for answering,
Regards
 
  • #7
TGV320 said:
What I frequently read on the internet is that beginner programmers just use a lot of Stackoverflow and such for solving programming problems, often being caricaturized as "copy and paste".
If you want to actually learn how to program, that's not a good approach.
 
  • Like
Likes TGV320 and Vanadium 50
  • #8
Hello,
Very well, I think I'll get to work then.
 
  • #9
It is nice to have some general knowledge of the algorithms that are being used by a utility library. That does not have to be very detailed unless you are really going to work on those algorithms. Other than that, if you have a field of application that you are interested in, IMO, you are wise to start getting familiar with the groups (internet?, university?, publications?) who work in that field and the computer techniques that they use.

PS. Some libraries have good documentation on their algorithms that should be good enough for general knowledge. MATLAB has good documentation and the old IBM FORTRAN Scientific Subroutine Package was also very well documented.
 
Last edited:
  • Like
Likes DeBangis21
  • #10
Hello,

For the moment I really don't have much of an application focus, I'm just trying to strenghten my general knowledge of computer programming overall, building a good basis for the future. I have found out that having robust theoretical knowledge does help with its future applications.

I am now leaning towards taking an university introductory course on data structures and algorithms.

Thanks,
Regards
 
  • Like
Likes DeBangis21, symbolipoint and Tom.G
  • #11
Hello,

I've started taking an introductory internet course on "Data structures and algorithms" from Bejing University. Only now do I realize what I would have missed had I not decided to take that course.

Thanks,
Regards
 
  • Like
Likes jtbell, FactChecker and pbuk
  • #12
TGV320 said:
I've started taking an introductory internet course on "Data structures and algorithms" from Bejing University. Only now do I realize what I would have missed had I not decided to take that course.
Excellent! If you like that, you might be a programmer at heart. You might have found your niche.
 
  • Like
Likes DeBangis21
  • #13
Programming is not an exact science like for instance math. There are languages designed for different problems. Procedural, functional, object oriented as well as pure geekish fun. In my opinion “learning how to program” is a little like a mix of understanding algebra (what are those letters doing in my equations?) and selecting the right tool for the job.
 
  • Like
Likes TGV320 and FactChecker
  • #14
@TVG320, rosettacode.org has 'tasks' with program code solutions in multiple languages. In many of the tasks, you can see the same (or a very similar) algorithm being implemented in different languages. Here's a sample link to a category page there: https://rosettacode.org/wiki/Category:Sorting_Algorithms
 

Similar threads

Back
Top