22

What's the Easiest Programming Language I Can Learn?

almost 6 years ago from , Product Designer / Hacker

Hear me out. I'm a UX designer by trade; while not a developer, I do understand software and technology very well. I spend a lot of time testing and tinkering with ideas by trying to hack them together the best I can. My goal is to build a small but real feeling version of my idea to understand and test if there's actually value. I continually hit the wall or spend hours getting caught up on something trivial (I understand this is part of the learning process). Like for most people, time is an issue for me and I'm really looking for something to help me prototype quickly. I consider Ruby and Python too big for that (am I wrong)? What should I focus on, a Javascript framework, just jQuery, something like Haskell, etc.?

Advice?

37 comments

  • Mike MitchellMike Mitchell, almost 6 years ago

    I'd recommend anything JavaScript really. I've managed to build things ridiculously quickly using Express, MongoDB and Angular JS.

    16 points
    • Mike AndersonMike Anderson, almost 6 years ago (edited almost 6 years ago )

      I think Mike is right. Especially because you can use the JavaScript you learn on the front end as well.

      1 point
  • Rik LomasRik Lomas, almost 6 years ago

    I'm co-founder of a design and code school in London and from my experience of teaching 200+ people over the last year, I would say people understand Ruby a lot quicker than jQuery/Javascript. There's a lot less to get wrong in Ruby, for example, less brackets, colons and semi-colons and therefore lets you focus on learning programming rather than the language itself. If you have any more questions, just email me on rik@steer.me

    10 points
  • Pedro PintoPedro Pinto, almost 6 years ago

    I recommend JavaScript, specially the meteor framework is amazing to build prototypes very quickly. Some sources about Meteor: https://www.meteor.com/https://www.discovermeteor.com/ (this book is amazing)

    Here there are other good sources about javascript: http://jsbooks.revolunet.com/http://eloquentjavascript.net/contents.htmlhttp://superherojs.com/http://uptodate.frontendrescue.org/http://bonsaiden.github.io/JavaScript-Gardenhttp://coding.smashingmagazine.com/2012/07/27/journey-through-the-javascript-mvc-jungle/http://javascriptissexy.com/learn-backbone-js-completely/http://tech.pro/tutorial/1367/part-1-backbonejs-deconstructedhttp://jqfundamentals.com/http://www.echojs.com/http://javascriptweekly.com/

    7 points
    • Sam Pierce LollaSam Pierce Lolla, almost 6 years ago (edited almost 6 years ago )

      I'm really looking for something to help me prototype quickly

      The Ruby/Python folks here might have missed this bit--or they haven't tried Meteor :)

      Jury's still out on Meteor for issues with deployment, scaling, data migrations, whatever. But for prototyping? Trust. Me. You want to use Meteor (and Javascript).

      Also check out why the easy thing isn't necessarily the right choice (kinda technical but still great) and the book I used to learn JS.

      And if you like Ruby syntax, try Coffeescript. I use it exclusively now, it's like SCSS or LESS for JS.

      0 points
  • Ryan LeFevreRyan LeFevre, almost 6 years ago

    Ruby is an incredibly easy and intuitive language to learn. Don't let its perceived "size" detract you from diving in.

    As the others have mentioned, Javascript might be the most useful for you to learn first, but I think Ruby might be the easiest.

    7 points
  • pjotr .pjotr ., almost 6 years ago

    You want to learn Ruby.

    If you've never touched JavaScript before it's just going to confuse you. Trust me. I learned ruby in just under a year while I still find JavaScript to be a pain in the ass 4 years after my first introduction to the language.

    JQuery is simply a javascript library or framework, not a programming language itself. JQuery is tremendously useful but requires an understanding of JavaScript if you want to use it beyond your basic site animations.

    My suggestion is to try out rubymonk first. It'll take some time to get through everything but after you do you'll have a basic understanding of an object oriented programming language and a solid base to continue your journey.

    The next step would be to go through Matsumoto's book "The Ruby Programming Language". At this point you start to understand the language at a deeper level and things will start to click.

    The biggest advice I could give to you is to not quit. You're not going to learn a programming language in 10 hours. Shit you won't even truly understand the language for months, perhaps even years. Anyone else that tells you differently either doesn't understand the complexities of learning to be a competent programmer or is lying to themselves.

    5 points
  • Tierney CyrenTierney Cyren, almost 6 years ago

    It really depends on what you want to do. If you want to create front-end effects or interactions by yourself, I suggest vanilla JavaScript. There's not much that the new versions of vanilla JavaScript can't do that jQuery can, and jQuery 2.0 has dropped old browser's support, so there's no reason to learn jQuery except for the plugins.

    If you want to do server-side code, I suggest either JavaScript with Node.js (with Express, as Mike M. mentioned) or Ruby on Rails. They're both great, but I think Node.js is the future. Never the less, RoR has a huge following and has historically been in high demand. Node.js is getting there in this respect.

    I can't suggest resources for RoR, but I can suggest a few things for JavaScript. Codecademy has good JavaScript programming (i.e. not the browser features, just the programming features) and jQuery tutorials. Code School is supposed to be pretty good, and they provide JavaScript, Node.js, and jQuery courses, as well as RoR courses.

    In terms of books, I highly suggest JavaScript: The Good Parts--it's an excellent book, and is considered to be the defacto guide for learning JavaScript programming. For Node.js, I suggest Node.js In Action--it's just plain amazing. For Node.js In Action, I suggest you do the Codecademy course or read The Good Parts before hand to know the required functions of JavaScript, as the book assumes knowledge of programming in JavaScript.

    Good luck in learning to program!

    2 points
    • pjotr .pjotr ., almost 6 years ago

      Node and Rails are not programming languages. I'm sure you just misspoke.

      If OP truly wants to understand programming they shouldn't touch a framework for at least a year.

      JavaScript can be strange and often confusing for beginners as it's useful as both an object oriented and functional programming language.

      2 points
      • Michael ElliottMichael Elliott, almost 6 years ago

        I strongly disagree with the statement that "If OP truly wants to understand programming they shouldn't touch a framework for at least a year."

        I think learning a programming language with a framework is one of the best routes to take, because you can see things come to life much sooner and actually reap the benefits of the language and framework working together. I'd also argue that learning them together provides for faster learning of both.

        2 points
        • pjotr .pjotr ., almost 6 years ago

          Fair enough, and It's completely dependent on your personal learning style.

          I couldn't come to terms with how jQuery was doing something until I knew the JavaScript that was doing it. Having the underlying understanding of when to use certain methods (click vs. on, etc.) really was matter of understanding the framework from a fundamental level.

          0 points
  • Marcelo SomersMarcelo Somers, almost 6 years ago

    Echoing the other comments so far that you need to decide what you are wanting to build. There's probably two good answers:

    First, do you know HTML/CSS? That's going to be a prequisite of anything, so if you don't already, get learning it! Codecademy has a good web track for free.

    Assuming you know HTML/CSS:

    If you want to build out the interfaces you are designing, JavaScript/jQuery is your friend. If you are only doing design and can move to being able to build out an interface with HTML/CSS/JS, it doubles your value you can deliver, and it helps to know what you are designing for.

    If you mostly want to build out a full application, I can't recommend Rails enough. You'll get Node.js recommended a lot these days, but you can't beat the amount of resources there are out there for it. Railstutorial is free, and the best full stack development tutorial I've seen in any language/framework. It'll teach you source control, front end, and more. If you're new to development, I'd suggest just copy and pasting the Rspec testing stuff - it'll confuse you the first time through.

    Then just get working on a small project. Even small projects will have difficult hangups that you'll have to learn to work through.

    2 points
  • Jess Eddy, almost 6 years ago

    Wow, thanks for all the amazing posts and information. You are all totally awesome.

    2 points
  • Derek TimmermanDerek Timmerman, almost 6 years ago

    IMO, learning a programming language is about balancing instant gratification and usefulness. You want something that fulfills many technical needs and requirements over the long term, but you also don't want something with an impossible barrier to entry.

    IMO, Javascript, PHP, Python, and Ruby all pass this test. Having said that, though, it sounds like you have very specific ideas in mind. So, I'd recommend Javascript out of those 4. You'll have fun, you'll learn (mostly) proper programming techniques, and you'll eventually be able to validate (almost) any of your ideas.

    1 point
  • Drew BerkemeyerDrew Berkemeyer, almost 6 years ago

    One thing no one asked is what OS platform(s) are you prototyping for?

    You've gotten a lot of good feedback for web based designs. However, there are a few more options if you need Mac, iOS or Windows prototyping tools.

    There are several links with information on using Origami with Quartz Composer for iOS mock-ups of iOS. https://news.layervault.com/stories/3117-facebook-home-prototyped-in-quartz-composer--tutorialhttps://medium.com/p/f1173d0bd181http://facebook.github.io/origami/

    On Windows Microsoft has a nice tool call Sketchflow that enables quick prototyping with a tight user feedback loop.

    1 point
  • Dwight BattleDwight Battle, almost 6 years ago

    This is an extremely timely thread for me. Thanks for all of the information!

    0 points
  • Vladislav ArbatovVladislav Arbatov, almost 6 years ago

    Fabulous comments. Thank you all.

    0 points
  • Nathan ManousosNathan Manousos, almost 6 years ago

    Ruby

    But Javascript might be more practical, and not much harder. Coffeescript would be a great way to start, but I'm not sure if it's great for a beginner because it's a little harder to set up and understand what's happening in terms of compiling to Javascript.

    0 points
  • Joe BlauJoe Blau, almost 6 years ago

    Ruby or Node.js - Both languages have great communities and a pretty low barrier to getting something up and running in comparison with other web languages.

    I'm not sure what you're trying to build but with more information, I could probably give you a little better advice as to where you want to start.

    0 points
  • Timothy MillerTimothy Miller, almost 6 years ago

    It doesn’t matter which programming language you learn first; they’re all fundamentally the same. And once you know one, you can easily learn any other.

    0 points
  • Samuel ṢoṣinaSamuel Ṣoṣina, almost 6 years ago

    Came across this today.

    Nonetheless Ruby has been an enjoyable experience thus far :)

    0 points
  • Nick van der WildtNick van der Wildt, almost 6 years ago (edited almost 6 years ago )

    I have been in almost the exact same position. While I knew the basics of programming and could find my way around PHP pretty well, actual programming was not something I was good at.

    I started learning Javascript and got more into PHP, thinking that it was the best solution for me - seeing how popular PHP is and how handy Javascript is in general (useful for both front- and backend), but I found I made a lot, a lot, a lot of mistakes and trivial stuff took me ages to figure out.

    Then I tried RoR - I specifically say Ruby on Rails, because I think it's a completely different subset of Ruby. I hardly needed in-depth knowledge of Ruby to find my way around RoR. It's easy to cheat by scaffolding code, it has built in plugins to save you a lot of time and the community for it is huge. Add to that the fact that Michael Hartl with his railstutorial.org has provided the ultimate tutorial for getting started with Ruby on Rails - he basically guides you step by step through a tutorial teaching you how to reproduce Twitter and its social features.

    Ruby on Rails is pretty powerful. I'd at least give the first few chapters if Michael Hartl's online (FREE!) book a try. It shows you how to scaffold an app in just 30 minutes or something, and you can see how powerful it really is.

    EDIT So why do I think Ruby is easier than PHP and JS? Ruby is almost plain English, it reads very easily and is simplistic in its very core. No more looking for missing semicolons, no more typing paragraphs to do trivial tasks like creating loops.

    0 points
    • Thomas PetersenThomas Petersen, almost 6 years ago (edited almost 6 years ago )

      Ruby is a nightmare to set up. PHP is ready to go on most webhotels and mame makes it easy to practice on your local machine.

      Also the way PHP blends with html and JS IMHO makes it for a much easier language to get started with.

      But each to their own. of course.

      0 points
      • Nick van der WildtNick van der Wildt, almost 6 years ago

        I fully agree that PHP runs like a dream and is very easy to get started. However, saying that Ruby is a nightmare to set up might be a thing of the past. Nowadays, you even have GUI's to get your environments up and running. In fact, I installed Ruby and RoR on a machine today and it took me about 15 minutes, no hassle!

        But you make a fair point :-)

        0 points
  • Sherizan SheikhSherizan Sheikh, almost 6 years ago (edited almost 6 years ago )

    In terms of prototyping, product design, visually presenting the interactions instead of static photoshop images, I'd go for basic HTML & JQuery.

    Don't think you need any Ruby/PHP as you don't need to spit out any output. (if you do, its usually hardcoded data right?)

    I usually use Bootstrap framework then modify the example pages with some custom JQuery that I download.

    If its basic animation, I'd usually go with Keynote with that depending on who your stakeholders are.

    Lastly, Origami is awesome for mobile interaction to get your point across to iOS developers. Still trying to master this though.

    0 points
  • Kenneth OrmandyKenneth Ormandy, almost 6 years ago

    My goal is to build a small but real feeling version of my idea to understand and test if there's actually value.

    I’m going to give advice that I wish I took more often myself:

    Make paper prototypes. For something higher fidelity, use Keynote. (I haven’t tried Origami yet personally, but someone else in this thread mentioned it, and I have heard good things about that, too.)

    I would never discourage anyone from learning to program. I’m not great, but I’ve been writing more JavaScript, and I really enjoy it. In this case, though, it is not an efficient solution to your problem. Even if you were proficient in JavaScript or Ruby, it’s still worth testing lower-fidelity prototypes (which is something I have trouble doing now that I want to jump into production code too early!)

    It’s awesome you want to test things properly, and it can actually be beneficial if your prototypes are low fidelity. Then, the people testing it are more willing to be critical of your prototype. If something seems completely real, it can the impression that it’s set in stone.

    0 points
  • tom randletom randle, almost 6 years ago

    For general programming I found python the easiest language to get up and running with. You get a lot out of the bag, it's a very concise to write, and there are some great books: http://learnpythonthehardway.org/book/

    For prototyping UIs though I think your best bet is almost definitely JavaScript. You can get a long way just in the browser without having to worry about server side code at all.

    0 points
  • Daniel SamuelsDaniel Samuels, almost 6 years ago

    I wrote an article last month with a simple Introduction to Python.

    0 points
  • Michael Nino EvensenMichael Nino Evensen, almost 6 years ago (edited almost 6 years ago )

    I just started getting into Xcode and Objective-C myself. Have some background in web technologies, but Objective-C is basically totally new to me coming from a pretty straight up UI / UX / Product background. I started with this book:

    http://www.amazon.de/Programming-Objective-C-Developers-Library-Stephen/dp/0321967607/ref=sr_1_2?ie=UTF8&qid=1392113800&sr=8-2&keywords=learning+objective+c

    And I can't recommend it more warmly. Really clear, crisp and to the point.

    Edit: To add onto this whole Origami discussion for prototypes that's been going on lately. From my experience with Xcode 5 and Storyboards and very little knowledge (basically a couple of Stack Overflow searches) you can easily and quickly make remarkably quick prototypes in Xcode itself and this without having to get into the nitty gritty of the language. What's even more amazing is that without tons of extra effort beyond that you can easily hook those prototypes up to APIs and get those prototypes serving real data.

    0 points
  • Nathan NNathan N, almost 6 years ago

    I would say focus on learning jQuery (by far the easiest) before you dive into vanilla Javascript.

    0 points