7
16 Comments

Developers, what was the hardest part of learning to code?

Hey! My name is Martin, I'm 17 and I've been thinking about this side-hustle for at least 1.5 years already - I've already had enough and I decided that I'm gonna pursue it now!

However, I'd need some feedback as I'm still not 100% sure about the goal of my project and the way it'd work.

Here is a little background:
I started learning to code a couple of years ago and I've completed quite a lot of courses or challenges online. One thing I've noticed, however, is that developers are often stuck in something I'd call the "tutorial hell" - one thinks that they'll be able to work on a certain project only once they've completed a course on the internet, and while it's true that you need some knowledge, it often leads to nowhere (let's say you decide to build a web app - you quickly figure out that you'll have to learn HTML, CSS, Javascript. After that you find out that there's something called "back-end" and so on,... you might not release the project after all because you'd get burned out). It was also during the time when I wrote a quite popular answer on Quora when I realized that people aren't practising enough - and I have the same problem as well (for example when I applied to some internships, I was able to say that I know Javascript but didn't have any projects which would show that I actually do).

That's when I realized that I'll have to do something about it and the idea of BeCodeNinja was born - the problem I have now is that I became quite stuck and that's where you might help me...

MAIN GOAL: is to help developers (I'd focus on beginners at first) learn to code (learning with the principle of repetition - the platform which does it best is scrimba), work on projects and challenges which they'd be able to put on their GitHub or personal website. Another thing I'd like to teach developers is the right mindset when learning to code - how to get unstuck, imposter syndrome, ...

HOW WILL IT WORK: I know that I probably won't be able to code a full-featured platform from scratch in under two months so what I'd like to do is start posting on the Instagram (@becodeninja) about learning to code, programmer paths (front-end, back-end, ...) and basically just get some audience - which I already have on my other account (@martin.codes). When it comes to the platform, I'd start the initial release with a 4-5 week coding challenge (5 days a week), post on IG daily, give feedback to people and maybe make it in a form of competition so that people would be motivated.

HOW WILL IT MAKE MONEY?
There are only couple of ways it could make money - either in a form of subscription which would allow the user to access all the content with feedback from me (although the 1 on 1 feedback probably wouldn't be scalable); or by a sponsorship; or by donations.

The question I have for you is: what was the biggest problem when you were learning to code? (example: lack of mentorship, difficult to understand, no projects, ...)
What are your tips for people when they're learning to code?

The questions I have is what do you think - what wasn't clear and what should I focus on? Do you have any constructive feedback? It's my first time building a side hustle and I'm still really passionate about it.

THANKS!!! I know it's long but it would mean the world for me if you'd give me feedback!

on January 28, 2020
  1. 3

    I've actually been investigating a similar pain for developers, although not necessarily complete beginners. Specifically, I've been investigating this pain: https://codingcourseproblem.landen.co/

    Two pieces of advice:

    1. You have a solution before you know your problem. Spend some time investigating the problem, I think it's very insightful.

    2. If you go with your current example, I don't see a solid revenue model. The subscription you mention has to compete with other subscriptions - codeacademy.com, frontendmasters.com, etc. I don't see how you're solving the problem better than these guys. As far as sponsorship/donations - don't go this route. By the time you've built an audience that supports you enough to donate rent money each month, you'll be sick and tired of the constant content.

    Just my two cents.. best of luck!

    1. 1

      Btw your landing page is good. Nice storytelling.
      I just didn't quite understand what are you offering really?

      1. 1

        Thanks! That's because I'm not offering anything - except for people to be able to sign up if they want to be part of crafting the solution.

        I'm still exploring if it's a pain worth solving.

    2. 1

      Probably personal consultation would be unique and could work?

  2. 3

    I've taught a number of students how to code, and the number one obstacle people reported to learning programming was "I didn't even know where to start; there's so much information out there." The number of tutorials, blog posts and videos out there is both a blessing and a curse; it provides endless learning opportunities, but also creates the sense of FOMO that you describe about needing to learn "one more thing" to be good enough. Even if a student ALREADY HAS all the knowledge they need to complete a project, they have no way of knowing that's the case! It's a bit like feeling "lost" in a maze, when in reality you're already at the end - but because you don't know what the exit looks like, you have no way of knowing you're already done. It's the classic "you don't know what you don't know" trap - and so students end up trying to learn everything and getting overwhelmed.

    IMO one of the most valuable things you can give a new student is a "knowledge map" - a visual of which technologies are out there, how they fit together, which ones they'll need to complete a given project, and a recommended sequence to learn them in. Both Duolingo and Khan Academy are great at this - the course summaries make it feel like the amount of knowledge needed to master a skill is finite, so that it's a goal you can actually reach. Even if you're not teaching new material, giving students a map allows them to give context to the things they're learning and WHY, so they can find a finish line that works for them.

    1. 2

      Thank you so much! This was actually really helpful!

  3. 3

    I'd say the most difficult thing is learning to code with books or tutorials that are simply not at the right level of detail for you. If you try learning from articles, or other material, which omit crucial pieces of information, assuming for example you already understand them, it's no surprise things get difficult.

    But if you find just the right book for you things might go smoothly.

    Recently I for example have learned nuxt-development and how to integrate it with storyblok and I encountered a problem no documentation seems to cover at any detail ( I'm making a site http://mysteryof.space ). So there are always little difficulties to overcome.

  4. 2

    The hardest part to learn was to know that the language is just a tool, that programming is not about a specific language or framework, it's about the underlying logic. Once I understood that and improved that, I started to improve, right now I'm in a position where I can just pickup any language or framework and feel confident, because the language is just a tool.

    And also, not falling into the trap of trying to memorize all the languages, First when I started I tried to memorize everything instead of focusing on improving the programming logic and just going through the documentation when I needed, memorizing a Language/tools comes with the time using it, but still, you dont need to, as long as you have the underlying logic you can always lookup the docs

  5. 2

    Great idea...

    Just a heads up. IG organic growth has been limited drastically.

    You will get a lot of Indian, Bangladeshi followers in Programming niche. They are hesitant to pay for any product or services.

    1. 1

      Oh, I haven't really thought about that.

      What if I tried using ads to target mostly the European/American market?
      How would you persuade a Bangladeshi/Indian/person from a developing market to pay for a subscription/buy a product?

  6. 2

    Learning on a regular basis (everyday after work) !

  7. 2

    Find your niche first. There are so many different types of development but since you mentioned web you'll have to identify if you want to teach frontend (JS frameworks like React, Vue, Angular, etc), full stack, backend or even QA techniques. I'd pick a niche you are interested in learning and improving your own skills since teaching is one of the best ways to learn.

    For example, here's what a peer did to learn about mobile development:

    1. Created a WP site based on his niche which is Mobile development with React Native
    2. Blog post for every step of building his mobile applications (each post is a lesson that started from initial setup of the environment to launching every RN app he published to the Apple store)
    3. Started a newsletter which he shares each blog post
    4. He also posts to Medium about various tips and tricks he learns for things that don't make it into a blog post.

    He didn't know anything about mobile development using React Native but as his audience grew he felt more inclined to keep posting as he received feedback from his posts.

    Identify what you want to build, learn while building it and then share your experience of how you built it each step of the way. Your audience will most likely be built up of people in the same exact situation as you and they will appreciate you sharing what you learned. Plus your experience is something that can be shared with future prospective employers.

  8. 2

    Point people to open source projects with welcoming communities. They can start by writing some documentation, then fix a small bug or two, then tackle a small feature. Along the way you'll learn how a software project is built and managed and, if the community is a good one, you'll get constructive criticism on your solutions and code style. The biggest hurdle for a self-taught developer is going from tutorial / one person projects to being part of a team on a real project where there's not one simple clean answer. Working on OSS will help them conquer that hurdle while building some street cred.

    1. 1

      Also, let them know that even those of us who've been doing this for 20+ years google questions / stack traces ALL THE TIME and then we go to StackOverflow and ask for help. Software development is a team sport.

      1. 1

        I've thought about this for a while because working in teams is really difficult for some people when it comes to communication with others or properly documenting your code.

        The way I'd probably implement it if BeCodeNinja was going to be a platform is by giving users the chance to correct and write suggestions on the projects of others.

        When it comes to Googling stuff or using StackOverflow, that's something that beginners view as cliche as they might get a feeling that they don't understand it - I'd like to make it clear that every coder is using StackOverlflot/forums no matter the years of their coding experience.

  9. 2

    I think people sometimes try to learn everything at once as they want to be a perfect professional developer but 'the perfect is the enemy of the good'

    I started coding probably at your age ( however it was 20 years ago ) learning was progressive and simple.

    The process for me was something like:
    1 learned how to upload a simple text file to the server ( managed hosting )
    2 learned super basic subset of HTML ( head + body + div + p + a) + very basic css ( background, color, padding, margin, float), and build a website where I could write down my notes.
    3 Had an idea about travel website
    4 build a completely static website managed manually.
    5 When it becomes cumbersome I learned about the database and simple loops, I managed this database by hand but still, it was progressing toward better.
    6 Then I build the simple crud for my table ( here was an introduction to more real coding )
    7 Realised that I need more complex query so people can search by city and dates. So learned a little bit more SQL.
    8 Then I learned SEO, the website becomes popular in the holiday season, so I needed to learn caching techniques, compression, and better server management
    9 And it really started from here, new problems required new expertise from me

    My point is if people don't need something really hard then It's very difficult to learn. Also back then in 2000-2002, we didn't have 1000 frameworks and the choice was really simple and kind of natural.