7 Replies - 2330 Views - Last Post: 30 January 2014 - 02:47 PM

How to start?

Posted 29 December 2013 - 04:45 AM

Hey there everyone. I am 18 years old, graduated from High School in June. In High School, I majored in physics & chemistry. Lately, I am more interested in computer science than in any other field. I do greatly regret not studying it in school, and now I am planning on studying it on my own. I literally know nothing about this field of science, all I know is that I am eager and ready to learn how technology works and develops; it seems intriguing to me. How can I start? What to study first? And is there any online, helpful courses I can take?
Thanks in advance.

Re: How to start?

Without knowing what you want to achieve, it's an incredibly vague question. The general answer is to start by reading & doing, just like you did your other subjects in high-school.

If you want to learn hardware, find broken machines & research how to troubleshoot & fix them.
If you want to learn software, research languages, read books on that language, use the compiler or whatever to build your code & run it. Troubleshoot, research, troubleshoot, research.
If you want to learn operating systems, install a virtual machine, download & install the vm images. Configure, troubleshoot.

Re: How to start?

Posted 29 December 2013 - 10:51 AM

Don't expect school to completely prepare you for the work force... particularly when dealing with computers. You'll learn the basic concepts, but almost any job has a lot of specific things that you'll have to learn either on your own, or on the job. The theme of no2pencil's advice reflects a lot of that need to take initiative and be in a position to teach yourself.

Re: How to start?

Posted 02 January 2014 - 01:02 PM

If you're interested in studying computers, you should maybe start by getting clear on the difference between programming and computer science. Programming is neat, and it's fun, and it's cool, and it's not computer science. The converse is also true. Each is fantastically useful for the other, of course- I wouldn't think much of a computer scientist who couldn't write a good implementation of a serious program, and a programmer who doesn't understand time complexity is likely to end up up a computational creek without a paddle - but they are different areas of enterprise, and you should make sure you know the difference.
One useful book - a little expensive - for understanding what computer science is about is called The Nature of Computation, by Mertens and Moore. It's useful because it's really about what computer science is, and it requires absolutely no computer programming - so you get a sense of what that discipline is about on its own. It's fun stuff, if you like that sort of thing.

Quote

First and foremost, I'd start by learning to program. If you don't know how to program, it's pointless to really study computer science.

Also first and also foremost, you should work on your math. CS is really a branch of mathematics, and if you don't have the math much of it will be opaque to you. Having done physics, you'll probably have a good math background, but there'll be a lot of stuff that you'll need to pick up that you haven't covered yet.

Re: How to start?

First and foremost, I'd start by learning to program. If you don't know how to program, it's pointless to really study computer science.

This is completely inaccurate, I know a lot of computer specialists who do not know how to program. It really all depends on the department of Information Technology that you want to get into.

Considering that you are on a programming forum right now, I am assuming that is your interest. It might not always be, but let's start with that as it's what I can assume of you right now.

My advice:
Start from the bottom, and keep telling yourself that you "don't" know what you are doing.
Why?
Because it will prevent you from jumping into programming too quickly, thus forcing you to really really learn the basic material.

I often see people who are interested in programming, and then they try getting into more complex/advanced code way before they should, inevitably making them give up.

Honestly the best way to learn is often to pick up a book AND watch videos AND practice practice practice.
If you skip any of those steps, you could very well be missing out on a lot of information that you otherwise would have not learned.

Re: How to start?

This is completely inaccurate, I know a lot of computer specialists who do not know how to program. It really all depends on the department of Information Technology that you want to get into.

I said nothing about general IT; rather, I said computer science. A business IT or computer information systems program is really different from computer science. Being a help desk support guy, or a hardware guy really doesn't qualify as CS. If you don't know how to program, you're missing out on a big perspective in CS with theoretical topics like algorithm analysis or formal languages; as well as more hands-on issues like machine learning. Sure, you can look at machine learning with formulas and math; however, you miss out on the intuition of what is going on.

Quote

Honestly the best way to learn is often to pick up a book AND watch videos AND practice practice practice.
If you skip any of those steps, you could very well be missing out on a lot of information that you otherwise would have not learned.

Lots of newbies really seem to like the videos. It's an inefficient way to learn information. The video shows you the same examples you see in texts. Simply reading the book, working through examples, and practicing is sufficient.

Re: How to start?

First and foremost, I'd start by learning to program. If you don't know how to program, it's pointless to really study computer science.

This is completely inaccurate, I know a lot of computer specialists who do not know how to program. It really all depends on the department of Information Technology that you want to get into.

Mac has addressed this: CS != IT. IT is essentially support - you have to understand how to work with the technology, but there's no need to understand how the technology itself is built, and certainly no need to understand the fundamental principles underlying the technology. CS is essentially math. You have to understand how programs are written, so you have intuitions to work with, but what you're working on are the answers to fundamental problems of computation, not how to use the programs that implement those answers. Programming, of course, is the middle layer: the programmer has to understand the answers that computer scientists produce, and implement solutions to actual existing problems. The IT role is to assist users of those solutions.

Quote

My advice:
Start from the bottom, and keep telling yourself that you "don't" know what you are doing.
Why?
Because it will prevent you from jumping into programming too quickly, thus forcing you to really really learn the basic material.

This is actually pretty reasonable advice. Forcing yourself to learn the basics is always a good idea, and many people do get ahead of themselves and fall down when they move too fast. Eclipse dalenda est.

Quote

Lots of newbies really seem to like the videos. It's an inefficient way to learn information. The video shows you the same examples you see in texts. Simply reading the book, working through examples, and practicing is sufficient.

Preach it, brother. It takes, by my reckoning about five times as long to read a text aloud clearly as it does to read that page to yourself. Assume that the material is sufficiently simple to be absorbed with one exposure: in this case, you can get five times as much information in the same amount of time if you just read it in printed form as compared to oral presentation.
This is the best-case scenario. If the material is more complex and requires careful reading, it is much easier to back up and re-read on the page than in recorded form.