Thread: Programming - general advice

  1. #1
    Registered User
    Join Date
    Jul 2010
    Posts
    10

    Programming - general advice

    I thought it would be good to write down a list of things you can do to improve your programming and job prospects when you have learned what you need to. To get the ball rolling:

    a. learn the syntax of the language(and a Framework if there is one. E.g. .NET)
    b. improve your coding by practising lots- the more you do the more you will reduce the number of errors you make. Having written lots of code you will remember what works and what does not
    c. improve your problem solving-you will often have to work on this before writing your program
    d. create a portfolio of programs which you can present to potential employers-perhaps upload them to a website
    e. Put yourself in the shoes of the person using your program-what would you like to see, how would you like to use the program? This will help you (as a programmer) make the program easier to use.
    f. Take some exams :-)

    Suggestions, additions and comments are most welcome.

  2. #2
    Registered User
    Join Date
    Aug 2010
    Location
    New York
    Posts
    11
    while this may or may not be related, knowing Win32, OpenGL (or DirectX),
    and afew other major APIs will give you a good chance to have success.

  3. #3
    Registered User
    Join Date
    Jul 2010
    Posts
    10

    programming

    Oh of course its relevant. Anything that helps is useful :-)

    Quote Originally Posted by ComputerWarrior View Post
    while this may or may not be related, knowing Win32, OpenGL (or DirectX),
    and afew other major APIs will give you a good chance to have success.

  4. #4
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    e. Put yourself in the shoes of the person using your program-what would you like to see, how would you like to use the program? This will help you (as a programmer) make the program easier to use.
    I think this single thing is the main reason why so much software is absolutely awful. Do NOT try to put yourself in the user's shoes, because you can't. The user is God. If you need a reference for what the user wants, that reference is the user. The reference is *never* yourself and your clever ideas.

    If you are the user, or the users are other people like you, then the situation is obviously different, but that's not the usual case.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  5. #5
    Anti-Poster
    Join Date
    Feb 2002
    Posts
    1,401
    I'd disagree. If the developer cannot understand the user's needs enough to imagine a number of creative solutions, then the developer has no business working on that project. Obviously you have to check to make sure your imaginations are useful to the end user, but I wouldn't go so far as to say that a programmer shouldn't even try to imagine what would be useful to the user.
    If I did your homework for you, then you might pass your class without learning how to write a program like this. Then you might graduate and get your degree without learning how to write a program like this. You might become a professional programmer without knowing how to write a program like this. Someday you might work on a project with me without knowing how to write a program like this. Then I would have to do you serious bodily harm. - Jack Klein

  6. #6
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by pianorain View Post
    I'd disagree. If the developer cannot understand the user's needs enough to imagine a number of creative solutions, then the developer has no business working on that project. Obviously you have to check to make sure your imaginations are useful to the end user, but I wouldn't go so far as to say that a programmer shouldn't even try to imagine what would be useful to the user.
    Solutions to stated problems are one thing, and problem domain knowledge and creativity are obviously extremely helpful. But IMHO the feature list and any specific requirements set down by the user are off limits to any sort of creativity.

    I'm not saying you can't talk to the user and maybe change their mind about something, but once you have paper saying the features will be such-and-such and the interface will work like this-and-that, then that is the ultimate authority on what you need to do for the user.

    The implementation guts are where you get to do your thing as a developer.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  7. #7
    Registered User claudiu's Avatar
    Join Date
    Feb 2010
    Location
    London, United Kingdom
    Posts
    2,094
    Quote Originally Posted by brewbuck View Post
    Solutions to stated problems are one thing, and problem domain knowledge and creativity are obviously extremely helpful. But IMHO the feature list and any specific requirements set down by the user are off limits to any sort of creativity.

    I'm not saying you can't talk to the user and maybe change their mind about something, but once you have paper saying the features will be such-and-such and the interface will work like this-and-that, then that is the ultimate authority on what you need to do for the user.

    The implementation guts are where you get to do your thing as a developer.
    This is not the case in consulting. I met with a large nr of customers that walk in and say "what is the best way to get this done?" Obviously best is a different thing everytime.
    1. Get rid of gets(). Never ever ever use it again. Replace it with fgets() and use that instead.
    2. Get rid of void main and replace it with int main(void) and return 0 at the end of the function.
    3. Get rid of conio.h and other antiquated DOS crap headers.
    4. Don't cast the return value of malloc, even if you always always always make sure that stdlib.h is included.

  8. #8
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by claudiu View Post
    This is not the case in consulting. I met with a large nr of customers that walk in and say "what is the best way to get this done?" Obviously best is a different thing everytime.
    I've met very few users who care how something gets done, as long as it gets done. But nevermind, my intention isn't a thread hijack or a flamewar.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  9. #9
    Anti-Poster
    Join Date
    Feb 2002
    Posts
    1,401
    Quote Originally Posted by brewbuck View Post
    Solutions to stated problems are one thing, and problem domain knowledge and creativity are obviously extremely helpful. But IMHO the feature list and any specific requirements set down by the user are off limits to any sort of creativity.
    I'm pretty sure I agree, as long as the user doesn't go so far as to say "this is exactly how I want the problem solved". In my mind, that's the role of the developer. I don't know how many times I've had a client say, "I want it done like this," and then change his mind after seeing their way contrasted with a couple of different ways I came up with.

    Perhaps how we read (e) was different. My interpretation was basically "Consider use-cases", which I think is extremely valuable in terms of design.
    If I did your homework for you, then you might pass your class without learning how to write a program like this. Then you might graduate and get your degree without learning how to write a program like this. You might become a professional programmer without knowing how to write a program like this. Someday you might work on a project with me without knowing how to write a program like this. Then I would have to do you serious bodily harm. - Jack Klein

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Fortran programmer new to c++. Looking for general advice.
    By Duff-Man in forum C++ Programming
    Replies: 12
    Last Post: 10-14-2009, 12:33 AM
  2. General Advice (RTS Game)
    By b00l34n in forum Game Programming
    Replies: 2
    Last Post: 05-07-2005, 12:34 PM
  3. girl friend advice (prob. the wrong place)
    By B0bDole in forum A Brief History of Cprogramming.com
    Replies: 15
    Last Post: 10-22-2004, 06:38 PM
  4. Who's telling the truth??? Career Advice Needed Badly
    By Ican'tCjax,fl in forum C Programming
    Replies: 1
    Last Post: 11-06-2002, 06:16 PM
  5. general advice on jobs
    By Unregistered in forum A Brief History of Cprogramming.com
    Replies: 3
    Last Post: 07-25-2002, 08:36 PM