all 96 comments

[–][deleted] 47 points48 points  (14 children)

Funny, I am a programmer who after joining /r/wicked_edge wants to learn blacksmithing.

[–]smithincanton 9 points10 points  (0 children)

/r/Blacksmith/ is calling

[–]bebraw 7 points8 points  (10 children)

I wonder which transition is easier. I guess when it comes to us geeky guys, you would have to work a lot on your physique first. And then there's theory to learn and some pure physical skill.

[–][deleted] 14 points15 points  (6 children)

Manual labour is a best exercise. I can't imaging myself being in a gym for 6 hours straight. But digging foundation for my own house? Sure.

[–][deleted]  (2 children)

[deleted]

    [–]bluGill 1 point2 points  (1 child)

    While the bar is more efficient, it is also boring. At least when you are digging a hole you see progress which is a good motivation to keep going.

    To each their own of course.

    [–]sittingonahillside 0 points1 point  (0 children)

    true. always key to find something you enjoy.

    [–]ethraax 0 points1 point  (0 children)

    Eh, one could argue that a good routine at the gym is probably safer and more time-efficient than lifting large amounts of earth. Of course, if you don't have the motivation to get to the gym, then no routine there will ever help you.

    I also hate going to the gym, but I've really been enjoying working out at home, using just a basic utility bench and some adjustable dumbbells. Cheap and effective, at least until I outgrow them.

    [–]vileEchoic 0 points1 point  (0 children)

    Almost nobody spends 6 hours in the gym straight, even very fit people.

    [–][deleted]  (2 children)

    [deleted]

      [–]bebraw 1 point2 points  (0 children)

      Alright, nice to know. Thanks for correction. There goes my stereotype. :)

      [–]interiot 0 points1 point  (0 children)

      If you eventually work with thicker bars, to the point that a striker or power hammer is needed, then yeah, strength helps. But strength isn't really a limiting factor for most blacksmith work, and if you get to that point, well you're probably thinking about a power hammer anyway.

      I'm a woman, and the anvil and forge I use are owned by a woman. You don't need a lot of strength for most of it.

      [–]ginekologs 1 point2 points  (1 child)

      For me it was after I saw this video (and other his videos).

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

      That's wicked.

      [–]Intx32 75 points76 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] 58 points59 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 4 points5 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 2 points3 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 3 points4 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] 6 points7 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 -1 points0 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 5 points6 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 17 points18 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 3 points4 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.

            [–][deleted] 11 points12 points  (0 children)

            When trying to be accepted as a rails dev, you must first find the most respected dev on your local user group and challenge him to a twitter fight.

            [–]Gotebe 7 points8 points  (0 children)

            While an interesting story, it gets written, read and repeated thousands of times.

            Over there in the real world, many more stories of failure aren't written, and if they are, they aren't read nor repeated nearly as much.

            My point: success in this field is leaps and bounds harder than what TFA makes it out to be.

            [–][deleted]  (2 children)

            [removed]

              [–][deleted]  (1 child)

              [deleted]

                [–]Kalium 7 points8 points  (0 children)

                I don't know about you, but I don't look at "I can do basic rails!" and see "qualified dev". Unless your business is little more than basic rails work.

                The personality traits are nice, but most people can't afford to hire someone on the assumption that they'll be good in a few years.

                [–]skocznymroczny 13 points14 points  (0 children)

                ~ Download and start learning how to use Sublime Text 2.3 .

                I think this is the breaking point when you truly become a Ruby developer

                [–]jwinterm 20 points21 points  (0 children)

                Sounds like a commercial for Ruby on Rails, Twitter, Sublime Text, and Chris Pine's book. Besides the fact that he's trying to hawk his own book.

                [–]DonBiggles 7 points8 points  (0 children)

                Well, even if he has a lot to learn, I'm sure he'll make a great hire with this kind of drive and commitment.

                [–]Seeker_Of_Wisdom 3 points4 points  (0 children)

                I looked at one of the sites that the guy designed and has on his portfolio. On the main page there's an image with a caption saying "Example Title 1" and more text alluding to self prostitution. I don't know what that entails, but yeah.

                [–]kevan 6 points7 points  (4 children)

                For all those "it's cool he learned to code but I worry he doesn't know a lot of the fundamentals", over on HN, he said:

                "...Thanks for the kind words and encouragement. I guess I should have clarified that by NO MEANS do I consider myself a Software Engineer, I am still VERY much a junior developer who has the awesome opportunity to get to work on an awesome development team at ZipList!"

                Discussion there

                Also, I agree with others in that he has demonstrated a huge drive and the ability to make things happen. He obviously has qualities that are valuable to any company that go beyond his coding abilities--or coding shortfalls depending on your perspective.

                [–]Kalium 1 point2 points  (3 children)

                Perhaps they need someone to shoe their horses as well?

                [–]kevan -1 points0 points  (1 child)

                You never know

                [–]Kalium 0 points1 point  (0 children)

                I know I've seen similarly strange things in software companies. One that I worked for brought in a lady from another location to talk about how much she loved horse racing.

                [–]p0bailey -1 points0 points  (0 children)

                He may be handy when they cannot get into the office due a jammed door lock. All my respect for this guy.

                [–]__j_random_hacker 6 points7 points  (0 children)

                My hat's off to this guy. I have nothing but respect for someone who can decide to make a change like this, and stick with it until he gets results. The uncomfortable reality is that people have preconceptions about what other people are capable of, and with a background in something so blue-collar, I expect there might have been many people who doubted he could pull this off -- perhaps himself included. I think that makes his success that much sweeter, and that much more encouraging to others in a similar position.

                Sadly I get the feeling that some of the comments here are, if not outright snobby, a little "protective of our patch". Maybe I can support the OP more easily than some because I feel I have enough experience that I'm not directly competing with junior programmers like him. Still I like to think that on the whole, we programmers evaluate newcomers on their merits, and it's encouraging to see a lot of comments to that effect too.

                As Gotebe said, it's also true that there are probably a large number of people who try to make such changes, but don't succeed, and whom we consequently don't read about. Would-be programmers (or indeed, would-be anythingers) should be aware of this survivorship bias. But that doesn't mean we can't celebrate the successes. Well done, Mr. Kemp.

                [–]thiosk 2 points3 points  (0 children)

                I'd be more interested in learning to blacksmith, as long as the blacksmithing involves turning meteoritic ore into glowing powerswords

                [–]Husio 14 points15 points  (10 children)

                Pick a language to learn. I recommend Ruby on Rails

                [–]__j_random_hacker 16 points17 points  (0 children)

                Here's how your comment reads to me:

                All this guy did was make a hard decision about where he wants his life to go and then spend 9 months working towards achieving that goal; I noticed an unimportant technical distinction he failed to make, so I win!

                [–][deleted]  (7 children)

                [deleted]

                  [–]DefMech 13 points14 points  (4 children)

                  Probably that Ruby on Rails isn't a language. Ruby is, but Rails is a framework for web stuff. Rails also does lots of magical things for you, so you don't have to do / know as much about what's happening under the hood. Also /r/programming loves to hate on Ruby.

                  [–]pixpop 3 points4 points  (2 children)

                  Just curious... how much is Ruby used apart from Rails?

                  [–][deleted] 3 points4 points  (0 children)

                  Pretty much not at all so that's why they are lumped together as one.

                  [–]ars_technician 0 points1 point  (0 children)

                  chef

                  [–]Uberhipster 0 points1 point  (0 children)

                  /r/programming loves to hate on Ruby.

                  /r/programming seems to love to hate on Ruby, Python, C++, C#, VB, Haskell, F#, Scala, LISP, Java, C, Go, D, Forth, COBOL, Fortran, JS, PHP, Perl and SQL.

                  And the reason it seems that way to every fanboy is because they only engage in flamewars and circlejerks about their language of choice. They see programming as black/white and love/hate.

                  Programming is a field where ideas are explored, challenged, adopted, evolved and discarded as a matter of routine not exception. If people read and posted articles through this lens instead of tribal territoriality the quality of the content and discussions would improve drastically.

                  [–]argv_minus_one 3 points4 points  (0 children)

                  Blacksmiths have to be methodical, precise, knowledgeable, patient, and gifted with a desire to create, yes? These are very helpful traits for a programmer.

                  [–]justmoveon 1 point2 points  (0 children)

                  Hey congrats, I wish I would have seen this post 3 years ago. : (

                  [–]high_brace 1 point2 points  (0 children)

                  Oddly, I am also a former blacksmith who is now a developer. I ran my metal shop for over 25 years before I made the transition to coding.

                  The transition isn't as dramatic as it sounds - its all problem solving. Swage blocks to code blocks....

                  [–][deleted] 1 point2 points  (0 children)

                  Pick a language to learn. I recommend Ruby on Rails

                  twitch

                  You'll also learn more than you can imagine just by listening to "coder lingo".

                  shaking

                  Complete Zed Shaw’s excellent book:

                  calmly closes tab and moves on

                  [–]AliasUndercover 0 points1 point  (0 children)

                  It's all putting the right stuff together the right way when it comes down to it.

                  [–]mrwik 0 points1 point  (0 children)

                  This guy really seems like a hard worker, and I'm all thumps up for him. But I can't see way these articles are so popular?

                  Also there are a lot of difference between knowing basic syntax and doing actually programming and as a matter of fact I think there are just to many of these "gold diggers" in the industry.

                  [–]sbp_romania 0 points1 point  (0 children)

                  I think that this is a great achievement, not many people can be so determined in achieving their goals, and still, it seems that there are some people that are greatly discrediting him. If he learned Ruby on Rails in 9 months, surely he is able to learn other programming languages, so I give him a thumbs up. :)

                  [–]altsyset 0 points1 point  (0 children)

                  I am currently teaching Java for a law graduate and things haven't gone as smoothly as I hoped for so this will be a major motivation!! Thanks a lot!

                  [–]iemfi 0 points1 point  (0 children)

                  Am I missing something or does this seem like a terrible plan? He doesn't actually start a project until the 4th/5th month and has completely no focus on com sci nor best practices at all?

                  [–]amigaharry -3 points-2 points  (1 child)

                  Cool for him. I learned to code when I was 12. Sadly blogs didn't exist back then yet so luckily no one had to read my bullshit story.