Q&A- Answers

  • (2 Pages)
  • +
  • 1
  • 2

18 Replies - 24394 Views - Last Post: 14 March 2012 - 01:10 PM

#16 CTphpnwb  Icon User is online

  • D.I.C Lover
  • member icon

Reputation: 3077
  • View blog
  • Posts: 10,796
  • Joined: 08-August 08

Re: Q&A- Answers

Posted 15 February 2012 - 07:52 AM

What is the most valuable skill you have picked up for programming professionally and why? Or to phrase it differently, what is the one skill you would encourage novice programmers to pick up if they want to succeed?

Writing organized, readable code. If you want to write code then readability should be your number 1 priority at all times. This is an ongoing process that never ends, partly because people have differing styles. We can't even agree on where to put braces or whether to use spaces or tabs! Still, it's critical that you write code that at the very least you can read ó six months or more after you wrote it!

The single biggest and most frequent mistake we see beginners make on this site is trying to "just get it to work" instead of worrying about readability. Give me readable code that has a bug over sloppy code that works any day of the week! I know I'll get that readable code working easily, but when I have to make a change to the sloppy code (and it always happens) I'm going to regret ever using it.

How often do you use an engineering model apart from trial and error / code patterns to develop your applications? For instance hypothetically, you are developing a web application with a database back-end and know that your web application will be accessed by thousands of clients at the same time (hypothetically the web application becomes live at a certain time). Do you sandbox these things and strength test server load? Apart from the regular safety nets in place for code control and quality, how are these things tested?
Patterns can help with readability. See above.
Test everything. Assume you have bugs until you prove you don't.
How often do you see mathematics used throughout software engineering that isn't in gaming, but rather for code optimization? When designing algorithms that are applied in real world applications, do you find a firm grasp of Number Theory helps to optimize algorithms, and when openly discussing mathematics are you often greeted with blank faces?
Math is in everything.

Let's say you're at a interview for a job and the interviewer asks you to make examples of bad and good software and explain. What would you say? (Would interpret it as a trick question, or give the answer?)
Good software is well organized and readable. Bad software isn't. Never try to prove how smart you are by writing complicated code. It shows the opposite.

Did you pick up coding style from the people you worked with or some other way?

Yes. Style is both personal and general. Think of programming as an art form, like music or writing books. You're bound to have your own personal style, but that style should and will be influenced by the larger group.

Again the situation when you're on a interview. If the interviewer asks you what was wrong in your previous job post? (Would you risk of revealing some firm secrets by answering that or would you avoid that question somehow?)
It could have paid more. They can always pay more. ;)

How much of your current knowledge did you gain at your work post?

Hard to say. Unlike many, I think that most jobs don't challenge you as much as college. On the other hand, the job is focussed on one area where college focussed on many. In any case, you should always be learning. Even outside of your job.

Most of you have been in the industry for some time now; some for a longer period than others.

My question is: do you still find yourself motivated to go home after work and learn some technology related things outside of work, or is it more of a 9-5 job now for you and just do it for a paycheck.

Heh, I spend too much time on this site, so that should tell you something.

How do you guys make it so that the job remains exciting.
When you aren't learning you get bored. If you get bored, find another job. Maybe an additional job, or maybe just a new one. Either way, you'll find something to keep you going.

In your corner of the industry, what differentiates an experienced programmer/hobbies from a professional?
The quality (readability) of their code. Whether you want to be a web developer or a mathematical modeler at some point you're going to have to edit code you wrote months ago or longer. That's where hobbiests run into trouble.

Since you started programing, what has been your favorite project, personal or work related.
Any project where I feel I learned something useful is my favorite at the time. I never want to find myself writing the basically same project I wrote a while back.

Are you guys participating/used to participate at open source projects? Why did you do it/are doing it? - sense of achievement, getting better at programming, boredom?

A few minutes answering question on DIC during the day is about as far as I can go. Open source projects would need too much time.
What is your opinion in regards to the authenticity of the Tiobe index? Is it a reliable source to use to determine which language is the most used/popular?
Don't think about languages. Think about writing quality code.

Do you find that you are happy with your line of work? If you could change to some other (realistic) line of work, would you?
Yes, I'm happy with it. That doesn't mean I wouldn't consider something better if it came along.

How do you guys use your programming languages for your company?

I write code for mathematical models of disease progression and transmission.
Was This Post Helpful? 4
  • +
  • -

#17 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 1
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: Q&A- Answers

Posted 16 February 2012 - 02:52 PM

Here are my replies.

Quote

What is the most valuable skill you have picked up for programming professionally and why? Or to phrase it differently, what is the one skill you would encourage novice programmers to pick up if they want to succeed?

The most valuable skill I have learned programming professionally is the ability to produce quality code according to various constraints like time, house style and being able to read other people's code. Also, as a professional, your code quality become a big aspect in you understanding the language and platform well enough to write concise and efficient code.

In order for novices to succeed they need to be aware of such constraints and work towards conforming to them.

Quote

How often do you use an engineering model apart from trial and error / code patterns to develop your applications? For instance hypothetically, you are developing a web application with a database back-end and know that your web application will be accessed by thousands of clients at the same time (hypothetically the web application becomes live at a certain time). Do you sandbox these things and strength test server load? Apart from the regular safety nets in place for code control and quality, how are these things tested?

I don't do web development so I'll skip this.

Quote

How often do you see mathematics used throughout software engineering that isn't in gaming, but rather for code optimization? When designing algorithms that are applied in real world applications, do you find a firm grasp of Number Theory helps to optimize algorithms, and when openly discussing mathematics are you often greeted with blank faces?

Mathematics is used throughout game development, and not just for actual graphics and physics simulation. We never get blank faces regarding math, since it is commonly expected that you are proficient and can quickly pick up techniques that are unfamiliar to you.

We do make extensive use of logic to reduce code size and complexity, but I think that it pretty true for every type of programming.

Quote

Let's say you're at a interview for a job and the interviewer asks you to make examples of bad and good software and explain. What would you say? (Would interpret it as a trick question, or give the answer?)

For game interviews you just come up with games that both you and the interviewer(s) are likely to be familiar with and describe the bug you've noticed - as well as describing causes and potential fixes. Such questions aren't common though.

Quote

Did you pick up coding style from the people you worked with or some other way?

Certainly from the people I have worked with. They are/were very well respected programmers throughout the industry, so it was wise to pay attention. I picked up so many clever tricks (more than I can count) that no book or tutorial will ever give up. As said with games, your code needs to be concise and efficient which sometimes means that code will appear obfuscated, but hat is the trade off for improving overall technique.

Quote

Again the situation when you're on a interview. If the interviewer asks you what was wrong in your previous job post? (Would you risk of revealing some firm secrets by answering that or would you avoid that question somehow?)

How much of your current knowledge did you gain at your work post?

If an interviewer is indirectly asking me to criticize my last employment post, I always turn it around to a positive. There is a golden rule when interviewing to never criticize your old employer. If pressed, just mention a minor annoyance and how you dealt with it to complete a good day at work.

I've actually learned more as a professional than a student. All of the knowledge that sets you apart from other programmers will be gained professionally.

Quote

Most of you have been in the industry for some time now; some for a longer period than others.

My question is: do you still find yourself motivated to go home after work and learn some technology related things outside of work, or is it more of a 9-5 job now for you and just do it for a paycheck.

How do you guys make it so that the job remains exciting.

Games constantly evolve in terms of the technology used to make them (SDKs and middleware) to the platform used to run them. One of the many facets that makes programming in games tough is this very aspect of having to learn large amounts quickly. It is very common for me that if I see something that I am not certain of in code, I research when I get home until I fully understand it. My job is also my hobby, so it would be untrue for me to say that work is a burden.

Quote

stayscrisp, SixOfEleven, cfoley and : Game and scientific programming are areas that interest me as they tend to require a lot of original thinking and problem solving, keeping you thinking about what you are doing with each iteration. What was it that attracted you to these fields initially, what is it that keeps you there, and what one thing makes you want to throw out your computer? and what would you do untethered to your IDEs and compilers? :)

I majored in computer science when I was a student with a view to potentially doing research in academic AI and cybernetics. By the time I graduated I didn't really feel that that was right for me, so was looking at a Masters in Mathematics. Then I wanted to work after graduating. One night while out, enjoying my new found freedom after my finals a game recruiter phoned me out the blue and suggested working in games to me. I didn't feel that I was right at the time because I chose AI over graphics, but hey told me that didn't matter. Before the week was up I purchased a brand new PC and bought Visual C++ 6, then got to learning OpenGL from a book. I immediately wrote my first 3D game after about a years of struggles working out why things didn't work sometimes then fix them reliably. I made up my mind that if I couldn't write a 3D game on my own I didn't deserve a place in the games industry. As it turns out I set my target higher than many others and got a lot of Kudos for pulling it off. I must upload the game somewhere sometime.

Oh yes! I also forgot to mention that I was (and still am) an avid gamer, but for some reason it didn't occur to me to work in games after graduation. This happens to be what I do when not tethered to my compiler - as well as hang out with good friends.

Quote

In your corner of the industry, what differentiates an experienced programmer/hobbies from a professional?

A professional is familiar with the software development lifecycle of the software product that is only gained through industry experience. Experienced professionals are also very well versed in the advanced principles of their respective software development fields, and are also very aware that they are responsible for their code and the part it plays in the overall framework.

Quote

Also, targetted at SixOfEleven, pbl and the rest of you that have been "in the real world" for a fair time, what kind of things should we do alongside university to make it more useful? I currently freelance as a website developer but I also try to have programming projects, but all I can ever think of are things that do not really push boundaries or anything!

You are doing the right thing because you are keeping yourself current. I see a lot of mistakes being made by students in that they only code what they know, often giving up if it gets too difficult, and making a sloppy job of it 'as long as it works'. Good programming is about good discipline and thinking about every step you take in telling the computer what to do in code.

If you really want a challenge whilst you are a student, take on a multi-person project solo. Trust me, it will test you!

Quote

sense your started programing, what has been your favorite project, personal or work related.

Game projects are generally always fun to some extent, it's the platform quirks that can make things a nightmare. It isn't uncommon for a load of us to sit roundtable thinking about how to implement a feature to bypass the shortcomings of the platform. It's all part of the job.

Quote

: while I'm not terribly interested in pursuing game development as a career It seems like every kid I talk to wants to be a game developer even though they don't have a clue what that means. dose collage tend to weed out the riff-raff or is there some other distinguishing factor that employers have to look for? Is the market flooded with game developers or do most simply not make it(or maybe demand is high enough to support them)?

The purpose of college is to weed out those who do not get the basics. Before you get the job you are given a test at interview to ensure you understand the basics and have the capacity (and possibly limited experience) to learn more quickly on-the-job. Once that is demonstrated, you get the job.

The market is very flooded with developers wanting to get into games. I've had my seniors at some companies laugh their socks off at those arrogant interviewees who thing they are great, but as it turns out they are not. The truth of the matter is that in games it actually is unlikely you will ever work in them, since you need to be very good at what you do, and you need to offer something that sets yourself apart from other very good candidates. It's tough.

Quote

Are you guys participating/used to participate at open source projects? Why did you do it/are doing it? - sense of achievement, getting better at programming, boredom?

I tried a couple a few years ago, with one where I was lead programmer. The project generally fell to bits when it became too much of a challenge for some.

Quote

What has been your favorite project during your career? Why was it your favorite? Was it an easy or hard project to do?

No favorites to speak of, as it's the people you work with that seem to really make a project fun or not.

Quote

What is your opinion in regards to the authenticity of the Tiobe index? Is it a reliable source to use to determine which language is the most used/popular?

This is the first I've ever heard of this! Having a quick look though, it is only a general guideline across all industries. For games it will be C++, C, a scripting language like Lua or Python, then maybe C#, Java and Objective-C (because of the Iphone, etc.)

Quote

Do you find that you are happy with your line of work? If you could change to some other (realistic) line of work, would you?

I love games, although I might not have the capacity to stick with them the rest of my working life. Many developers leave for other fields like finance or virtual reality of some kind.

Quote

What would be the most important 10 job interview questions and answers someone would need to know?

It depends on the specifics of the job spec. I would recommend that people don't go to interview thinking they know it all, though!

Quote

At what age did you seriously get into programming?

I got in to programming when I was 17.

Quote

How much have you learned after your first professional employment?

Goes back to what I was saying before, in that there are techniques and personal management that you can only learn in the professional environment.

Quote

How do you guys use your programming languages for your company?

In the SDK. I'm one of the guys responsible for the PS Vita being released soon! ;)
Was This Post Helpful? 4
  • +
  • -

#18 calebjonasson  Icon User is offline

  • $bert = new DragonUnicorn(); $bert->rawr();
  • member icon

Reputation: 209
  • View blog
  • Posts: 989
  • Joined: 28-February 09

Re: Q&A- Answers

Posted 23 February 2012 - 12:54 AM

What is the most valuable skill you have picked up for programming professionally and why? Or to phrase it differently, what is the one skill you would encourage novice programmers to pick up if they want to succeed?

As someone that has always been hired on as a server side developer I have found that there are three things that all developers, in this category, should know. The first is know what systems your code is running on. This is very important depending on the company that you work for. Different versions of code bases and missing packages can throw you through a loop. The second thing that you should learn is how to properly debug and build test cases. There is nothing more important than knowing how to do this properly. Text file dumps, xdebug and proxy scanners will save your life and your hair. The final thing you need to know is that version control is the only way to store and deploy code. It allows you to check differences prior to code pushes, and allows you to control different versions at all time.

Did any other study such as mathematics, linguistics, physics etc apart from the aspiration of working with computers as an external motivation become a determining factor for selecting this profession?

Negative, Iíve always had a love for computers and have been programming from such a young age that prior to university I had known what I wanted to do and had already started doing contract web development work.

I find programming can become quite a mundane progression into a rigorous cycle of repetition. What keeps you intrinsically motivated to perform at your best without falling into a slump?


I donít often get into slumps since I move onto different parts of projects rather quickly. When I am in a slump about the things I code for my day job I tend to code very different things at home to get me out of it. These things are usually written in java, javascript and involve an Android phone.
Finally, what hobbies do you have?


Recreational coding, photo taking, workout out, playing squash, gaming and music (guitar, piano, violin, etc)

How often do you use an engineering model apart from trial and error / code patterns to develop your applications? For instance hypothetically, you are developing a web application with a database back-end and know that your web application will be accessed by thousands of clients at the same time (hypothetically the web application becomes live at a certain time). Do you sandbox these things and strength test server load? Apart from the regular safety nets in place for code control and quality, how are these things tested?

I have a c script written that allows me to load test a server by sending y amount of requests at the same time over x amount of time. This has proven to be a good tool to Gage server loads and capacity. This can also be tasked to the system administrators and DBAs. There are tools such as charles that will give you an decent way to send multiple requests.

How often do you see mathematics used throughout software engineering that isn't in gaming, but rather for code optimization? When designing algorithms that are applied in real world applications, do you find a firm grasp of Number Theory helps to optimize algorithms, and when openly discussing mathematics are you often greeted with blank faces?

With most of my work being in PHP I find that mathematics are not as widely used as a lot would think. Itís different if we were using something like C where you need to constantly handle memory allocations and pointers. There is a lot of built in functionality which makes this not a huge part of my job.

Let's say you're at a interview for a job and the interviewer asks you to make examples of bad and good software and explain. What would you say? (Would interpret it as a trick question, or give the answer?)

I would not interpret it as a trick question and instead tell them that good code is efficient, documented, robust and abstracted for re-usability.

Did you pick up coding style from the people you worked with or some other way?

A lot of my coding style comes form peaking at other peoples code, those that are more talented, along with books on programming. Most companies will have different coding standards which you will have to get used to. They may be little things but once you get used to them it will make everything a lot easier for everything.

Again the situation when you're on a interview. If the interviewer asks you what was wrong in your previous job post? (Would you risk of revealing some firm secrets by answering that or would you avoid that question somehow?)

Never ever speak poorly of a previous employer. If you are asked this it is usually a trap and they are expecting you to defer the question.

How much of your current knowledge did you gain at your work post?

Iíve learned quite a bit and continue to learn. Not necessarily new and better ways to do things but I have become a lot more familiar with things like the code base and redhat. Mainly things that are only pertinent to the current job posting.

Most of you have been in the industry for some time now; some for a longer period than others.

yes

My question is: do you still find yourself motivated to go home after work and learn some technology related things outside of work, or is it more of a 9-5 job now for you and just do it for a paycheck.


Iím a nerd, I enjoy what I do and I am on salary. I do it for the paycheck but because I like what I do Iím fine with coming in an hour earlier and working overtime for nothing. My work environment is a part of my daily routine and although I have more freedom at home Iím generally just as happy.

How do you guys make it so that the job remains exciting.

Iím in a position where the code that I work on is so vast and constantly changing that it hasnít become a problem of lack of excitement.

Also, targetted at SixOfEleven, pbl and the rest of you that have been "in the real world" for a fair time, what kind of things should we do alongside university to make it more useful? I currently freelance as a website developer but I also try to have programming projects, but all I can ever think of are things that do not really push boundaries or anything!

Get on board with an open source project. They are fun, you will learn a lot and they look good on a resume.

since you started programing, what has been your favorite project, personal or work related.

I have a web crawler that I started working on a few months ago. With this web crawler I filled up one of dreamhostís mysql databases and they got a little mad since it crashed and other customers on that server were down for a while. This has definitely been one of my favorite projects and one that I have invested a fair amount of money into. It will also be the data for a search engine I built a few years ago when I was in high-school.

Are you guys participating/used to participate at open source projects? Why did you do it/are doing it? - sense of achievement, getting better at programming, boredom?

Usually an open source project comes from boredom of ones downtime. I always recommend that people should get involved with open-source projects just because it will allow them to better their skills as a developer by seeing other peopleís code or teaching others.

What has been your favorite project during your career? Why was it your favorite? Was it an easy or hard project to do?

My favorite thing professionally was working for a company that built virtual touring software for hotels, etc. In this project I was the only server side developer which gave me the freedom to make calls, write the back-end the way that I wanted to and eventually write some pretty cool things that I was able to bolt into my own framework such as multi language support, etc.

Do you find that you are happy with your line of work? If you could change to some other (realistic) line of work, would you?

The only change I would ever make is moving myself from server to client so long as it uses java, c#, c++ etc.

At what age did you seriously get into programming?

I tinkered around with c++ at the age of 12, messed around with html at 9(I know...) and didnít get started heavily into it until 13 when a friend, who is also a dream in coder, recommended Perl in 24 hours.

1. What do you think is the greatest strength and weakness the java programming language has compared to other languages?

The greatest strength it has is that it is so object oriented and it offers a lot of flexibility. The weakness is the initial load time; it has gotten better but it isnít great.
Was This Post Helpful? 3
  • +
  • -

#19 NecroWinter  Icon User is offline

  • D.I.C Regular

Reputation: 38
  • View blog
  • Posts: 321
  • Joined: 21-October 11

Re: Q&A- Answers

Posted 14 March 2012 - 01:10 PM

what are typical jobs found for something with a degree in CIS (Associates) currently pursuing a BS in Comp Sci?

Im pretty much a programmer through and through, I do know some networking though. Web Dev would be an easy transition.

Im open to doing independent coding. Just not sure how to go about it

This post has been edited by NecroWinter: 14 March 2012 - 01:12 PM

Was This Post Helpful? 0
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2