Best books to study during summer related to programming?

Click For Summary

Discussion Overview

The discussion revolves around recommendations for books and resources to study mathematics and programming algorithms during the summer. Participants share their personal experiences and suggest various texts and courses that could aid in understanding theoretical concepts relevant to programming.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Homework-related

Main Points Raised

  • One participant plans to study mathematics intensively over the summer to improve their programming skills, specifically in algorithms, and seeks book recommendations.
  • Some participants suggest limiting the study to two books, specifically "How to Prove It" and "Spivak Calculus," to ensure deeper understanding.
  • Another participant recommends exploring lambda calculus for its theoretical insights into computer science, noting it has improved their programming fluency.
  • There are suggestions to prioritize discrete mathematics over combinatorics, with some participants emphasizing its relevance to computer science.
  • One participant mentions the importance of understanding over rushing through multiple texts, sharing their experience of focusing on fewer books for better comprehension.
  • Concerns are raised about the ambitious nature of the original participant's study plan, with some suggesting that covering all proposed materials in four months may be unrealistic.
  • Discussion includes specific recommendations for algorithm-related texts, such as "Matrix Computations" for linear algebra algorithms and "Constructive Combinatorics" for probability and combinatorial algorithms.
  • Participants express differing views on the necessity of programming skills in learning mathematics, with some advocating for practical programming applications to aid mathematical understanding.

Areas of Agreement / Disagreement

Participants generally agree on the importance of foundational mathematics for programming but disagree on the optimal number of books to study and the specific subjects to prioritize. Multiple competing views exist regarding the best resources and approaches to take.

Contextual Notes

Some participants mention the need for a solid understanding of discrete mathematics before tackling combinatorics, indicating a potential gap in foundational knowledge. There are also references to various online courses and resources that may complement the suggested readings.

Who May Find This Useful

This discussion may be useful for individuals looking to enhance their programming skills through mathematics, particularly those interested in algorithms, computer science theory, and self-directed learning strategies.

x86
Gold Member
Messages
256
Reaction score
18
I've been programming for 10 years and have done many free lance projects. I know basic mathematics (what an engineering student would know) but I want to move into more theoretical fields for a hobby. I am devoting 4 months of my summer this year to studying mathematics. I will be studying for 8 hours a day on average.

My goal is to become better at programming algorithms, and the only thing that stands in my way is mathematics. (I already know how to program in general, i.e. object oriented, functional, procedural, basic algorithms & data structures, knowledge of many libraries and frameworks and other necessary topics like multithreading, debugging, etc etc)

My plan for the summer is as follows. I would like suggestions from members here on how I can best use my short time.

-Read How to prove it: a structured approach <--- 100%
-Read spivak calculus <-- will probably skip some of late chapters, after integration finishes
-Read a book on probability/combinatorics <--- 100%
-Read Introduction to Algorithms <-- probably won't have time to finish 100% of this book

Any advice for me, recommendations, tips, alternatives?
 
Physics news on Phys.org
Your summer sounds to ambitious. I would limit to two books. How to prove it and spivak.
 
I'm studying electrical engineering and I'm a bit more of a math person than a programming person, but I think a book on lambda calculus might interest you if you're looking for pure math stuff more on the side of CS. I've been teaching myself the last 2 months, and while it hasn't necessarily taught me anything about programming techniques directly it certainly has given me some really interesting new ways to think about computers and programs and I have noticed my fluency with programming improve a fair amount as a result.

Princeton does a two-part open online course series about algorithms on Coursera a few times a year, they may have a summer session: https://www.coursera.org/course/algs4partI

I would put off learning combinatorics and learn some discrete math first.
 
MidgetDwarf said:
Your summer sounds to ambitious. I would limit to two books. How to prove it and spivak.

True. I planned on reading those two books first. But I know with a larger load I'd be pressured to work harder/longer and could quite possibly finish 3-4 books if I can keep at it for 8~ hours a day.

jack476 said:
I'm studying electrical engineering and I'm a bit more of a math person than a programming person, but I think a book on lambda calculus might interest you if you're looking for pure math stuff more on the side of CS. I've been teaching myself the last 2 months, and while it hasn't necessarily taught me anything about programming techniques directly it certainly has given me some really interesting new ways to think about computers and programs and I have noticed my fluency with programming improve a fair amount as a result.

Princeton does a two-part open online course series about algorithms on Coursera a few times a year, they may have a summer session: https://www.coursera.org/course/algs4partI

I would put off learning combinatorics and learn some discrete math first.

Interesting. I've dabbled with Haskell, apparently it's pure lambda calculus. But I think that learning more discrete math would be more useful for me than lambda calculus- but i'll definitely add it to my TODO list.

Thanks
 
Just make sure that understanding is key. I usto rush through books but I noticed spending a bit more time on just 2 books helped my understanding a lot more.

You could also just study yow to prove it and tackle Rudin. at least that is what my physics friend did.

Have you taken a discrete math course?
 
MidgetDwarf said:
Just make sure that understanding is key. I usto rush through books but I noticed spending a bit more time on just 2 books helped my understanding a lot more.

You could also just study yow to prove it and tackle Rudin. at least that is what my physics friend did.

Have you taken a discrete math course?

Nope. Never taken any discrete math before.
 
How to prove it and discrete math would be the better investment imo. Discrete math has a lot of applications in cs. However, discrete math can be frustrating.
 
x86 said:
My goal is to become better at programming algorithms, and the only thing that stands in my way is mathematics.

What kind of algorithms do you want to program?

I've looked through the textbook on algorithms that students at the local university use. It emphasizes things like sorting and hashing. It doesn't go much into algorithms related to calculus. For algorithms related to calculus, you would need a book on "numerical methods".

The algorithms related to calculus are a different field than the algorithms related to linear algebra. For algorithms related to linear algebra look at books like "Matrix Computations" by Golub and Van Loan.
-Read How to prove it: a structured approach <--- 100%
-Read spivak calculus <-- will probably skip some of late chapters, after integration finishes
I've often seen those books recommended but I don't know if they emphasize algorithms.

-Read a book on probability/combinatorics <--- 100%

Try to find a probability book that emphasizes simulations.

The book "Constructive Combinatorics" by Stanton and White https://www.amazon.com/dp/B000PC10BG/?tag=pfamazon01-20 is short and emphasizes algorithms

-Read Introduction to Algorithms <-- probably won't have time to finish 100% of this book

In 4 months, you probably won't have time to cover a quarter of the material you listed.

Programming can be a valuable aid to learning mathematics, but if the goal is to learn the mathematics, don't get distracted by irrelevant perfectionism in coding - such as improving the appearance of a graph, making a interface look fancy. Just use programs to understand the math.
 
  • #10
Stephen Tashi said:
What kind of algorithms do you want to program?

I've looked through the textbook on algorithms that students at the local university use. It emphasizes things like sorting and hashing. It doesn't go much into algorithms related to calculus. For algorithms related to calculus, you would need a book on "numerical methods".

The algorithms related to calculus are a different field than the algorithms related to linear algebra. For algorithms related to linear algebra look at books like "Matrix Computations" by Golub and Van Loan.
I've often seen those books recommended but I don't know if they emphasize algorithms.
Try to find a probability book that emphasizes simulations.

The book "Constructive Combinatorics" by Stanton and White https://www.amazon.com/dp/B000PC10BG/?tag=pfamazon01-20 is short and emphasizes algorithms
In 4 months, you probably won't have time to cover a quarter of the material you listed.

Programming can be a valuable aid to learning mathematics, but if the goal is to learn the mathematics, don't get distracted by irrelevant perfectionism in coding - such as improving the appearance of a graph, making a interface look fancy. Just use programs to understand the math.

Thanks, I'll check the book out if I'm able to work according to schedule. I don't see why I won't be able to cover at least 5 books in the summer, most of my semesters are 4 months long and have me learning 5-7 books in this time
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
4
Views
3K
  • · Replies 17 ·
Replies
17
Views
11K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 20 ·
Replies
20
Views
7K
  • · Replies 7 ·
Replies
7
Views
5K
  • · Replies 4 ·
Replies
4
Views
8K
  • · Replies 18 ·
Replies
18
Views
4K