How to learn coding and programming for it | Anthony Miller | Skillshare

Playback Speed


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

How to learn coding and programming for it

teacher avatar Anthony Miller, Software Developer

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

    • 1.

      Introudaction

      1:24

    • 2.

      Coding & computer science

      5:30

    • 3.

      Coding skills and preparing for interview

      3:55

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

68

Students

--

Project

About This Class

Coding is difficult to learn.
I spent years going through a ton of lessons, yet I barely remembered anything.
In this lesson, I explain how, if I had to learn how to code from scratch, I would do it.

Maybe you want to learn more about the computer industry or make games or software for your pals.
In either case, knowing the computer language may significantly advance both your career and personal development.

In this lesson, I'll instruct you on these things:

  1. Objectives And Expectations
  2. What Is Coding Even?
  3. Coding Effective Practice: Deep Dive
  4. Skills in Non-Coding Coding
  5. Getting Ready for Interviews

Anyone can learn to code if they have the necessary time, effort, and internet connection. You are a part of that if you are reading this.
To help you get started writing code, we'll go through everything you need to know in this guide.

Meet Your Teacher

Teacher Profile Image

Anthony Miller

Software Developer

Teacher

Hello, 

I first studied graphic design, then multimedia design, and I self-taught coding.
I've worked as a freelancer, for startups and agencies, and now my wife and I are running our own studio in Stockholm. I can also use my tongue to touch my nose!

I've been instructing, and I really adore it!
I feel alive when I see what my pupils create and how my lessons have changed their life. So, I'm grateful. Continue to share your articles, reviews, and tales!

See full profile

Level: Beginner

Class Ratings

Expectations Met?
    Exceeded!
  • 0%
  • Yes
  • 0%
  • Somewhat
  • 0%
  • Not really
  • 0%

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.

Transcripts

1. Introudaction: Have you been stuck in the endless cycle of tutorial? After tutorial, we're trying to learn how to code, but not making any real progress. I, for one have been there. I first started to learn how to code over ten years ago. I spent years trying online courses and watching YouTube videos that wasn't making any real progress. If you're looking to learn how to code, know that it doesn't need to be this way. So in this video, I'm going to share how I would go about learning to code if I could do it all over again. So step one, we need to set goals and expectations. Why are you trying to learn to code? Do you want to make a website for your family business? Do you want to develop some app? You've always been thinking about where do you want to land a job as a software engineer? Don't worry too much if these goals change over time. But I think it's important to start out by deciding what it is that you actually want. Additionally, tried to set reasonable expectations for yourself. You're not going to go from writing your first line of code to getting a software engineering job and just a month, it just won't happen that way. You might be able to build a website or an app and that time. But just like any other skill mastering software development is going to take a lot of effort. Most developers either went to boot camp, which take about three months of full-time study, or they have university computer science degrees, which of course take years to get to realistically to compete with these people on the job market, you'll likely need a similar amount of experience and time spent learning. 2. Coding & computer science: Step to understand what coding really is. I know that sounds cliche, but hear me out. Most of my wasted time when I tried to learn, was spent on trying to understand coding syntax. I would search for things like Javascript, tutorial, and then I would try to follow along and do learn JavaScript. This sounds simple enough and to some extent I did learn some JavaScript. But what could I do with that JavaScript? Absolutely nothing. I didn't even know what JavaScript it was four. And this is just such an overlooked but key point. Coating is just a means to an end. It is a tool used by developers to develop software as an analogy, if you wanted to build a house, you want it. Go look up tutorials and how to use tools like jackhammers. You would need to first understand the fundamentals of designing a house. And then down the line, you will eventually need to learn how to use those tools. The analogy isn't perfect, but hopefully it gets the idea across. Coding is just the process of telling the computer what to do. But software development is a larger process of building out software. The major component of this process is going to be coding, but there are plenty of other key components to this process. But you won't learn if all you do is learn how to code. Step three, learn the fundamentals. I get asked all the time, what programming language should I start with? Don't worry, we'll get there in a moment. But the reality is that all programming languages stemmed from these same basic ideas and we should start by learning those ideas. A great place to start here is going to be CS5, which is the first computer science course offered at Harvard. This is an incredible resource because it's actually completely free online and it has topnotch. This course will give you a fundamental overview of computer science principles. You'll learn everything in this class, from binary notation to coding and C and Python to building out full-stack web applications with HTML, CSS, and JavaScript. Of course, you won't leave this class as an expert in pretty much anything. However, you will leave with an understanding of the context of coding and how it fits into this bigger picture of software development and computer science step for deep dive into a single programming language. At this point, you've been introduced to a variety of different languages. And one thing you'll notice is that in reality they're all very similar to each other. They might have slightly different syntax. But one thing you'll learn is that once you learn one, you can very easily pick up more languages. So if you're unsure of which language depict, note that it doesn't really matter that much, but I would usually say to default to either Python, Java or JavaScript. Python is a great all around programming language with incredibly simple syntax. It's particularly good for data science and machine learning, but it also gets used in plenty of other places, such as backend web development. Java is another general purpose programming language that can be used just about anywhere. One of its big benefits is that it comes with static typing, meaning that you have to explicitly define the types of every variable you create. This is great, especially for learning because it forces you to really think through the code you write. That said, it's also worth noting that the Java syntax is a lot more verbose than Python syntax, so it can be a little bit harder to get going. On the other hand, JavaScript is the primary programming language of the front-end of the Internet. And in my opinion, this actually makes it one of the easiest languages to learn because of the fact that the code you write is oftentimes easier to see and understand since you can interact with the output and a web browser instead of a terminal. That said, if you do choose to go this route, you'll also need to learn HTML and CSS, which are the markup languages used for describing the content and style of webpages. Once you choose a language, you also need to find somewhere to actually learn it. There are tons of amazing courses out there, but here's a few that I would recommend. First on the free side is free code camp as well as Code Academy. Both of these have free courses that tend to be very high-quality, and you can supplement these with videos on YouTube if you find that the courses are lacking in any areas, if you are interested in paid courses, I really loved programming expert. I of course, need to address my bias and the fact that I worked for algo expert, the company that created programming expert. But don't worry too much. I have no financial incentive towards you buying the product ended. This isn't sponsored by them in any way. I just really think it's a high-quality product, particularly if you're looking to learn Python. There are also plenty of courses out there on Udemy and Coursera. I haven't gone through these though, so I can't really recommend one specifically, but I'm sure some of them are pretty good just to make sure to watch the free content first, to get an idea and maybe read the reviews as well as the smallest side here, you should also take some time to choose a code editor at this point and to get familiar with its features. The most popular editors out there right now is Visual Studio Code. So that's probably a good place to start, but which one you choose isn't too important. However, what is important is getting used to editing code on your local computer in a code editor, I remember doing most of my learning with online tutorials, and I felt lost when I tried to take what I learned online to this local editor to avoid that confusion down line, just get used to using a local editor from the start and it's going to make everything a lot easier. 3. Coding skills and preparing for interview: Step five, learn, practice, repeat as you are learning, make sure you are actually practicing. This all comes back to that initial idea of context. If you just to learn the syntax of coding, you're learning anything useful as you learn more and try creating some simple projects. Don't get over your head with anything too complicated, but just try to make sure you are applying your knowledge outside of doing exactly what some tutorial says to do. This is really the only way to confirm that you're actually learning. As you do this, you'll find yourself Googling things all the time. And this is perfectly okay. In fact, over ten years later, I still Google something just about every time I code. However, make sure that you aren't just copy pasting solutions. Your goal is to learn. So make sure that you actually understand any code that you copy. A good way to do this is to find the solution and then come back after some time and re-implement it yourself. This way you confirm that you actually understood what you had to look up. Step six, learn non-coding software development skills. Like I said, software engineering is not just coding. There are plenty of other things to learn, many of which will be incredibly important for most Developer jobs. First of all, you need to get used to using a terminal if you haven't already. You don't need to be an expert on Bash, but you should be able to quickly navigate through directories and edit files. Additionally, learn the Git version control system. This is how software engineers and industry keep track of their work. You can think of it like Google Docs history. But for code, both get n to the terminal in general are actually pretty straightforward to learn. So if another course you've used teaches it, then great. Just follow along with that. Otherwise you can probably learn it through some YouTube videos. And of course, just practicing on your own. From here, try to start developing a basic knowledge of different aspects of software engineering. You don't need to be an expert in them, but it can be helpful to understand a bit of how the cloud works and potentially even how to use a cloud provider like AWS or Google Cloud Platform. Another area to explore would be networking and system design. This essentially answers questions like, how does the internet actually work and how do we design large-scale applications? You could also start exploring some more niche areas like game development, mobile development, different front-end frameworks or machine-learning, but which you choose, if any, is going to depend on your interests and your goals. Step seven, learn more advanced coding. There are a few aspects of coding worth exploring beyond just the syntax of a language. First, I would learn the different data structures. Particularly I would focus on arrays, Sets, Maps, stacks, queues, trees, and graphs. This might sound like a lot, but you will likely encounter most of these things while you're learning your chosen programming language. Anyways, additionally, you will want to learn some algorithms which are essentially just known highly efficient programs for specific tasks. So in particular, you want to know some sorting algorithms such as merge sort. You want to learn some searching algorithms such as binary search. And you want to know some graph traversal algorithms such as BFS and DFS. In addition to that, I would also recommend you learn how to write code in C or C plus, plus. These languages aren't nearly as user-friendly as languages like Python, so they don't make great first programming languages. However, they give you much more direct control over your computer's memory. This is something that's usually abstracted away from you with more modern languages. But I think getting an understanding of how it all works and just to make you a better overall programmer, step eight, prepare for technical interviews. Assuming you want to get a job as a software engineer, it's pretty likely that you have to pass it some technical interviews. Thanks for watching and I'll see you in the next video.