Making assumptions are never an easy task, yet we have to make them every day. You might not realize it, but our brain is in fact lazy and wants to take shortcuts. For example, when someone asks you what's the time you have to make an assumption of in what way to tell him the time. is it 05:30 or 17:30? is it quarter to six or five forty five? Similarly I have to make some assumptions on you are. I will try to keep this short and to the point.
NOTE: Assumption list is in randomize order.
Assumption #0: You can read and write. I know this sounds silly, but I have to make that assumption to cover my basis. As long as we mention it, I encourage you to write to me. Writing is fun, but it's nice to read your thoughts as well.
Assumption #1: You have seen programming. I don't care what language you have learned, but I assume you know the basics of programming well enough to move on. I will try to put a document together that will include what I consider basic of programming. That being said, the document will be insufficient to learn from for a new programmer. For starter guides I recommend looking elsewhere.
Assumption #2: You want to know more. What I write is one way to look at things. Everyone learns different and There is no uniform way to satisfy such needs. For that reason I want you to go out and look at other resources and find your comfort zone. I also find that most of my previous students tend to learn more when they wanted to learn more.
Assumption #3: You have Internet access. This might be trivial, but again I want to cover the basis. I will try my best to have pdf's you can download for offline usage. As a programmer, having online access is sometime beneficial.
Assumption #4: MATH. I know this is a touchy subject, but you do need understanding of discrete math and algebra. Other math might help, but the rest could be learned on the go. Your logic skills need to be in play. Again, I will get back to this, but at this point I have to assume this much from you.
Assumption #5: Hardware & Software. All you need is either your daily laptop. You could have a seprate computer, but it's an over kill at this point. I am still debating what language I will use. I have a Mac and Linux. I highly recommend using one of these options. Ubuntu is not bad, I wouldn't use the latest one, version 10 or 11 will be enough. If there is any software to install I will make note of it and update this post.
This list may be updated from time to time. Assumptions made are subject to change at anytime without notice. You have been warned. If there are any you would like to add I will advise you to email me or leave it in the comments and it will be added.