# Sunday, September 21, 2008
Sunday, September 21, 2008 3:03:07 PM (Eastern Standard Time, UTC-05:00) ( career | languages | programming )
My first entrance to my programming career is described in How I got started in Programming and leaving to be a full-time SAHM (stay-at-home-mom) in Taking an off-ramp and an on-ramp in IT.  This post will attempt to describe what steps I took to re-enter the workforce.

We were living in Kingsport, TN  in 2001 when I started to think about returning to work.  I felt the first thing I should learn was where the programming profession was;  I knew it had to be radically different from when I left in 1990. At the time I did not know anyone there who worked in software or anything remotely similar.

[2001 -2002] I started a subscription to Dr Dobb's Journal and searched on the internet to find anything I could to learn about software; I did not really know what I was looking for. I joined the internet forum Systers and scoured the library for technical books.  I purchased Microsoft Visual C++ .NET Deluxe Learning Edition and 4 flavors of Java in a NutShell.  I completed the tutorials in both languages.  Additional books I bought and read during this time included:
[2003] We moved to Cincinnati, OH both to live near some family and to obtain better educations for our children.  We wanted our son to attend my husband's alma mater, St Xavier High School, and we wanted choices for my daughter for middle school.  Moving and building a house took most of my energies that first year. I continued to read and search the net and visited the library and read books such as Code Complete, The Mythical Man-Month and a variety of books on Extreme Programming.  I Joined the Cincinnati Programmer's Guild and The Women's Circuit.  I attended meetings for both groups and started to meet "real-live" people that worked in the industry and was exposed to a very wide variety of topics and ideas. 

[ 2004] By 2004 I was starting to gain confidence in my software abilities.  I started looking at job advertisements all over the internet. I determined that there seemed to be more .NET jobs than Java in Cincinnati so I started to narrow in my focus on .NET.  I discovered C# and spent a fortune on books including:
I wanted to take some college or graduate classes but was disappointed to find out that you had to apply for a degree in order to take a class.  I did not want to pursue a degree at that time as I already had a math degree and had completed all of the coursework for a MSCS.  I knew my job search would be difficult considering it had been a very long time since I had been employed and I wanted to prepare myself as best I could. Taking classes was the only way I knew to "prove" on my resume that I had skills. So during the summer I took C# and Relational Databases with SQL classes at the community college.  I really learned nothing new about either C# or relational databases.  The biggest value in the classes was exposure to using Visual Studio and SQL Server software as well as being able to ask questions of the instructors.

I then paid for a week-long training class "Developing Microsoft ASP.NET Web Applications using Visual Studio .NET".  This course was great as it introduced me to ASP.NET, ADO.NET, IIS, Web Forms, Web Applications and XML Web Services and also taught me how to use more features of Visual Studio.  I also learned much from the questions the other students asked as they were all employed and transitioning from asp to ASP.NET programming.

Once the Cincinnati .NET User's Group started in the end of 2004 I began attending and was happy to see many familiar faces from the programmer's guild.

Once I updated my resume with these recent skills I began to see a sharp increase of interest and started going to interviews. The interview
 process is time of growth. I started out extremely nervous but each one got better.  Once I was able to see for myself how many different companies opperated and managed software I knew more about what to ask and what to look for.  I was able to refine my resume, read the job postings with more knowledge and was able to write detailed direct cover letters that got me in the door.  In March of 2005 I started work for a small micro-film/imaging company on a C# Tablet PC application. 

I absolutely loved being back at work. It was a long journey but very much worth the effort.

maggie++

# Wednesday, August 20, 2008
Wednesday, August 20, 2008 8:29:58 PM (Eastern Standard Time, UTC-05:00) ( usability | UX | design )
I learn much from listening to podcasts.  I thought I would share some of my favorite episodes with you from a user experience one that I listen too. SpoolCast is an audio podcast where Jerod Spool from User Interface Engineering interviews experts from all aspects of UX from usability, user testing to research and more.

SpoolCast: Product Evolution with Adaptive Path’s Peter Merholz
July 2nd, 2008

Peter Merholz president of Adaptive Path.  Peter and Jerod discuss a method to map out the evolution of a product into three stages and the importance of planning this at the beginning to continually give the user a good experience while you add features and grow your product.  I learned not to deploy a feature just because it's ready, but to plan the releases so you add features together that make sense without confusing your users while always keeping the business value in the plan. Peter explains a corollary of the release of the ipod in stages.

SpoolCast: Ajax Then and Now with Jeremy Keith  June 16th, 2008

Jeremy Keith is the technical lead at Clearleft, a leading design consultancy in the UK. Jerod and Jeremy discuss Ajax and how it's use in web pages can be useful and where it can hurt.

SpoolCast: What Makes a Great IA with Donna (Maurer) Spencer June 9th, 2008

Donna (Maurer) Spencer, an information architect and owner of the freelance agency MaadMob.  Donna and Jerod discuss what an Information Architect is and what makes a great Information Architect.  They talk of the challenge of architecting the content and the web site navigation so that it makes sense to the end-user and not necessarily model the way the business is organized.  Many clients expect this and each department wants to "tell the world what we do" instead of "make information available in the way people want to read it"

The following two are some basics principles of UI design that are still broken all of the time even though they are difficult for users to use.

Usability Tools Podcast: Applying Fitts’ Law  February 28th, 2008

"A button is a button right? Move the mouse over it. Click. Not much to it, eh?"

Usability Tools Podcast: Mouseovers in Navigation December 17th, 2007

"It’s tempting to spend a ton of time creating slick flyout, dropdown, or pop-up navigation on our site, but is it worth the effort? "

Usability is so important and there is so much research out there about what works and what does not that there is no excuse for developers and designers to continue creating interfaces that are difficult for users to learn and navigate.  I hope more people will take advantage of these podcasts and apply the findings to their design.

maggie++


# Saturday, July 26, 2008
Saturday, July 26, 2008 9:36:35 AM (Eastern Standard Time, UTC-05:00) ( )

A recent addition to my feed list is Managing Product Development  written by Johanna Rothman  founder of a software management consulting and author of Manage It!: Your Guide to Modern, Pragmatic Project Management which is published by the The Pragmatic Programmers .

If you are not subscribed to her blog you are missing out she has great insight into managing software projects.  In her blog I came across an interview she did with Jurgen Appelo posted on his blog here: 5 Easy Questions for Johanna Rothman

The first question was on the toughest challenge in her past.  Se says "Making myself slow down to think through a problem fully." She describes beginning to write a book recently - she started with an outline and began writing then found that her flow was awkward and needed re-work.

When I realized I'd written enough to redesign it, I could see the emergent design. If I'd tried to define the full design for the book at the beginning, it would have been wrong (it was wrong!). Now, I have enough to see how it could work, and my new design is working for now. Who knows, I might have to redesign again. But I know the pieces I have to fit in now

To me this describes a process like code refactoring and helps illustrate why refactoring is so important for software projects. It is difficult to get the design right the first time.  It takes iterations and rework to get it right.  I had never thought that the process of writing a book was was so similar to software development.

 

maggie++

# Sunday, June 29, 2008
Sunday, June 29, 2008 1:16:56 PM (Eastern Standard Time, UTC-05:00) ( browser | flock | social )

Flock, The Social Web Browser!  is a browser I recently discovered that aggregates social networking features into the browser interface.  So far I like what I see.  It is built on top of FireFox 2 and is super simple to set up and use. The description from the user's guide is:
Flock is built on the Mozilla Firefox open-source browser, so it has all the features you've come to expect in a high-quality web browser, like intuitive buttons and menus, personal customizability, reliable security, enhanced privacy protections, and automated updating. However, Flock is much more than that! The Flock Social Web Browser has been fully integrated with a wide range of social networking websites and popular blogging tools. So with Flock, you can now keep in touch and share text, links, pictures, video and more with friends, family and co-workers across the entire internet with unparalleled speed and seamless ease.

Getting Started Video

Side Bars available in addition to firefox's are:
  • Feeds Sidebar is a built-in feed reader.
  • Web Clipboard allows you to drag and drop text, links, and images to save for later use.
  • Accounts and Services gives you access to all of the accounts you have configured with Flock and also lists all supported accounts with links so you can explore them.

My World, is a provided page opened through a tool bar button. It contains columns they call Widgets that currently has 4 functions:

  • Favorite Sites, lists your most recently viewed favorites.
  • Favorite Feeds, displays your feeds with the most recent activity and indicates how many unread items are in the feed.
  • Friend Activity, lists friends updates from you social networks.
  • Favorite Media shows streams from You Tube and Flickr that you subscribe to.

Flock has a Media mini-bar which is like a sidebar except it runs horizontal under the toolbar. This allows easy access to media streams such as Flickr and You Tube. I have hooked up my gmail into flock and am writing this blog entry with tools from Flock to check it out.

There is a Flock 2 Beta available built on top of Firefox 3 that I am going to try soon. 

If you want to see more start out by visiting the Getting Started page and be sure to watch their introduction video here from You Tube.  The videos on the Flock You Tube stream make it very easy to learn about the features; the short movies show the features so that you "get it" quickly instead of reading the manual.

I think as this browsers evolves it will be very useful and replace the use of many different clients that are now needed to access your information.  If you try it leave a comment and let me know what you think.

maggie++



Blogged with the Flock Browser

Tags: , ,

# Monday, June 23, 2008
Monday, June 23, 2008 7:36:49 AM (Eastern Standard Time, UTC-05:00) ( programming | events )

CodeStock's mission is to bring the best and brightest code experts to East Tennessee for a one day conference open to all developers.

Are you among the best and brightest code experts?  If yes, then you are probably already registered.  If not, but you want to be, sign up and join me at CodeStock to learn and keep up with all of the new ways to improve your software skills.

There will be 6 choices of classes during each session and what I'm excited about is there will be Open Spaces all day where you can share and learn about whatever you are interested in. 

Open Space is a way to bring together groups of people interested in a common topic to have an interactive discussion. In an Open Space session, there may be an expert who is passionate about a topic presenting to an audience or there may be a small group of people discussing an idea.

Four principles of Open Space:

  1. Whoever comes are the right people to be there
  2. Whatever happens is the only thing that could have happened
  3. Whenever it starts is the right time
  4. When it's over, it's over

This is my kind of conference - a place where I can learn from other developers in a relaxed setting in beautiful Tennessee.  

Hope to meet you there.

maggie++

# Saturday, June 21, 2008
Saturday, June 21, 2008 8:41:06 PM (Eastern Standard Time, UTC-05:00) ( career )

Gayle Force blogged about Women and the IT community when she was asked what to do to get more women involved in her local  Columbus Ruby Brigade. In reading her response I got to thinking about other experiences I'd had and the fact that a small percentage of attendees to user groups and communities events are women.

There do seem to be less women currently in IT jobs.  This has not always been the case.  I worked as a software engineer at three large corporations in the 80s after I graduated from college. There were actually more female than male programmers at the first and at the other two it seemed 50/50.  However there were no females in the senior/principal technical staff roles, who typically had greater than 10 years experience.

So what happened. Families. Women have children.  Some stay working full-time, some go part-time and some choose to stay home.  The ones that stayed full-time took the management track and became less involved in technical aspects.

The women who went part time were relegated to peripheral roles such as configuration management, source control, bug tracking and QA - these tasks were easier to share on a part time basis.

All of the women I knew who went part time, stayed home full-time after the birth of a second or third child.  None of these women that I know have returned to engineering.  Some have returned to full-time work in other fields.

In 1990 I left software to be a full-time SAH mom.  I loved my job and working on exciting projects, but the job also involved long hours, late nights in the lab and unplanned travel.  I was very dedicated to work and knew that I would have struggled to do both well.  I also knew I really wanted to be home full-time and to just concentrate on being a mom.

I loved being a stay-at-home mom.  During that time I met many extremely talented and creative women who had also left careers to be home.  There seemed to be a consensus that it was ok to take a year off from work, but any more than that would make it impossible to return to the work-force.

It does not need to be this way, a women does not lose her intelligence during this time and she also gathers valuable experience in the activities of being a mom such as organizing , leading, volunteering, coaching, advocating, researching etc.

Companies have noticed the effect of this female brain drain as noted recently in the Wall Street Journal in the article, Female Brain Drain in Science: “Much Has Yet to Happen”, where they discuss the study "The Athena Factor: Reversing the Brain Drain in Science, Engineering, and Technology"   Sylvia Ann Hewlett discusses this in her book "Off-ramps and On-ramps: Keeping Talented Women on the Road to Success".  She states that "corporations have done a dismal job of retaining female talent.  Indeed, they make it very easy for women to depart. When women take a temporary leave of absence to have children or deal with other personal matters, they find it difficult to return to work and contribute as they had previously. In essence, corporations provide women with many career off-ramps, but provide them with few on-ramps. This problem bodes badly for CEOs and top managers who view human resources as a critical asset."  Some steps companies can take are laid out in Flexibility Key to Retaining Women

I created my own on-ramp and returned to full-time software development in 2005.  It was not easy and I still have a lot to learn.  In a future post I will detail the steps I took to re-enter the work force.

maggie++

# Monday, June 09, 2008
Monday, June 09, 2008 4:40:38 PM (Eastern Standard Time, UTC-05:00) ( programming | languages | history )

Michael Eaton has requested developers to share stories of how they got started in programming.  I started programming in the dark ages which many of you will not be able to relate to, so bear with me.

First of all, when I was a child no one had computers in their homes.  The only computers I knew about were at the universities and the government.  When I was in junior high, my school decided that it needed to give more focus on math and reading so it established a new format for Fridays.  Half the day was for math and half was for reading - this was set up to ensure everyone knew the basics.  Well those of us who were advanced past the basics got to hang out with the social studies teacher and learn fun things; I think there were about 10 of us.  He taught us Algebra and Geometry, we put on a play, learned about Fibonacci and many other cool things. 

Best of all he had access to a computer as he was taking graduate school classes at the nearby university.  He taught us the BASIC instruction set and had us write out programs on loose leaf.  At night he would go to the computer lab, type in each of our programs and bring us back the results.  This was the most fun I can remember from grade school.  Math was always my favorite subject and I loved puzzles and problem solving.  I don't remember too many specifics about the programs except I recall something with biorhythms and calculating things like how many days we had been alive.

My high school had a teleprinter with a tape in our math center.   I never had a chance to learn how to use it.  I envied my older sister who took an independent study class and got to (that she had a programmable TI calculator is another story).

My chance to program for real was in college.  I majored in Math and started taking computer science classes right away for a minor (at the time the college did not offer a major in CS).  We did not have our own computer, instead we had time-sharing with the mainframes at the University of Maryland. I learned assembler, Fortran, COBOL and Pascal.  Assembler and Fortran were coded with a line editor on a teleprinter; COBOL required punch cards and by the time I took Pascal we had CRT's - The summer before my senior year I had a mathematics summer internship at COMSAT Laboratory where my job was to write a program in Pascal to compute an algorithm for a mathematician.  The first day he gave me a 23 page hand written integral which was my assignment for the summer.  COMSAT was exciting - this is the first place I had ever seen real computers, plus they had a huge (satellite-sized) anechoic chamber, earth stations, library, and tons of special purpose electronics and engineering systems. 

The important things that happened that summer were I discovered that the mathematicians did not use computers at all, there was a lot of money to be made writing software and I met my future husband who was a RF Engineering Co-op.  The first didn't end up being true but the other two were good.

Once I graduated, I started job hunting.  I had success at my first job fair.  I walked around the room and talked to all the men and one asked me if I knew assembler.  I said yes I knew Univac Assembler, he smiled, gave me a business card and set up an interview for me.  I looked up and saw that the company he worked for was Sperry Univac.  I started work right away.  We were a subcontractor for Ford Aerospace on a NASA contract.  I worked on a 16 bit (hex) mini-computer with ASCII and two's complement arithmetic and communicated with a 36 bit (used octal) mainframe that used 6 bit Fieldata and one's complement arithmetic.  Needless to say I learned a ton, met great people and saw a successful large project installation.

The most fun I had at that job was testing in the lab with the mini-computer.  I loved being able to toggle switches to set a breakpoint and look at indicator lights (the only UI) to read the register contents and memory, following along with a printout of the assembler code with addresses and the op-codes.  I liked making up  and applying patches on the fly when I found a bug. A also liked getting a memory dump of the processor and searching through the buffer pool looking for buffers that hadn't been returned and ones that overwrote their boundaries.  I had full control of the machine and yes I am a geek.  I still eally like debugging - yes I know 'm a geek.

At the same job the boss felt it was important not to work through lunch so we played bridge, then when Trivial Pursuit became popular and we had more people we played that.  Some days we just hung out at the terminals and played zork.

Ok, enough with history and back to the questions.

What languages have you used since you started programming?

At least 5 assembler languages, BASIC, meta-assembler, Fortran, Pascal, Smalltalk, Prolog, Lisp, C, Cocoa, Java, C#, and C++.

If you knew then what you know now, would you have started programming?

Absolutely.

If there is one thing you learned along the way that you would tell new developers, what would it be? 

Don't stay at a job you hate with people you don't admire.  You want to be in a group where learning and communications are encouraged and required.

 

maggie++

# Sunday, June 08, 2008
Sunday, June 08, 2008 7:21:36 PM (Eastern Standard Time, UTC-05:00) ( none )

Hello, world.  This is a pre-first blog post.  I am completely new to blogging.  I will place real content soon.  Please leave a comment here if you have any good suggestions for improving the look of the page.

maggie++