Where to Begin with Computer Science for a Physics Major?

Click For Summary

Discussion Overview

The discussion centers around the challenges faced by a physics major in acquiring computer science skills, particularly in preparation for job applications. Participants explore various resources and strategies for self-learning in computer science, including programming languages and certifications.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant suggests reading "Concrete Mathematics" and starting with beginner programming books in languages like Python or Java.
  • Another participant emphasizes the importance of understanding the structure and relationships within code, advocating for a procedural approach to programming.
  • There is a recommendation to build on existing programming infrastructure and to keep code simple and readable to facilitate collaboration and debugging.
  • A different viewpoint highlights that the "computer skills" question on applications may not align with formal computer science knowledge, suggesting that certifications like A+ and Microsoft certifications could be more relevant for employability.
  • One participant mentions using virtualization software to practice skills related to IT certifications, indicating a practical approach to learning.

Areas of Agreement / Disagreement

Participants express a range of views on the best approach to learning computer science, with no clear consensus on the most effective resources or strategies. Some focus on programming skills while others emphasize IT certifications.

Contextual Notes

Participants have not reached a consensus on the best starting point for learning computer science, and there are varying opinions on the relevance of programming versus IT certifications for job applications.

kuahji
Messages
390
Reaction score
2
I'm a physics major & am in my third year. The problem is, I never had a computer science course & when I go to fill out applications for various things, everyone wants to know what my computer science skills are. I'm taking comp. sci. 1 next semester, but from now until the next semester starts, what some good books or references I could read on computer science? I really have no idea where to start, but would like to learn something slightly different from what I'd learn in the comp. sci. I course.
 
Physics news on Phys.org
There's a book called "Concrete Mathematics" about math that comp sci students might need. If you haven't done programing, I guess you should just take out a beginners book in Python, Java or something and tinker around
 
kuahji said:
I'm a physics major & am in my third year. The problem is, I never had a computer science course & when I go to fill out applications for various things, everyone wants to know what my computer science skills are. I'm taking comp. sci. 1 next semester, but from now until the next semester starts, what some good books or references I could read on computer science? I really have no idea where to start, but would like to learn something slightly different from what I'd learn in the comp. sci. I course.

Hi there I've done programming both professionally and unprofessionally for about 8 years so I'll try and give you some tips into programming.

1) Think big

By thinking big I mean that you should over time and with experience know and see inside your head what the code is doing, how each bit of code depends on the other supporting code in your program and how the puzzle fits together. This becomes important as you get to work on larger and larger programs and as they become more complex, your role will be to implement both the simplest and most effective solution.

2) Think procedurally

Most code you will ever have to write/debug/expand etc will be procedural. Whether its written in machine language, Java, C++ whatever if you can apply paradigms to your code where you break up your programs to do tasks in the most "logical" way then it will help you get done what you need to. Also learn about documentation. If you write code that performs a given tasks and it takes 4 sub procedures to effectively do that task, think about the following:

a) Scope of the function
b) Related data going in and data going out
c) Put into context of what is happening
d) The role of data structures in your code

3) Build on existing infrastructure

There are dozens (if not hundreds) of existing data structures that achieve some particular purpose in programming. One of the more important things to do is to treat coding like it was building a house. You typically begin by planning to build a house by creating atomic elements (like the bricks, wooden framework etc), lay the foundations, create the links that bond different elements together and finish it off through careful structuring and bonding
of each element.

Programming is no different. You start off with code segments that typically will end up in
libraries where that library contains routines that will be used by other parts of a program. It can take a little while to get to used to but if you learn to do this early on, you will write better code and things such as templates in C++ become a lot more natural to you when you are learning.

4) Keep it simple

Sometimes it can be hard to get the right code the first time but typically more experience usually allows someone to get the right thing happening faster. Now code can become complex but for the sake of trying to alleviate problems in the future, keep your code simple and readable to the best of your ability. Break-up code into sub problems that can be easily analyzed by another coder. Trying to create ultra complex code or coming up with routines that are 10000 to 100000 lines will go against helping other coders from getting to understand what's going on and frustrate them. It can also be detrimental to you if you find that you need to add a feature or debug the code or have to work with it in some way.

With regards to learning particular languages, technologies, methodologies, infrastructures, data structures and all that, there's tonnes of information out there that can teach you that so I won't bother.

All the best and good luck with it all.
 
That "what are your computer skills" question you see on applications is really different from what do you know about computer science, I think. Fortunately, there are certifications galore in the IT field which teach you a lot of different things and you get to add to your resume in big bold letters when you pass (just kidding with the bold part).

I recommend A+. Basically a heavy focus on being a computer technician, hardware issues, boot issues, operating systems, monitors and graphics cards, and printers. Not anything close to computer science. But stuff that makes you employable.

At my internships, I've been told they really like people who have Microsoft certifications too. There's a ton of those, but mainly I'd start off with "installing and configuring windows 7" or whatever goofy name it has. Try studying for the test using virtualization software as an added bonus. Sun microsystems has a open source software called Virtual Box that makes it ridiculously easy to practice this stuff.
 
Last edited:

Similar threads

  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 20 ·
Replies
20
Views
4K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 23 ·
Replies
23
Views
7K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 4 ·
Replies
4
Views
1K