Jump to content

Where to start


Recommended Posts

I realise I could probably be massively out of my depth here, but i've recently gained a desire to learn and become capable in the world of computer science. Consequently, with such a massive field to learn about I was wondering where to start, and so basically I set up this thread to ask for any tips or recommendations of how to learn about it.

 

Currently I study History at a university in England which leaves me with a fair bit of spare time but not much money and so im basically looking for help or free internet sites that can teach me the basics from which to develop a further understanding. Or, if any of you could give me a basic introduction and explanation, it could be very helpful

 

I currently have next to no knowledge about the subject so i am not expecting there to be much you can help me with.

 

Any help appreciated, thanks.

Edited by redtiger
Link to post
Share on other sites

Computer Science generally covers the treatment of processing and development of algorithms. It is my opinion that if one wishes to properly learn computer sciences that one should first study the mathematics involved and during this process observe how it relates to the currently implemented architecture.

 

For starters you might wish to learn Boolean Algebra and observe how it relates to processor logic. During this process you could develop your knowledge of Assembler Language possibly by writing a small Assembler program something that accomplishes some decisions based on stored imputed values. This is a good place to start learning how to make flow charts.

 

The difficulty in addressing the next step is in how serious you wish to take your learning. I think the most appropriate language to learn the fundamentals of how a computer is thinking is to tackle C++. This is the best time to develop your skills in algorithms and I highly suggest learning the ins and outs of memory both Static Memory(Stack Based) and Dynamic Memory(Heap Based), allocation and Garbage Collection as well as a thorough examination of STL. There are many sites online that will recommend appropriate literature for all of learning C++ and developing with standard algorithms and how they are formulated. You may also wish to at this point cover some basic set theory and first order logic(something I wish I had done much earlier) and also maybe some category theory as well.

 

Once you have a fairly developed understanding to build on learning how to process using matrices and differentials will open up your skills to graphics processing and mechanical based interfaced systems. I would suggest finding two/three texts at this point. One or two texts that are purely mathematical and that cover both linear algebra with matrix type mathematics and also differential mathematics as these are both fundamentally essential tools to the computer scientist. The complementary text would apply matrix mathematics to programming. These should be focused on with algorithms in mind and how one would wish to optimize intensive processes. This is an excellent time to begin utilizing a graphics pipeline as this covers all of the above and then some; either of OpenGL or DirectX will be sufficient.

 

Ultimately if you wish to truly indulge in 'Computer Science' you must be capable of formulating a new idea, describing it in full mathematical description and creating documentation. Code samples are good but when it comes down to it the 'Computer Scientist' is not a production code monkey or software engineer and component development and optimization for you will be key! Follow through with an investigation into other programming styles including Managed Code(Java, C#), Functional Programming Languages(Haskell), Reflective Languages(Small Talk) and Parallel Programming(OpenCL) etc. ..... There is a lot to learn and it is made even more difficult in that changes are continually being implemented.

 

I have no concept of formal education and someone who does may post in this thread; just felt like sharing. Enjoy! :)

Edited by Xittenn
Link to post
Share on other sites

Computer Science has many branches .. but to have a good start, you need:

 

- Basic Knowledge in Mathematics (Calculus, Probability & Statistics, Linear Algebra)

 

- Basic Knowledge in Logic (Mathematical Logic, Algorithms, AI)

 

- Learn at-least one high-level programming language (C\C++\C#\Java) "I suggest C and Java"

 

- Learn how to write simple pseudo-code for a given algorithm & how to draw simple chart diagram then how to program it

 

 

 

I was going to suggest something on Software Engineering, but that's still a high level course ...

Edited by khaled
Link to post
Share on other sites

Computer Science has many branches .. but to have a good start, you need:

 

- Basic Knowledge in Mathematics (Calculus, Probability & Statistics, Linear Algebra)

 

- Basic Knowledge in Logic (Mathematical Logic, Algorithms, AI)

 

- Learn at-least one high-level programming language (C\C++\C#\Java) "I suggest C and Java"

 

- Learn how to write simple pseudo-code for a given algorithm & how to draw simple chart diagram then how to program it

 

 

 

I was going to suggest something on Software Engineering, but that's still a high level course ...

 

Cheers for the reply, I think i should be fine with the mathematics side of it and im looking into the rest.

 

Computer Science generally covers the treatment of processing and development of algorithms. It is my opinion that if one wishes to properly learn computer sciences that one should first study the mathematics involved and during this process observe how it relates to the currently implemented architecture.

 

For starters you might wish to learn Boolean Algebra and observe how it relates to processor logic. During this process you could develop your knowledge of Assembler Language possibly by writing a small Assembler program something that accomplishes some decisions based on stored imputed values. This is a good place to start learning how to make flow charts.

 

The difficulty in addressing the next step is in how serious you wish to take your learning. I think the most appropriate language to learn the fundamentals of how a computer is thinking is to tackle C++. This is the best time to develop your skills in algorithms and I highly suggest learning the ins and outs of memory both Static Memory(Stack Based) and Dynamic Memory(Heap Based), allocation and Garbage Collection as well as a thorough examination of STL. There are many sites online that will recommend appropriate literature for all of learning C++ and developing with standard algorithms and how they are formulated. You may also wish to at this point cover some basic set theory and first order logic(something I wish I had done much earlier) and also maybe some category theory as well.

 

Once you have a fairly developed understanding to build on learning how to process using matrices and differentials will open up your skills to graphics processing and mechanical based interfaced systems. I would suggest finding two/three texts at this point. One or two texts that are purely mathematical and that cover both linear algebra with matrix type mathematics and also differential mathematics as these are both fundamentally essential tools to the computer scientist. The complementary text would apply matrix mathematics to programming. These should be focused on with algorithms in mind and how one would wish to optimize intensive processes. This is an excellent time to begin utilizing a graphics pipeline as this covers all of the above and then some; either of OpenGL or DirectX will be sufficient.

 

Ultimately if you wish to truly indulge in 'Computer Science' you must be capable of formulating a new idea, describing it in full mathematical description and creating documentation. Code samples are good but when it comes down to it the 'Computer Scientist' is not a production code monkey or software engineer and component development and optimization for you will be key! Follow through with an investigation into other programming styles including Managed Code(Java, C#), Functional Programming Languages(Haskell), Reflective Languages(Small Talk) and Parallel Programming(OpenCL) etc. ..... There is a lot to learn and it is made even more difficult in that changes are continually being implemented.

 

I have no concept of formal education and someone who does may post in this thread; just felt like sharing. Enjoy! :)

 

Thanks, that looks like it could be very helpful. I have taken some books out of my University library and in my spare time am looking to pick up the basic knowledge and skills that I can then expand on. One of my books is a nice overview to computer science and so far it looks to be helpful.

 

I have heard of a few of the things you mention and whilst right now, the majority mean very little to me, I hope I can get to a level where they become something I am very capable of tackling.

 

 

Thanks again for taking the time to reply.

Edited by redtiger
Link to post
Share on other sites

I realise I could probably be massively out of my depth here, but i've recently gained a desire to learn and become capable in the world of computer science. Consequently, with such a massive field to learn about I was wondering where to start, and so basically I set up this thread to ask for any tips or recommendations of how to learn about it.

 

Currently I study History at a university in England which leaves me with a fair bit of spare time but not much money and so im basically looking for help or free internet sites that can teach me the basics from which to develop a further understanding. Or, if any of you could give me a basic introduction and explanation, it could be very helpful

 

I currently have next to no knowledge about the subject so i am not expecting there to be much you can help me with.

 

Any help appreciated, thanks.

i think the best way is to start from the beginning learn the basics and go from there Edited by sound
Link to post
Share on other sites

I realise I could probably be massively out of my depth here, but i've recently gained a desire to learn and become capable in the world of computer science. Consequently, with such a massive field to learn about I was wondering where to start, and so basically I set up this thread to ask for any tips or recommendations of how to learn about it.

 

Currently I study History at a university in England which leaves me with a fair bit of spare time but not much money and so im basically looking for help or free internet sites that can teach me the basics from which to develop a further understanding. Or, if any of you could give me a basic introduction and explanation, it could be very helpful

 

I currently have next to no knowledge about the subject so i am not expecting there to be much you can help me with.

 

Any help appreciated, thanks.

Computer science is not so difficult for science or engineering students, but it is not easy for other major students. We can drive car without deep knowledge of car. But we can not repair or design car without deep knowledge of the car. The deep knowledge is very difficult even computer majoring students. If you want to know car driver level about the computer, you can learn it by yourself. But if you want to know more deep knowledge about it, you would better go to computer class. It is the best way to get there.

Link to post
Share on other sites
  • 3 weeks later...

Isn't it ironic that High-level programming languages are supposed to be easier to learn than low-level languages?

 

lol

 

true, because low-level languages are closer to the machine language,

an the high-level languages are close to natural language ...

Link to post
Share on other sites

I realise I could probably be massively out of my depth here, but i've recently gained a desire to learn and become capable in the world of computer science. Consequently, with such a massive field to learn about I was wondering where to start, and so basically I set up this thread to ask for any tips or recommendations of how to learn about it.

 

Currently I study History at a university in England which leaves me with a fair bit of spare time but not much money and so im basically looking for help or free internet sites that can teach me the basics from which to develop a further understanding. Or, if any of you could give me a basic introduction and explanation, it could be very helpful

 

I currently have next to no knowledge about the subject so i am not expecting there to be much you can help me with.

 

Any help appreciated, thanks.

 

Mathematics is a MUST DO for Computer science - and as for programming languages you can start with BASIC - really simple, English-like syntax, although you might want to learn something a bit more advanced like Java, C++ or .NET languages - Visual Basic 2010, Visual C++ 2010 etc. These can be really easy to learn: Lua, Basic and Visual Basic 2010.

Links:

http://msdn.microsoft.com/en-us/vbasic/ms789086

http://justbasic.conforums.com/index.cgi?board=tutorial

http://www.cplusplus.com/doc/tutorial/

Hope this was helpful.

 

 

Edited by Djordje
Link to post
Share on other sites
  • 1 year later...

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/

 

This is MiT's computer science/programing course. It is the one they offer to students with no computer programing knowledge. Their website also offers the proceeding class and several others free of charge.


Also this course will start you out with Python, since they feel it allows for a smoother transition into other more complex languages.

Edited by moreinput
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.