Alan Cooper calls for a Software Revolution - his best-selling book now in trade paperback with new foreword and afterword.
What concepts in Computer Science do you think have made you a better programmer?
My degree was in Mechanical Engineering so having ended up as a programmer, I'm a bit lacking in the basics. There are a few standard CS concepts which I've learnt recently that have given me a much deeper understanding of what I'm doing, specifically:
Obviously, the list is a little short at the moment so I was hoping for suggestions as to:
I find it a little funny that you're looking for computer science subjects, but find wikipedia too academic :D
Anyway, here goes, in no particular order:
As a recent graduate from a computer science degree I'd recommend the following:
As mentioned in various posts Big O notation
Data structures & Algorithms (can't remember the exact title of the book I used will update if i remember)
Operating Systems http://www.amazon.com/Modern-Operating-Systems-2nd-GOAL/dp/0130313580
Some of the OS concepts
( memory, IO, Scheduling, process\Threads, multithreading )
[a good book "Modern Operating Systems, 2nd Edition, Andrew S. Tanenbaum"]
Basic knowledge of Computer networks
[a good book by Tanenbaum
A programming language ( I learnt C first then C++)
Algorithms ( Time\space complexity, sort, search, trees, linked list, stack, queue )
[a good book Introduction to Algorithms]
I am making the distinction between User Interaction Experience and pure User Interface (UI) design here, even though there is often a correspondence. You can have great user interaction even with a ‘boring’ grey interface, (note that a boring interface is not a requirement!).
My bookshelf contains the following:
What other books or resources would you add to this list?
I like these books:
I'm a C++/Java developer and have no idea about .Net or GUIs. I need to develop a windows app for 2000/XP/Vista/7.
I think I've come to conclusion that C# is the best and the fastest way to go (please correct me if I'm wrong). What do you recommend? Which GUI approach should I learn? (Forms? Any other stuff?)
Is it the best way to compile in .Net 2.0 mode? It's going to be an application for the public to download.
I would recommend learning Winforms first, then move the WPF. Winforms is easier to learn and get something working quickly. The future however is WPF, so I wouldnt leave that in the dark. I posted some good books and links for GUI development work.
What would be my best option for a minor? Graphic Design?....
I'm also majoring in CS and I've specialized in UI design. Maybe your CS university did not have courses about UI design? (And graphic design is not the same as UI design - the former is about how the program should look like, the latter is about what the program should do.)
Here are some books that I would recommend you to read, if you want to get more into UI design. In alphabetical order:
The course that I went to was mostly based on the User Interface Design: A Software Engineering Perspective book. I have not yet read the book itself, I've just skimmed through it, but it seems like a good book to start learning UI design. Also all the other books are good. Then when you have read some theory from the books, you just need to practice UI design until you develop a sense for good and bad usability, and get some training in requirements gathering and usability testing methods.