Learning & Frustration.

  • Thread starter Thread starter Brent
  • Start date Start date
B

Brent

Ok I'm sure there are a lot of people in my position. I am a professional
developer and have a situation of information overload here. Microsoft is
pushing out stuff so fast these days that's its IMPOSSIBLE to keep up with
even 1/2 of the technology. I get really frustrated and start reading a
bunch of stuff and find out that I only know a little bit of each technology
and I'm not really that proficient at any of them.

Let me start out with a little bit about me. I do have a college background
in Computer Science. I graduated about 7 years ago. I went to work for a
relatively small government organization (but they have huge programs). The
buisness rules are quite complex. At first I mostly used VB6,SQL Server 7, &
Crystal Reports. Right now we are trying to upgrade our existing system to
..Net & just upgraded our DB server to Sql Server 2005. It's a huge
understaking because of the size of some of our applications. I get some
exposure to .Net, especially as more and more code gets upgrade (interop
sucks).

I have a through understanding of OO concepts even when using vb6 for many
years. My training in School was mostly C/C++/Java on a solaris enviroment.
I know inheritance, operator overloading, polymorphism, interfaces, abstract
classes, ect..... There are so many new cool technologies in .Net that I
find myself just trying to learn them all but as you all are aware of it's a
huge undertaking. I listen to .Net Rocks & Hanselman minutes a lot. Like for
example most recently I got interested in asp.net so I started reading
asp.net unleashed (very good book by the way). Then I was like well I really
need to know this SQL Server 2005 stuff. So I started on reading on stuff on
sql server like CLR Integration, Reporting Services, Integration Services,
ect. Then I thought that the WCF stuff in .Net Framework is really cool. I
think one of my personal interest is in WSE Security. So I started reading a
little bit about that too. Then I got interested in some of the Software
Engineering concepts like TTD/Extreme programming using NUnit, Mock Objects.
Then there is LINQ/ORCAS which seems really cool and will be very important
once it comes out.

I even got frustrated when I was in asp.net. Because in reading through the
booking im thinking of what I need to do to produce an attractive site and
while reading his book he is going over CSS (which I know is VERY
Important), JavaScript (which I really don't know), and Graphics (if you
don't want your site to look like a teenagers site).

On top of this there are so many bad books out there. I am not a beginning
programmer and I don't want some book to go over basic concepts that I could
easily learn from either MSDN or google. I want more advanced concepts.

I am sitting her tonight and thinking maybe I ought to just go back to the
basics. Go learn the internals of the CLR. Say read one of Jeffrey Richter's
books. Heck I don't know.

Do you guys know what I mean about information overload now. How in the
world do you guys manage this. Any help would be appreciated.

thanks,
Brent
 
[...] There are so many new cool technologies in .Net that I find myself
just trying to learn them all but as you all are aware of it's a huge
undertaking. I listen to .Net Rocks & Hanselman minutes a lot. Like for
example most recently I got interested in asp.net so I started reading
asp.net unleashed (very good book by the way). Then I was like well I
really need to know this SQL Server 2005 stuff. So I started on reading
on stuff on sql server like CLR Integration, Reporting Services,
Integration Services, ect. Then I thought that the WCF stuff in .Net
Framework is really cool. I think one of my personal interest is in WSE
Security. So I started reading a little bit about that too. Then I got
interested in some of the Software Engineering concepts like TTD/Extreme
programming using NUnit, Mock Objects. Then there is LINQ/ORCAS which
seems really cool and will be very important once it comes out. [...]

Do you guys know what I mean about information overload now. How in the
world do you guys manage this. Any help would be appreciated.

Seems to me, you've got two basic options: rid yourself of all outside
distractions, including inter-personal relationships, and just spend all
of your time reading and trying new technologies; or, learn to focus a
little better on what's really important.

All those technologies you mentioned (and others you didn't), sure they
might be interesting but do you really need them all? No, not even
close. Don't waste too much time learning in-depth about technologies
you're never going to use.

There's lots about .NET I don't know. Granted, some of that is that I'm
relatively new to it. But I could write .NET code for a decade and there
would still be lots about .NET I don't know. What's important is that I
learn the parts that I *do* use as well as I can. I've got too many
things to do that have nothing to do with programming to waste a lot of
time trying to be an expert in everything. You probably do too. So stop
trying. :)

Pete
 
Thanks for the reply Peter. That is whats hard deciding what is the most
important things to learn. You might say well learn whats important where
you work. The problem is I have seen so much stuff happen where I where any
of this stuff could be important. Recently we were trying to tighten up
security which got me to thinking of WCF and WSE-Security specifications. I
have found out I absolutetly HATE code coverage type of testing..which got
me thinking NUnit (if your nunit test are good it could totally eliminate
code coverage). We do a little asp.net programming too. Maybe the best
strategy is to really understand the CLR and what is available and go from
there. There are so many things in the CLR that I just know the concepts and
I really don't use that much. For example.......Generics. I understand the
concept just don't use it that much. WHat do you think?

thanks,
Brent

Peter Duniho said:
[...] There are so many new cool technologies in .Net that I find myself
just trying to learn them all but as you all are aware of it's a huge
undertaking. I listen to .Net Rocks & Hanselman minutes a lot. Like for
example most recently I got interested in asp.net so I started reading
asp.net unleashed (very good book by the way). Then I was like well I
really need to know this SQL Server 2005 stuff. So I started on reading
on stuff on sql server like CLR Integration, Reporting Services,
Integration Services, ect. Then I thought that the WCF stuff in .Net
Framework is really cool. I think one of my personal interest is in WSE
Security. So I started reading a little bit about that too. Then I got
interested in some of the Software Engineering concepts like TTD/Extreme
programming using NUnit, Mock Objects. Then there is LINQ/ORCAS which
seems really cool and will be very important once it comes out. [...]

Do you guys know what I mean about information overload now. How in the
world do you guys manage this. Any help would be appreciated.

Seems to me, you've got two basic options: rid yourself of all outside
distractions, including inter-personal relationships, and just spend all
of your time reading and trying new technologies; or, learn to focus a
little better on what's really important.

All those technologies you mentioned (and others you didn't), sure they
might be interesting but do you really need them all? No, not even
close. Don't waste too much time learning in-depth about technologies
you're never going to use.

There's lots about .NET I don't know. Granted, some of that is that I'm
relatively new to it. But I could write .NET code for a decade and there
would still be lots about .NET I don't know. What's important is that I
learn the parts that I *do* use as well as I can. I've got too many
things to do that have nothing to do with programming to waste a lot of
time trying to be an expert in everything. You probably do too. So stop
trying. :)

Pete
 
[...] For example.......Generics. I understand the concept just don't
use it that much. WHat do you think?

Well, on the topic of Generics in particular, I think they're the greatest
thing since sliced bread. :) I always avoided C++ templates, because I
didn't like the code bloat they caused. But Generics have the benefits of
templates without the drawbacks. I love using them.

On the other things more generally...it's good to be aware of the
technologies that are available. But if you get to the point where you
think one might be useful in your particular application, then that's the
time to drill in. You still need to keep focused though. Don't try, for
example, to include WCF in your code the same week you're trying to figure
out NUnit. Break your tasks up and stick to one thing at a time. Try to
learn enough about the technology at hand so that you have a general feel
for it, but don't waste time trying to be an expert before you use it.
Once you get the lay of the land, so to speak, dive in and start applying
it. Learn as you go, and try to make sure that what you're learning
applies to what you're doing.

As far as "what's important" goes, IMHO what's important is what will
actually help you get what you want done sooner, or better. Preferably
both. For example, if you've already got a robust, secure communications
layer built, don't waste time converting to WCF (ignoring for the moment
that few people really code up as robust and secure a communications layer
as they think they have :) ). If you learn about a new technology but you
don't see some immediate application in your own work, don't worry about
it too much. What "could be important" is not nearly as useful a thing to
think about as what *is* important.

All of the above is my own personal philosophy. I suppose opinions may
vary. But I've found that techologies come and go, and there's a huge
range of things that could occupy my attention if I let it. There are
lots of technologies that I've never had personal need to use, and I'm
glad I didn't waste time learning them. I guess some people aren't
comfortable unless they feel that they know everything, but I just don't
think that's a practical goal. I'd much rather be making forward progress
on whatever projects I have going, than spend a lot of time on learninging
in an abstract environment.

To do that, I find that I need to spend the bulk of my learning time on
things that I have an immediate application for.

Pete
 
I think all of technology falls into Moore's Law in a way:

http://www.intel.com/technology/mooreslaw/index.htm

It is tough to keep up with everything. Fortunately, there are also more
examples, books, and other supporting materials these days to help. There
are also forums like these where we can ask even the stupidest of questions
and still be respected :o)

I try not to keep it all in my head (like that would be possible anyway) and
just learn what I need when I need it. It's also a good idea to keep up
with "the possibilities" so when you need something you'll know where to
look or who to ask even if you don't know all the syntax.

Tom
 
Tom Serface said:
I think all of technology falls into Moore's Law in a way:

http://www.intel.com/technology/mooreslaw/index.htm

It is tough to keep up with everything. Fortunately, there are also more
examples, books, and other supporting materials these days to help. There
are also forums like these where we can ask even the stupidest of
questions and still be respected :o)

I try not to keep it all in my head (like that would be possible anyway)
and just learn what I need when I need it. It's also a good idea to keep
up with "the possibilities" so when you need something you'll know where
to look or who to ask even if you don't know all the syntax.

Tom

I can't agree more here.



I personally treat intelligence in two ways.



1) Those that can pull knowledge out of their head and use it when
needed within a moments notice.

2) Those that know what they know and know what they don't and can out
their fingers on the information they don't know quickly.



Both of these people are intelligent to me.



Because of the depth and breadth of today's programming space you cannot be
a know-it-all on the entire thing but there are several things you should
know right off the bat and then the others it is good to know of them, know
what they can do, and know what they cannot do. When it comes time to
implement them then you can take the time to look up HOW.
 
I'll chime in here to say that depending on the field, you'll need to know
enough to hold an intelligent discussion. If you need more than that, it's
time for a good book. I don't write production code anymore these days so
I'm beginning to forget the details and specifics. It's ok, right now my
responsibilities call for broad knowledge and I am overwhelmed with the pace
from Redmond. But I do what I can and then some. The rest of my time, I try
not to worry about work.

--
Regards,
Alvin Bruney
------------------------------------------------------
Shameless author plug
Excel Services for .NET is coming...
OWC Black book on Amazon and
www.lulu.com/owc
Professional VSTO 2005 - Wrox/Wiley
 
I agree with all of you!

In any case it's fun but frustrating!

I am designing my development in a way that everyone knows a bit so that
everyone supports each other.

Thanks also to the local .NET group (www.MaltaDev.NET) we are creating a
community to build more knowledge faster where everyone teaches each other!

I'd guess it would be good to look around your area's .NET group and if it
does not exist then create one.

Finally it is an issue: you prefer that things stay such so that 1 person
can know all .... or it's better to have many technologies and you
specialize on one???


evan
 
All are valid points. As somebody said "Change is the only constant" & we
need to expect changes in technology. No one can be an expert in everything.
Instead focus on a few you like. Unfortunately, plenty of books are written
with useless information just to fill in the pages. Try to find a good
consise book that you can easily follow.

Thanks for asking.
HTH
 
Just remember the age old saying...

"Jack of all trades, master of none."

It is always good to have options and new things to learn.
 
Just remember the age old saying...

"Jack of all trades, master of none."

It is always good to have options and new things to learn.

lol...

I agree with the latter, but the former is not generally used in a
complimentary way. :)
 
Peter Duniho said:
lol...

I agree with the latter, but the former is not generally used in a
complimentary way. :)

Not really trying to be complimentary, just trying to make a point. You can
spend a lot of time trying to be a master of everything and end up really
being GOOD at nothing.



I think it is better to be really good at some things and then be adaptable
enough to learn what is needed when you come to those odd corner cases.
 
Back
Top