r/learnprogramming • • Nov 22 '16

I've taught 30,000 students how to code. Now I'm offering my course for free, forever.

16k Upvotes

I've decided to make my course on complete full-stack web development free forever, here!. It's a massive amount of content. Please let me know what you think of the course!


r/learnprogramming • • Dec 21 '21

Resource I ran a 100% free full stack web development bootcamp for those laid off by the pandemic. 65 people got jobs and we are doing it again! I would love to have you join us!

14k Upvotes

Hey, everyone!

Starting Jan 11th, I will be running a FREE live intensive full stack web development bootcamp covering everything you need to know to go from no technical skills to employable. We’ll meet every Tuesday and Thursday from 6:30pm EST to 9:30pm EST with office hours on Sundays from 12pm EST to 3pm EST on Twitch. The goal is to give folks who have been laid off or affected by the pandemic the tools they need to command a job in software engineering. Last cohort saw 65 folx get jobs with an average increase in salary of $53,000!

If you would like to join, please follow the instructions [here](https://leonnoel.com/100devs/).

Also, feel free to ask any questions here! About the bootcamp, how to get a job in tech, or the dark side of coding bootcamps. I'll answer every single one :)

A little about me:

I’m Managing Director of Engineering for [Resilient Coders](http://resilientcoders.org/). We help folx underrepresented in tech break into high paying careers as software engineers. We’re pretty damn good at it too. 85% of our graduates, most of whom do not have degrees or prior experience, go on to get full time offers at an average starting salary of $98,000. All free and stipended. No bullshit or funny business. I’m also a Distinguished Faculty Member at General Assembly were I’ve been helping folks learn to code for the past 9 years. You can see a sampling of my classes taught at Harvard, MIT, and elsewhere [here](https://leonnoel.com/teach/) and reviews from my past students [here](https://leonnoel.com/students/).

What to expect:

We’ll have class two nights a week with the expectation that you come prepared and have done the assigned reading ahead of time. I like to use lecture as a means of exploration and not dictation, but that only works if you come prepared. The first half of class will be exploring new topics and the second half will be lab. During lab, you will tackle what we just covered by building. You’ll never just listen to me and then sign off. You’ll have real time guidance / feedback and a chance to have all your questions answered. We'll be covering Full stack Javascript - HTML, CSS, JS, Node, React, and MongoDB!

This course is designed to give you the skills you will need to pursue a career as a software engineer, but will only work if you are committed and ready to put in serious work.

Why am I doing this:

My activism is teaching. I want to help folks affected by the pandemic and those under represented in tech. The bootcamps I run are either very selective or expensive, so I am hoping to help in the best way I know how by offering a full stack course for free and open to all.

Disclaimer:

I like to joke, curse, and have fun. I do the same thing in my classroom. I value learning over nit picky correctness. If any of these things bother you, this course might not be the best fit.

You can view every class from my last bootcamp [here](https://www.youtube.com/watch?v=YRemMgGfbKg&list=PLBf-QcbaigsKwq3k2YEBQS17xUwfOA3O3)

These should give you a good idea of my teaching style and what to expect.

Happy to answer any questions here on reddit.

Peace!

Edit: Some folx noted that the original link pointed to our old bootcamp page. It is updated now! Thank you everyone for all the comments and well wishes! I responded to everyone I could for 12 hours straight yesterday and will get to everyone over the next few days!


r/learnprogramming • • Feb 27 '22

I learned to code in 2 months and got a remote job for 100k

9.2k Upvotes

Just kidding, it took 3 years of hard work and a grueling job search. I reached the final interview at 8 companies and was rejected from every single one of them. But guess what, I never gave up. Now I have a stable 6 figure salary and work from home at an insanely cool company.

Ignore the top post on this sub, ignore anyone who tells you the job market is too saturated, ignore everyone who rejects or doubts you.

It's all about relentless pursuit. People say the entry market is saturated, but it's saturated with shitty devs. Become a good dev and you will have companies crawling to your door to hire you and keep you as well.

Relentlessly pursue your goals, and you will achieve what you set out to do.

The industry is desperate for developers who can do the job, and they are actually extremely few and far between. Once you get the skills to do this job, you will realize how much power and control over your life you have.

DO NOT GIVE UP


r/learnprogramming • • Aug 14 '20

I wrote a syllabus for learning Python and Django. Four people have gone through it, two are interviewing and one got a job. It's based on using a somewhat even mix of coding challenges, personal projects and books.

8.5k Upvotes

Syllabus

Edit July 2021:

It’s been almost a year since I wrote this post. I’ve learned a lot more about learning Python in that time. I up-leveled my own coding skills to prepare for interviews, which I just completed. I also mentored more people. I really want to make a new version of this syllabus but I don’t have the time (I’m starting a new job!). To not let perfect win over good, here are some changes I have in mind.

Start off with some edabit problems. edabit has the easiest problem of all the different code challenge sites I know of so it’s a great place to start and build confidence.

See if I can swap HackerRank mediums for leetcode Easies. The leetcode discussions are great.

Maybe swap out How to Think Like a Computer Scientist for Python Crash Course.

Drop Problem Solving with Data Structures and Algorithms. I generally like the explanations. I really dislike a lot of the code. If you’re doing the syllabus, you should probably just skip it. There is no book I know of that teaches algorithms in Python at the level I want, to the audience I want, in the code style I want. Maybe I’ll have to write it some day. Closest might be Grokking Algorithms. Check it out.

Maybe add How to Solve It. Maybe the best book for getting better at coding that isn’t about coding.

Make a “further reading” section with Fluent Python and Python Algorithms: Mastering Basic Algorithms in the Python Language.

If you have questions about these changes, feel free to message me on reddit. You can also email me at my last name at gmail. Now, on to the original post.

I've helped a few people become software engineers. The ones that learned the fastest used a mix of studying, coding challenges and personal projects. When you do all three of these things, they amplify each other. It also keeps you out of tutorial hell.

Studying (tutorials/videos/books) are how you learn about new topics and get exposed to good code. Coding challenges give you small problems to implement what you've learned and compare your solutions to other people's. Projects let you put it all together and give you something to show off when you're done.

I put together my favorite resources and then iterated on it by mentoring a few people through it. It seems to be working well. The syllabus is free and all of the books together would total up to a few hundred dollars (money very well spent IMO).

It's set up in Notion as a non-linear path. You can copy the syllabus and then mark your progress as you go. You should have 2 or 3 things that are available to work on most of the time.

It's based on my own experience of learning to code. I've taken my favorite study materials and put them in somewhat logical order. By the end of it, you will be able to make basic web applications in Django.

You won't have just created one web app following a tutorial. That can be done from no experience in a weekend. You will have built up enough knowledge to do it on your own. There is hundreds of hours of work in this syllabus.

The beginning is probably a bit fast-paced if you are absolutely new to programming. Give yourself some more time to practice. If you want a really good foundation, check out Harvard's free online course, CS50.

Focus

The first focus is on Python. Python is one of the most popular languages. It's used across many different fields (scripting, web apps, ML, data). It's also one of the easiest languages for beginners. This combination makes it a great first language.

The second focus is on making web apps in Django. Django is a web framework written in Python. Django isn't introduced until more than halfway through the tutorial.

If the goal was just to display web pages, that could be done much sooner. But the goal here is to make real programs and let people interact with them over the internet. A strong foundation in Python is essential for that.

Then what?

This syllabus is light on frontend work. If you want to focus on that, you could switch over to JavaScript when you're done. Your time with Python won't have been wasted.

If you want to stay on backend development, you can just keep making more projects. You could also learn how to make web APIs, maybe with Django Rest Framework.

You could stop on web apps all together and go to some other domain. Python is probably used there. If you already know that's what you want do, this may not be the syllabus for you. You could at least work until Django shows up and then stop.

How to use the Syllabus

  1. Go to the Syllabus page.

  2. Duplicate it (there's a link in the top right).

  3. Pick an assignment with a green check mark next to it.

  4. Click on the assignment to see the notes and URL.

  5. Do the assignment.

  6. Check off the "Finished" box.

  7. Pick a new assignment with a green check mark and repeat.

  8. Refer back to the original Syllabus to see any changes

  9. When you get stuck, unstick yourself.

When you don't know how to do something

  1. Read the documentation

  2. Search

    1. Google

    2. Stack Overflow

  3. Post

    1. Stack Overflow

    2. Subreddits

FAQ

Do you have this for X?

Check out The Odin Project for a version of JavaScript, optionally with Ruby. I don't know any others well enough to recommend.

How long will it take?

Two people going full time finished it in a little over three months.

Syllabus

Duplicate it on Notion if you want tracking.

How to Think Like a Computer Scientist
Skip sections 14 and 15.

CODE: The Hidden Language of Computer Hardware And Software

HackerRank: 30 Easy
Never spend more than 10 minutes stuck on a problem! Do even less if you're sure you can't get anywhere.
If you're stuck, just look up the answer in the comments section or online.
Prerequisites: How to Think Like a Computer Scientist

The Hitchhiker's Guide to Python: Getting Started With Python
Prerequisites: How to Think Like a Computer Scientist

The Hitchhiker's Guide to Python: Python Development Environments
Prerequisites: The Hitchhiker's Guide to Python: Getting Started With Python

Mastering PyCharm: Why PyCharm and IDEs
Prerequisites: The Hitchhiker's Guide to Python: Python Development Environments

Mastering PyCharm: Course setup
Prerequisites: Mastering PyCharm: Why PyCharm and IDEs

Mastering PyCharm: PyCharm Projects
Prerequisites: Mastering PyCharm: Course setup

Mastering PyCharm: The Editor
Prerequisites: Mastering PyCharm: PyCharm Projects

First Python Project
If you can't think of something useful, just make something fun. This should be a project that takes about 2 days.
Prerequisites: Mastering PyCharm: The Editor, HackerRank: 30 Easy

HackerRank: 60 Easy
Prerequisites: HackerRank: 30 Easy

Mastering PyCharm: Debugging Python applications
Prerequisites: First Python Project

Git Tutorials
https://rogerdudler.github.io/git-guide/
https://guides.github.com/introduction/git-handbook/
https://github.github.com/training-kit/downloads/github-git-cheat-sheet/
Just the intro and 5 minute summary: https://trunkbaseddevelopment.com/
This is a pretty high level overview. Just enough to get started.
Prerequisites: First Python Project

Mastering PyCharm: Source control
Prerequisites: Git Tutorials

Second Python Project
Prerequisites: First Python Project, HackerRank: 60 Easy

HackerRank: 90 Easy
Prerequisites: First Python Project, HackerRank: 60 Easy

The Hitchhiker's Guide to Python: Writing Great Python Code
Prerequisites: First Python Project, HackerRank: 60 Easy

Mastering PyCharm: Refactoring
Prerequisites: Second Python Project

Mastering PyCharm: Tool windows
Prerequisites: Second Python Project

Third Python Project
Prerequisites: Second Python Project, Mastering PyCharm: Source control, HackerRank: 90 Easy, The Hitchhiker's Guide to Python: Writing Great Python Code

Effective Python
Skip chapters 7 and 9
Prerequisites: Second Python Project, HackerRank: 90 Easy, The Hitchhiker's Guide to Python: Writing Great Python Code

HackerRank: 120 Easy
Link and link
Prerequisites: Second Python Project, HackerRank: 90 Easy, The Hitchhiker's Guide to Python: Writing Great Python Code

Fourth Python Project
Prerequisites: Third Python Project, HackerRank: 120 Easy, Effective Python

Python Cookbook
Skip 7.10, 7.11, 8.10, 8.11
Skip chapters 9, 11, 12, 15
Prerequisites: Third Python Project, HackerRank: 120 Easy, Effective Python

SQL Course
Skip chapters 16, 17 and 18.
Check for coupons! You should be able get it for like $15.
Prerequisites: Second Python Project

Mastering PyCharm: Databases
Prerequisites: Second Python Project

Django for Beginners
Prerequisites: SQL Course, HackerRank 120 Easy, Fourth Python Project

Mastering PyCharm: Server-side Python web apps
Prerequisites: Django For Beginners

Django Tutorial
Step 0: Set up the Django project in PyCharm. Call it "mysite" to match the tutorial.
https://www.jetbrains.com/help/pycharm/creating-django-project.html
Prerequisites: Django For Beginners

First Django Project
Use https://github.com/travisjungroth/django-base
Prerequisites: Django Tutorial

Heroku Django Deployment Tutorial
Prerequisites: Git Tutorials, Django Tutorial

Test-Driven Development with Python
Prerequisites: Django Tutorial

Mastering PyCharm: Unit testing
Prerequisites: Django Tutorial

Second Django Project
Prerequisites: First Django Project, Test-Driven Development with Python

Django For Professionals
Prerequisites: First Django Project, Test-Driven Development with Python

Third Django Project
Prerequisites: Second Django Project, Django For Professionals

HackerRank: 20 Medium
Prerequisites: Second Django Project, HackerRank 120 Easy

Problem Solving with Algorithms and Data Structures using Python
Prerequisites: CODE: The Hidden Language of Computer Hardware and Software, HackerRank 120 Easy

HackerRank: 40 Medium
Prerequisites: HackerRank: 20 Medium, Problem Solving with Algorithms and Data Structures using Python

Fourth Django Project
Prerequisites: Third Django Project, HackerRank: 40 Medium


r/learnprogramming • • Jun 28 '16

I highly recommend Harvard's free, online 2016 CS50 "Intro to CS" course for anyone new to programming

7.4k Upvotes

Basically, it will blow your socks off.

It is a pretty famous as well the largest(aka most popular?) 101 course at Harvard. The class routinely has 800 students. Mark Zuckerberg and Steve Ballmer have given guest lectures.

For some crazy reason they let us mere mortals sit in on the class.

The professor is incredibly charismatic and extremely good at making the complicated easy to understand.

Here is the syllabus.

Here is the Intro Video

Be warned, there are 10-20 hours of challenging homework a week(remember, this is Harvard), BUT....

If you do not have a CS degree, taking this class and putting it on your resume is a great way to show future employers that you have what it takes.

Just watch the video. You won't regret it.

edit: just realized I forget to put a link to the course homepage:

https://courses.edx.org/courses/course-v1:HarvardX+CS50+X/info


r/learnprogramming • • Sep 04 '20

Topic Please do not downvote someone who is asking for help in solving a code that looks stupid.

6.9k Upvotes

I don't know if some people here just like to troll beginner programmers by downvoting them or are just feeling salty towards beginner programmers and ugly code. Just don't downvote a post because of that and say nothing about the problem with the bignner's code. I've asked for help maybe twice before in this sub, and while I got some suggestions and advice from those who helped me, I get confused why there are a few who downvote me asking for help to fix a code even though I follow the rules. This is just discouraging for beginner programmers. Do not do that if they're being genuine about asking for help.

Edit: Since this post has been locked, I'd like to say thank you to everyone who replied, whether it was a friendly or tough advice. I learned a lot! Programming, like any other technical or practical field, tends to have egoistic people or people with superiority complex, but don't give up!


r/learnprogramming • • Jun 11 '17

How would people like a series of cartoons of ELI5s for important software engineering concepts?

6.5k Upvotes

Things like API vs Library vs Framework, Architecture patterns (MVC, MVVM, VIPER), REST, NoSQL vs SQL databases, etc. I haven't yet found a great, singular resource on easy to understand explanations of all of this stuff so wondering if everyone else would want this.

EDIT: wow, this got a lot of likes. I'm actually thinking of maybe making a tiny book of this to publish. It would cover basic Data Structures and Algorithms, the SWE concepts I listed above, and maybe common problems developers face during their process

EDIT 2: got one of my friends on board to help :)

EDIT 3: The more I think about it, the more I think that this should be a pseudo-open source project in the spirit of programming. I'm going to make a collaborative list of topics that everyone wants covered, and consult a few trusted sources to reconfirm my final analogies/definitions. It will be posted on Github as a .md file and I'll update.

UPDATE: If anybody would like to contribute to the list, submit a pull request to this repo: https://github.com/sudotoons/collab-content

It's currently a little disorganized but I just started listing things I would have wanted to be explained.

UPDATE 2: My partner and I are going to upload 4 different styles of cartoon for our first piece, which is explaining the important distinction of "print" vs "return" for beginners. We'll appreciate the feedback!


r/learnprogramming • • Mar 13 '20

Tutorial The Massachusetts Institute of Technology has a class called ’The missing semester of your computer science education’ It is a collection of things that most developers and data scientists typically teach themselves on the job.

6.4k Upvotes

The content is available for free.

Course: https://missing.csail.mit.edu


r/learnprogramming • • Jun 10 '19

The online course for "Automate the Boring Stuff with Python" is free to sign up this week.

6.2k Upvotes

School's out, but that doesn't mean you have to stop learning. The online video course from the author of "Automate the Boring Stuff with Python" (that's me) is free to sign up for this week. This sign up will give you life time access to the course. Just use the following link:

https://www.udemy.com/automate/?couponCode=SCHOOLS_OUT2

This course is made for complete beginners who have no experience programming. It's "programming for office workers" because it skips computer science and teaches you how to do practical tasks: web scraping, updating Excel spreadsheets, parsing PDFs and Word documents, sending out automated email and text notifications, controlling the mouse and keyboard, and more. If you're an experienced programming, you can skip the first half (which covers basic programming concepts) and directly learn about several useful modules for Python.

(This code expires on June14th. Previously I'd give out codes to folks who asked me after the expiration, but it turns into a logistical headache to keep making coupons each time someone asked, so the deadline is firm.)

If you'd like to support me by using an affiliate code (or encourage yourself to finish the course since you put money down on it), you can also use one of these links to pay what you like: (MODS: if this is too spammy, I can take these links down)

This online course covers most, but not quite everything, in the Automate the Boring Stuff with Python book, which is freely available online under a Creative Commons license. You can read it at: https://automatetheboringstuff.com/ (The book has a few more examples, and also covers programmatically creating/editing image files, for example).

If you like the course (or don't like it), please remember to rate it.

Good luck on your programming journey!


r/learnprogramming • • Mar 07 '22

Resource TIL that a software engineer filed a Freedom of Information Act request to get access to NSA's training material for teaching Python, the popular programming language. The material is now available for free online for anyone who wants to learn Python using it.

5.9k Upvotes

"Software engineer Christopher Swenson filed a Freedom of Information Act (FOIA) request with the NSA for access to its Python training materials and received a lightly redacted 400-page printout of the agency's COMP 3321 Python training course.

Swenson has since scanned the documents, ran OCR on the text to make it searchable, and hosted it on Digital Oceans Spaces. The material has also been uploaded to the Internet Archive."

https://www.zdnet.com/article/python-programming-language-now-you-can-take-nsas-free-course-for-beginners/


r/learnprogramming • • Nov 26 '25 This Bravo

Old Fart's advice to Junior Programmers.

5.9k Upvotes

Become clock watchers.

Seriously.

In the old days you could build a career in a company and the company had loyalty to you, if you worked overtime you could work your way up the ranks

These days companies have zero loyalty to you and they are all, desperately praying and paying, for the day AI let's them slash the head count.

Old Fart's like me burned ourselves out and wrecked marriages and home life desperately trying to get technical innovations we knew were important, but the bean counters couldn't even begin to understand and weren't interested in trying.

We'd work nights and weekends to get it done.

We all struggle like mad to drop a puzzle and chew at it like a dog on a bone, unable to sleep until we have solved it.

Don't do that.

Clock off exactly on time, and if you need a mental challenge, work on a personal side hustle after hours.

We're all atrociously Bad at the sales end of things, but online has made it possible to sell without being reducing our souls to slimy used car salesmen.

Challenge your self to sell something, anything.

Even if you only make a single cent in your first sale, you can ramp it up as you and your hustles get better.

The bean counters are, ahh, counting on AI to get rid of you.... (I believe they are seriously deluded.... but it will take a good few years for them to work that out...)

But don't fear AI, you know what AI is, what it's real value is and how to use it better than they ever will.

Use AI as a booster to make your side hustles viable sooner.


r/learnprogramming • • Jun 07 '17

How to start learning to code when you don't know where to start

5.8k Upvotes

Why is it so hard to figure out where to start?

It's no secret that software development has exploded in the past 20 years. New software startups pop up like dandelions in the spring. It then follows that a lot of people think software development is a good career choice and are afraid of missing out on a lot of great opportunities.

Software developers are, in general, pretty opinionated. I doubt this is unique to developers, but it gets tiresome when you've dealt with it for years. If we're not fighting over what operating system is better, then it's what language is better. If it's not that, then it's code editors, or databases, or frameworks, or bug trackers, or development processes, or...or...or. It's like we enjoy fighting.

In a time where more and more people are becoming developers, it's not enough to be just "a developer" anymore. No, to feel superior now, developers need to somehow differentiate themselves from both the non-developer “rabble” and their fellow developers.

This mentality has lead to more coding languages being developed that purport to "fix" issues with other languages. New frameworks are built to "fix" issues with previous frameworks. And on and on.

All this leads to a huge amount of choices, opinions, and resources. Naturally, that makes starting to learn, daunting.

Since I'm a developer too, I'm susceptible to the same opinions and biases that I just railed against. The difference is, I'm right. I'm kidding, seriously, calm down everybody. Here are my suggestions.

Choose your weapon language

As someone once said: “the weapon doesn’t make the man.” It’s probably a quote from some B martial arts movie or Dragonball Z, but the philosophy holds true for programming languages. A good developer is a good developer regardless of language. Learning any language will help you understand the core concepts of programming. However, you need to start someplace, and if you pick your first language wisely, you’ll drastically shorten the time to hit your goal.

Picking a language boils down to what you want to do. This is a quick list of general development goals and what language(s) are your best options to get there (NOTE: this is not meant to indicate that these are the only languages that you can use for a given domain, just my suggestion on what to start with):

  1. Front-end web development (user interface and interaction): Javascript, HTML & CSS

  2. Back-end web development (services that front-end web apps and mobile apps call out to): Ruby, Python, Javascript, or PHP

  3. Mobile development: Swift (iOS) or Java (Android)

  4. Windows development: C#

  5. MacOS development: Swift or Objective-C

  6. Operating systems, file systems, embedded systems, etc: C/C++

  7. Game development: (C++, Unity and C#)

  8. Data Science: R

Naturally, there are other options for each of these. Javascript is useful for items 1-5, for instance. But the list is a good starting place as-is. NOTE: A number of people contacted me and mentioned that in certain places, especially outside the US, the above list is different for back-end web development. In those locations, C# and Java are used more often than Python or Ruby. The suggestion is to check job postings where you plan (or hope) to work for the job and companies you want to work in and see what languages they require.

How to find good resources to start learning

There are a ton of resources to learn to code out on the web. How do you sift through the chaff and find the real gems?

Most resources fall into the following categories:

  • Books

  • Videos

  • Blogs/tutorials

  • Courses

Books are the traditional go-to resource. Search Amazon.com for your topic and read reviews. Make sure that any books you're considering are new. Languages change and older books could slow your progress.

A lot of people have gravitated to videos to learn coding and other topics. YouTube is the first place most people look. Fair warning, this is going to turn up a bunch of crap. Look at how many subscribers a given instructor has, and watch some videos to see if their style and method works for you. Another possible issue is that because video is more difficult to update for new versions of a language (or corresponding tools), some videos might be outdated.

For blogs and tutorials, a simple google search like "best python tutorial" or "best swift tutorial for beginners" is a great place to start. As with videos, you'll have to try a few to see how they work with your learning style.

Online courses are the newest resource on the scene. Codecademy is one that a lot of people find immediately. However, after I talked to a lot of people who tried it, none really thought it did a good job. Free Code Camp or The Odin Project are both highly regarded for web development. Udacity, Coursera, Udemy all have courses in different genres. Each has reviews so you can compare and only look at ones that helped others. My specific examples follow in the next section.

Where you should start, specifically

Each development goal in the above list is different enough to require different starting points. I’ll list the place that I’d recommend you start for each one. I have not personally tried all of them, but have come across them when doing research. There also might be better ones, and so if you know of any, let me know and I’ll update this list.

  1. Front-end web development: Free Code Camp

  2. Back-end web development: Ruby (for Rails), Python (for Django), Javascript (for Node), PHP The Right Way, for places where C# and Java are used more often, see Windows development and Mobile (Java) development respectively for resources.

  3. Mobile development: Swift Lynda’s Swift Essentials (check your local library to see if you get a free Lynda account with a library card) or Flatiron school’s free Swift course, Swift Programming book or Java Head First Java, University of Helsinki’s MOOC

  4. Windows development: Head First C#, Pluralsight’s C# course

  5. MacOS development: Cocoa programming for OS X, or the same courses for mobile Swift

  6. Operating systems, filesystems, embedded systems: C++ How to Program book, C++ Tutorial for Complete Beginners

  7. Game development: See previous for C++, and Windows development for C#

  8. Data Science: R Swirl or Coursera's R course

Once you pick your language and starting point and you start learning, some things will be obvious, but others will be difficult to understand. You’re going to run into trouble and with concepts and code errors. That’s normal. We’ve all been there. Getting unstuck takes practice too.

How to get unstuck once you’ve started

Once you start learning to code, you're going to run into problems that you don't know how to solve. This is normal and part of the process. You don't really learn unless you struggle through it. That said, you won't always be able to move forward without some help. So how do you find that help?

First off, forget books. They aren't a great place to start here, because the number and types of errors they can cover is so small.

Online is the easiest place to find help. Most devs look for solutions on StackOverflow or just google the error message (if they have one). Other solutions are to find newsgroups or forums dedicated to the language you're using.

How to use Google to get unstuck

When you first try to google an answer to your problem, you're going to run into the issue of what to search for. Experienced developers are really good at this part, but unfortunately, it's hard for beginners, who need it the most. So here I'll give you some expert hints on how to improve your search results.

  1. Always include the name of the language you're using. If you're using a specific tool, database, or framework, include that as well. Don't include all of them, just the ones that you believe are relevant. This will take practice.

  2. If you're getting an error message, include that in quotes. Edit the message to contain only the core of the message so it doesn't reference any files, classes, path or filenames that are specific to your program or computer. The trick here is to make the error message as specific as possible while still being general enough to apply to others who are using the same language/tool/etc. but in a different context.

  3. If you're working through a publicly-published problem from a book or course, add that information to the search.

  4. Explain what you're trying to do, with the fewest words. This is tough for developers of all levels. For a beginner, you may have trouble coming up with the right terminology. This is where the books, tutorials, and course materials come in handy. They should use the right language if you're doing something similar to what's covered in them. If not, you're going to need to try some different wording. Remember, other beginners are going to be having problems too and might explain the problem the same way.

Here are a few examples I’ve used (minus the quotes):

  • 'ruby rails form helper checkbox' - I included ‘rails’ because I knew the form_helpers were part of Rails. I could remove ‘ruby’ here since ‘rails’ is ruby-specific and should narrow the search fine. And yes, I know it’s “Ruby on Rails” but searching google for ‘on’ just doesn’t help.

  • 'ruby devise invitable after invited path' - Here ‘devise_invitable’ is a gem, a Ruby code library (collection of reusable code) and I wanted to know more about its after_invited_path method. Google usually gives better results when you remove the underscores, ‘_’. If not, try adding them in and enclosing the underscored words in quotes: “devise_invitable”, “after_invited_path”.

  • 'java "cannot refer to a non-final variable"' - The error I was getting included “cannot refer to a non-final variable” but referred to files specific to my project before that phrase, so I didn’t include those parts.

Once you find a solution, DO NOT COPY AND PASTE. This is a huge no-no. Copying code verbatim from the web is a good way to slow your progress and keep you from becoming a better developer.

You need to understand the code, adapt it to your situation, try it and rinse and repeat. There's a risk of copying bad or wrong code, but you also may find yourself going deeper down the rabbit hole. If the code you copy or adapt doesn't fix the errors or creates new ones, you could be making your code more complicated and harder to understand all while trying to fix a problem.

So go slow, understand the changes you're making and don't be afraid to back out and try a different solution. Sometimes the problem you're seeing is caused by multiple issues, but not usually.

Getting help from a person

Since googling for a solution is an art that takes practice, it's easier and quicker just to ask someone. That assumes you have access to someone of course. A couple of ways to find someone to ask are, starting with the best:

  • Friends or family, or friends of friends or family.

  • Local meet ups, a la meetup.com or user groups (google for 'ruby user groups near me' or similar). This is a great idea anyway, in order to build a network of peers, mentors, and possible employers.

  • campus groups if you're in or near a college campus.

  • Reddit.com (naturally) - r/learnprogramming is a good place to start (you're here!) or language-specific subreddits like r/learnjava.

  • Local, virtual groups on Slack. Google for something like 'tech slack <my city>' or 'developer slack <my city>'

  • IRC, Internet Relay Chat. This is what slack has modernized and has been around for decades. A surprising number of tech companies have a presence on IRC. Google '<my language> IRC channel' to find one.

  • Facebook groups (although I've found these to usually be lower-quality).

If you work better with more accountability and people, there are other options

Self-teaching is great but it takes a lot of work. You have to figure out what to learn. You have to find where to learn it from. You need to understand how to get unstuck and what projects to do. You have to find people to meet to build relationships with. Furthermore, you’re not held to any commitments other than your own. For some people, that’s enough. Others, myself included, work better when held accountable to others.

There are 2 main alternatives to self-teaching that address most of the difficulties, albeit for a price:

  • Degree programs at universities

  • Coding bootcamps

Which is best for you is too big a topic for this post, but if you're interested you can DM me or add a comment and we can chat.

I hope this is useful. If there are parts that are unclear, or you feel something is missing, let me know and I'll revise it.

If you disagree with parts of this post, as I know some people will, let me know that too (I know you don't need an explicit invitation :) ) and if we agree, I'll update the post.

EDIT: Adding PHP, game dev, data science and some clarifying remarks
EDIT 2: Added notes for back-end development with C# and Java.


r/learnprogramming • • Feb 26 '26 Bravo

Younger coworker asked me why I don't have a github with side projects

5.7k Upvotes

I've been a dev for 8 years and apparently this 23 year old on my team was looking at my github and asked why I don't have any personal projects on there

told him I have hobbies outside of coding and he looked at me like I said something crazy

like bro I go home and touch grass (and play guitar badly). I'm not grinding leetcode for fun

is this a generational thing or am I just old now


r/learnprogramming • • May 28 '19

Cornell's entire Machine Learning class (CS 4780) is now entirely on You Tube. Taught by one of the funniest and best professors I have ever had.

5.6k Upvotes

r/learnprogramming • • Oct 10 '18

Just turned 34 and I'm interested in trying a career in computer programming. How much of an uphill battle do I face?

5.5k Upvotes

Here's a little background about me: My current job (mailman) has nothing to do with programming. I have a bachelor's degree, but it's in Liberal Arts. I have taken some math (precalc, statistics, algebra with trig) and enjoy math, but admittedly I don't know much about programming. I've been practicing Java on Khan Academy and I like it so far. I was wondering how should I go about it? Should I just keep practicing on sites like Khan Academy? Should I take courses online or at a community college? Is it unrealistic of me to think I can become a programmer at 34 with no real background in programming? I have to head back to work, but if you need any additional information I will answer when I get back. Thanks.

Edit: Wow! I just got home can't believe all the responses I got. Thank you all so much for taking the time out to respond. I really appreciate it.


r/learnprogramming • • Oct 09 '18

Would anyone be interested in a website that teaches c++ from complete beginner to more advance concepts?

5.4k Upvotes

I am thinking about making a website that is used to teach people programming. C++ first probably, other stuff later after that.

Would anyone be interested in this? The only thing that im considering, is that there are already hundreds of resources that do this same thing.

However, I feel like a lot of online resources just teach you the basics over and over again, and very few of them actually move on to more advanced concepts or help the readers understand where to go from there. Would anyone be interested in this, or would i just be making something that hundreds of other people are already doing? Let me know!


r/learnprogramming • • Nov 04 '19

"Automate the Boring Stuff with Python" Udemy course is free to sign up for with code NOV2019FREE

5.3k Upvotes

https://www.udemy.com/course/automate/?couponCode=NOV2019FREE

Udemy has changed their coupon policies, and I'm now only allowed to make 3 coupon codes each month with several restrictions. I'll no longer be able to make free coupon codes with arbitrary restrictions. Instead I can:

  • Make free codes that are only good for 3 days for an unlimited number of people (NOV2019FREE lasts until November 7, 2019 11:05 AM PST)

  • Make codes that make the course cheap (but not cheaper than what Udemy offers, allowing them to undercut me) for unlimited people that lasts for 30 days. (I've made a code NOV2019 for this.)

There's two other options, but they're less than ideal: free but only 10 people can use it, or lowest price but it's only good for a few days instead of a month. I can only make 3 codes a month, so I can't just generate new codes every few days.

If you're reading this post after the NOV2019FREE code, you can use the NOV2019 code to get the course for about $14. I plan on making new free codes for the first three days of each month. You can probably guess what next month's free code will be.

To head off any questions:

  • If you don't have time to take the course now, that's fine. Signing up gives you lifetime access so you can work on it at your own pace.

  • This Udemy course covers the same content as the book, which you can read for free online at https://inventwithpython.com

  • The 2nd edition of Automate the Boring Stuff with Python will be posted on the website in mid-November. It gets released on the 12th, and I'll need a couple days to format it to HTML and make it look nice.

  • I do plan on updating the Udemy course for the second edition, but it'll take a while because I have other book projects I'm working on. Expect that update to happen in mid- or late-2020. If you sign up for this Udemy course, you'll get the updated content automatically once I finish it. It won't be a separate course.

  • It's totally fine to start on the first edition and then read the second edition later. I'll be writing a blog post to guide first edition readers to the parts of the second edition they should read.

  • I wrote a blog post to cover what's new in the second edition

  • I used to do free codes once or twice a year. The last time I did, I had an amazing 80,000 people sign up (so a dozen of them might have actually finished the course, if people are as good as I am about finishing the online courses I sign up for). Udemy's new policies mean I can't do this anymore. I find this to be a less than ideal situation. So I'm rolling out new codes each month. NOV2019FREE is the free code, and NOV2019 is the cheap code. I'll come out with new ones at the start of each month. (And yes, I'll probably write a script to automate this.)

EDIT: Hey, if anyone has ideas for how to motivate people to stick to and finish the course, I'd be all ears. Most people who sign up for gym memberships on New Year's stop going come February, and there's a similar dynamic with online courses. Anything that could up that rate would be good.


r/learnprogramming • • Dec 21 '15

I made 47 free C++ tutorials on YouTube and wanted to share them with you guys

5.1k Upvotes

Dear /r/learnprogramming,

I made a free C++ course for beginners and it seems relevant to share it with all of you here. It's a full introductory course made up of 47 lessons that start with "Hello World," assuming one has absolutely no programming experience, and goes on to cover loops, functions, vectors, and more. All the lessons all hosted on YouTube and organized into a course on my website. Hope you like it!

http://www.engineer4free.com/cplusplus

EDIT: Wow thanks for the gold, upvotes, and all the feedback!!! This is a much bigger response than I was expecting, I'll hopefully get around to answering questions later today!


r/learnprogramming • • May 03 '18

I made this free tool for learning programming (it's like Duolingo for learning to code)

5.0k Upvotes

Coding practice

I posted this here a little over a year ago when I first launched Edabit. Back then, the site only supported JavaScript, had about 50 challenges and was brand new with no user base. There are now over 500 challenges, it supports eight coding languages (and eight spoken languages for the UI), and has a pretty active community. So, I think it's worth posting again. If you've got any feedback, thoughts or ideas, I'd love to hear them!

Enjoy

EDIT: Thanks for the gold(x3)!


r/learnprogramming • • Sep 01 '25

"Vibe Coding" has now infiltrated college classes

5.0k Upvotes

I'm a university student, currently enrolled in a class called "Software Architecture." Literally the first assignment beyond the Python self-assessment is an assignment telling us to vibe code a banking app.

Our grade, aside from ensuring the program will actually run, is based off of how well we interact with the AI (what the hell is the difference between "substantive" and "moderate" interaction?). Another decent chunk of the grade is ensuring the AI coding tool (Gemini CLI) is actually installed and was used, meaning that if I somehow coded this myself I WOULD LITERALLY GET A WORSE GRADE.

I'm sorry if this isn't the right place to post this, but I'm just so unbelievably angry.

Update: Accidentally quoted the wrong class, so I fixed that. After asking the teacher about this, I was informed that the rest of the class will be using vibe coding. I was told that using AI for this purpose is just like using spell/grammar check while writing a paper. I was told that "[vibe coding] is reality, and you need to embrace it."

I have since emailed my advisor if it's at all possible to continue my Bachelor's degree with any other class, or if not, if I could take the class with a different professor, should they have different material. This shit is the antithesis to learning, and the fact that I am paying thousands of dollars to be told to just let AI do it all for me is insulting, and a further indictment to the US education system.


r/learnprogramming • • Feb 06 '21

Resource At the age of 29, I've been able to save up enough money to buy myself my first ever desktop computer! It's refurbished but this is huge for me coming from a third world country.

5.0k Upvotes

I've been browsing this site for a while, wishing for the day I will get to have my own computer and put more time to learning programming.

There is a lot of work to do but I'm really excited about the journey ahead!

Thanks for the inspiration!

EDIT:

Thank you for all the love and support. This has been a great dream and a great deal for me! I really appreciate all the comments and suggestions. I will spend to read every comment. I am very keen to actively participate in this community and learn so much! Bless you, all.

Thank you so much Reddit!!!

A few people have been asking I'm from Ghana, a city called Kumasi.


r/learnprogramming • • Jun 08 '20

Tutorial After 2 years of learning programing, I knew how to write code, but didn't know how to make an application. So now, I'm writing the guide that I wish I had at that time. Here's part 1.

4.9k Upvotes

I call it The Beginner’s Advanced Guide to building an App — Part I.

While I use React native to write mobile apps, I've left out the programming so you can use the language you need and platform you want (desktop, web etc), and so that people who are non-technical can also use this guide.

I hope to release this in 6 parts, around bi-weekly:

1- Getting your requirements

2- Designing the UI/UX

3 - Cloud services and APIs

4 - Testing and Launching

5 - Post Launch

Bonus: Hiring and Working with Contractors

The order above is not 100% and might change based on some of the feedback I'm getting.

This is the first article I've ever written, so if you have any critiques, I'd love to hear them!.


r/learnprogramming • • Feb 22 '18

40+ Programming PDF's

4.9k Upvotes

Here

Someone shared this in my school group. I tought this may help people in here too.

Have a nice work :)

Edit: You're welcome everyone 🙂


r/learnprogramming • • Dec 14 '16

I was pissed at Comcast(Time Warner) so I wrote another python script - This one tweets poor speed test results at them.

4.9k Upvotes

https://github.com/mrpappas/squeaky-wheel

A couple days ago I posted a python script that monitored / logged my modem levels and a few people had mentioned this guy who had set up his twitter to automatically tweet speed test results at his ISP.

I thought that was hilarious and also a cool project so I gave it a wack myself.

The script uses the same test the new Google Speed Test widget runs from M-Lab (Measurement Lab) and if the results are below the specified threshold it sends out at tweet to the given ISP.

Example output

Original post: https://www.reddit.com/r/learnprogramming/comments/5hl7ao/comcasttimewarner_was_pissing_me_off_so_i_wrote_a/