|
I apologize if this is too much about programming, but I didn't know where it would fit in the programming forum. It's about note-taking in tech books, not a particular language. If it's still bad, please let me know.
Over the past 4-6 weeks, I've been reading this 1000+ pg book trying to learn more about C#.
It's come to me that my method of absorbing information from this book (and perhaps tech books in general) is ineffective (either that or just slow as a snail). I've only been typing up the programs from this book if the topic was 100% new to me (the programs come with the book, so no need to type things up if you know the material in question). When I type out notes on what's going on alongside typing out the programs, I'm realizing that I'm just saying what's in the book, but shortened. So, I'm like a bad copy/paste function. Typing things out in my own words helps me recall things a little better, but not enough to justify the time I'm burning. It can sometimes take me a 90 minute study block to clear 5 pages (that's typing up a program AND notes, but still).
My method sucks, so I was wondering how you guys approach this type of thing. Do you just do the programs and comment as much as possible? What approach do you take to notes?
|
|
|
|
|
I read a lot of books, so here's my "method"...
Its not about retaining the information or doing all the exercises. For me, its reading the information and knowing in the back of my mind that there's a method for doing what I'm trying to do and recalling where I found that information. I can then go back and look up what I need to and get it done right.
Do that enough times and the things you use most often will stick with you without needing to go back to the reference. I retain enough information to know that there's something out there that can do what I need. I really don't need to remember it word for word, line for line, or method for method. I can look it up later.
This is why I really dislike most traditional testing. Its based on memory retention and not application. In the real world you are welcome to use as many reference materials as possible to accomplish your goal. Just know the methods are out there, worry about getting it exact when you need to apply it.
|
|
|
|
|
Ron Beyer wrote: This is why I really dislike most traditional testing. Its based on memory retention and not application Whoa. Do you have the other half of this medallion?
I am with you 100% on this. I suck at tests, but I am strong when it comes to utilizing my knowledge and experience to solve the daily development tasks.
Soren Madsen
"When you don't know what you're doing it's best to do it quickly" - Jase #DuckDynasty
|
|
|
|
|
I have a hard time with retaining what I read so my method is to read the book then pick a small project and if I get stuck I go back and re-read the appropriate section, then pick another bigger project and if I get stuck,...well you get the idea.
|
|
|
|
|
I have never typed in code from books or magazines or whatever.
I prefer to take a class with an actual teacher (no matter how stupid).
A major problem with books these days is that they have to spend more time teaching an IDE (including downloading, installing, configuring, etc. ) rather than the actual language.
The book I have on BASIC-plus (1975, 1983) has exercises.
|
|
|
|
|
Unless the book contains 700+ pages of drivel then it's not worth paying good money for; that's the way the publishers do it and would have us believe it needs to be. Crying in a bucket, I've got one book on my shelf that's 1370 pages.
If there is one thing more dangerous than getting between a bear and her cubs it's getting between my wife and her chocolate.
|
|
|
|
|
Septimus Hedgehog wrote: 1370 pages
That beats the 1207-page Visual Basic 2008 book I have that doesn't have even introduce if until chapter 18 on page 353.
|
|
|
|
|
Enter the code. Change the code to ensure I understand it, and what the possibilities are. Set my self tasks that further prove I've learned to do whatever it is.
Christian Graus
My new article series is all about SQL !!!
|
|
|
|
|
theres a big difference between a text book and a tech book - and it sounds to me lime you are using the latter as if it were the former.
i read a tech book, in a relaxed atmosphere, away from the computer. if there's something i want to try out, i mark it (post it on the page if a real book, bookmark it of ebook)
when i type in or download code, i tinker with it, making changes to convince myself that i understood whats going on.
i find that i usually end up coming back to the book later when I actually need to use a technique, as i will remember the existence, even if I don't recall the detail.
MVVM # - I did it My Way
___________________________________________
Man, you're a god. - walterhevedeich 26/05/2011
.\\axxx
(That's an 'M')
|
|
|
|
|
I skim the initial bits of the books to get a feel, and then start a real project. The reading gives me a quick overview, and I don't worry too much about syntax and low-level details. I find I learn much more quickly by doing something, rather than just reading. The book supplies a reference, examples, and occasionally recommendations for best practices.
I also don't get too attached to the 'real project'. When I learned C# and WPF, it was for the UI application for a new product. I think I had four or five prototypes that I discarded completely and restarted from scratch.
Software Zen: delete this;
|
|
|
|
|
I don't. At best, I take a very cursory look at a language's syntax and usage.
That New Guy wrote: My method sucks, so I was wondering how you guys approach this type of thing.
The best way I learn a language is to actually code something in it. For example, when learning Ruby, I banged out a simple implementation of the classic game Hunt the Wumpus[^].
Also, because I know other languages, I wrote a few articles here comparing Ruby with C# and F#.
So, my recommendation is, learn enough to do something and pick a simple task (simple games are great) that start exercising your knowledge. And try to stick first with language fundamentals, then start exploring the API's / frameworks, then move on to things like interfacing to databases, etc. For example, another Ruby investigation that I did was how to connect with SQL Server, rather than the more commonly supported open-source DB's.
Lastly, find someone willing to mentor you -- I have a fantastic Ruby on Rails mentor, and Google and Stack Overflow are great anonymous mentors as well - I still learn things about C# and F# from SO.
Hope that helps.
Marc
|
|
|
|
|
That's one thing I wish I could do: find mentors, or at least 100% trustworthy sources of information. However, I don't have strong computer-wise connections from college, or even my last job, so I'd be starting from scratch in terms of finding a living being willing to guide me through.
|
|
|
|
|
That New Guy wrote: That's one thing I wish I could do: find mentors, or at least 100% trustworthy sources of information.
Well, that's one of the things I do, so I'm happy to critique code and offer < 100% trustworthy suggestions, haha.
Marc
|
|
|
|
|
OK, so from all you guys' responses, programming is more important than note-taking because I can just reference the material later.
However, what do you guys think I SHOULD take notes on? Just A-HA moments I come across, or anything new that confused me before?
|
|
|
|
|
Intellisense autocompleted something (quite accidentally, I fat-fingered what I was typing):
I present you:
ECDiffieHellmanKeyDerivationFunction[^]
The description is equally esoteric:
Specifies the key derivation function that the ECDiffieHellmanCng class will use to convert secret agreements into key material.
So tell me, have you ever use a Diffie?
Marc
|
|
|
|
|
Yes, we use this as part of our security infrastructure.
/ravi
|
|
|
|
|
Ravi Bhavnani wrote: Yes, we use this as part of our security infrastructure.
I'm impressed. I think the only reason I found this was I had a "using" statement for the cryptography namespace.
Marc
|
|
|
|
|
Don't be - I think it's a pretty standard key-exchange process for encrypting communication.
/ravi
PS: I wasn't the dev who worked on it. I just use it.
|
|
|
|
|
wrong forum, the lounge has been taken over by the new year posts for now!
|
|
|
|
|
Sounds like a drink! Go have one! (unless you are a recovering alcoholic - then sorry!) Cheers and Happy New Years!
"Go forth into the source" - Neal Morse
|
|
|
|
|
Sure, but not in .NET. Years ago, I added a Diffie-Hellman Key Exchange mechanism in order to encrypt the communication on the TCP connections between our servers and clients. I used the code from this article for some of that: Diffie-Hellman Key Exchange Example[^].
Soren Madsen
"When you don't know what you're doing it's best to do it quickly" - Jase #DuckDynasty
|
|
|
|
|
|
Yes. You really have no excuse.
Soren Madsen
"When you don't know what you're doing it's best to do it quickly" - Jase #DuckDynasty
|
|
|
|
|
Hmmmm,
Marc Clifton wrote: Ah, very cool. I should have googled CP!
Are you implying that you have never heard of Diffie-Hellman? How is it even possible to work in the field of computer science and not know about Diffie-Hellman?
Best Wishes,
-David Delaune
|
|
|
|
|
I've heard of Diffie Hellman, haven't had the opportunity to use the algorithms...
I do like his Mayonnaise though
|
|
|
|