At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
No. The closest you'll get is to pick a school, browse their course catalog for engineering or computer science, and read the courses they prescribe to obtain a degree.
You can do so without school. Grab some books on topics you're interested in, browse the web, follow tutorials, and join some forums. In fact, I've learned way more in the Computer Science field outside of class than I have in it. I've found that classes tend to suck the fun out of the material and they swamp you with a lot of bullpellet busy work.
It is true that an education in any field can be obtained without a "formal" education and what works for one person may not work for another. However, the question was to provide a "step-by-step" path for gaining the knowledge and the curriculum outline for earning a degree is usually a clearly outlined path.
Step by step? I don`t think that is possible. I can give you 5 focus points to learn it yourself: 1. Look into the demands of the next billion customers you have to serve. The market is changing many of them will be illiterate and most won’t have money or electricity for computers, so mobile devices will rule – so you need to start playing with mobile platforms like Android. In general, search for the “the next billion” and you’ll find some interesting material put together by the likes of Nokia, and MIT giving you ideas on what to focus on. 2. As IT touches the lives of more and more people, less and less of them will be “computer savvy”, and less and less of them will view computing devices as something that needs to be learnt. Consequently, the products that will succeed, will be the ones that are easy to use. And making something easy to use is rather difficult. It is a sub-discipline of computer science, and there is a lot of theory, and a bunch of well-defined algorithms and practices you can use to make things easy to use. The whole area is called HCI (Human Computer Interaction), and UCD (User Centered Design) is a part of it. It’s an area that you must be familiar with. 3. Far too much emphasis on specific programming languages, and specific “technologies” is a mistake. Whatever the future holds, you will be well served by knowing the basic theory of computer sciences. Learn data-structures and algorithms. If you don’t have a favourite data-structure, and an algorithm that you find beautiful, then your computer science education is incomplete. If, after seeing an algorithm, your first thought is not about the complexity of the algorithm (O(n), O(log n), etc.), then you need to hit your books again. If you’ve only learned Java and C#, and you don’t really understand pointers, heaps, stacks, you will sooner or later be at a disadvantage. Understand the basics. And while you’re at it, also learn mathematics and statistics. 4. This is not a computer science skill, but this is one of the most important skills that computer science students are missing. You must treat presentation as equally important, or more important than your program, design, and algorithms. And you must spend as much time learning presentation (from books, in classes, and in practice) as you spent on programming languages, and computer science subjects. I’m sure you haven’t done that, hence this item in my list. You should know how to write well. Not just papers and documents, but much more importantly, emails, and blog posts, and facebook wall postings, and tweets. You must think about what the user/reader/client wants to know (instead of what you know and want to tell). And of course, you must know how to speak well. How to tell a story instead of listing some arcane facts about your work. How to leave out stuff that you find extremely interesting, but the listener doesn’t. 5. Learn economics, if you understand the fundamentals of economics, you can see and understand what drives people and technologies and success and failure a lot better than people who do not understand it. I hated the fact that I was made to study economics in IIT for my computer science course. It seemed like a complete waste of my time. Now, looking back, I think it was probably the most important course.
It depends where you are starting from. Even the easy road isn't so easy, but the hard road is very hard. If you are fortunate enough to belong to the "middle class" in the "Western World" and are under the age of 18 then you don't need to ask this question. So because you ask, what you need to do is become that person in your community, circle of friends, who knows or is thought of as knowing how mechanical and electronic things work. One of the main projects, (used to be), for most student engineers is to build a computer from components. Figure out how to do this. If you are a non-traditional student, figure out how to get a beginning level job setting up computers: running the wires and installing programs. Don't become part of the electrical circuit!!!
@hendric_tuk_tuk. Please remember that computer science has little to do with computers! that's true! in computer science think of computers as telescopes in astronomy!
http://nptel.iitm.ac.in/ and http://ocw.mit.edu are very good websites for learning the computer science and engineering