April 28, 2019

What's stopping you from learning to code?

Gene Maryushenko @genemachine

#ask-ih
A few questions for non-coders but you can also answer as a developer when you first started:

  1. What stops you from learning to code?
  2. What would motivate you to make progress in learning coding?
  3. Have you tried existing coding e-learning platforms and why did you stop if you did?

Developers:

  • What did you find as the most effective motivation to keep learning to code?

Thanks!

  1. 7

    Perfectionism, or the feeling of it.

    Starting out, you easily get bombarded with tons of languages and frameworks and libraries and bash setups and dev environment tools - its all too much!

    The best thing I did for my learning was ask myself a simple question,

    "Can you do anything?"

    As, in what is the simplest possible thing and start from there, and it should NOT be perfect.

    Q: Can you write your name to the screen?
    Q: Can you create an html page with a header with your name on it?
    Q: Can you create an input field that accepts names?
    Q: Can you set up a database to store all the names stored?
    Q: Can you add more data to this? Name + location, Name + age?
    Q: Can you show the right data based on the right name? (database querying)

    At this point you're on the way to a decently functioning website. Build some stuff without the pressures of launching or perfection and you'll soon realize you have a huge store of experience.

    1. 2

      This is awesome. How did you end up choosing a language or framework? What was the ultimate point where you said, I'll work using X language.

      What was your ultimate goal? Did you always know you wanted to create something you own, or were there other motivations?

      1. 2

        I'd say just choose one and build anything.

        I got lucky. I chose python because I had one single friend who knew python and it turned out to be super beginner friendly.

        Also, I hadn't heard of hacker news yet so I read exactly zero online flame wars about languages at that point.

        I built a system for my friends and classmates to track what jobs they were applying for - like a job search CRM. It helped us and it taught me a lot about software, so I'd say it succeeded.

  2. 5

    Developer here. The thing that motivated me is just how powerful and useful it is to know how to code! I decided that I wanted to start startups the rest of my life, and coding gives me the ability to build what I want. Plus it allows me to freelance or get a job if my runway gets low. Those are insanely valuable things to me. And once you learn, it's the gift that keeps on giving. Now you have that skill for the rest of your life.

    1. 1

      How did you decide where to start? Did you know what tech stack to use, did you do research, or did someone recommend something? Did you search based on your project needs or based on what was popular at the time?

      1. 3

        Man, I had no clue what I was doing :) I just tried to Google around and try to follow the advice I came across. Looking back, that didn't go very smoothly though. Having the guidance of someone more experienced would have been insanely useful.

        1. 1

          If you had to do it over again and this time you had guidance, what would that look like? How often / where and how would this person help you?

          1. 1

            I didn't realize at first how hard it is (for a beginner) to learn without someone there to help you when you get stuck. Because as a beginner, you're going to get stuck a lot, and when you do, you're going to try googling around, and you're going to come across articles that use terms and concepts that you don't understand, and then you try to look that up and the process repeats. So if I were to do it over again I'd really make a big effort to network and find people who could help me.

            I'd also probably not start off with Rails. With Rails, there is just so much magic going on that it's hard for a beginner to actually understand things. For example, you set up a route handler, and it automatically calls the corresponding view, which automatically renders the view even though there's no method call.

            I'd also perhaps not try to build a startup being so inexperienced. At the time I thought it wouldn't be that hard, but it turned out wayyyy harder (from a code perspective) than I anticipated.

            1. 1

              That's interesting that you would not try to work on a startup if that was your end goal. I mean, it makes sense, but I see so many people talk about how they give up because the things they practice are so irrelevant to them when what they really want is to learn how to make apps they have in mind. Personally, I relate to this point but I can see your side of it that diving straight into putting together a SaaS might be too hard for a newbie.

              I wonder if there is some sort of a middle ground, or some way of getting from zero to relevance in a shorter amount of time while still covering the fundamentals?

              I am debating a platform where you are onboarded by selecting what you want to accomplish, and then seeing material that relates to your goals. What happens if my goal is to build a complex SaaS, should I be shown all of the blocks that go into assembling that or get introduced via smaller concepts first (a crash course) and then straight into the more complicated stuff?

              1. 1

                I did say "perhaps" :) I'm not sure what I would actually do. It's tough, because I was really eager to do it.

                I think that what you are talking about is a form of personalized education, which I think in a more general sense is a fantastic idea! It is a big undertaking, but I'm still surprised that it hasn't taken off yet.

  3. 3

    I'm learning to code now, mainly because I want to be more in control of my product and because I want to communicate with developers. I use the Encode app on the go. It's very user-friendly and colorful. What's been really helpful has been https://www.freecodecamp.org which takes you through an entire curriculum free. Motivation is my biggest challenge now. If I haf someone I could turn to for questions I'd definitely feel more motivated. I'll definitely seek out some meetups once I'm more advanced.

  4. 3

    Never been good at math/logic. Is that even a problem?

    1. 1

      Is that really what's stopping you? Just thinking about having to use math / logic?

  5. 3
    1. I didn't have a mentor when I was trying to break into development, and that made it more difficult on understanding how to piece together a learning track (this was in the days before bootcamps were so accessible)
    2. My motivation was mostly rooted in the dissatisfaction I had for my job at the time.
    3. Platform-wise, I've used Lynda, Treehouse, and Udemy, but e-learning resources in general have been a main ingredient into my successes and growth.
    1. 1

      How did you end up finding which steps to take to your goals? I mean, how did you figure out what you needed to learn and how to get there?

      1. 3

        A lot of trial and error, but in hindsight my decision to anchor around HTML5 played a vital role; it led me to develop JS skills, which then expanded into full-stack development

        1. 1

          That makes sense, without HTML you can't do a front end to which to anchor data to.

  6. 3

    @genemachine I'm a developer. I was motivated by microscopic indicators of growth; that I was actually learning, and not the one person who can't code.

    I put hours into tutorial videos, books and blog posts - then I would see a small tick in my skills. Learning to identify and appreciate those ticks really keeps me going.

    1. 1

      Can you explain what you mean by seeing microscopic indicators of growth? I mean, how did you find motivation to keep going despite improvements being small. What was your mind set at the time if you recall? Did you think, "nice, I can do this now... just need to figure out X next" or something else entirely? Did you ever keep track of how many tutorials you've gone through or have any sort of indicator to keep guiding you along other than personal satisfaction knowing you can do something new?

      1. 3

        At the time a microscopic indicator of my growth was something like "Woah I just wrote 30 lines of Sass without struggling or looking at the docs, this was way easier than last week!".

        I had a minor goal of learning Sass and CSS compilers at the time, so this was a huge win - however I had a major goal of building web applications with Python, and I could see the big picture, and where Sass fit into that.

        I didn't keep track of the number of tutorials I took, but I did set aside time every week to work on them outside of work.

        1. 1

          Would it have been easier if your learning focused around the SaaS you wanted to launch? For example, if you could specify that you want to work on X, and you are recommended material that accomplishes various functions that go into building that SaaS?

          1. 1

            I think that would have been excellent, especially if it were tailored to meet me where I was in my skill level. Back then it felt like I was getting plunked with a bunch of tools and languages with nowhere to go.

            1. 1

              That makes total sense. I see this as one of the problems I face myself right now... there are no skill assessments to gauge where I am in my development learning. It feels like you are just dropped into whatever is already prepared for everyone and you are supposed to figure it out.

  7. 2

    Dev here. I think it comes down to the individual. Coding isn't for everyone, and there have definitely been times where I've wanted to give up when I couldn't figure out some code-related issue.

    I think learning to code has a relatively low barrier to entry, but definitely takes alot of patience, especially in the beginning. I got my degree in computer science, so I learned the foundational stuff early, but didn't really LEARN how to code until I went out on my own and took it upon myself to build something and self-teach.

    I think that it can be easy to get frustrated when you're a new dev and the concepts just don't make sense, or things don't work the way that you hoped. And I think that might turn some people off and stop them from learning how to code.

    In the beginning I did use e-learning platforms, but they weren't really for me, as they didn't go at a pace that I was comfortable with. The only thing that worked for me was just diving in and attempting to build something, and solving problems along the way.

  8. 2

    1 - frustration and slow progress
    2 - see how to make projects and less theory.
    that the projects are really great projects and not like making a sad blog
    3 - yes, point 2

    1. 1

      Thanks for your reply. What kind of projects would you liked to have built while learning if not for a sad blog?

      Also, what if monetary reward was a thing, would that nudge you at all? If so, how much would it need to be and what are your thoughts on it?

  9. 1

    Developer here...

    The most effective motivation for me has always been my own [continued] childhood wonderment with making the computer do stuff. May not seem terribly amazing in 2019 but in the 1980s when I first touched a computer and willed it to do my bidding, it was magic.

    Fast forward ~20 years into coding professionally, tons of ups and downs with startups, and everything else life hast thrown my way, and I still get a huge smile on my face and even a chuckle here and there when I finish typing up a script and it runs with minimal error.

    My passion and the enjoyment I get out of it has always been a huge motivator for me.

    A bit more practical input, because I know a lot of folks want to learn to code as an unfair advantage, and not because they truly get their kicks from it, but I do think that putting yourself into challenging scenarios is a ton more motivating than doing online courses and rebuilding the same crappy examples over and over again.

    Baptism by fire, if you will.