Lars Sorenson [neohazard]
How did you begin programming and at what age?
I began scripting mods for a video game called Counter-Strike 1.6. It used a custom compiler built for the language PAWN/BASIC. I then moved onto LUA for Garry's Mod (A sand box video game). And finally started my formal education in Visual Basic and moved onto C++, C#, C, Java, XHTML, CSS, JScript, and PHP shortly after.
I would estimate I started around 14.
What languages do you code, and in what platforms?
C#, C++, Java, PHP, XHTML, CSS, JScript, C, Lua.
Windows/Linux development experience only.
What machine configuration and operating system do you use?
Windows 7 / Fedora 16 on my desktop
Windows 7 / OpenSUSE 12.1 on my laptop
Please list web addresses where we can see some of your work
http://www.longhornlabpartners.com/ -> I worked on the template
What motivates you to undertake a new project?
The satisfaction in seeing a successful, well written and solid final product, one that I can take pride in. It helps to know the product will actually be used as well.
What part of project development is most gratifying to you?
The brunt portion of the coding, where I'm hammering out line after line of code.
From the outside, it seems a rational job, but is creativity necessary for programming?
Creativity is necessary in a whole different fashion in the programming world. If everyone approached the same problem the same way, efficiency would not exist in programming. Everyone would be doing it the easiest way that required little to no planning. Sometimes, thinking through the logic of a program, its structure, and how to solve an unforeseen error requires a little creativity, to help bend and twist the flow of the program, its variables, and design to fit the new issues and evolve it into a better project.
What conditions do you need to concentrate when programming?
A computer. I can deal with sound, noise, anything. If I'm in the zone, I can completely block out any outside interferences.
After working for long periods of time, have you ever felt as though you were in a bubble?
Yes. Working long hours on the brunt of coding and debugging can sometimes seal me from the outside world, as I try and zone in and focus to predict, adapt, and solve my problems instantly and improve my production speed and efficiency.
When you check out code you wrote time ago, what's the main difference with respect to code that you write nowadays?
I'm much more knowledgeable about object oriented languages, data structures, memory efficiency. When I first started programming I was basically mirroring functions and scripts I knew worked, and sort of pieced them together to produce what I wanted. Now, I worked on from scratch, referencing scripts I know work to help fill gaps in my knowledge about certain methods, functions, objects and their interactions, but on the whole the code I write is my own.
Do you still buy programming books, or do you learn everything from online sources?
Online sources. A book is nice, but in the world of programming often what you're searching is a specific term or phrase and computers can find it way faster than the index in the back of a book. Books are also outdated far more rapidly and rarely teach much beyond the basics.
Do you think programming should be taught at the basic education level?
Yes. It teaches discipline, by following coding standards, logical thinking, memory management in a literal sense of memory in your head. It also teaches patience, determination, problem solving, basically everything necessary in any other subject.
What has been your experience in marketing your software?
I have never marketed my software. Any software I produced was either marketed for me or I had a client sought out by someone else.
What do you learn from software users?
How to design a GUI to fit the users' needs and habits. If the file button isn't in the upper left like they're used to, they often become confused. If the GUI is not straight forward, they become equally confused. The worst case is handing the user all the functions without any categorization or organization. You can also learn what sort of inputs, proper or improper, to expect, and how they might attempt to break the program.
What would be your solution against piracy?
I would implement a simple license/serial key function. Anything beyond that only inhibits the user and holds back the programs functionality and rarely prevents at a noticeable level. If a pirate wants the software, there is little that can be done to stop them.
Would you consider yourself rigorous in the organization of the coding that you write and on commenting it?
Yes. Nothing frustrates me more than trying to follow a programs logic and have everything without indents and no comments indicating what poorly named variables are doing in the program, and what the logic for their methods is.
How do you calculate the budget for a software project?
I have never had to calculate the budget for a software project.
What are your favourite games and on what platform do you play them?
Skyrim, WoW, League of Legends, Minecraft, Starcraft 1/2, Assassin's Creed (all of them ), Team Fortress 2, among many others.
All on PC unless they're console specific, such as harvest moon or animal crossing.
How often do you clean dirt-buildup on your keyboard?
Once or twice a month, depending on how much I end up eating / drinking around it or its visible filth.
How do you feel when friends or family ask for your help in solving domestic computer problems?
I'm more than happy to help with any of their issues. They rarely stray beyond normal problems, so they're typically repeat issues that are quickly and easily solved.
If anything goes beyond, its a great challenge to try and solve it if it turns out to be a problem I haven't had to fix myself personally.
As machines for development, what opinion do Macs deserve?
Web development, I hear they're good. But that is a Mac's only redeeming quality in the software development world. Anyone not using a PC running Windows/Linux (And not OSX) gives off a first impression of lesser computer/programming knowledge and experience.
How do you protect your computer from viruses?
Avoid hazardous sites, don't download random files without knowing the source and uploader. If I do, I have an anti-virus that I scan the file with. I run a full scan weekly.
In social settings, do people become interested when you tell them you are a software developer?
If the people are interested in software and its development, yes. In my age group however, few people are impressed or interested in software development and often shy away from the subject.
Do you work alone or in a team? Which do you prefer?
If my team members are skilled, working in a team is vastly more preferred. If I'm working at a pace where I might as well be doing the whole project myself, I would prefer to work alone.
Working as a team is so much more supportive and faster at development. There's a sort of checks and balances within a team that assists with quality assurance.
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?
I wait for stable versions unless I report bugs and issues to the developers, in which case I get nightly builds or the most recent updates.
What is your main reason for not meeting project deadlines?
Unforeseen obstacles that prevented further development or a client backing out. Most projects I start I also finish.
In your opinion, which company helps software developers the most?
Microsoft does wonders with their IDE, allowing for rapid software development for their supported languages with their features like IntelliSense and Team Foundation Server.
How many breaks per day do you normally take?
On a solid day of coding, I take maybe one or two breaks. Usually fairly long ones.
At this point in your career, what would be the project of your dreams?
Something that I would learn a lot from, be able to contribute a lot to, that became a popular product. I would love nothing more than to hear people talk about a piece of software I worked on in normal conversation.
What is your next project?
My next project is for my computer science class, where I have to recreate Snake in Java.
Which websites or forums for programmers do you frequently visit?
Typically which ever websites pop up when I need to solve a problem with a program. I do use the Java Sun Online Documentation website for its objects.
What advice would you give to someone who wants to become a programmer?
Start small, start slow, and start easy. Once you grasp the basics of programming and how languages are structure, you can expand your boundaries and rapidly gain experience. Seek out experience, learn as much as you can from the internet sources, and start working on projects.
West Lafayette-United States