Interview with:Jennifer Lewis [jennlewis]
PROGRAMMING
 | How did you begin programming and at what age? When I was 10 years old, I got my first computer - a Commodore 64. My parents originally got me the computer to play games. The computer included a small booklet on how to program in BASIC. I went through the booklet and started writing programs in BASIC just for fun, and I continued writing programs ever since. |
 | What languages do you code, and in what platforms? I currently work in .NET 2.0 and 3.5 with a concentration in web and SharePoint application development. I particularly work with C# and ASP.NET, but I occasionally work with VB.NET. Since my concentration is in web and SharePoint application development, I primarily work in the Microsoft operating systems - although I use a MacBook at home and I work from virtual machines running Microsoft.
In the past, I have worked with Java on the Linux and Windows platforms. |
 | What machine configuration and operating system do you use? It depends on the project. Some of the configurations that I've worked on:
* Windows 2003 Server with SP2 (32-bit), IIS 6.0, .NET Framework 2.0 and 3.0, SharePoint Server 2007 (MOSS)
* Windows 2003 Server (32-bit), IIS 6.0, .NET Framework 3.5
I'm currently working with the beta version of SharePoint Server 2010 to prepare for its pending release, so I'm also working on a Windows 2008 Server (64-bit). |
 | Please list web addresses where we can see some of your work |
 | What part of project development is most gratifying to you? My ideal project is being involved in the entire software development life cycle, but my favorite part of the project is the release. I get to see the application finally in use, and I can see the benefits that the application can apply to the business process. |
 | From the outside, it seems a rational job, but is creativity necessary for programming? Absolutely, positively YES.
In this economy, employers are not just looking for "digit heads" who just sit at their computer and write lines of code. In my opinion, a pure "programmer" who just writes code based on what one is told is becoming passe. These coders are now expected to be "developers", who not only write code, but design front-end interfaces, understand business rules and requirements, understand how the application interacts with and impacts other systems (ex: operating systems, networks), and design structures that are easily maintainable AND run efficiently.
Also in this economy, we in information technology are still working with limited resources despite being one of the career paths that have walked away from this recession virtually unscathed. The IT person is supposed to come up with the next best stellar system with a limited budget and a limited timeline, but your approach has to remain legal (ex: no pirated software). It requires creative thinking to be able to fulfill that requirement. |
 | When you check out code you wrote time ago, what's the main difference with respect to code that you write nowadays? I see some differences.
I think that my code has become more efficient than my code from the past. A lot of the code that I write now is much easier to maintain than some of the code that I've written in the past, and the commands are more processor efficient than code that I've written in the past.
My approach to completing an application has also changed. In the past, I wanted to code the functionality from start to finish. While it was a good experience to prove that I can "do it", the approach doesn't work when you have a client that is expecting a software package to be available yesterday, and if I'm spending all of my time writing code to prove a point, the client is going to move on to a company that *can* get them their application, and I don't get paid! Now, my approach is to look for components that have already been written (CodePlex is wonderful!) and implement those in my program so I can get the application that the client wanted in a quick timeline. |
 | Do you still buy programming books, or do you learn everything from online sources? Programming books still have its uses, especially when I'm learning a brand new language. For day to day work, I'm finding myself going more and more toward on-line sources than printed sources. I can type a few keywords in a search engine and find what I *exactly* want in much less time than searching through one or many books to find bits and pieces of the information and put it together to give me what I want. |
 | What do you learn from software users? I learn a lot about usability, and it helps me design my front-end interfaces to my audience. If it's a technically-savvy audience, it better have bells and whistles AND it better work in the mobile devices. If it's not a technically-savvy audience, it better be so simple with clean lines so the audience can read and use the tool instinctively. |
 | Would you consider yourself rigorous in the organization of the coding that you write and on commenting it? Yes, definitely! I've always received high praise by my colleagues and managers from my documentation. I do it for the people who have to inherit my work should I win the lottery, get a massive inheritance from a long-lost relative, or more realistically, move on to better pastures.
I've been in situations where my predecessors or my colleagues have left the company for better pastures, and I inherited their work. In situations where there was virtually NO documentation on the code, I have wasted HOURS of time trying to interpret what the person was trying to do and why the person was doing what s/he was doing. I understand that developers, in general, hate documentation. However, Java and .NET have very simple commenting standards used by tools that can generate documentation (javadoc, Sandcastle) that hardly take any more time to write. |
 | How do you feel when friends or family ask for your help in solving domestic computer problems? Honestly, if someone is asking me when I'm not working, it can be annoying. I do hours and hours of computer work (software development, training, documentation, system configuration), and when I'm done working, I don't want to look at a computer or talk about a computer. Where it gets annoying is when people who are unfamiliar with the different tracks in information technology assume that since you "work with computers", you know EVERYTHING about computers, so they ask you EVERY computer question. I don't want to offend my friends or family, so I recommend good sources for them to get their information, and if their machine needs fixing, I recommend good repair services. |
 | Do you work alone or in a team? Which do you prefer? I think that it depends on the situation. When I'm doing some hard-core developing, I prefer to be left alone so I can concentrate and get the work done, but when I'm designing an application or I'm participating in all stages of the software development life cycle, a team is invaluable. Teams are also nice as a resource from which to bounce ideas. |
 | Are you one of the first to update to new software when it comes out, or do you normally wait until more stable versions appear? My father was a physician, and he followed the rule of thumb that he never prescribed a drug unless it's been on the market at least 5 years. By then, the drug has worked out all its problems and he didn't put his patients at risk. I sort of follow the same mantra with technology. I wait for at least 6 months until after it's been released to make sure that the majority of the bugs, security holes, and kinks have been worked out. This way, it doesn't put the business at a great risk and it doesn't have as great of an effect on the business's technology investment. For example, take a look at the iPhones when they were first released. The machines were $400 USD when they were first released, and they had a defective battery (that couldn't be replaced) that died within 3 months of use!
That said, there are times where I have to use the latest and greatest to be prepared for the upcoming release. For example, I do a lot of work with SharePoint, and I need to be familiar with SharePoint 2010 to prepare for businesses who will start using SharePoint at version 2010, or to prepare for businesses who will be upgrading from version 2007 to 2010. |
 | What is your main reason for not meeting project deadlines? The most common reason is an incident that was out of my control. An incident that stood out in my mind: I was working closely with a business user on a new application. In the middle of the project, the business user quit the company abruptly, and someone else had to step in to do the work in short notice. Unfortunately there was a learning curve with this person and the new position, so it affected what needed to be done and how quickly things got done. |
 | What advice would you give to someone who wants to become a programmer? Two things:
1 - Don't get blinded by the dollar signs. You have to like doing it, or you're going to burn out and change careers. I've seen numerous students who have chosen software development because of the relatively high pay. However, they don't understand the intense mental work that's involved in the field, and they don't understand that there are going to be times where you have to work off-hours and many hours to either fix bugs or get a software release ready.
2 - Have other skill sets besides coding. Companies want to do more with less, and if all that you can do is code, most companies won't hire you. |
|
783 visits Whohub [jennlewis] Jennifer Lewis Pittsburgh PA USA
|