Question about learning programming

In summary, the discussion revolves around common inquiries regarding how to effectively learn programming, including the best resources, recommended languages for beginners, the importance of practice and projects, and strategies for overcoming challenges and staying motivated in the learning process.
  • #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
 

FAQ: Question about learning programming

1. What programming language should I start with as a beginner?

As a beginner, it's often recommended to start with Python due to its readability and simplicity. Python has a vast ecosystem of libraries and frameworks, making it versatile for various applications, from web development to data analysis. Other good options include JavaScript for web development and Ruby for its elegant syntax.

2. How long does it take to learn programming?

The time it takes to learn programming varies greatly depending on the individual and the complexity of the concepts being learned. Generally, with consistent practice, you can grasp the basics in a few months. Becoming proficient may take several months to years, depending on your goals and the depth of knowledge you wish to achieve.

3. What resources are best for learning programming?

There are numerous resources available for learning programming, including online courses (like Codecademy, Coursera, and Udemy), textbooks, and coding bootcamps. Additionally, websites like freeCodeCamp and Khan Academy offer free tutorials. Joining programming communities on platforms like Stack Overflow or GitHub can also provide support and guidance.

4. Should I learn programming concepts or just focus on coding?

It's important to learn both programming concepts and coding skills. Understanding fundamental concepts such as algorithms, data structures, and design patterns will help you write better code and solve problems more effectively. Balancing theoretical knowledge with practical coding exercises will provide a well-rounded education.

5. How can I stay motivated while learning programming?

Staying motivated can be challenging, but setting clear goals, breaking tasks into manageable pieces, and celebrating small achievements can help. Engaging with a community, working on projects that interest you, and regularly challenging yourself with new problems can also keep your enthusiasm high. Remember that progress takes time, so be patient with yourself.

Similar threads

Back
Top