Where to Begin with Computer Science for a Physics Major?

In summary, the conversation discussed the lack of computer science skills for a physics major and the need to improve in this area for job applications. Suggestions were given to think big and procedurally, build on existing infrastructure, keep it simple, and obtain certifications such as A+ and Microsoft certifications. The use of virtualization software was also recommended for studying.
  • #1
kuahji
394
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
  • #2
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
 
  • #3
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.
 
  • #4
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:

1. What is computer science?

Computer science is the study of computers and computational systems, including their principles, applications, and impact on society. It involves both theoretical and practical aspects, such as designing and developing software and hardware, analyzing algorithms, and understanding how computers work.

2. How do I start learning computer science?

There are many ways to start learning computer science, but a good place to begin is by gaining a strong foundation in math and logic. This will help you understand the fundamental concepts of computer science. You can also take online courses, enroll in a computer science degree program, or join a coding bootcamp to learn specific skills and programming languages.

3. What programming languages should I learn for computer science?

There are many programming languages used in computer science, and the best one to start with will depend on your goals and interests. Some popular languages include Python, Java, C++, and JavaScript. It's a good idea to learn at least one high-level language and one low-level language to gain a well-rounded understanding of programming concepts.

4. What skills are important for a career in computer science?

In addition to technical skills such as programming and problem-solving, other important skills for a career in computer science include critical thinking, communication, and teamwork. It's also important to stay updated on the latest technologies and to be adaptable and willing to continuously learn new skills.

5. What are some resources for learning computer science?

There are many online resources available for learning computer science, such as coding websites, online courses, and tutorials. Some popular sites include Codeacademy, Coursera, and edX. You can also find free courses and resources from top universities, such as MIT and Stanford, on their open courseware platforms.

Similar threads

  • STEM Academic Advising
Replies
3
Views
827
  • STEM Academic Advising
Replies
6
Views
1K
  • STEM Academic Advising
Replies
9
Views
1K
  • STEM Academic Advising
Replies
20
Views
2K
  • STEM Academic Advising
Replies
6
Views
1K
  • STEM Academic Advising
Replies
8
Views
1K
  • STEM Academic Advising
Replies
10
Views
1K
Replies
2
Views
946
  • STEM Academic Advising
Replies
23
Views
3K
  • STEM Academic Advising
Replies
1
Views
460
Back
Top