how to be the best damn programmer I can be?

Discussion in 'OT Technology' started by HardTech, May 3, 2006.

  1. HardTech

    HardTech hungry

    Joined:
    May 5, 2000
    Messages:
    28,103
    Likes Received:
    1
    Location:
    NorCal
    I like programming and have done well in all of my programming classes (except for my first one). I program mainly in Java since all of my classes were in Java and I have a full-time position starting in June as a Java developer

    I enjoy sitting at a computer for hours just cranking out code, not resting until it's done. I guess that's why I got a job in it, but I'm afraid I don't know industry best practices. The teachers never really told us that stuff, and we'd get a good score if our program worked since my graduate program is made up of computer people who don't like to program (Information Systems).

    Since programming is something that I like and will pay my bills for the next few years, how can I learn to be the best programmer I can be?

    I mean, stuff like ArrayLists vs. Vectors, FileWriter vs. PrintWriter, etc. etc.

    kthxbye
     
  2. Frequency

    Frequency New Member

    Joined:
    Dec 30, 2004
    Messages:
    7,504
    Likes Received:
    0
    Location:
    PA
    Good habits.
    try to learn something big new bi-weekly.
    use tools to your advantage.(nDoc is a nice one)
    reuseable code.
    and documentation.

    some big things i see where i work
     
  3. Leb_CRX

    Leb_CRX OT's resident terrorist

    Joined:
    Apr 22, 2001
    Messages:
    39,994
    Likes Received:
    0
    Location:
    Ottawa, Canada
    regarding the industry and pleasing it as a whole, IMO half of it is social skills

    since most programmers are geeks who live at mom's house, laugh in a weird way, and watch simpsons too much, stand out if you don't already

    thats what I do, I not only get laid by the ladies, but I am also frequently envied by the local geek squad, loved by management, and I can talk my way out of any shitty code
     
  4. YoSmoovKid

    YoSmoovKid New Member

    Joined:
    Jul 21, 2005
    Messages:
    612
    Likes Received:
    0
    Location:
    Capitol of NJ

    :rofl: Very true what you say about "social skills"
     
  5. HardTech

    HardTech hungry

    Joined:
    May 5, 2000
    Messages:
    28,103
    Likes Received:
    1
    Location:
    NorCal
    it's that easy, huh?

    I think I'm far ahead of the programming crowd in terms of social skill and just basic sense of what's going on around me. Not to mention, I'm dead sexy and groom myself frequently.
     
  6. Leb_CRX

    Leb_CRX OT's resident terrorist

    Joined:
    Apr 22, 2001
    Messages:
    39,994
    Likes Received:
    0
    Location:
    Ottawa, Canada
    I am just trying to point out that half of being good at anything (esp IT) is something overlooked for the mostpart, and that's how a person handles themself

    that's all :naughty:
     
  7. HardTech

    HardTech hungry

    Joined:
    May 5, 2000
    Messages:
    28,103
    Likes Received:
    1
    Location:
    NorCal
    that's great

    because I'm handling myself right now :naughty:
     
  8. CyberBullets

    CyberBullets I reach to the sky, and call out your name. If I c

    Joined:
    Nov 13, 2001
    Messages:
    11,865
    Likes Received:
    0
    Location:
    BC, Canada/Stockholm, Sweden
    1) Analysis
    2) Proper Design (squence diagrams, use case diagrams & writesups, etc)
    3) Patterns
    4) Code your design and patterns.

    It's easy to write code, it's hard to plan everything out before correctly to make the programming easy.
     
  9. deusexaethera

    deusexaethera OT Supporter

    Joined:
    Jan 27, 2005
    Messages:
    19,712
    Likes Received:
    0
    2a) Sketch your user interface and show it to someone who has no idea what the program does. If you can explain the basics in less than two minutes, it's a good interface.

    5) When you modify one part of your code, modify the rest to work properly with it instead of kluging a workaround to save time.
     
  10. CyberBullets

    CyberBullets I reach to the sky, and call out your name. If I c

    Joined:
    Nov 13, 2001
    Messages:
    11,865
    Likes Received:
    0
    Location:
    BC, Canada/Stockholm, Sweden
    Good additions.

    As well, when desiging, tier off your program.

    Layer 1 - GUI
    Layer 2 - Code
    Layer 3 - Support Utility Code

    If at one time, any layer changes, the other 2 should be unaffected. (Unless you completely change what message the function between the layers returns). This provides a higher level of abstraction, and makes for cleaner code.
     
  11. deusexaethera

    deusexaethera OT Supporter

    Joined:
    Jan 27, 2005
    Messages:
    19,712
    Likes Received:
    0
    Thanks. I guess that software engineering degree wasn't for naught, after all.

    (returns to fixing CAD drawings)
     
  12. jwynn

    jwynn Yeah I Know I Dont Have Enough Posts

    Joined:
    Jan 28, 2006
    Messages:
    288
    Likes Received:
    0
    Location:
    FL
    Do NOT tie yourself into one language.

    Program, program, program.

    One of my professors told me that when she was a grad student she locked herself in her office with a bottle of scotch and her laptop and didnt leave till she knew LISP. Time, dedication, and more of the same.

    Learn C, C++, LISP, PERL.

    Java, C#, VB are fine for quick no thinking, no performance apps. But you need to learn the originals to learn how to program.

    No offense.

    Leave the GUI for those people who are good at it. Either you are or you arent.
     
  13. Leb_CRX

    Leb_CRX OT's resident terrorist

    Joined:
    Apr 22, 2001
    Messages:
    39,994
    Likes Received:
    0
    Location:
    Ottawa, Canada
    I once knew a bitch who cut herself for attention

    honestly

    and quite frankly, your teacher and that self mutilating cum disposal appear to be nearing the same level of awesome-ness
     
  14. deusexaethera

    deusexaethera OT Supporter

    Joined:
    Jan 27, 2005
    Messages:
    19,712
    Likes Received:
    0
    Not that I don't enjoy fantasizing about slapping people who hurt themselves just to see if anyone cares enough to stop them, but "self-mutilating cum disposal" is totally inappropriate for this forum. Take it to Off-Topic.
     
  15. D1G1T4L

    D1G1T4L Active Member

    Joined:
    May 4, 2001
    Messages:
    16,489
    Likes Received:
    0
    Location:
    Bay Area
    i am sorta weak in a field of algorithms and big O
    how can i get better at that?

    i also seriously need to learn some design pattern books
     
  16. deusexaethera

    deusexaethera OT Supporter

    Joined:
    Jan 27, 2005
    Messages:
    19,712
    Likes Received:
    0
    It sounds like what you want is to be a software engineer, not a programmer. Design and implementation have been split into two fields for good reason: nobody, no matter how good at one or the other they are, can be adequately good at both for anything besides the smallest of projects.
     
  17. Peyomp

    Peyomp New Member

    Joined:
    Jan 11, 2002
    Messages:
    14,017
    Likes Received:
    0
  18. D1G1T4L

    D1G1T4L Active Member

    Joined:
    May 4, 2001
    Messages:
    16,489
    Likes Received:
    0
    Location:
    Bay Area
    so whats the difference between software engineers and programmers?
    software engineers design the project and programmers implement it?
     
  19. jwynn

    jwynn Yeah I Know I Dont Have Enough Posts

    Joined:
    Jan 28, 2006
    Messages:
    288
    Likes Received:
    0
    Location:
    FL
    Word. Anything this guy says is pretty much spot on.
     
  20. Peyomp

    Peyomp New Member

    Joined:
    Jan 11, 2002
    Messages:
    14,017
    Likes Received:
    0
    Alot of people actually do this, but its a mistake and I'll tell you why. There are a number of people who's code I've read that will NEVER EVER work for a company that I already work for. If I hear their name, I go to management and tell them that they will tank the engineering department intentionally by writing shit code. People remember the names they see in code. So while your strategy will help you keep one job, it will hurt you when you try to get another. And I know you're probably kidding, but your strategy is actually real so it merits comment.

    Instead: Write as much commentary as you write actual code. Never go below a 1:1 ration of comment:code. I should be able to learn the language you are writing in by reading your code, if I donut know it. If you do this, then other engineers will want to work with you. And this will pay off in the long run.
     
  21. Peyomp

    Peyomp New Member

    Joined:
    Jan 11, 2002
    Messages:
    14,017
    Likes Received:
    0
    Its true.
     
  22. Cthalupa

    Cthalupa New Member

    Joined:
    May 5, 2006
    Messages:
    46,930
    Likes Received:
    0
    Location:
    Dallas, Texas
    Reusable code. Don't reinvent the wheel. We're in a world of OOness, so use it to your advantage.

    Learn as many languages as you can, and be good at them. Excel at one or two.


    Social skills. Network with other people. With your project manager, your coworkers, higher ups, etc. You don't want to be "Just that geek over in cube #27457372". You want to be "Jim, that nice programmer who did so and so project for us, and drank with us in the bar after the Christmas party."


    Comment your code. Various reasons for this:
    1. It's useful. Say you're in a long term spot, and you'll likely have to work with this code in the future. However good your memory might be, it's going to tell you to fuck off when you look at code you haven't worked on in the past 6 months. I've been doing quick hacks of my own without any comments, left them minimized for a few hours, come back with some coffee, and sat there wondering "What in the world was this guy doing?"

    2. Say you're in a junior position when you write the code, and later get promoted. Some work needs to be done on that program - Do you want to deal with it, or let the new guy handle it? You make his job easier, and you don't have to go back and fix his mistakes.

    3. As noted above, while writing uncommented code might make it harder for your company to replace you, you can't use them for a reference, and if a company speaks with them, they'll hear all about your poor habits.



    I'm going to repeat learn multiple languages. You want to be as diverse as possible, because everyone else is doing the same thing. You may be the most uber awesome C++ developer EVER, but if some guy who knows plenty of C++, plus perl, and python, and lisp, and SQL, with a project that requires good knowledge in several subjects, but not amazing knowledge in any, who do you think is going to get the job?

    There's always someone with more experience and more skill than you.


    This is especially true when you're just breaking into the industry. A half decade or so down the road, when you've got a nice resume, and enough experience under your belt to start landing the really good jobs, keep the knowledge of other languages you've learned up, and stay on top of new and promising languages, but spend more time excelling at a specific one, if that's what you'd like to do. Never fall behind. Ever. Programming is a tough field, and one of those that requires the most constant amount of learning and relearning out there.
     
  23. Shibboleth

    Shibboleth teh mad Plato skillz

    Joined:
    Sep 29, 2004
    Messages:
    1,769
    Likes Received:
    0
  24. Leb_CRX

    Leb_CRX OT's resident terrorist

    Joined:
    Apr 22, 2001
    Messages:
    39,994
    Likes Received:
    0
    Location:
    Ottawa, Canada
    I enjoy self mutilating cum disposals in C&P's

    truthfully

    love,
    your mother's lover
     

Share This Page