Welcome to our continuing series of CodeProject interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Nish Nishant, a literal CodeProject legend.
Who are you?
I am Nish Nishant, and I work as a software developer in Central Ohio. Outside of my fulltime job, I do spend a good deal of my time working on personal programming projects, many of which never see the light of day. I also have serious interests in photography, road trips, and mixology.
What projects have you worked on?
I've always primarily been a Windows developer (and a DOS developer prior to that). So outside of a few rare occasions when I've worked on non-Microsoft platforms/libraries, it's mostly been desktop development on Windows using VC++/MFC originally, and later using newer frameworks like Winforms, WPF, and Silverlight. For about 2-3 years now, I've also been doing a fair bit of ASP.NET development in MVC 3. The projects I've worked on have varied from line of business apps and websites to specialized security tools. I've recently developed an interest in Windows store applications targeting Windows 8.
What is your development environment?
My primary desktop is a reasonably outdated but still fairly decent Intel Core i7 2.67GHz with 12 GB memory dual running 64-bit Windows 7 Ultimate and Windows 8 Professional. My primary laptop is an Intel Core i7 with 16 GB memory and dual disks (SSD + 7200) running 64-bit Windows 7 Business. I use Visual Studio 2010 as far as I possibly can (and VS 2012 for newer projects), and my primary dev languages are C++ and C#. There are too many desktops/laptops/monitors lying around the house, so I'd rather not document them all, and despite my wife's cynical comments, I do have uses for all of them.
I do not really have a favorite framework as such. I've at various times in the past thoroughly enjoyed working with MFC, .NET, WPF, Silverlight, and recently WinRT. I am also not very particular about syntax, so I've felt quite comfortable working with extensions to C++ such as C++/CLI and C++/CX.
What new tools, languages or frameworks interest you?
What is your coding pet peeve?
That would have to be inconsistency! If you pick a style of coding, then stick to it. To see multiple syntactic and naming convention styles in the same piece of code can be terribly annoying. I also hate to see poorly thought out hacks in code - where something's just added as a quick fix without checking to see if there was a better way of fitting it into the current design. While sometimes these things are inevitable during last minute deployment fixes, these should be temporary and should be fixed and re-coded as soon as realistically possible.
How did you get started programming?
I was in high school when I got to see a PC for the first time in my life. It was an 8088 machine with 640 KB RAM running DOS 3.x. My first programming languages/tools were GWBASIC and MASM, although I soon moved onto to Turbo Basic and later Turbo C. I remember my major high school computer science project was a dBASE 3 Plus clone, and it's a big regret that I did not keep those original floppy disks safe. Would have been a fantastic bit of nostalgia to have had with me today.
How has the developer community influenced your coding?
I've had some very interesting experiences with the online developer community through the past 15 years or so. A large number of my real life friends are people I originally met through sites such as CodeProject or the MSDN forums. While I am not as active in the non-technical developer forums like the Lounge these days due to family, work, life coming in the way, every time I open forums like the Lounge, that feeling of familiarity and warmth is hard to put into words. I am not sure if the stereotype about programmers being shy and awkward geeks applies to everyone else, but it certainly applied to me early on in my life. I firmly believe that my interactions with the CodeProject community helped me improve in subtle little ways.
Where do you see yourself in 10 years?
I guess I'd still be designing, architecting, and writing code. Although I certainly hope I would be making heaps more money than I am today :-)
What advice would you offer to an up-and-coming programmer?
Set high standards early on and try and stick to those standards. People who are satisfied with sloppy work early on in their programming lives never really get out of that rut (in my experience).
Nish Nishant is a technology enthusiast from Columbus, Ohio. He has over 20 years of software industry experience in various roles including Chief Technology Officer, Senior Solution Architect, Lead Software Architect, Principal Software Engineer, and Engineering/Architecture Team Leader. Nish is a 14-time recipient of the Microsoft Visual C++ MVP Award (14 consecutive awards as of between 2002-2016).
Nish authored C++/CLI in Action for Manning Publications in 2005, and co-authored Extending MFC Applications with the .NET Framework for Addison Wesley in 2003. In addition, he has over 140 published technology articles on CodeProject.com and another 250+ blog articles on his WordPress blog. Nish is experienced in technology leadership, solution architecture, software architecture, cloud development (AWS and Azure), REST services, software engineering best practices, CI/CD, mentoring, and directing all stages of software development.
Nish's Technology Blog