What resources are available for a beginner in computer science and physics?

Click For Summary

Discussion Overview

The discussion revolves around resources and strategies for beginners interested in studying computer science alongside physics. Participants share their experiences and suggest materials to help newcomers gauge their interest and prepare for introductory programming courses.

Discussion Character

  • Exploratory
  • Technical explanation
  • Conceptual clarification
  • Homework-related

Main Points Raised

  • One participant expresses a lack of familiarity with computers and programming, seeking recommendations for introductory resources to determine interest in computer science.
  • Another participant suggests online resources such as e-books and tutorials, noting that the amount of math required depends on the specific programming tasks.
  • A different contributor emphasizes the importance of understanding programming concepts beyond just syntax, warning against the misconception of knowing a language without grasping its underlying principles.
  • One participant recommends "The Pragmatic Programmer" as a valuable resource for those starting in programming.
  • Another participant suggests "C++ Without Fear" as an effective book for beginners, highlighting its focus on essential concepts.
  • There is a discussion about the necessity of practical coding experience, with some participants arguing that reading alone is insufficient for learning programming effectively.

Areas of Agreement / Disagreement

Participants generally agree on the importance of practical experience in programming and the value of certain resources. However, there are differing opinions on the sufficiency of self-study versus formal classes, and no consensus is reached on the best approach to learning programming.

Contextual Notes

Some participants note that the effectiveness of learning resources may vary based on individual learning styles and the specific programming tasks involved. There is also mention of the varying levels of math required depending on the programming context.

Who May Find This Useful

Beginners in computer science, students considering a dual major in physics and computer science, and individuals looking for self-study resources in programming.

zoiberg137
Messages
28
Reaction score
0
I am planing on taking physics as a major, and am also considering studying computer science on the side (my school offers a 5 year cs masters when your majoring in physics). The thing is, I know nothing about computers. I barely understand the difference in software and hardware. When I see an example of code, I am just baffled and don't get how so many people have caught on to such a concept while I have not even been aware of its existence!

In any case, I am naturally attracted to things I don't understand. And so I can't help to humor the idea of taking computer science classes to see how I like it.

But first, just thought Id ask and see if anyone has any suggestions on a book or website I might want to read first to determine if its something that would actually interest me. How much math is involved for introductory computer science? The intro course at my college uses a book called Big c++. If i get this book and read it on my own, would I be able to follow it and make sense of anything without being in a class?


Thoughts? (Im 26 and in my first year of college by the way...Still trying to get a handle on what I want to do with myself in the long run...)
 
Physics news on Phys.org
You should be able to get the hang of the basics from the internet, try:

http://www.e-booksdirectory.com/programming.php
http://thenewboston.org/tutorials.php

To see if there is anything you like. In terms of mathematics you need to know the basics but it really depends on what your programming, of course a piece of drawing software needs geometry etc.

As for Big C++ feel free to read it, but try not to get caught in the trap of thinking "I know C++!" because you may know the syntax but without the understanding of the concepts its virtually worthless. Think "I am a programmer, I know how to make computers do what I want, It does not matter which language". For example arrays are similar in most all languages I have come across, when you get a problem and realize you need an array you would go look of the syntax for your paticular language that your using (This might not make sense until you know what an array is, sorry!)

Hope this has helped.

P.s if you do get into programming I recommend "The Pragmatic Programmer" book. Very good!
 
Hey zoiberg137 and welcome to the forums.

For CS, one of the major components is programming which is what I used to do for money for a little while. You can learn it just like learning to drive a car for the first time or learning how to play a sport: it focuses on different things but the point is you can learn it.

Here is some advice for you to keep in the back of your mind when you are dealing with any kind of programming:

Be aware of two things: state and flow-control.

State just means every bit of data and information in memory that you use in some form and flow-control has to do with how data gets processed and in what way. Let's make these comments less confusing:

When you start programming you'll do simple programs like set an integer to a value, print a simple sentence on the screen amongst other things.

The most important thing that you will have to learn is how to track the state of your program. You will start with simple short pieces of code but it will get a lot larger and you will have to manage the states in your head using good coding techniques and all the stuff that you will taught in your CS courses.

You will learn a lot of different techniques and if you understand how to track the state of all these different things then it will be easier for you to really understand what is going on and also when you have to debug your code (which can be a nightmare). If you know what's going on with the state of each variable and the state of the overall runtime environment (for now just think inside your program), then it will make your job a breeze in comparison to if you did not.

Now comes flow-control.

With flow-control you will be no doubt introduced to procedural and quite possibly object-oriented paradigms like C or C++ if its OOP.

The flow-control is basically a way to say how data gets processed and how that gets done. For a procedural language its basically going to be from top to bottom inside some context.

A context is something like a loop or a function where once you've say called a function or you are inside a loop then you still go from top to bottom but its inside the loop or function until the loop ends or until you exit the function. Also with a loop if the condition isn't satisfied to end the loop you go back to the start of the loop and do the top to bottom thing again.

Again you will start off with simple examples and build them up to things that are more complicated developing your ability to organize everything in your head over time.

Flow-control and state have a very intertwined relationship: if you get a weird kind of error for a variable then knowing the flow-control will help you track the error down. For example you might be in a language like C++ and for some reason some hidden function gets called that doesn't do the right thing and you need to find this to fix your program.

Keeping these two things in mind will put everything in perspective when it comes to writing code of any sort, in any environment and on every platform. The state and flow-control might be different paradigms or include different things but the idea itself does not change.

I wish you all the best with your courses.
 
zoiberg137 said:
But first, just thought Id ask and see if anyone has any suggestions on a book or website I might want to read first to determine if its something that would actually interest me. How much math is involved for introductory computer science? The intro course at my college uses a book called Big c++. If i get this book and read it on my own, would I be able to follow it and make sense of anything without being in a class?

The best book I have seen for teaching yourself C++, after having done C++ for over 12 years would have to be:

C++ Without Fear: A Beginner's Guide That Makes You Feel Smart

Its very good for beginners, and teaches all the right concepts in my opinion.
 
zoiberg137 said:
If i get this book and read it on my own, would I be able to follow it and make sense of anything without being in a class?

If the class mostly deals with the syntax et al. of the langage, then feel free to use the book. Learning a programming language is something you can do by yourself, and I recommend doing just that.

On the other hand, one doesn't learn programming by reading a book. You have have to actually *read* and *write* code. If the class is very programming-heavy, if there are loads of examples and exercises where you have to write new code, then by all means, go to the class. Or work on a project. But at least do anything other than just reading a book about the language and understanding those minimal examples.
 

Similar threads

  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
3
Views
5K
Replies
2
Views
2K
  • · Replies 8 ·
Replies
8
Views
4K
  • · Replies 7 ·
Replies
7
Views
3K
Replies
15
Views
4K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 6 ·
Replies
6
Views
5K