Junior developer woes



  • @JazzyJosh said:

    Students who are active in residential life have lower dropout rates

    Students who have someone checking up on them constantly are more consistent doing their homework. However, the same students still have to learn self-sufficiency at some point in their lives, hopefully before they work for me. University is supposed to be that time.

    I love students that come from huge schools like Penn State. Big schools will let you fail if you insist on doing so.


  • Grade A Premium Asshole

    @Jaime said:

    I love students that come from huge schools like Penn State.

    Is it too soon to make a joke about pederasty?



  • Same here. I did take some CS classes, though, during and after my career transition to software development.


  • FoxDev

    @darkmatter said:

    I don't buy it. People graduating from university with a degree in CS should be at least competent. The universities should be flunking people that can't do any better than the OP. Some people just are not made out to think in the logical sense that is required for programming. Those people should be doing something else.

    QFT.
    Doesn't alter my original point though.
    @blakeyrat said:
    I've never asserted that we should force people to learn programming; my argument is just, "stop putting up barriers blocking people from even trying".

    Absolutely, although I'd add encourage to that. Obviously if the person doesn't want to, fair enough, but I know if I ever have little hoglets, I'm going to teach them at least a little basic programming, enough so they know it's not exactly a trivial job.



  • @davewtf said:

    I have never in my life seen code this poor. There are too many WTFs for me to include them all here, so instead I'll just provide the most recent one that I had to fix:

    Who forgot to verify that he could write acceptable code before he was hired? Just like many here, I expect a CS grad to have some basics down. But, it's still the employer's responsibility to vet new hires.



  • @slavdude said:

    I did take some CS classes, though,

    I learned pretty much everything I know on the job, up to and including "what is a data structure (and why would I want one)?"
    I eventually got wise to reading CS books though: Meyers' Effective C++ came along at just the right time that I was able to make sense of it...


  • :belt_onion:

    @redwizard said:

    Complain to Jeff if linking cross-topic results in a Necro,

    It only necros me because you linked my post, which I believe it should notify me about that. I didn't start that other topic.
    I just don't understand why you linked my post specifically, which has next to no content relating to this context.



  • @darkmatter said:

    It only necros me because you linked my post, which I believe it should notify me about that. I didn't start that other topic.I just don't understand why you linked my post specifically, which has next to no content relating to this context.

    Holy crap! More discorounding!

    Meant to link to post 54, not 53 (my experience from designing something as a noob, not your post just prior), but when you go to my post, the address bar URL reads as pointing to your post. Copy/pasted that without checking. -_- Didn't catch that until now, sorry.

    @discoursebot!



  • @redwizard - Days Since Last Discourse Bug: -1


  • FoxDev

    And that's why you use the icon to get the right link 😛

    Or the post timestamp, because that's the Most Discoverable Feature Ever™ :wtf:



  • @RaceProUK said:

    And that's why you use the icon to get the right link

    ...because reading the address bar that comes up as a result of you going to the post you searched for in the first place is Doing It Wrong™ unreliable because Discourse changes it for, oh I don't know - "readability"? (Sounds like the made up word "drinkability"™ used in Budweiser beer commercials that doesn't mean anything really.)



  • @redwizard said:

    Sounds like the made up word "drinkability"™ used in Budweiser beer commercials that doesn't mean anything really.

    Not being a beer drinker, I am basing this on statements by others, but I understand

    drinkability : Budweiser :: usability : Discourse

    or perhaps

    drinkability : Budweiser :: discoverability : Discourse



  • @HardwareGeek said:

    drinkability : Budweiser :: discoverability : Discourse

    Lets not get hasty; no matter how bad the product, those horses are doing their job admirably.



  • @xaade said:

    So, you actually ruined his career?

    @Polygeekery said:
    And you thought that a n00b could handle any part of this on his own? Really?

    @xaade said:
    I'm sorry, I'm tired of businesses wanting to put zero effort into improving the career and skills of their employees, then complaining that they didn't get an all-star at hiring.

    @Polygeekery said:
    Or even having realistic expectations when you hire them...

    On day two of my first job in IT, I was phone support for about five different undocumented applications that were highly customized for each client. The hiring manager said I'd be seated between two 3+ year veterans, so they'd bring me up to speed. Not surprisingly, when calls came in and I had questions, I was given the wonderful fuck-you response of "Go look in the code."

    My first big project was to create a user-customizable report because different clients wanted the data sliced different ways, and hardcoding the customizations was becoming too much work. Knowing almost no SQL, I cobbled together something that almost worked in certain circumstances, and management later revealed that such a report was one of their "hardest problems"... which they decided to give to the new guy.

    After about a year of being chided for not releasing broken shit as fast as the veterans (what's testing?) and multiple cases of nearly being fired, the veterans started to come to me for help.

    Setting up your new guy to fail is twisted, sadistic, and all kinds of fucked-up. But sometimes it works.



  • I'm a high school dropout that got into IT by random luck at 19 years old and had to push my weight around in an office environment that was very hostile to newcomers. Fortunately, I was the one of the most competent guys at actually getting shit done -- that is not a skill I've seen every guy with an university degree have.

    The fact that I'm a quick learner and that I also get shit done helped me make progress in strides even when I was given almost nothing in way of formal teaching, not even at my first job. A lot of working is more a matter of attitude than anything else, and it applies to pretty much everything. The cool thing about IT is that most of the working knowledge to make progress in it is at your fingertips nowadays, in the form of Google -- so really, there's hardly any excuse to be incompetent at it.



  • @Groaner said:

    Setting up your new guy to fail is twisted, sadistic, and all kinds of fucked-up. But sometimes it works. the new guy is able to suck it up and overcome the challenge of swimming upstream with a leaky boat and no paddle in a stream full of piranhas and win anyway. It can and does happen.

    FTFY.



  • @redwizard said:

    @Groaner said:
    Setting up your new guy to fail is twisted, sadistic, and all kinds of fucked-up. But sometimes it works. the new guy is able to suck it up and overcome the challenge of swimming upstream with a leaky boat and no paddle in a stream full of piranhas and win anyway. It can and does happen. And for those that do, it would be in the best interest of management to immediately double their salaries before they take their newly-proven skills to a more sane employer.

    FTFY.

    FTFTFY



  • @blakeyrat said:

    Right; after choosing my major, I soon realized that universities taught either:

    1. stuff I already knew, or
    2. stuff I couldn't possibly anticipate ever needing in a programming career, like Advanced Calculus (turns out I was 100% correct in that regard)

    There's actually a third category: stuff you can look up online when you need it. Like the order of the parameters in some obscure Java constructor.



  • @blakeyrat said:

    I've probably done more good here by calling people idiots than all my university professors combined.

    No. You really have not. You just think you have.



  • @xaade said:

    The teacher shares responsibility for the students' education.

    If there's less than an average pass rate, and the normal distribution disagrees with the teacher's pass rate. There's a problem with the teacher.

    Then that is another thing that differs. My job is to provide the motivation, the means, and the opportunity for learning, to challenge the students when they think they know it, and to quality assure them when I think they know it. It is not to hold their hands.

    That said, if I would have to fail the code in the OP in an exam, I would consider myself to have failed too; this should have been caught much earlier.

    Also, if I have really low pass rate on a course, I will review the course together with a colleague to make sure that the right stuff was being taught in the right way. If we are satisfied that this is the case, then I am ok with giving a course where only 20% of the students pass in their first attempt. Such low pass rates would typically happen if the course is moved to a new context, where the students have different technical background and/or different expectations of how much independent work that is expected.

    The one thing I absolutely refuse to do is to stop treating my students as adults and take over responsibility for their learning.



  • I'm afraid you are the real wtf...

    When a company takes on a junior, and especially a junior just out of education, it also takes on some moral obligation towards that developer. As others have commented, there is a wide gulf between programming for a university assignment and programming in the real world.

    Someone should have taken responsibility for taking the junior under their wing, and keeping an eye on what he was doing. Someone should have been guiding him, encouraging him, and when he wondered off into WTF territory, giving him a gentle kick back on to the straight and narrow.

    At my place, all work has to be peer reviewed - usually within 24 hours of it being committed, and before it is submitted for the consideration of the test team. I was skeptical at first, but in a decent team this is an excellent practice - it allows for knowledge sharing, provides a safety net, and decreases the overall amount of work placed before the test team.

    What's not to like?



  • As a "junior" developer and having just finished reading all 171 posts in this topic, I feel it is my obligation to post about my (anecdotal) experiences... and then go to sleep. I'm mainly addressing the topics of qualifications, education, my university, and loans. I'm not commenting on the topic post directly or the nonsense about discourse.

    And Belgium you, Discourse, if you think I'm putting this all into one post.

    Qualifications
    As essentially a nobody to you and admittedly a relatively new entrant to the field of software engineering, I hope what I say about this stuff makes sense. Firstly, I agree with everyone in this topic who said our (that is, the US's) higher educational system is broken. Secondly, the best thing for our industry would be to have a higher bar to entry. This is probably most easily accomplished with certifications, as it is in other engineering disciplines. However, until SW engineering standards actually become real standards, this is unlikely to happen.

    I currently work with a "senior" engineer whom I have successfully ostracized from any real coding, because, unlike him, I actually know what the heck I'm doing. I've gotten away with this mostly because this engineer is held in low regard by the other senior engineers for continued incompetence. I would really like a world where such incompetence does not exist at such a level in SW engineering to support things such as the employment of this engineer and the continued operation of TDWTF. I understand that not everyone will be a rock star developer and mistakes and poor choices will still exist. But if something existed that prevented completely incompetent individuals from claiming to be software engineers/developers then it's at least a step in the right direction.

    Unfortunately, changing the curriculum in higher education alone is unlikely to solve that problem



  • Education
    I've found that the majority of computer science programs have grown like a tumor out of some other university department. Math, EE, general Engineering, and Physics have all been the starting point of CS degree programs at various institutions, and they never really let go. Each leaving some useless cruft behind in the form of "required classes." These waste the student's time with concepts they will rarely, if ever, need again in the general software development field.

    I was privileged to go to a university that was not like this, but instead focused on topics that are valued by industry. Despite this, and having instructors familiar with industry and not steeped in academia, out of the 40% of my class that graduated on time, there was still a bell curve in skill. There were completely incompetent individuals who somehow got carried through the program and now claim to be software developers, even if they couldn't code themselves out of a box.

    However, this was the result of only one small flaw in what was overall a very good program.



  • My University
    I went to a small university whose only degrees are in computer science. The program is designed to take 2.5 years divided into 10 quarters. Students take ~6 classes a quarter, usually split into 2 sets of 3 five-week classes. Total class time (lecture and lab) is 4-8 hours depending on class load and type of class. Most classes emphasize multi-person projects, which is the flaw that allowed many incompetent individuals to graduate.

    The first 2 quarters cover introductory concepts such as Intro to CS; Intro to OOP; HTML, CSS, XML, and JS; Intro to Java; and Logic among others. The next 4 quarters cover desktop and web application development in Java and C#, databases, information modeling, algorithms and data structures, and other stuff I can't remember right now. The next quarter (7th for those that are counting) is a larger project involving web services. The last 3 quarters each include a mandatory part-time (20hr./wk.) internship (they call it something else) where students work on some company's real product. Note: some of this has changed slightly since I graduated 2.5 years ago.

    In addition, there are general electives and CS electives sprinkled throughout the latter quarters and a few "how to college," "how to people," and "how to get job" classes.

    The university prides itself on teaching what industry wants new developers to know and having a high placement rate into well-paying jobs with many returning "customers" (businesses looking to hire).

    Overall, I feel my education there gave me a good starting point for many of the skills my job has required since I started. Even though 80%+ of what I've learned for my job happened after I graduated, I still consider the 2.5 years learning that first 20% worth my time.

    Those 2.5 years being worth my money is another story entirely.



  • Loans
    After some $20k in scholarships, I graduated with about $80k in student loans. The university made it very clear to me what I was approximately going to owe at the end of each academic year, and I signed an acknowledgement form with a lot of big numbers at the beginning of each said year.

    In the end, I maxed out both my subsidized and unsubsidized Stafford loans and had to put the remainder ($55k) on a payment plan at 10%. Despite the exceptionally high rate, this was still a pretty good deal as it required no credit check and no cosigner, as my parents had refused to cosign a Parent PLUS or private loan, and I had no other financially feasible higher education options (TRWTF).

    Another 2.5 years later, I have now paid off that $55k@10% and am happy to be employed in one of the most stable and high-paying occupations in existence.

    TL;DR
    SW engineering needs a higher bar to entry. There are too many incompetent SW developers. Most universities fail at CS. However, mine was pretty awesome. Getting student loans suck, but getting student loans to get into a high-paying career sucks less.

    I spent 2 hours writing all this, I think I deserve the quadruple post.



  • WARNING: Soapbox ahead!

    @IngenieurLogiciel said:

    As a "junior" developer and having just finished reading all 171 posts in this topic, I feel it is my obligation to post about my (anecdotal) experiences... and then go to sleep. I'm mainly addressing the topics of qualifications, education, my university, and loans. I'm not commenting on the topic post directly or the nonsense about discourse.

    And Belgium you, Discourse, if you think I'm putting this all into one post.

    Qualifications
    As essentially a nobody to you and admittedly a relatively new entrant to the field of software engineering, I hope what I say about this stuff makes sense. Firstly, I agree with everyone in this topic who said our (that is, the US's) higher educational system is broken. Secondly, the best thing for our industry would be to have a higher bar to entry. This is probably most easily accomplished with certifications, as it is in other engineering disciplines. However, until SW engineering standards actually become real standards, this is unlikely to happen.


    Hmm. Actual engineering-grade SW engineering standards. There's a thought. Of course, as long as the people hiring developers and politicking about them insist on calling them "coders", that won't happen, because then they'd have to acknowledge what it is they want to achieve by calling us(1) "coders". (And that is, of course, that we are a largely valueless undifferentiated mass of low-skilled interchangeable keyboard monkeys, worthy only of the minimum of respect and salary, assuming we aren't replaced by overseas low-skilled keyboard monkeys...)

    (1) By "us", of course, I mean "you". I'm not a "coder", and anyone who accepts being called that deserves what he gets. I'm a high-skilled professional, a developer, a programmer, a designer, a creative,(2) or maybe even a software "engineer". What I do is far more than just bashing out code, and anyone who wants to call me just a "coder" will get an earful of grumpiness in the style of our very own @blakeyrat.(3)

    (2) I subscribe to the very old idea that there is no difference between "art", "craft", and "technology", and that therefore artists, developers, and engineers are all "creatives". Programming is art, and craft, and technology, because there is no difference between these fields. Remember that the root word of "technology" is an ancient Greek word, rendered in our alphabet as "techne" or occasionally "tekhne", meaning "art".

    (3) Discourse's behaviour when you type an @ is totally wanked. It can fuck off.

    @IngenieurLogiciel said:

    I currently work with a "senior" engineer whom I have successfully ostracized from any real coding, because, unlike him, I actually know what the heck I'm doing. I've gotten away with this mostly because this engineer is held in low regard by the other senior engineers for continued incompetence. I would really like a world where such incompetence does not exist at such a level in SW engineering to support things such as the employment of this engineer and the continued operation of TDWTF. I understand that not everyone will be a rock star developer and mistakes and poor choices will still exist. But if something existed that prevented completely incompetent individuals from claiming to be software engineers/developers then it's at least a step in the right direction.

    I have a problem with this term "rock star developer". Way too many actual rock stars were drugged-out pissheads with no sense of personal discipline for me to be happy with anyone calling me a "rock star developer"...



  • And to put it into perspective, a quarter-generation ago there were no such thing as CS degrees, and developers produced just as good and hauntingly bad code as ever - just goes to prove how training and marketing go hand-in-hand to screw over consumers. :wtf:



  • @Groaner said:

    Setting up your new guy to fail is twisted, sadistic, and all kinds of fucked-up. But sometimes it works.

    Right; and sometimes a guy falling out of an airplane lands on a soft awning above the pillows and kittens warehouse. That doesn't mean it's a good idea to jump out of an airplane.



  • @Mikael_Svahnberg said:

    No. You really have not. You just think you have.

    I also never use humor or hyperbole. Everything I say is literally true all the time. I'm like a fucking Vulcan.



  • @blakeyrat said:

    I'm like a fucking Vulcan

    I could swear it's a lot less than seven years since you last called someone an idiot.



  • I just don't know how fucking obvious I can make a joke be until morons like Mikael_Svahnberg realize it's a joke.


  • BINNED

    @HardwareGeek said:

    I've always gotten more of a "make it so easy that people can do it even if they're bad at it" (and will continue to do so, producing WTF code, because it's so easy to make something that kinda, sorta works, that they don't realize they're bad at it) vibe from your posts.

    I got the same vibe from his posts on the subject.


  • Discourse touched me in a no-no place

    @Yamikuronue said:

    hoards of web programmers

    That's one horde that I'd never hoard.


  • FoxDev

    maybe if you made it funnier it would be easier to tell it's a joke?



  • @IngenieurLogiciel said:

    Physics... the starting point of CS degree programs at various institutions

    TRWTF

    Also I 🚩'ed for whoosh, it was pretty obvious



  • I laughed.


  • FoxDev

    @blakeyrat said:

    I laughed.

    strange, i didn't.

    still i guess that isn't really the point.


  • ♿ (Parody)

    @blakeyrat said:

    I laughed.

    So now you're not a vulcan?


  • Discourse touched me in a no-no place

    @boomzilla said:

    So now you're not a vulcan?

    Maybe he is, but only when it comes to sexual relations?

    @blakeyrat said:

    I'm like a fucking Vulcan.


  • FoxDev

    @boomzilla said:

    So now you're not a vulcan?

    apparently. IIRC Spock only ever laughed because he was a half breed although that does raise the question of why SarenSauronSarek and Amanda Grayson were an item.....


  • FoxDev

    @accalia said:

    Sauron

    I wonder what it would have been like if he was Spock's father instead of Sarek… 😄


  • ♿ (Parody)

    To be fair he only said he was like one. Unless he's also, like, a valleyrat.



  • @blakeyrat said:

    I just don't know how fucking obvious I can make a joke be until morons like Mikael_Svahnberg realize it's a joke.

    Nope. Still don't get it. Care to explain?


  • FoxDev

    TBH i put that one in as a joke as more people would get it compared to my initial wrong guess of Saren


  • ♿ (Parody)

    @accalia said:

    wrong guess of Saren

    Wronger?


  • Discourse touched me in a no-no place

    @RaceProUK said:

    My degree is in CS, from the University of Manchester no less. Six months into my first job, it was rendered forever irrelevant.

    Most of what is taught everywhere is irrelevant, but working out which bits are the irrelevant bits ahead of time is difficult, because different people need different things.

    It's also unfortunate that most of the interesting stuff can't be taught to undergraduates due to lack of time. The advanced stuff requires a lot of existing knowledge to appreciate, and time to think about the consequences of it too.


  • FoxDev

    well both are evil dudes and Sarek isn't.

    spellaring wise Saren is closer to Sarek than Sauron...

    also why is that image so pixelated?


  • FoxDev

    Picture filename: 437px-Sauron_hi_res-1-.jpg
    Dimensions: 200×286px

    :wtf:


  • FoxDev

    @RaceProUK said:

    I wonder what it would have been like if he was Spock's father instead of Sarek… 😄

    And when I re-read that, I read Shrek instead of Sarek 😆



  • @IngenieurLogiciel said:

    This is probably most easily accomplished with certifications, as it is in other engineering disciplines.

    As an engineer in another discipline (EE), I would like to point out that this is not as true as you seem to think it is. Such certifications are used in engineering disciplines such as Civil and Architectural Engineering, where people may die if a bridge or building collapses. They are required, AIUI, if you want to be an independent consultant. If you work for an engineering company, there must be a certified engineer to sign off on the work of junior or uncertified senior engineers, but they needn't be certified as long as they are supervised by someone who is. Getting the certification is necessary for career advancement, but it takes years of professional experience; it cannot be a barrier to entry.

    In other engineering disciplines, such as electronic or mechanical, certifications are rare. In theory, I could have gotten a PE certification, but it would have been a long, expensive process that would have had absolutely zero benefit to my career. The only situation in which it would be of any possible benefit whatsoever is if I were to set myself up as an independent consultant, and AFAIK, even in that situation certifications are not common. I'm pretty sure that now, with 20+ years of experience, I couldn't pass the PE exam, because I've forgotten a lot of "general" engineering knowledge that I learned in school but that is completely irrelevant to my actual job.

    I'm not saying that certifying Software Engineers is either a good or bad idea. But looking to other engineering disciplines for a model won't get you there, and it WON'T keep out incompetent NCGs, because that's not its purpose.


Log in to reply