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

Jason Goodison
29 Jun 202209:16

Summary

TLDRThe speaker, a Microsoft employee with diverse internship experience, shares insights on learning to code. They recommend starting with practical languages like Python or JavaScript for web development, using frameworks like Django, Flask, Express.js, and React. The speaker emphasizes building useful yet manageable projects to maintain motivation and apply coding skills to real-world problems. They also advise learning C and C++ for a strong foundation and highlight the importance of participating in hackathons for exposure and growth.

Takeaways

  • 😀 The speaker works at Microsoft and has a diverse background in coding with experience from various internships.
  • 📚 They started coding in grade 11 with Scratch, a basic game development language for children, before moving on to more complex languages.
  • 🔨 The speaker learned multiple programming languages, emphasizing the importance of learning C and C++ for understanding the fundamentals of programming.
  • 💡 After learning C and C++, the speaker found that most other languages are derivatives, making them easier to pick up later.
  • 🚫 The speaker advises against starting with C for practical projects due to its complexity and the need for extensive libraries.
  • 🧠 Learning machine learning as a first step is discouraged due to its advanced math requirements and the potential for overwhelming a beginner.
  • 🔑 The sweet spot for learning is to find a balance between doing something useful but not overly complex.
  • 🔍 The distinction is made between coding (writing code to solve problems) and programming (using coding to make real-world applications).
  • 🐍 Python is recommended as an easy-to-start language with English-like syntax, allowing for quick learning of basic concepts.
  • 🌐 Building a website is suggested as a practical project to apply coding skills, involving backend, frontend, and database management.
  • 🛠️ Frameworks and tools like Django or Flask for Python, and Express.js and React for JavaScript, are recommended to streamline development without reinventing the wheel.

Q & A

  • What programming language did the speaker start learning in grade 11?

    -The speaker started learning with a language called Scratch, which is a basic game development language made for children.

  • What is the speaker's educational background in terms of programming languages?

    -The speaker learned Racket, C, C++, HTML, CSS, TCL, Python, Java, JavaScript, and C#, with some languages learned in class and others on their own.

  • Why did the speaker choose to learn certain programming languages?

    -The speaker chose languages based on specific motivations: Racket for recursion, C for memory management, C++ for object-oriented design, HTML and CSS for web development, TCL for an internship experience, Python for side projects, Java and JavaScript for back-end and front-end web development, and C# for full-time job requirements.

  • What does the speaker consider the most useful languages to learn after C and C++?

    -The speaker believes that after learning C and C++, most other programming languages are derivatives and make specific tasks easier, implying that these two languages are foundational and highly useful.

  • What is the speaker's opinion on starting with C for learning programming?

    -The speaker thinks starting with C can be demotivating because anything useful requires a lot of code or the use of unfamiliar libraries, making the learning process too hard.

  • What is the difference between coding and programming according to the speaker?

    -Coding is writing code to solve computer science problems, while programming is using coding to make programs that solve real-world problems. Programming requires learning the fundamentals of coding.

  • Why does the speaker recommend Python as an easy language to start with for beginners?

    -Python is recommended because it looks like plain English, making it easy to read and start learning. It allows quick progression into learning basics like variables, functions, data structures, and algorithms.

  • What are the three important aspects of a website that the speaker mentions?

    -The three important aspects are the back-end, which manages user data, the front-end, which runs on the user's browser, and the database, which stores data.

  • What frameworks does the speaker suggest for Python and JavaScript when building a website?

    -For Python, the speaker suggests Django or Flask, and for JavaScript on the back-end, Express.js is recommended. For the front-end, React is suggested.

  • What advice does the speaker give regarding the complexity of the first project when learning to program?

    -The speaker advises to create something useful but not too useful, avoiding overly complicated projects that can lead to loss of motivation and incomplete learning.

  • How does the speaker describe the importance of building projects that are personally useful?

    -The speaker emphasizes that creating projects that solve personal problems or fulfill personal needs is beneficial because it keeps the learning process relevant and motivating, and such projects are often unique and interesting to employers.

  • What is the speaker's view on the role of hackathons in a programmer's learning journey?

    -Hackathons are seen as valuable because they expose participants to new ideas and concepts, help in building and completing projects within a short timeframe, and are a fun way to learn and network.

  • What is the Dunning-Kruger effect mentioned by the speaker, and how does it relate to learning programming?

    -The Dunning-Kruger effect describes the phenomenon where people are overconfident in their abilities at the beginning of learning a new skill, then lose confidence as they realize how much they have to learn, before gradually regaining confidence. The speaker mentions this to prepare learners for the emotional ups and downs of the learning process.

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This

5.0 / 5 (0 votes)

Related Tags
Coding AdviceWeb DevelopmentProgramming TipsC LanguagePython TutorialJavaScript GuideProject IdeasCareer GrowthTech IndustryLearning PathHackathons