I got this email today from Mark…..
Hello Joe,
First may I say thank you very much for all the information that have published on asp.net. I have learnt allot from it. I do follow you on twitter although I am interested to know how you started out, how you gained experience to the point that you are a Senior Program Manager for Microsoft. If you are able to spend any of your time replying to this message I would be very grateful.
Many thanks
Mark
I get an email like this every few weeks so I thought I’d blog the reply with some tips.
Mark,
I began as an accidental programmer when a business my father had an interest in purchased a CNC machine and had problems programming it. Through my career I worked on Main-Frames, Mini-Computers, and Micros/PCs doing everything from device drivers to reports to UI work.
I also did the “management thing, and the start-up thing, before joining Microsoft to be a geek, I was the President and CEO of a publically traded company in New York (right on Broadway !)
When thinking about your question I jotted down some “tips”.
Hope they help.
1.) Spend your beer money on books.
For much of my your career I made myself read at least one technical book per week (if I finished early I would start another or read a business or personal development book.) I’m an old dude, so I like paper, but there are lots of free book son PDF (like Microsoft’s Patterns and Practices publications) – I’m also a huge Amazon Kindle fan and am about to trade in my Kindle 1 for the new Kindle DX. Not only does it hold 3500 books but it has a native PDF reader and you can get magazines and blogs!
I’m always amazed at how many people I meet that do NOT read proactively. The majority of my technical knowledge (and all my knowledge for that matter) is the product of proactive reading.
When you read, spread your wings. If you’re a web developer, don’t just read about ASP.NET or VB. Read about database design, read a book on how TCP/IP works, read about load balancing, you can fill in a lot of blanks by reading outside your box.
2.) Be an insomniac or addicted to caffeine.
Everything takes time and there isn’t enough of it. I force myself to read every night, even if I can only keep my eyes open for 15 minutes. Like most of the things we want to accomplish in life, “getting it done” include creating a behavior that becomes an ingrained part of our schedule.
I normally have 3 books going, One technical book (right now it’s Julie Lerman’s Programming Entity Framework ), one non-technical educational or personal development book, (I just finished The Fall of Carthage), and one book just for fun, right now I’m reading Orson Scott Card’s “First Meetings”)
Since I’ve had children, I’ve needed to commit to getting up a bit earlier (before the girls) and eliminating a few of my less productive activities. I just remind myself that continuing to learn is investing in my professional future and therefore my families security.
3.) Always have two jobs.
I’ve always had a second “job”. Often my 2nd job does not pay much (or at all). I also try to make my second job focus on something that I don’t do in my REAL job. Sometimes they are little things, like a few months ago I wrote a Silverlight article for PHP Architect Magazine, last year I served as technical editor for “ASP.NET AJAX in Action”. Making commitments outside your comfort zone is great for personal and professional growth,
4.) Fight with your boss.
You need to be artful with this one. It doesn’t mean hate your boss (or make him hate you) but it means push back on decisions, look forward from a business and technical perspective and question the standard way of doing things. When we started the team that is now the STO Developer Community Team at Microsoft and decided to include multi-media content in our initiatives we did this and invented the How-Do-I video format. (Casual, NO POWERPOINTS, topically atomic, etc.). This format had never really been done at Microsoft before. It’s now the most cost effective type of developer interaction we have, has (I think) the highest satisfaction rating, and not only is every part of Microsoft doing How-Do-I videos, but tons of our partners are doing them too.
5.) Have a ONE-A-DAY policy.
This one is simple in principle but much harder in practice.
It goes like this……
You never, ever, ever put your head on the pillow at night until you have done 5 things. You do this EVERY day and you can never use anything on the list twice.
- INTENTIONALLY Learn 1 thing.
- Do 1 thing to advance your career.
- Do 1 thing to improve your personal life.
- Do 1 thing to help someone else be great.
- Tell someone that you love them / care about them, etc. (someone you didn’t tell yesterday.)
These things can be as simple as making a phone call or an email, but never let a day go by that you fail to perform all five.
6.) Quit your job.
Yep, you read that right. Now, don’t be stupid. Stay employed, but if your job gets intellectually stale, or technically irrelevant of antiquated, and you can’t work with your manager to improve the situation, go find a better gig !
You should try to NEVER leave a job that you have been at less than a year, but a couple 1 – 2 year gigs won’t kill your resume, can really boost your salary and contribute to your professional diversity. (I’ve been at Microsoft and only quit once. (ScottGu ordered me to stay
)
7.) Work in Developer Support.
I served as the Support Director for a compiler company called JPI (Jensen Partners International). Niels Jensen was one of the three original founders of Borland and later founded JPI and built C, C++, Pascal, Modula-2, ADA, etc. compilers for DOS, Windows, and OS/2. I worked at JPI until the company was acquired by Clarion, I primarily supported ISVs helping them get and keep their products working with TopSpeed compilers but also worked with “high profile” partners and customers.
When it comes to DIVERSE learning, support (solving other peoples problems) is like drinking from an op[en fire hydrant.
If you don’t want to get a job in developer support, answer questions in support forums like the ones at www.asp.net/forums/
Not only will it “pump up you knowledge”, but it will really increase your presence in the developer community and bolster your resume value.
8.) Start a company.
As al alternative to #3, start your own small company.
Even if it’s as simple as a company that sets up web sites for your local community organizations, it gives you a chance to make a couple of bucks and learn how a company runs, plus, you’ll have to spread your “technical wings” as your customers make requests.
Though I now work at a “big” company, I’ve done many startups and also worked with VC organizations helping other start-ups.
Someday, I’ll get involved in another start up.
9.) Attend “Geek Stuff”.
If you can swing it, go to PDC, Tech Ed, MIX. Or, smaller event like Code Camp, The Heartland Developer Conference, etc.
If you can’t afford those, go to local user groups, 1 day or 1/2 day events at you local Microsoft Office (or whatever other company does them.)
Attend free webcasts (Microsoft does thousands of them !) Even watch pre-recorded ones.
They are free, easier than reading, and not only educational, but often catalyst for thought !
10.) Teach / Speak / Write
Commit to put yourself and your work in front of other people.
This is a bit painful in the beginning
but you’ll quickly get motivated to REALLY know your stuff and it’s a great way to get recognized as a developer expert in your chosen fields,
Who knows, you may even end up in your perfect job, making good money doing exactly what you want to be doing !!!





















Excellent post! It’s all good, but I particularly like #5. As an "old guy" (51 next month) I wish I had started following that advice 35 years ago.
Thanks Guys – Carlie, when I was a kid my dad told me about his policy to "Do 1 thing to advance your career every day."
I sonn added the other 4 and it’s served me very well.
Hope it works for you !!
Thanks for the great advices Joe!
wow.great post!!
infact i dare say,i only follow 1 or 2 points from here and I can experience myself better than lot my mates/seniors in last few years of my professional life. thanks again for filling in with rest of points
i will try and practice few of them
RE: I’m asked, how did you learn what you know ?
Pingback from I’m asked, how did you learn what you know ? : Misfit Geek
Technical production support will teach you much more and much faster than other ways of learing technology.
You get real world problems without the academic clutter and less productive framework building arguments found when dealing with teams of inexperienced developers.
thanks for the advice joe!!!
Thanks. I’m doing most of what you stated.
Excellent post, very insightful and insperational. This seems like the perfect guide for anyone who wants to achieve greatness as a developer.
One of the best, most down-to-earth pieces I’ve read in a while
Thank you very much Joe for sharing your experience and tips. Fortunately, I have already done/ am doing #3, #7, #9 and sometimes do #10.
Willing to follow #5 seriously !
He is simply the best guy
Very helpful. Hope he gives us a treat on his birthday this month. Take a note every one its on 24th July.
))
Thanks for this advice. Very helpful I will accept all in my life.
1.INTENTIONALLY Learn 1 thing.
2.Do 1 thing to advance your career.
3.Do 1 thing to improve your personal life.
4.Do 1 thing to help someone else be great.
5.Tell someone that you love them / care about them, etc. (someone you didn’t tell yesterday.)
Catchy Line "Making commitments outside your comfort zone is great for personal and professional growth".
Good one Joe.
Thanks for all the great comments guys !!!
Good article, I think #1 and #2 are linked if you learn 1 thing it will or should advance your career.
Hi Joe,
Good advice, as always – but, what else could I expect from a guy who shares the same birthday as me.
When people ask me if I’m ready, the answer is usually ‘I was born ready – 24/7′
(P.S. I’m an older geek too – 47 this year and still got my head in books)
Thanks Joe for a great post. I just recently followed #6 and I am so happy that I did. I had been at my last company for 9+ years and needed change. Now I am contracting and I am so excitied again about what I do. I had tried to already follow several of the points that you had here, but I was down. I plan to work some more in.
Hi Joe,
Wow you are a machine! how do you manage to read a book a week, work 2 jobs, raise children, and still be able to fit in those 5 One-a-day things. I guess you would have to take a lot of caffeine
Pretty impressive. I do a lot of what you said but span it over 1 month instead of daily. I do envy you for how hard you work. Loved this article
gives me something I can work towards.
I always wondered what Michael Jordan’s philosophy would look like against our profession. I think I’ve bounced from one number to another by sheer accident over the years. It’s great to see them in one place so clearly. You should write a medium sized book to this effect. You can use the title,"How to be a better developer/coder in ten not so easy steps", royalty free.
Bruce Wayne says, "I see now what I have to become to stop [or in our case out-perform] men like him."
Great post.
Great tips dear Joe,specially the fifth one,very very helpful and inspiring.
I think it’s good to mention a phrase from a movie since it’s somehow related, it’s said that " To do something ,anything , is hard ,it’s always easier to blame it on the money or the life or the government…"
Great tips Joe this is the way I have worked for the last fifty years. I am still working this way at 67.
John
Nice post Joe! Balancing technical career and personal stuff is tough. Attitude is one way of summarizing your statement. It’s nice to be reminded, and your post did that.
Thanks , for those healthy nuggets. Real mind food.
Thanx!!!
HI Joe,
Thanks for sharing great tips to us. I will try my best to follow that in my life. I have a dream that once i will work with i think this may come true this way.
Thank You,
Jalpesh Vadgama
Thank you Joe… These are the perfect advices that I want to hear/read to improve my career.
Thank you Joe, it’s a good article
Joe,
Excellent advice, and very much the life path I have followed.
To the people who asked "how can you do it?", I believe there is only one answer: PASSION.
Over the past 25 years [since the founding of my consulting firm], I have often been asked what I would do if I won a million dollars. The answer is always the same…expand my business.
I am curious as to where your business was located, since I am in Manhattan (West Side)..there is a distinct possibility we have crossed paths at some point…..
RE: I’m asked, how did you learn what you know ?
Web Not blocking the UI in tight JavaScript loops 10 Impressive JavaScript Animation Frameworks Playing
You hit the point Joe! I am really experience some of what you said. Its really cool stuff and I have a great faith in those ideas.
Thanks
Really a great advices
Thanx Joe
BMW
Nice entry. I personally commit some of this. I must try more..
Thanks for the inspiration…
Hi Joe,
Good advice.
Thank you
How do you find time to read one book a week? I try to read, but between work and family its hard to find the time.
Thanks Joe, especially the 5th point
Great post !!! really help me to build my schedule
For next one week, i’ll read this once per day! Points not to forget!
And everyone looks at me strangely because I
worked third shift as an IBM operator.
I was happy because it got me
access to their sales and technical reading lists!
Great post. I have been frustrated insomuch as my new knowledge has been sporadic and headline stuff that I have found on my solution-surf on the net.
Will immediately get back to reading some solid paper!
I have used #6 effectively the past 6 years and almost doubled my salary!!!
Great tips. Thanks!
RE: I’m asked, how did you learn what you know ?
Pingback from Inspirational post from Joe