How I Would Learn To Code (If I Could Start Over)
Learning to Code: How to Get Started
In this video, the speaker shares their experience of learning how to code and provides tips on how to get started with coding. The speaker emphasizes the importance of setting goals and expectations, understanding what coding really is, learning the fundamentals, and deep diving into a single programming language.
Setting Goals and Expectations
- Set clear goals for why you want to learn how to code.
- Be realistic about your expectations and understand that mastering software development takes time and effort.
Understanding What Coding Really Is
- Coding is just a means to an end; it is a tool used by developers to develop software.
- To truly understand coding, you need to understand the larger process of building out software.
Learning the Fundamentals
- Start by learning basic computer science principles through resources like CS50.
- CS50 covers everything from binary notation to full-stack web applications with HTML, CSS, and JavaScript.
Deep Diving into a Single Programming Language
- Once you have been introduced to different programming languages, choose one (such as Python, Java or JavaScript).
- Learn one language well before moving on to others since they are all very similar in nature.
Choosing a Programming Language
In this section, the speaker discusses how to choose a programming language and recommends some resources for learning.
Choosing a Language
- Java syntax is more verbose than Python syntax.
- JavaScript is the primary programming language of the front end of the internet and can be easier to learn because you can interact with output in a web browser.
- HTML and CSS are markup languages used for describing content and style of web pages.
Learning Resources
- FreeCodeCamp and Codecademy offer free high-quality courses that can be supplemented with YouTube videos.
- Programming Expert is a paid course that is recommended for learning Python.
- Udemy and Coursera also offer courses, but it's important to watch free content first to get an idea of quality.
Choosing a Code Editor
In this section, the speaker discusses choosing a code editor and getting familiar with its features.
Choosing an Editor
- Visual Studio Code is currently the most popular editor.
- Getting used to editing code on your local computer in a code editor from the start will make everything easier.
Learn, Practice, Repeat
In this section, the speaker emphasizes practicing coding as you learn by creating simple projects and applying knowledge outside of tutorials.
Practicing Coding
- Creating simple projects helps apply knowledge outside of tutorials.
- Googling things while coding is okay, but don't just copy-paste solutions. Make sure you understand any code that you copy by re-implementing it yourself after some time has passed.
Non-Coding Software Development Skills
In this section, the speaker discusses non-coding software development skills that are important for most developer jobs.
Terminal and Git
- Get used to using a terminal to navigate directories and edit files.
- Learn Git, which is how software engineers keep track of their work.
Developing Basic Knowledge
- Develop a basic knowledge of non-coding skills like project management, communication, and problem-solving.
Learning Path for Aspiring Software Engineers
In this section, the speaker discusses the learning path for aspiring software engineers.
Areas to Explore
- The speaker suggests exploring different areas such as game development, mobile development, front-end frameworks, and machine learning based on personal interest and goals.
Advanced Coding
- The speaker recommends learning data structures such as arrays, sets, maps, stacks, queues, trees, and graphs.
- Additionally, the speaker suggests learning algorithms including sorting algorithms like merge sort and searching algorithms like binary search.
- Knowledge of graph traversal algorithms such as BFS and DFS is also recommended.
- The speaker advises learning C or C++ to gain a better understanding of computer memory management.
Technical Interviews
- The speaker emphasizes preparing for technical interviews by watching their video on the topic.