Ask Me Help Desk

Ask Me Help Desk (https://www.askmehelpdesk.com/forum.php)
-   Computers for Beginners (https://www.askmehelpdesk.com/forumdisplay.php?f=79)
-   -   How to go from novice to expert in compters (https://www.askmehelpdesk.com/showthread.php?t=460771)

  • Mar 27, 2010, 02:32 PM
    leif_erikson
    How to go from novice to expert in compters
    Like the title says, I'm interested in computer science. The only thing that I know of computers are how they work mathematically and electronically. (but only very basic) I know the principle of how transistors work (quantum mechanically) and I'm familiar with some aspects of discrete mathematical structures such as propositional logic, truth tables, Markov chains, etc. (well Markov chains fall more under applied probability theory)

    I'm a theoretical physicist and a mathematician (well, those are my majors when I start college this fall) and I need more efficient ways to model and simulate phenomena so I think that I'll just learn as much about computer design and programming as possible. How do I go about doing this from the most basic undergrad level to the most advanced level? If possible, can you write it in a format similar to the one below:

    Math

    Arithmetic ---> Basic algebra --> trigonometry and analytic geometry --> single variable calculus (differential and integral) --> discrete structures/ linear algebra/ multivariable calculus/ ordinary differential equations --> real and complex analysis --> functional analysis/ partial differential equations/ topology --> differential geometry/tensor calculus/ more abstract algebras
  • Mar 29, 2010, 08:45 AM
    costas0811
    I was comp sci major and pretty much the first 2 years are
    Introductory Programming (probably C/C++: Input/Output, Conditions, Looping etc..
    Object Oriented Programming
    Data Structures
    Algorithm Design
    Computer architecture ( seems like you're familiar with this already )

    And then the more fun stuff is in the latter years
    Software Design and Development
    Computer Graphics
    AI and Computer Vision
    Operating Systems

    Although are you sure you're not really wanting to just use an existing software like Matlab or VisSim? Learning to program to the level you're talking about would take a while.
  • Mar 29, 2010, 02:08 PM
    leif_erikson

    Thank you costas0811. I'm currently using Maple and Matlab. I've never heard of VisSim but I will download it since it may have some advantage over the other two.

    I'm aware that it takes a great deal of time to become an expert at computer design and programming. That's why I'm trying to get an early start before the time comes when I go beyond the limitations of the two systems.
  • Mar 29, 2010, 06:04 PM
    costas0811

    Yea I'm just throwing things out there since I don't really know what your intent is exactly. How far would you say you've gone with programming already? Do you understand the basics?
  • Mar 29, 2010, 06:36 PM
    KISS

    Well, interesting enough in a lab in college me and my partners built what I would consider a small computer out of small scale integration logic. This when when the intel 4004 and intel 8008 came into existence.

    We designed a microcoded instruction set. 16 bits x 16 words and we were able to sort numbers in ascending or decending order based on the microcode or instruction set.

    Yep, it operated slowly, but was pretty cool. It had decision logic and a program counter and the ability to branch based on a test case. So, we could sort numbers with a "program".

    You can also look up "BNF notation" which is a Pascal like construct for describing a machine.

    I also built an analog computer. It wasn't designed by me but it simulated a bouncing ball on an oscilloscope.

    You really need to study computer architecture.
  • Mar 29, 2010, 07:02 PM
    costas0811
    Quote:

    Originally Posted by KeepItSimpleStupid View Post
    Well, interesting enough in a lab in college me and my partners built what I would consider a small computer out of small scale integration logic. This when when the intel 4004 and intel 8008 came into existence.

    We designed a microcoded instruction set. 16 bits x 16 words and we were able to sort numbers in ascending or decending order based on the microcode or instruction set.

    Yep, it operated slowly, but was pretty cool. It had decision logic and a program counter and the ability to branch based on a test case. So, we could sort numbers with a "program".

    You can also look up "BNF notation" which is a Pascal like construct for describing a machine.

    I also built an analog computer. It wasn't designed by me but it simulated a bouncing ball on an oscilloscope.

    You really need to study computer archetecture.

    Hes talking about the practically the highest level programming and you think he should study computer architecture?
  • Mar 29, 2010, 07:37 PM
    KISS

    "Computer design and programming" is what I hear from the OP.
    Design comes from studying architecture. Programming comes from studying language.

    Varients of C and html are dominant now. They were not 30 years ago. "G" (Labview) is a pretty good multi-processor language. It has all of the varients for mac, PC and Linux and embedded processors. Varients are being used for circuit simulation. It's data-flow based. When data is available to the module, the module executes.
  • Mar 30, 2010, 09:53 PM
    InfoJunkie4Life

    Technically they are all rooted in the same thing. Programming was designed to speed up the mathematical process of telling a computer how to function. The architecture of a system defines how it works with data ins/outs.

    I had a conversation with an long held geek (30-40 years of computer work) and we both found a few things out. Somebody once quoted, the advancement in programming is recycling software. It is this principle that makes OOP and class libraries so useful. As they grow, the ease of programming grows. The problem is that not too many people actually know what is going on.

    It is possible to map the data flow from input to output in a computer. That is how they were operated years ago, however, today's computers could fill volumes upon volumes of information with just a few minutes of processing power. The amount of technical detail that goes into some of the most basic C++ functions is absurd.

    As stated before, this will speed progress, but you will also find that no one really knows what they are doing.

    Who knows, in ten or fifteen years AI's and programming may have come so far as to be able to build programs based on illogical descriptions put into a system by half brained humans. That doesn't mean they are a brilliant programmer, but rather that they have built on so much previous progress (unknowingly) that they don't need to know to act.

    There few people willing to explore the present technology, to certify its reliability and longevity in order that it is more perfect. Its more of an arms race between companies producing dysfunctional equipment.

    I guess what I am really trying to point out, is there are more mathematical possibilities in a 16 bit processor than most 64 bit processors will ever be used for. And to date, they remain unexplored.

    Sorry for the rant...
  • Apr 3, 2010, 02:30 AM
    aliancemd

    All depends on what you want to learn. Computer science may be programming. If you want to program, which domain then? Software(like programs for Windows, Linux, MacOSx... )? Drivers? Operating System? Core programming(making drivers may be included)?

  • All times are GMT -7. The time now is 10:45 AM.