In the future installments of Programming Boot Camp, I'll be getting into hands-on programming, including code samples you can try out yourself. But for these first few sessions, I'm laying the groundwork.
Today I want to talk about the importance of knowing your resources. When you're developing software, the last thing you want to do is get stuck on a problem and spend days trying to fix it, only to find out there was, for example, an existing class and method already available in the library you're using that takes care of the problem. Or, for example, there might be a post on the Internet where somebody ran into the exact same problem and found a solution.
Now this may sound trivial, but it's not. Know your resources. Know how to find answers quickly.
Keep books handy. Keep a list of bookmarks. Know your way around the online help. If you develop in Visual Studio, for example, know your way around the huge documentation. (For example: I don't use the integrated help in Visual Studio. Instead I launch the help separately. I know how to quickly get to the docs for a class. I click on the Index tab and type the name of the class followed by the word class. I know that what I'll get is an overview of the class, and I know that at the top is a link for "Members". But I also know that in the index itself there will be a list of members. I've memorized that, rather than try to memorize the entire documentation itself.)
Know how to search the web. Know how to optimize your google searches. Read the online help pages for Google to find out how to do this. Know which sites keep programming samples and how to search those sites.
If you're a web developer, get the PDF of the official JavaScript ("ECMAScript") specification and know where it is on your hard drive. Put it in a Notes directory under your main development directory. (Mine is called c:\dev. What's yours? You do have one, right?) And speaking of the official specification, you do know where to find it online so you can save a local copy, right? Mine is on my drive, so I don't have the link. But I'll find it RIGHT NOW. Watch: Go to google. Type in ecmascript specification. It's the very first one that comes up. Done. Download it to your drive.
Some programming tools have additional features that will help you find answers quickly. Visual Studio and Eclipse both pop up information in the code editor while you're typing. Use these. If you've turned them off, turn them back on and learn how to get the most out of them.
Become a power user. I once had a coworker (a programmer no less) ask me to walk him through the steps of installing the Java JDK. Since this is a boot camp, I'm going to be blunt: Forget it, soldier. If you're scared to install the JDK, then what business do you have programming for the JDK? Get over your fears. Roll up your sleeves and install the damn thing. Set the environment variables. You should know how to do that on both Windows and Linux. (Learn both, even if you don't normally use both -- you never know when you may have to one day use the other, and you don't want to sound like an idiot on your first day on the job. You know how to "source a file" in Linux, right? If not, time to learn. You know what happens if you set your environment variables by running a batch command in DOS versus setting them for the whole system [and how to set them for the whole system], right? If not, time to learn. Go to Google and find out how. The answer is there.)
Know your resources. Know how to find answers QUICKLY.
Remember: Who gets promoted and who becomes the team lead first? The one who runs to others for help at the first moment of getting stuck or the one who the others come to when they're stuck?
Wednesday, January 14, 2009
Subscribe to:
Post Comments (Atom)

More:
ReplyDeleteKnow the basic Unix/Linux commands. Know how to use the Windows command prompt and know the commands. (It's amazing how many people under the age of 30, including programmers, don't know how to use the Windows command prompt.) Understand the directory structure of both file systems. Learn what a Makefile is, even though you don't see them very often these days. Know how to use ANT. Learn XML, since many config files these days are in XML.
Don't whine to your coworkers if you find something you're unfamiliar with, because they will LOSE RESPECT for you. Instead, find the answer yourself. If you say to them, "I'm new to XML," they will laugh at you and say, "You're a *programmer* and you don't understand a simple data format like XML?"
These are fundamentals to being a programmer. There are many more. Learn them.
Even more:
ReplyDeleteKnow your tools inside and out. Learn how to use the debugger, and how to set breakpoints, step through code, all that. Does your debugger support on-the-fly changes? If so, learn how to use it.
Using Visual Studio? Know how to create solutions and projects. What is your startup project? What project dependencies have you set up?
Using Eclipse? Know how to manage workspaces and projects. Know what plugins you have, which ones are available to you, how to install them, how to configure them, and how to use them.
Are you creating debug or release binaries?
How do you create an installer?
These are more fundamentals that you'll want to take time to learn on your own.