Thursday, May 13, 2010

Tools and Resources for the Programmer in Training

Programming is not like it was 10 years ago. Today, having a  programming job is EXTREMELY lucrative and is a highly in-demand career. Besides getting formal training, either by college courses or Microsoft’s own MSDN certifications, you need the right tools to learn, apply, and do the job. Luckily I have compiled a short list of things to check out on your own. They are divided in three sections:
Resources, Integrated Development Environments, and Source Control.


Everyone needs to start learning somewhere. Thankfully, Microsoftimage has created an excellent beginner’s site, the MSDN Beginner Developer Learning Center. There are downloads to Microsoft’s free developer tools, online lessons, training videos, how-to videos, and a whole lot more.

Dev Shed is another great resource. Dev Shed caters towards open source tools and links to other open source programmingimage resources. I have not spent enough time on this site to fully see what is offered but just take a look on the nav bar on the left side of the page. You can see there is quite a bit of content to get your feet wet with a ton of different programming languages and techniques.

If you need books, look no further than Google Books! Google hasimage been digitizing a huge amount of books available online – and almost  all of them are available for FREE! Forget about your local library, use Google Books. Searching for “Introduction to Java” books returned 4,368 results! If you are questioning if Google Books doesn’t have any recent content, just search for “Visual Studio 2010” (FYI: VS2010 was JUST released a few weeks ago).


Integrated Development Environments (IDE):

The IDE is the heart and soul of your programming experience and is where you, as a programmer, will spend most all of your time developing and testing your programs. The IDE is your visual source code editor, compiler or interpreter, build tools, and debugger all in one environment – hence is why it is called an Integrated Development Environment!

If you are looking to get started with some entry level programmingimage using languages such as Visual Basic, VB.NET, C++, C#, plus a bunch of other languages and project types then Microsoft Visual Studio 2010 Express is it. There are other editions of Visual Studio such as Professional edition where you can link it in with Team Foundation Server and Sharepoint Server, but unless you really need those features I would just stick with the Express edition.

Java is the most popular programming language in the world and Java programmers are the most in-demand in the programming job market. A fantastic IDE for Java is NetBeans and works on all three types of operating systems, Windows, Mac OSX, and Linux. New releases of NetBeans come out quite often and provide more features than the last edition. The current version of NetBeans is 6.8 and there is a download link to the latest 6.9 beta.


Source Control, Storage, and Sharing:

So now that you have an IDE and references to start programming, what are you going to do about managing your source code? Managing source code may be a bit too advanced for the beginner, but if you start to develop an advanced program you need to manage certain aspects of the app lifecycle. You might have a team of programmers and you don’t want them to work on the same parts of the program. Maybe you need versioning control or maybe you just want to share your app with the world!

One of the more popular places to share and store your programs isimage SourceForge. SourceForge has been around for a very long time and is funded by the colleges, universities, and several large IT businesses. You can manage your projects, team members, and control your code. Sign-up and hosting is free at SourceForge.

CodePlex is Microsoft’s answer to SourceForge. It works in aimage different manner, but does the same job. You can do the same things in CodePlex that you can in SourceForge, but CodePlex is designed to be more social. I have one of my own projects hosted on Codeplex here and am very happy with it.

Last but not least is Subversion (SVN). SVN is used strictly for versioning and source control. It is designed to be set up in a central  imageplace, such as your desktop or a server, and you ‘check-in’ or ‘check-out’ certain parts of your code. It is the most widely used applications used for source control and is very easy to set up. Also, because SVN is open source and is not locked down to a specific IDE you can use SVN in most every development environment for free! One of the best SVN clients is TortoiseSVN, which can be set up on Windows, Mac OSX, or Linux machines.

Well that about does it for this post ladies and gentlemen. If you have any other suggestions, resources, or tools that you like to use feel free to leave a post. Enjoy!