I could be featured as a wtf programmer, can I get a job?



  • lots of people like to play piano but only a select few get to play professionally. Same with coding apparently. According to the wtf's though it makes it seem like it might just be possible. False hope?



  • on the other hand .... like the world needs another coder. But another piano player would be welcome!



  • Coding can be an art, but most code is just supposed to be usefull, not artistic. For that reason, most coder are not artists.
    On the other hand, piano playing is almost always an art, at least it is meant to be.



  • I would say be atleast able to make elegant code as a hobby. I can't speak for all jobs, but atleast at my job and a few people i've spoken too that work somewhere else as a developer/programmer, you don't get enough time to make elegant code as work. (which i guess is the reason this site can even exist)

    I've made  a fair share of WTF's myself in the past, some where learning experiance but most where simply because i needed more time to refactor existing code, that had a WTF or two in them to a more elegant whole. But when it works (or seems to work), and you've got a gazillion more things to do, you simply leave a todo comment and hope you'll get some time later to make it beter.

    You never get that time though.



  • [quote user="stratos"]

    I would say be atleast able to make elegant code as a hobby. I can't
    speak for all jobs, but atleast at my job and a few people i've spoken
    too that work somewhere else as a developer/programmer, you don't get
    enough time to make elegant code as work. (which i guess is the reason
    this site can even exist)

    I've made  a fair share of WTF's
    myself in the past, some where learning experiance but most where
    simply because i needed more time to refactor existing code, that had a
    WTF or two in them to a more elegant whole. But when it works (or seems
    to work), and you've got a gazillion more things to do, you simply
    leave a todo comment and hope you'll get some time later to make it
    beter.

    You never get that time though.

    [/quote]

    Bullshit (sorry). It's common for programmers to say "I don't have enough time to make it right" when they have already wasted their time in making it wrong. I admit, getting it right on first attempt takes a lot of knowledge and experience. Anyway, doing something "right" does not necessarily mean you have to write more code or more complex code. Quite the contrary, real beauty shows in short but expressive code, easy to read and understand; every functionality is implemented in a method of the object class it belongs to, classes have a well-defined responsibility. Excellent code looks like it is easy to make, once it is done.



  • [quote user="ammoQ"] It's common for programmers to say "I don't have enough time to make it right" when they have already wasted their time in making it wrong. [/quote]


    Programming is, by and large, an inexact science/art practiced by people who really only know about half what they should and managed by people who only know a quarter of what they should.  That's just the nature of industry, and one of the challenges it has to face.[1]  Someone probably already quoted Fred Brooks elsewhere, but "Plan to throw the first one away, because you will anyway" is good advice.

    It doesn't get mentioned much, but there's an epidemic of bad estimation skills in the industry.   Estimates are tossed off with a couple moments thought, design is often left out, test is almost certainly shortchanged -- and a project that makes time for fixing bugs before the final release is as rare as hens teeth.    You'd think that the accompanying epidemic of wildly over-budget and/or poor quality software projects would point most CxOs toward the obvious answer, but there you go.

    -cw


    [1] It's also watched by people who don't know a 1/10 what they need to, but pronounce judgement anyway :)



  • [quote user="ammoQ"][quote user="stratos"]

    I would say be atleast able to make elegant code as a hobby. I can't
    speak for all jobs, but atleast at my job and a few people i've spoken
    too that work somewhere else as a developer/programmer, you don't get
    enough time to make elegant code as work. (which i guess is the reason
    this site can even exist)

    I've made  a fair share of WTF's
    myself in the past, some where learning experiance but most where
    simply because i needed more time to refactor existing code, that had a
    WTF or two in them to a more elegant whole. But when it works (or seems
    to work), and you've got a gazillion more things to do, you simply
    leave a todo comment and hope you'll get some time later to make it
    beter.

    You never get that time though.

    [/quote]

    Bullshit
    (sorry). It's common for programmers to say "I don't have enough time
    to make it right" when they have already wasted their time in making it
    wrong. I admit, getting it right on first attempt takes a lot of
    knowledge and experience. Anyway, doing something "right" does not
    necessarily mean you have to write more code or more complex code.
    Quite the contrary, real beauty shows in short but expressive code,
    easy to read and understand; every functionality is implemented in a
    method of the object class it belongs to, classes have a well-defined
    responsibility. Excellent code looks like it is easy to make, once it
    is done.

    [/quote]

     

    Writing elegant code (indeed
    quite apt defined as "short but expressive code, easy to read and
    understand" ) is something i think every programmer strives for.
    However i certainly wasn't trying to imply that elegant code was longer
    or more complex, quite the contrary, mostly i find small functions that
    do exactly what they are supposed to do in a few lines that are self
    evident to there functioning, to be the most elegant.

    But what i
    gather from your comment. (assuming you are a more experienced
    programmer) is that at some time it will be possible to write elegant
    code from the start? or do you simply refactor your code all the time?

    Also
    while i am a programmer and i certainly think about myself as such. I
    work at a web developerment company that makes web pages and web
    applications. Because of this and a few other reasons, atleast 70% of a
    project is writing code and only a fraction of it is designing the
    project. And deadlines are mostly expressed in days or weeks or even
    sometimes hours. You can think of it wat you will (i've seen a strong
    tendensie among "real programmers" to disregard
    web-programmers/developer as not really programmers.), but i assure
    you that what i do can be called programming, and when i say i don't
    have the time to write elegant code, then i will mean it. And most
    often this happens in the form of code rot, when i am asked to change
    functionality that i had not foreseen to change. You could offcourse
    opt that if i where a "real programmer" i would have foreseen that even
    that part could have changed. But perhaps there lies experience.



  • [quote user="stratos"] 

    Writing elegant code (indeed
    quite apt defined as "short but expressive code, easy to read and
    understand" ) is something i think every programmer strives for.
    However i certainly wasn't trying to imply that elegant code was longer
    or more complex, quite the contrary, mostly i find small functions that
    do exactly what they are supposed to do in a few lines that are self
    evident to there functioning, to be the most elegant.

    But what i
    gather from your comment. (assuming you are a more experienced
    programmer) is that at some time it will be possible to write elegant
    code from the start? or do you simply refactor your code all the time?

     [/quote]

    Refactoring is inevitable as requirements change. But IMO refactoring should not be defined as the job of cleaning up the mess that happened when nobody had the time to write good code, though you have to do it if that is the situation. The more typical case is that new features make a method or class too big, so you have to split it.

    Yes, in many cases I'm able to write elegant code from the start, but I must admit that I've been working on relatively similar projects for the last few years, so you could argue it's not "from the start".

     Edit: Disclaimer: Let's wait and see if I still consider my current code "elegant" a few years from now.
     

     

    Also
    while i am a programmer and i certainly think about myself as such. I
    work at a web developerment company that makes web pages and web
    applications. Because of this and a few other reasons, atleast 70% of a
    project is writing code and only a fraction of it is designing the
    project. And deadlines are mostly expressed in days or weeks or even
    sometimes hours. You can think of it wat you will (i've seen a strong
    tendensie among "real programmers" to disregard
    web-programmers/developer as not really programmers.), but i assure
    you that what i do can be called programming, and when i say i don't
    have the time to write elegant code, then i will mean it.

    Most people here do web programming and disregarding that as "not real programmers" would be considered a flamebait.
    But I agree that it's much harder for the web programmer to get it right from the start, for several reasons, e.g. browser-specific hacks and workarounds.

     

    And most often this happens in the form of code rot, when i am asked to change functionality that i had not foreseen to change. You could offcourse opt that if i where a "real programmer" i would have foreseen that even that part could have changed. But perhaps there lies experience.

    This is exactly where refactoring should take place. Nobody can forsee all changes and it leads to bad style if a program tries to anticipate too many changes that might come or not. 



  • [quote user="aliber4079"]lots of people like to play piano but only a select few get to play professionally. Same with coding apparently. According to the wtf's though it makes it seem like it might just be possible. False hope?
    [/quote]

    You most certainly could, assuming your job isn't outsourced. Get a qualification. You don't even have to be very good to get qualified, the schools want to maintain percentages, so you pretty much just need to buy one of those Computer "Science" things. Then you'll have no problem getting a job.

    You don't want to appear too good. That's a threat to morale. Just appear competent. Management will prefer people who follow predictable patterns to people who actually do good, efficient work. Predicatable people are manageable.

    Follow the practice mentioned above of developing in an unrepeatable ad-hoc kind of way. Work quickly and leave TODO comments in your code. That way, people will see that you intended to change it may still respect you when thay come across your work later.

    Remember though that you are aiming to be "senior", which means you will have to learn to write elegant OO code. Even when the requirements suggest that messy looking code might be better, such as java classes with tiny footprints on tiny devices, you are still better off with a complete enterprise level object oriented design full of Brokers, Factories and ToxicWasteDumps.

    The "correct" way is always best, and that means following established norms. Follow the advice I have given you and your future career in IT is assured, as is the continuing supply of material for this site.

    There is clearly no other way.


Log in to reply