How I would learn to code (If I could start over)

Jason Goodison
29 Jun 202209:16
EducationalLearning
32 Likes 10 Comments

TLDRThe speaker shares their learning journey, advising to start with Python or JavaScript to learn coding fundamentals before tackling complex projects. They recommend building a simple personal website to apply coding to something useful yet achievable. After gaining competency, learn C/C++ for depth before exploring trendy languages. Seek motivation in creating your own solutions and joining hackathons, but be patient with the learning process.

Takeaways
  • πŸ˜€ Start with an easy coding language like Python or JavaScript
  • πŸ“š Learn coding basics like variables, functions, data structures first
  • πŸ› οΈ Use coding basics to build simple but useful programs like a website
  • 🌐 Focus on back-end, front-end and database when building a website
  • 🀝 Use existing frameworks like Django, React instead of writing from scratch
  • πŸ’‘ Build projects that solve problems you actually have
  • πŸš€ Move on to lower-level languages like C/C++ later to cement fundamentals
  • πŸŽ“ Attend hackathons to learn new things and complete projects
  • πŸ˜• Expect your confidence to dip initially as you realize how much there is to learn
  • πŸ™‚ Persist through self-doubt - if others can code well, so can you
Q & A
  • What programming language does the narrator recommend starting with and why?

    -The narrator recommends starting with Python because it looks like plain English and is easy to get started with. You can quickly learn basics like variables, functions, data structures, and control flow.

  • What are the key differences between coding and programming according to the narrator?

    -Coding refers to writing code to solve computer science problems, while programming is using coding skills to create programs that solve real-world problems. You need coding fundamentals before you can effectively program.

  • What backend and frontend frameworks does the narrator suggest using?

    -For Python backend, the narrator suggests Django or Flask. For JavaScript backend, Express.js. For the frontend, React.js. For the database, MongoDB.

  • What characteristics make for a good beginner programming project?

    -A project that solves a real problem you have, is useful but not too complex, and is unique rather than copying tutorials. Following tutorials but building slightly different projects is a good approach.

  • Why does the narrator recommend learning C and C++ later on?

    -Most modern languages derive from C and C++ concepts. Learning C and C++ fundamentals thoroughly will make picking up new languages much easier in the long run.

  • What are hackathons and why does the narrator recommend them?

    -Hackathons are events where you build an entire project in 48 hours alongside others. They expose you to new concepts and let you build something substantial with help. The narrator sees them as great learning opportunities.

  • What is the Dunning-Kruger effect in learning programming?

    -The Dunning-Kruger effect is when you are overconfident at first when starting to learn, then feel you know nothing as you realize how much there is to learn before confidence goes back up.

  • Should you start with advanced topics like machine learning?

    -No, the narrator advises against starting with very advanced topics like machine learning. You won't have the coding fundamentals or math background needed to effectively learn it early on.

  • Is it okay to follow coding tutorials when starting out?

    -Yes, following tutorials can be helpful, but the narrator recommends building projects that are similar but not identical to the tutorials, so you can't just copy solutions.

  • How important are fundamentals like C and C++ in the long run?

    -Very important. Most languages derive from C/C++ concepts. Having strong fundamentals will make picking up new languages much easier down the road.

Outlines
00:00
😁 How I'd learn coding from scratch based on experience

The speaker started learning coding in grade 11 with Scratch. In university, they learned Racket, C, C++, HTML, CSS, Tcl, Python, Java, JavaScript, C# in that order. C and C++ are the most useful to learn fundamentals. Starting with something too advanced like machine learning won't work. Need to balance usefulness and difficulty when starting out. Python or JavaScript are good first languages. Build a simple web app to practice coding and programming. Make something useful for yourself as motivation. After basics, learn frameworks like Django, Flask, Express, React. Then circle back to strengthen C/C++ fundamentals long-term.

05:01
πŸ“š How to build your first web app with Python or JavaScript

For a first web app, build a simple backend in Python/Django or JavaScript/Express. Then build the frontend with HTML, CSS, JavaScript, React. Use MongoDB for the database. Build something simple but useful for yourself as motivation. Can follow a tutorial but build something different than they do like a currency converter. After building skills, learn C/C++ fundamentals deeply. They underpin most other languages. Expect to experience the Dunning-Kruger effect but trust the process. Attend hackathons to learn new things and build projects.

Mindmap
Keywords
πŸ’‘coding
Coding refers to writing code to solve computer science problems. The video emphasizes learning coding fundamentals as a prerequisite to programming. Coding involves concepts like data structures, algorithms, and control flow. The speaker recommends starting with Python to learn coding basics like variables, functions, arrays, loops, and classes.
πŸ’‘programming
Programming means using code to create programs that solve real-world problems. It builds on coding fundamentals. The video advocates starting with programming right away through building a simple website, to make learning practical and motivate students.
πŸ’‘website
Building a website is proposed as the first programming project after learning Python basics. It involves backend, frontend, and database concepts. The speaker suggests using frameworks like Django, Flask, Express.js, React, and MongoDB.
πŸ’‘JavaScript
JavaScript can be used for both backend and frontend web development, so the speaker says it's a good alternative to Python for starting out. JavaScript allows building full stack web apps and keeps motivation up.
πŸ’‘C/C++
The video recommends learning C and C++ after starting out with Python or JavaScript. They teach memory management, OOP, and other core concepts applicable to any language. Knowing C/C++ fundamentals enables picking up new languages faster.
πŸ’‘useful
The first project should be useful but not too complex - in the 'sweet spot' between basic CS problems and advanced real-world apps. This keeps motivation high while learning key concepts.
πŸ’‘motivation
Motivation is crucial when learning to code and program. The speaker emphasizes projects you find personally useful, building marketable skills quickly, and not getting overwhelmed with complexity.
πŸ’‘frameworks
Frameworks like Django, React, and MongoDB make programming easier by providing reusable code. The speaker recommends using frameworks right away rather than writing everything from scratch.
πŸ’‘fundamentals
Fundamentals like algorithms, data structures, and OOP are important no matter what language you use later. The video stresses learning coding fundamentals with C/C++ even as higher level languages change.
πŸ’‘Dunning-Kruger effect
This refers to initial overconfidence followed by lack of confidence as you gain skills. It's normal to feel like you don't know enough, but you can get through it. Hackathons also help.
Highlights

First significant research finding

Introduction of new theoretical model

Notable contribution to field

Transcripts
Rate This

5.0 / 5 (0 votes)

Thanks for rating: