Geeks With Blogs


The SharePoint Hillbilly Fewer Big Words... More Pretty Pictures...

So… lately I’ve been tasked with helping bring some non-developers over the hump and become full-fledged, all around, SharePoint developers. Well, only time will tell if I’m successful or a complete failure. Good thing about failures though, you know what NOT to do next time!

Anyway, I’ve been writing some sort of code since I was about 10 years old; so I sometimes take for granted the effort some people have to go through to learn a new technology. I guess if I had to say I was an “expert” in one thing it would be learning (and getting “stuff” done) in new technologies. Maybe that’s why I’ve embraced SharePoint and the SharePoint community. SharePoint is the first technology I haven’t been able to master or get everything done without help from other people. I KNOW I’ll never know it all and I learn something new every day.  It keeps it interesting, it keeps me motivated, and keeps me involved. So, what some people may consider a downside of SharePoint, I definitely consider a plus.

Crap.. I’m rambling. Where was I? Oh yeah… me trying to be helpful. Like I said, I am able to quickly and effectively pick up new languages, technology, etc. and put it to good use. Am I just brilliant? Well, my mom thinks so.. but maybe not. Maybe I’ve just been doing it for a long time…. 25 years in some form or fashion… wow I’m old… Anyway, what I lack in depth I make up for in breadth and being the “go-to” guy wherever I work when someone needs to “get stuff done”. 

Let’s see if I can take some of that experience and put it to practical use to help new people get up to speed faster, learn things more effectively, and become that go-to guy.

First off…  make sure you…

Know The Basics

I don’t have the time to teach new developers the basics, but you gotta know them. I’ve only been “taught” two languages.. Fortran 77 and C… everything else I’ve picked up from “doing”. I HAD to know the basics though, and all new developers need to understand the very basics of development.  97.23% of all languages will have the following:

  • Variables
  • Functions
  • Arrays
  • If statements
  • For loops / While loops

If you think about it, most development is “if this, do this… or while this, do this…”.  “This” may be some unique method to your language or something you develop, but the basics are the basics. YES there are MANY other development topics you need to understand, but you shouldn’t be scratching your head trying to figure out what a ”for loop” is… (Also learn about classes and hashtables as quickly as possible).

Once you have the basics down it makes it much easier to…

Learn By Doing

This may just apply to me and my warped brain.  I don’t learn a new technology by reading or hearing someone speak about it. I learn by doing. It does me no good to try and learn all of the intricacies of a new language or technology inside-and-out before getting my hands dirty. Just show me how to do one thing… let me get that working… then show me how to do the next thing.. let me get that working… Now, let’s see what I can figure out on my own. Okay.. now it starts to make sense. I see how the language works, I can step through the code, and before you know it.. I’m productive in a new technology.

Be careful here though…. make sure you…

Don’t Reinvent The Wheel

People have been writing code for what… 50+ years now? So, why are you trying to tackle ANYTHING without first Googling it with Bing to see what others have done first?

When I was first learning C# (I had come from a Java background) I had to call a web service.  Sure! No problem! I’d done this many times in Java. So, I proceeded to write an HTTP Handler, called the Web Service and it worked like a charm!!!  Probably about 2.3 seconds after I got it working completely someone says to me “Why didn’t you just add a Web Reference?” Really? You can do that?  oops… I just wasted a lot of time. Before undertaking the development of any sort of utility method in a new language, make sure it’s not already handled for you…

Okay… you are starting to write some code and are curious about the possibilities? Well… don’t just sit there…

Try It And See What Happens

This is actually one of my biggest pet peeves. “So… ‘x++’ works in C#, but does it also work in JavaScript?”   Really? Did you just ask me that? In the time it spent for you to type that email, press the send button, me receive the email, get around to reading it, and replying with “yes” you could have tested it 47 times and know the answer!

Just TRY it! See what happens! You aren’t doing brain surgery. You aren’t going to kill anyone, and you BETTER not be developing in production. So, you are not going to crash any production systems!! Seriously! Get off your butt and just try it yourself. The extra added benefit is that it doesn’t work, the absolute best way to learn is to…

Learn From Your Failures

I don’t know about you… but if I screw up and something doesn’t work, I learn A LOT more debugging my problem than if everything magically worked. It’s okay that you aren’t perfect! Not everyone can be me? Winking smile

In the same vein… don’t ask someone else to debug your problem until you have made a valiant attempt to do so yourself. There’s nothing quite like stepping through code line by line to see what it’s REALLY doing… and you’ll never feel more stupid sometimes than when you realize WHY it’s not working.. but you realize... you learn... and you remember. There is nothing wrong with failure as long as you learn from it.

As you start writing more and more and more code make sure that you ALWAYS…

Develop for Production

You will soon learn that the “prototype” you wrote last week to show as a “proof of concept” is going to go directly into production no matter how much you beg and plead and try to explain it’s not ready to go into production… it’s going to go straight there.. and it’s like herpes.. it doesn’t go away and there’s no fixing it once it’s in there.  So, why not write ALL your code like it will be put in production?

It MIGHT take a little longer, but in the long run it will be easier to maintain, get help on, and you won’t be embarrassed that it’s sitting on a production server for everyone to use and see.

So, now that you are getting comfortable and writing code for production it is important to to remember the…

KISS Principle… Learn It… Love It…

Keep It Simple Stupid

Seriously.. don’t try to show how smart you are by writing the most complicated code in history. Break your problem up into discrete steps and write each step. If it turns out you have some redundancy, you can always go back and tweak your code later. 

How bad is it when you write code that LOOKS cocky? I’ve seen it before… some of the most abstract and complicated classes when a class wasn’t even needed! Or the most elaborate unreadable code jammed into one really long line when it could have been written in three lines, performed just as well, and been SOOO much easier to maintain.

Keep it clear and simple.. baby steps people. This will help you learn the technology, debug problems, AND it will help others help you find your problems if they don’t have to decipher the Dead Sea Scrolls just to figure out what you are trying to do….

Really.. don’t be that guy… try to curb your ego and…

Keep an Open Mind

No matter how smart you are… how fast you type… or how much you get paid, don’t let your ego get in the way. There is probably a better way to do everything you’ve ever done. Don’t become so cocky that you can’t think someone knows more than you. There’s a lot of brilliant, helpful people out there willing to show you tricks if you just give them a chance.

A very super-awesome developer Claudio Lassala (@ClaudioLassala) once said “So what if you’ve been writing code for 10 years or more! Does your code look basically the same? Are you not growing as a developer?” Those 10 years become pretty meaningless if you just “know” that you are right and have not picked up new tips, tricks, methods, and patterns along the way.

Learn from others and find out what’s new in development land (you know you don’t have to specifically use pointers anymore??).

Along those same lines…

If it’s not working, first assume you are doing something wrong.

You have no idea how much it annoys people who are trying to help you when you first assume that the help they are trying to give you is wrong. Just MAYBE… you… the person learning is making some small mistake? Maybe you didn’t describe your problem correctly? Maybe you are using the wrong terminology?

“I did exactly what you said and it didn’t work.”  Oh really? Are you SURE about that?

“Your solution doesn’t work.”  Well… I’m pretty sure it works, I’ve used it 200 times… What are you doing differently?

First try some humility and appreciation.. it will go much further, especially when it turns out YOU are the one that is wrong.

When all else fails….

Try Professional Training

Some people just don’t have the mindset to go and figure stuff out. It’s a gift and not everyone has it. If everyone could do it I wouldn’t have a job and there wouldn’t be professional training available.  So, if you’ve tried everything else and no light bulbs are coming on, contact the experts who specialize in training. Be careful though, there is bad training out there. Want to know the names of some good places? Just shoot me a message and I’ll let you know. I’m boycotting endorsing Andrew Connell anymore until I get that free course dangit!!

So… that’s it.. that’s all I got right now. Maybe you thought all of this is common sense, maybe you think I’m smoking crack. If so, don’t just sit there, there’s a comments section for a reason.

Finally, what about you? What tips do you have to help those foolish souls aspiring to learn the dark arts??

Posted on Wednesday, March 2, 2011 9:32 PM | Back to top

Comments on this post: Stop Spinning Your Wheels… Sage Advice for Aspiring Developers

# re: Stop Spinning Your Wheels… Sage Advice for Aspiring Developers
Requesting Gravatar...
I want to start with the basics. What resource would you recommend? I can read some code and figure out the basics, can put simple things together but I want to jump in and learn more. Where is the best place to start?
Left by Kerri on Mar 02, 2011 10:00 PM

# re: Stop Spinning Your Wheels… Sage Advice for Aspiring Developers
Requesting Gravatar...
The only thing you left off the list is your replies that contain links...
Left by Matt Bramer on Mar 02, 2011 10:13 PM

# re: Stop Spinning Your Wheels… Sage Advice for Aspiring Developers
Requesting Gravatar...
Thank you so much for this post. It was really insightful.
Left by Rebecca on Mar 03, 2011 7:34 AM

# re: Stop Spinning Your Wheels… Sage Advice for Aspiring Developers
Requesting Gravatar...
Thanks for the kind words, man.
The only thing I'd change here is the title: I'd replace the word "aspiring" with the word "ALL" (uppercase intended). :)
Left by Claudio Lassala on Mar 03, 2011 1:53 PM

# re: Stop Spinning Your Wheels… Sage Advice for Aspiring Developers
Requesting Gravatar...
Excellent! You hit on all my pet peeves too. Learning by doing is really the only way.
Left by Ryan on Mar 03, 2011 2:37 PM

# re: Stop Spinning Your Wheels… Sage Advice for Aspiring Developers
Requesting Gravatar...
Nice article!
To the point and very well written. "Develop for Production" is so true.
Left by Mahesh Raja Velaga on Mar 04, 2011 7:23 AM

# re: Stop Spinning Your Wheels… Sage Advice for Aspiring Developers
Requesting Gravatar...
"Just TRY it! See what happens! You aren’t doing brain surgery. You aren’t going to kill anyone, and you BETTER not be developing in production."

Priceless. I wish everyone would take this to heart. Particularly if you aren't dealing with destructive operations just give it a whirl. Even if you are experimenting with a destructive operation just have a back up of the original safely tucked away. Push the big red button. See what happens.

I think people are many times are just scared that they're dumber than the "alpha geeks". The reality is the expert doesn't post to his blog the 25 things he tried that didn't work. He doesn't show the 10 hours he spent working out how to do something the first time in his 30 minute webcast.

That's the one thing I encourage people to do more than anything is just experiment. Try it for yourself.
Left by Nevada on Mar 04, 2011 8:27 AM

# re: Stop Spinning Your Wheels… Sage Advice for Aspiring Developers
Requesting Gravatar...
Ms. Kerri

Try Microsoft Ramp Up as a good place to start:
Left by Mark on Mar 04, 2011 1:03 PM

# re: Stop Spinning Your Wheels… Sage Advice for Aspiring Developers
Requesting Gravatar...
Mark, I tried your advice/solution and, as usual, it didn't work. You must be wrong! LMAO

As usual, you have attacked this problem with common sense, which makes your everyday advice some of the most valuable I have found on the 'net. I have to agree the most on the "just try it" advice. I'm sick of Developer X being on a work stoppage while waiting for me to write him 4 lines of simple SQL rather than figuring it out himself. Meanwhile, I "wasted" 2 days trying out a theory that I am still not sure is a good development idea. What I am sure of is that I learned a lot by just trying it out.

Nice post!
Left by DonKirkham on Mar 18, 2011 12:49 PM

Your comment:
 (will show your gravatar)

Copyright © Mark Rackley | Powered by: