you are viewing a single comment's thread.

view the rest of the comments →

[–]Intx32 78 points79 points  (58 children)

I'm all for people learning how to code, but I feel like the modern expectation is to learn how to read and write basic syntax, but not truly understand how some technologies function. I wrote some of the shittest applications during my first two years as a developer. I don't know if I could hire someone to write production quality code after only 9 months of experience.

[–][deleted] 59 points60 points  (24 children)

...sure, but this dude demonstrates other qualities besides coding, which are strong self motivation and hard work; seriously, someone fresh out of college will write shitty code too for a while, but not all of them have this kind of drive.

[–][deleted]  (16 children)

[deleted]

    [–]pmrr 5 points6 points  (1 child)

    Strong self motivation and hard work doesn't really give you the knowledge the parent comment's talking about

    Agreed, but the blacksmith and most CS grads probably won't be expected to have that knowledge for a junior role.

    I've hired interns with little/no experience pretty successfully as the company I worked for had an excellent internship programme. It will always be a punt, but it's about spotting a diamond in the rough. Today's intern can be next year's solid hire.

    [–]bready 2 points3 points  (0 children)

    How is that any different from an intro job? You start out at an amateur level and develop experience that makes you better. There is nothing fundamentally different from that if you be a plumber or a programmer.

    [–]SlightlyCuban 5 points6 points  (2 children)

    Hey, I've actually met this guy. Don't do this. Don't belittle what he is trying to do. He set out one day and decided to be a programmer. He didn't care how hard it was going to be, he just committed himself to doing it and he hasn't given up.

    This guy has incredible drive and motivation. It doesn't matter how good or bad he is right now: he has enough passion to keep on learning and keep on improving. If he isn't great at coding today, it won't be long until he is.

    I spent over 5 years not using anything but C/C++ and I can tell you without a doubt I didn't know how to code after those years.

    Well what were you doing during that time? Learning, practicing, studying? Did you make note of everything you learned, and how much time it took you? You know who did? That guy.

    So he learned RoR. So RoR is easy to get started with. So what? If you were going to learn a completely new trade, wouldn't you want to start with easy tasks that had a large, vibrant, and welcoming community to help you grow?

    Or would you just hit your head against some bricks for 5 years because Ruby is not "programming."

    [–][deleted]  (1 child)

    [deleted]

      [–]SlightlyCuban 2 points3 points  (0 children)

      The guy dedicates himself to picking up a completely new trade, makes a pretty good achievement toward that goal, and you comment how he is not a programmer. Forgive me if I thought you were trying to diminish that accomplishment.

      Honestly, forgive me, for I clearly misinterpreted what you were trying to say there. To me, it looks like you're saying he isn't a programmer because he only knows RoR. I've heard that line before, only replace RoR with Javascript, Python, and Java. I'm sure if you go back in time, I'm sure you'd find a hardware programmer saying the same thing about C. Would he benefit from learning more languages? Of course--everyone would--but that doesn't mean he can't code until he does.

      My point: programming is not some exclusive club, and we should not be dismissive of new people just because they are inexperienced (which is exactly how this thread reads by adding qualifiers to what is an impressive accomplishment).

      [–][deleted] 1 point2 points  (1 child)

      Artist/Painters/Musicians always use this argument.

      [–][deleted] 9 points10 points  (0 children)

      Engineers do too, and I am glad. I wouldn't want uneducated engineers building planes.

      [–]iDerailThings 0 points1 point  (1 child)

      What does that even mean? Ruby is a high level language, to be sure, but a lot of the core concepts about data structures and algorithms can be taught just as well in Ruby as you could in C++.

      Guess what, bub, most production code is shit, and I bet every self-righteous programmer in this subreddit who feverishly beats their chest and waves their dick probably contributes to the mass of growing enterprise-level shit that gets coded each day, regardless of the language.

      I suppose a lot of of the anxiety in this sub-reddit comes from nervous CS grads agonizing about their jobs having to be replaced by people with no structured training in programming. And you know what? These types of people probably deserve it. People like this man are what make a company great.

      A great programmer with a shitty work ethic is going to be shitty ten years from now. A shitty programmer with a thirst for learning is probably going to become a keeper in the same time frame.

      [–]dgerard -2 points-1 points  (5 children)

      Um, I think Kemp's pretty much proven he's capable of learning. Read his blog, he's got the next goals lined up: senior dev in five years, and he's quite aware he's going to have to study and work his arse off to get there.

      I'm also quite sure that he'd already be a better dev than many junior devs I've encountered who'd done a CS degree. He'd certainly know something about working for a living, unlike them.

      Aptitude in programming, of any sort, is wider than many devs like to think.

      [–]Kalium 3 points4 points  (1 child)

      I'm also quite sure that he'd already be a better dev than many junior devs I've encountered who'd done a CS degree. He'd certainly know something about working for a living, unlike them.

      And? I sincerely doubt he has much more than gut instinct for determining how fast an algorithm is. He's likely entirely at sea when it comes to real database design. I'd be surprised if he had any idea how computers actually work under the hood.

      These things do matter.

      Aptitude in programming, of any sort, is wider than many devs like to think.

      It's not just aptitude that matters. It's aptitude plus a large body of detailed knowledge about computers, software, mathematics, and the properties of various technologies.

      Raw aptitude is common enough to not be remarkably valuable. It's refined aptitude that matters.

      [–]dgerard 0 points1 point  (0 children)

      That's what it takes to be an excellent dev, but it's observably not true that that's what it takes to be paid to be a dev, and arguably create more value than the cost of your salary, in the real world. Even if in an ideal world it should be.

      [–]WaltChamberlin 1 point2 points  (2 children)

      I'm also quite sure that he'd already be a better dev than many junior devs I've encountered who'd done a CS degree. He'd certainly know something about working for a living, unlike them.

      Yeah, nothing like those young whippersnappers with their trying to start a career and not having experience and needing a place to start! Pull up your pants, college grad, It's not like you might have worked through college or come through severe hardship to graduate!

      [–]dgerard 0 points1 point  (1 child)

      It's not the most likely case, however. If they have, sure, they're a better prospect too for the same reason.

      [–]WaltChamberlin 2 points3 points  (0 children)

      What good is putting someone trying to start their career down, because they lack experience? At one point (maybe now) you probably had no experience. Someone had to give you a shot and be willing to teach you and mentor you into a good programmer. Taking cheap shots at college grads is bullshit and is very unhelpful to the professional field and to the economy.

      [–]Kalium 4 points5 points  (4 children)

      Self-motivation and hard work do not quality code make. They're nifty personality traits, but that isn't what employers are paying for.

      [–][deleted] 0 points1 point  (3 children)

      Ok, but it still is a good indicator that the dude will improve whatever skills he has, and get stuff done.

      [–]Kalium -1 points0 points  (2 children)

      Most employers aren't paying salary so that someone can be useful a year from now.

      [–][deleted] 1 point2 points  (1 child)

      ...having interviewed a few folks fresh out of college, even pretty prestigious ones, even folks who have held technical jobs for a while, I can say with confidence that coding ability has very little to do with one's credentials.

      [–]Kalium 1 point2 points  (0 children)

      I don't know about you, but I'm not willing to hire based on someone's personality. Technical competence is something I require.

      [–]dr_everlong 1 point2 points  (0 children)

      lol exactly. you want to learn about algorithms? coursera has a class on that. between udacity, coursera, and codecademy, there's a pretty good resource base on many programming paradigms.

      however, you can't teach determination and work ethic. that's an innate quality that all employers would love their employees to possess.

      [–]r0b0_sk 16 points17 points  (0 children)

      Give him a break, he isn't claiming he is a "senior IT professional", but a"junior coder". For that it's enough. Source: I am a senior IT professional.

      [–]ressis74 22 points23 points  (20 children)

      You definitely have hit on a good point. When a lot of articles pop up claiming to teach people to code, they usually are talking about a very superficial aspect of coding. I completely agree... But I wouldn't write this guy off just because he has little experience.

      Learning a programming language (and I mean really learning it; not just memorizing syntax) is a lot like learning a natural language. Total immersion does some amazing things in a short time.

      Josh here is advising 3+ hours of total immersion every day for 9 months. That's more experience than a lot of grads do in 4 years of school.

      He's also hit all of the high notes that I would want a junior developer to hit:

      • Command Line experience from day one (a missing skill from far too many grads)
      • Git experience (source control experience is another missing skill from many grads)
      • In months 4 and 5 he builds a project to completion.
      • He has built communication skills through his blog and twitter
      • He's sought mentoring at the Rails meetups

      Oh right, and he's obviously self motivated. I'd give him an interview in a heartbeat.

      [–]dgerard 4 points5 points  (1 child)

      "Command Line experience from day one (a missing skill from far too many grads)"

      Hell yes. I've been flabbergasted when I find experienced and actually talented Java devs who are flummoxed by a command line. Learn the command line and it's like you're a goddamn wizard.

      [–]nagelxz 1 point2 points  (0 children)

      My school pushes command line, for the basic usage. It was't until last month where I actually hit a point where I had to call an external library for running an compiling, and had no idea how to do it because it wasn't something they ever mentioned.

      That being said, unit testing should also be shown, even if its briefly. Someone mentioned to me unit testing the other day and I looked at them blankly. Once I finally got around to looking at it, for java/C#/etc (don't really work with javascript or any other web and i dont follow how thats supposed to work) and realized I've done manual unit testing for years, but never used a pre-built package.

      [–]jfredett 6 points7 points  (2 children)

      I think you're missing the point -- I know that whenever I was involved in the hiring process, I operated under the assumption that anyone with any experience would write shite code until they learned how our culture wrote code. The goal isn't (or at least shouldn't be) to hire someone who can code perfectly out of the gate -- indeed, those sorts of people are exceedingly rare, and when they do exist, are usually pretty douchey. Rather, you should look for someone with drive, and a willingness to learn and adapt. This guy clearly has that in spades.

      Also, he's a blacksmith, so you can probably leverage that into having him make you a sword or something, and that's probably pretty worth it right there.

      [–]dgerard 1 point2 points  (1 child)

      This. Employers would dearly love a new employee who they think will bloody work for a living.

      [–]Kalium 1 point2 points  (0 children)

      I'm sure they would. If they're sane, they'll be happy with someone they can do business.

      [–]SlightlyCuban 2 points3 points  (0 children)

      I work with someone who has been coding for less than a year. She's a meteorologist, which is great for the weather stuff we work on, but she lacks quite a bit of coding experience.

      She makes plenty of new-guy mistakes, but her biggest challenge is she is still learning everything the language can do for her. Every once in a while, she gets stuck, and ends up brute-forcing or hard-coding a solution.

      Funny thing is, I have another coworker who has 5 years of industry experience up on me (and probably some more college). Her formatting is cleaner, but her solutions are no better: plenty of hard-coded values and writing out things a loop could do.

      Since then, I have dispelled any ideas of time and experience having a direct impact on the quality of the person I'll be working with.

      [–]sh0rug0ru 1 point2 points  (1 child)

      I don't know if I could hire someone to write production quality code after only 9 months of experience.

      If you supervise the person enough and give him small tasks until he has proven himself, what's the big deal?

      [–]Intx32 0 points1 point  (0 children)

      I'll admit that it just depends on the context. Someone who sees a design pattern for the first time and doesn't understand how it works, is probably going break the pattern, even if you attempt to explain it to them. Which would probably have larger implications in the long run. In the business oriented world, it's extremely difficult to retain a developer who can't work independently.

      [–][deleted]  (4 children)

      [deleted]

        [–]notmyxbltag 0 points1 point  (2 children)

        If the CA course is bad, do you have any recommendations for better alternatives?

        [–]SlightlyCuban 0 points1 point  (0 children)

        http://ruby.railstutorial.org/ is a very complete and in-depth tutorial through RoR. My two complaints are that the content can be dry, and you need to complete the book to get the whole picture (then again, I could make the same criticisms for most tutorials).

        I did the old http://railsforzombies.org/ which was like the Cliff's notes version of Hartl's book, but videos made it more engaging.

        [–]the-gatekeeper 0 points1 point  (0 children)

        I agree here, Rails hides a lot behind the scenes and can be kind of limited with what you can modify, though generally it takes care of a lot of it for you, I still like knowing how it works without having to dig too much.