As the old Faces song "Ooh La La" goes, I wish that I knew what I know now when I was younger. Back then, I simply loved to code and could have cared less about my "career" or about playing well with others. I could have saved myself a ton of trouble if I'd just followed a few simple practices:
1. Take names. I was really focused on computers early in my career and considered people to be minor annoyances who kept me from being one with my beloved machine. OK, I'm exaggerating a little. Despite meeting many industry luminaries and people that would have been worthwhile to befriend, I didn't keep any business cards. I didn't bother to remember their names and never checked in on them. I only went to user groups (there wasn't meetup.com when I started and it wasn't a big thing for a while after) when I needed a job.
[ Hotshot young techies, take heed of these 10 hard-earned lessons of a lifetime in IT. | Work smarter, not harder -- download the Developers' Survival Guide from InfoWorld for all the tips and trends programmers need to know. | Keep up with the latest developer news with InfoWorld's Developer World newsletter. ]
I realize the concept of needing a job seems a little quaint to some of you younger developers. But take it from me -- there've been times when merely saying you're a developer and knowing basic syntax and how to search (there was no Google when I started) was not enough to find immediate employment. There was a time when developers actually called headhunters versus being spammed by them endlessly. This will happen again, eventually.
More important, a lot of developers who were more skilled than I am have had far less interesting careers and less success because they never put themselves out there. They never met the right people at the right moments. Hey, timing and luck are great, but you also make your own opportunities. The first nine times you go to a large gathering and no one speaks to you and you're left with all the perks of being a wallflower are practice for the 10th time when you meet someone interesting.
Also, take note of your peers. If you're an early 20-something, chances are you have no real power or influence, and neither do your peers. In five to 10 years, that will all be different and the person who you ignored because they were boring and couldn't help you will be the person who could have won you an important opportunity.
2. Problem solving. Luckily, this came pretty naturally to me after a while, but early on it was a struggle. The trick is to never fall in love with any one theory of the problem. Pick three theories and go about proving them wrong rather than trying to prove yourself right. Also, gravitate toward alternative theories. If something says there is a port conflict and you can't find any port conflict, then maybe you're connecting to the wrong network device or an unassigned IP address, and the error is bogus.
Problem solving is essentially the same thing you learned in abstract in seventh or eighth grade or whenever you learned simple algebra. Remove all of the variables that you can, then solve for x.