Wednesday, March 27, 2013

5 Tips for Landing a Programming Job

1 Get a Recruiter

Technology recruiters are everywhere and they do not cost you a dime. Its a free service to you. Recruiters charge the employer for the service of finding the right talent to fit their organization. Many employers do not desire or do not have the time and energy it takes to find a candidate for the hiring process.  In fact many companies do not consider candidates outside of a recruiter. If a recruiter wants to charge you money do find you a job then it is a scam, run away.
Recruiters are also great information sources for the market place. They can tell you if your asking price is too high or why you were turned down for a job. They can also tell you what technologies are hot and are more likely to hire.

2 Participate in a User Group

Look for a user group in your area and join. You should find user groups that meet about the technologies you want to get hired for. User Groups are a great place to network with other developers and project managers. Its a good way to get your foot in the door and actually find employers that are looking. You can also put it on your resume that you regularly attend a user group for say Visual Studio or MS SharePoint.

3 Throw a Large Net

Throw a large net means you need to get your resume out as many places as you can. Give it to your friends that are already hired. Look for job postings on company websites. Post your resume on etc. I once landed a job that was only listed on Craigslist. The more companies that get your resume the more likely you are to get an interview. But do not apply for jobs that you clearly do not qualify for or that do not make a good fit for you.

4 Research the Employer

Research and be able to discuss the company that your are interviewing for.  When you get the interview spend a good amount of time researching the company that you want to work for. Learning the technology they use is important but make sure that you know something about what they are doing. Do some reading on Wiki and pick up some books about the industry. Study the company website and know what its business goals are.
Are they making an inventory system? Find some literature about inventory management. Employers are guaranteed to ask you non-programming industry specific questions and how well you answer these questions is guaranteed to set you apart from the other candidates.

5 Tell them You Want the Job

If you can communicate to the employer that you want the job then it will no doubt increase your chances of getting hired. You may be putting non-verbal signals that you are not interested in the position or you may not seem to be excited about the position. Often when you are nervous your body is sending signals that you do not intend to send. The best way to offset this is to be prepared to tell them how much you are excited about the job. "I am very excited about the position its exactly what I am looking for." or "I have really been wanting to get into custom web design." are good examples. This is especially important in small companies. Start-ups are more likely to seek out candidates based on their drive and interest over pure technical skills.

Tuesday, March 26, 2013

Dijit D3 Custom Dashboard Part 2

Adding Widgets

The technique for adding widget is straightforward enough. Simply add another div element with a drag and drop source as a widget gallery for adding widgets to your dashboard.

<div id="WidgetGallary">
    <div class="WidgetCaption">Widget Gallery</div>
    <div class="WidgetSource" data-dojo-type="dojo.dnd.Source" accept="Widget">
        <div id="Widget1" class="dojoDndItem Widget" dndtype="Widget">Widget 1</div>
        <div id="Widget2" class="dojoDndItem Widget" dndtype="Widget">Widget 2</div>
        <div id="Widget3" class="dojoDndItem Widget" dndtype="Widget">Widget 3</div>
        <div id="Widget4" class="dojoDndItem Widget" dndtype="Widget">Widget 4</div>

syntax highlighted by Code2HTML, v. 0.9.1

 Adding Widgets (JS Fiddle)

The assumption is that the widgets will be added to the widget gallery using server side code. However, client side code and AJAX is also a possibility. You will need to keep track of what widgets are in the gallery and what widgets have been added to a region in the dashboard.
For each widget you want to store RegionName, WidgetName, and WidgetId. The RegionName would be Gallery if it has not been moved to a region yet.

Resizing Regions

Adding regions is even easier than adding a widget gallery. By adding the dojo property splitter=true as shown below you can allow regions to be re-sized with splitters.

 <div dojoType="dijit.layout.ContentPane" data-dojo-props="splitter:true" id="DashboardTop" region="top">
      <div class="WidgetSource" data-dojo-type="dojo.dnd.Source" accept="Widget">

syntax highlighted by Code2HTML, v. 0.9.1

Resize Widgets (JS Fiddle)

Dashboard using dijit
Dashboard with Widget Gallery
The above screenshot shows the dashboard app with the widget gallery and splitters to re-size the regions. Next time I will show how to switch between dashboard layouts.

Friday, March 22, 2013

Dijit D3 Custom Dashboard Part 1

In this series I am going to show you how to build a custom dashboard applications using dijit for the ui controls, ajax calls for data acquisition and d3 for charting and graphs.
For the layout I am going to use a BorderContainer control in the dijit library. The BorderContainer is very good at layouts that would be difficult to pull of with just html and client side code. It has a splitter control that I will go over in another post.

Dashboard layout using dijit Border Container Widget (Js Fiddle)

Basic Layout
After you have the border container in place you can add your widgets and make them drag-able from region to region. In order to add drag and drop functionality to the dashboard each region must contain a dojo.dnd.Source widget. The Source widget acts as both the source of a drag-able widget and as a destination. The Source widget has to have an accept attribute with the name of the class of widgets it will accept as a drag item.

Dashboard with added drag and drop widgets (Js Fiddle)

Dashboard with drag-able widgets

Right out of the box dojo contains very rich support for drag and drop. When you drag an item it will automatically show you an avatar of the item you are dragging. You can drag items with in the same container with out any additional code.

Next time I will talk about adding and removing widgets from the dashboard and how to resize regions.

Continue to part 2

Friday, March 15, 2013

hello world in C#

Most everyone starts with hello world in programmig. Even seasoned developers write hello world apps in order to test if the simplist solution will run.
in c# we would write:
public static class MyClass
         public static void main()
                  System.IO.Console.WriteLine("Hello World");