There's Three Ways To Know Anything
secretGeek .:dot Nuts about dot Net:.
home .: about .: sign up .: sitemap .: secretGeek RSS

There's Three Ways To Know Anything

Okay, so i've decided there are three ways to know anything. Maybe there's more ways. So, there are at least three ways to know anything. Everything.

Say you want to write really good .Net code: code that fulfills all your needs, does cool stuff, and works reliably. There's three ways.

First, you can read up on the .Net framework, by reading books, by reading other people's code, by reading every article and blog entry you can find -- by reflecting into the IL and reading all of that code too. This is the first way to know everything: learn it all in advance, Just In Case.

Second, you can shun all the books, ignore everyone else's code, concentrate on the language itself, and never use the framework -- always write your own code to achieve whatever needs to be done, from the most basic of first principles. This is the second way to know everything: trust noone, build on first principles, Just Because.

Third, you can run with the fragments of knowledge you've picked up so far, and dive into real world problems. When you hit a barrier -- search for the answer to that specific problem, solve it and move on. Intellisense, Google and Google groups are your friend. This is the third way to know everything: Just In Time.

What do you know? And how?

(p.s. after writing this, i googled for "Just In Case" learning and found that Kathy Sierra covered these ideas much better than me, years and year ago, from a teaching perspective.)





'Joel Martinez' on Wed, 14 Mar 2007 02:56:12 GMT, sez:

My compiler has most certainly adopted the third approach. intellisense, google, and google groups are invaluable for me. It's not that I don't know the APIs, my brain just didn't bother memorizing the exact methods and properties for some things because it's always just an intellisense or google search away



'goldfish' on Wed, 14 Mar 2007 03:07:37 GMT, sez:

i don't even remember the exact names of the tables in the main database i work on now. i just search against the info schema (or the sys tables) and find them out as i need them, forgetting them again soon afterward.

i wish intellisense had a search textbox (and would also bring up partial matches, and would search other namespaces too)



'Dan F' on Wed, 14 Mar 2007 03:14:19 GMT, sez:

Definately number 3. I'm with goldfish, google + intellisense + alt F1 (my favourite keystroke in query analyzer) has turned my brain into a goldfish. I suffer from terminal CRAFT most days :)



'lb' on Wed, 14 Mar 2007 03:16:48 GMT, sez:

CRAFT -- love it! lol.



'Bob Grommes' on Wed, 14 Mar 2007 03:24:05 GMT, sez:

The first two ways you list are completely impractical; the third way is the only pragmatic course. I have always said that the ability to quickly and accurately identify and solve problems and learn new skills as needed is far more important than encyclopedic head knowledge. The ability to memorize facts has little to do with problem solving skills and common sense.

"The core skill of the software developer is correctly identifying and solving problems. Everything else is just execution."

More here:

http://bobondevelopment.com/2006/12/27/is-development-a-science-or-an-art/



'Haacked' on Wed, 14 Mar 2007 04:11:36 GMT, sez:

Google is my meta-brain!

I'm a mixture of #1 and #3. The problem with only doing #3 is that you start doing #2 because you don't know better.

I knew a developer who started writing his own form validation framework along with several other crazy implementations. All provided by the framework.

Now if he happened to be Peter Blum, no big deal. But his code was not up to par with what the framework already offered.

I like to do a little googling before I run into a problem. "Hmmm... I need to validate user input. I wonder what ASP.NET offers."

Likewise, when I do Google, I think it's a good idea to read up all you can and not grab just the answer and move on. Sometimes you miss something that would save you time.



'Adi' on Wed, 14 Mar 2007 06:33:36 GMT, sez:

With me it's also #1 and #3.
I read blogs and articles so I would have general knowledge of things I don't need at the moment.
And of course if I need something I search for it using Google or newsgroups.
A good develope never writes what he can steal.



'Zooba' on Wed, 14 Mar 2007 08:45:34 GMT, sez:

I'm a mix of all three. Does that mean I know anything cubed?

I seem to be the same on #1 and #3 as everyone else, a reasonable range of blogs and occasional voyages through obscure documentation and Google or MSDN for something I need to know.

On 'never writing what I can steal', I tend not to feel comfortable using something when I don't know how it works. I find the best way to understand something is to write it. Hence (over years) I've written 3D engines (from scratch), string management libraries, GUI frameworks and plenty of other stuff. I do a lot of programming in assembly for this reason - I have a deeper understanding of what's going on when I use a higher level language.

IMHO, a programmer who doesn't know how the tools he's using work is just building with Lego (original Lego, not Techno or any of the fancy stuff).



'Eric D. Burdo' on Wed, 14 Mar 2007 10:49:13 GMT, sez:

#3 for me.

I do like to read, but I find that only gives me the knowledge ABOUT something, not the knowledge of HOW TO DO something.



'Dave O'Hara' on Wed, 14 Mar 2007 12:32:21 GMT, sez:

While I would have to agree with most that #3 seems the "best" answer here, this doesn't seem to distinguish a Google coder* from a coder who uses Google.

* Google coder - a person who uses http://code.google.com/ to mix and match snippets of code and mashes the F5 key until they manage to get it to run.



'Eddie Paz' on Wed, 14 Mar 2007 14:42:37 GMT, sez:

I definitely have to go with #1 & #3. Although I don't do #1 as you listed it. It may just take over your life with something as huge as .NET.

I keep an eye on what's hot out there, read any and everything I can get on the subject (just in case); and when it's time to use it, at least I have a clue where to go when applying #3.



'Aaron' on Fri, 16 Mar 2007 13:36:05 GMT, sez:

sometimes its fun to use #2 (for pay) but to use #3 successfully and accurately, i needed #1



'http://' on Fri, 18 May 2007 02:56:31 GMT, sez:

Looking closely into #1:

This is why I'm really grateful for the Microsoft Certification Exams. What do you read? Whatever it takes to pass the exam.

It might not be the most useful thing to be reading about right now, but if I fretted about that I'd spend the rest of my life reading the opening paragraph of every article trying to find the most useful one.



'Walter Thomas Jr' on Mon, 28 May 2007 17:58:11 GMT, sez:

I need help real bad with my programming.
How do I write my own program, how to write my program? Can you tell me so that I may make some money?

PS: I have a `digital program` that I want to make recruiting drafting friendly!



'Bert' on Wed, 22 Aug 2007 16:13:12 GMT, sez:

What I want to know is if a "combination of #1 and #3" is the way things work, why the heck do companies INTERVIEW like it's straight #1. And anyone who says that can't be tested in an interview is short-sighted and not innovative enough- in my ever-so-humble opinion.



'oil portraits' on Thu, 29 Nov 2007 02:27:37 GMT, sez:

I think the scientific way of dealing with things that you really want to know is to follow all three. If we ignore any one of these three ways I’m not sure we will still know EVERYTHING.




name


website (optional)


enter the word:
 

comment (HTML not allowed)


All viewpoints welcome. But the right to delete any post for any reason is reserved. Don't make me do it. Comments may be republished, emailed to your loved ones or printed and used as toilet paper. Who reads this legal bit anyhow?

TimeSnapper is a life analysis system that stores and plays-back your computer use. It makes timesheet recording a breeze, helps you recover lost work and shows you how to sharpen your act.

TimeSnapper won last year's Developer Competition at Larkware.com, and is used by over 10,000 people.

Articles

A face-melting DSL that allows programming ON the iPhone (and iPad) A face-melting DSL that allows programming ON the iPhone (and iPad)
The secretGeek Disaster Recovery plan The secretGeek Disaster Recovery plan
Save KNVTn! Before it's too late Save KNVTn! Before it's too late
The Ultimate Agent of WERF Destruction The Ultimate Agent of WERF Destruction
The new prisoner's dilemma The new prisoner's dilemma
Original Premise for a road movie Original Premise for a road movie
What's a better game than Devshop? What's a better game than Devshop?
DevShop: The Cool Game that Makes Development Look Fun DevShop: The Cool Game that Makes Development Look Fun
Should be purple Should be purple
Kitchen Agile Kitchen Agile
Perhaps Perhaps "Go" is the new Visual Basic
zen-coding: turn those CSS selectors upside down zen-coding: turn those CSS selectors upside down
Debugging: It's all about finding Albuquerque. Debugging: It's all about finding Albuquerque.
The Real-Time online JQuery Editor The Real-Time online JQuery Editor
HTML5, a 3 minute guide HTML5, a 3 minute guide
Developer Codpieces Developer Codpieces
Agile for one: The Personal Story 'Wall' In Action Agile for one: The Personal Story 'Wall' In Action
Never work with thick people. Never work with thick people.
Cosmo: project status panel Cosmo: project status panel
Windows Search in Japan Windows Search in Japan
Project Management Zen Project Management Zen
Continuous Integration, Plugins and Going Too Far Continuous Integration, Plugins and Going Too Far
The Rules of Stand Up The Rules of Stand Up
Sydney International Airport: Stupid, Criminal, or Criminally Stupid? Sydney International Airport: Stupid, Criminal, or Criminally Stupid?
God No! ...The ReBuilder God No! ...The ReBuilder
Matt, The Office Mortar Matt, The Office Mortar
'Outlook style' rules for Subversion 'Outlook style' rules for Subversion
Really deep linking: Url + regex Really deep linking: Url + regex
hExcel -- A Hexagonal Spreadsheet hExcel -- A Hexagonal Spreadsheet
Is the remote control a thing of the past? Is the remote control a thing of the past?
The Utterly Thorough Guide To Awesome Application Compatibility on Windows 7. The Utterly Thorough Guide To Awesome Application Compatibility on Windows 7.
Astounding Hyperlinked Noticeboard Astounding Hyperlinked Noticeboard
Three Questions About Each Bug You Find Three Questions About Each Bug You Find
Recursing over the Pareto Principle... Recursing over the Pareto Principle...
Sometimes, The Better You Program, The Worse You Communicate. Sometimes, The Better You Program, The Worse You Communicate.

Archives .: secretGeek :: Complete Archives
TimeSnapper -- Automated Screenshot Journal TimeSnapper.com    
Version 3.3: true productivity boost

Next Action NextAction
Managing the top of your mind

World's Simplest Code Generator (html edition) World's Simplest Code Generator

25 steps for building a Micro-ISV 25 steps for building a Micro-ISV
3 minute guides -- babysteps in new technologies: powershell, JSON, watir, F# 3 Minute Guide Series
Universal Troubleshooting checklist Universal Troubleshooting Checklist
Top 10 SecretGeek articles Top 10 SecretGeek articles
ShinyPower (help with Powershell) ShinyPower
Now at CodePlex

Realtime CSS Editor, in a browser RealTime Online CSS Editor
Gradient Maker -- a tool for making background images that blend from one colour to another. Forget photoshop, this is the bomb. Gradient Maker


[powered by Google] 


How to be depressed How to be depressed
You are not inadequate.



Recommended Reading

The Best Software Writing I
The Business Of Software (Eric Sink)

Recommended blogs

Jeff Atwood
Reginald Braithwaite
Joseph Cooney
Phil Haack
Scott Hanselman
Julia Lerman
Rhys Parry
Joel Pobar
OJ Reeves
Eric Sink
Joel Spolsky
Des Traynor

Aggregated Links

programming.reddit.com
dzone
dot net kicks

Human Link Machines

interesting finds
a continuous learner's weblog
arjan's world
n links today
new and notable
morning coffee
learning .net
weekly link post
(my del.icio.us account)

LinkedIn profile
 
home .: about .: sign up .: sitemap .: secretGeek RSS .: © Leon Bambrick 2006 .: privacy

home .: about .: sign up .: sitemap .: RSS .: © Leon Bambrick 2006 .: privacy