Terraform Course - Automate your AWS cloud infrastructure

Поделиться
HTML-код
  • Опубликовано: 21 сен 2024

Комментарии • 1 тыс.

  • @jithendragunuru
    @jithendragunuru 2 года назад +839

    I completed this course before my scheduled interview on terraform and got the job and still i am using this course as a reference. thanks, man for the wonderful course.

    • @madhukart9380
      @madhukart9380 2 года назад +5

      Congrats Jithendra, How much experience did you keep in Terraform. I am learning terraform. Can you please help me. I may have an interview.

    • @ganesh7610c
      @ganesh7610c 2 года назад +5

      Good one man,help us as well

    • @enjoytechchannel8900
      @enjoytechchannel8900 2 года назад +2

      I am a beginner from where need ti start as well as what things are prerequisite please give answer.

    • @madhukart9380
      @madhukart9380 2 года назад +2

      @@enjoytechchannel8900 no pre requisites required. Try to learn the subject thoroughly.

    • @enjoytechchannel8900
      @enjoytechchannel8900 2 года назад

      @@madhukart9380 Thank you for your reply.. so as a beginner from where I start and learn please suggest and waiting for your reply.

  • @NicGillespie
    @NicGillespie 4 года назад +68

    I tried free code camp a long time ago when it was first starting out. Overall it was okay, but not great. I got an hour into this tutorial and was thinking "who made this, its amazing and its add free, they are surely some sort of generous God." I had no idea FCC quality has shifted so much, I'll have to go back and check what other stuff they have. This video is great.

  • @andrewmgrube
    @andrewmgrube 3 года назад +24

    1:36:04
    Just a little clarification in case anyone was wondering what the the user_data portion and what the "goofy header" is.
    2 angle brackets (less than symbols) and then a dash symbol (-) will start a "here doc" (en.wikipedia.org/wiki/Here_document).
    ">>" followed by a delimiting identifier (EOT in your example), starting on the next line, by the text to be quoted, and then closed by the same delimiting identifier on its own line. This syntax is because here documents are formally stream literals, and the content of the document is redirected to stdin (standard input) of the preceding command; the here document syntax is by analogy with the syntax for input redirection, which is < “take input from the following file”.

    • @bbking2179
      @bbking2179 3 года назад

      thx :')

    • @abhinavdattaofficial8131
      @abhinavdattaofficial8131 5 месяцев назад

      My #!/bin/bash file is not working and hence I am not able to install the apache2 so I can't see the echo statement in the ipv4 public address so let me know if we have to create a bin folder first using bash..or something pretty new to this don't have much idea kindly help.

  • @abufarhaz2306
    @abufarhaz2306 5 месяцев назад +2

    I can confidently say that this one video is all you need to learn Terraform. It's well-explained, using the simplest language possible, without any complex terms that might overwhelm someone just starting with Terraform. Thank you, Sanjeev, for making such a powerful tool so easy to understand.

  • @antfirmin
    @antfirmin 3 года назад +92

    Exactly all I needed to know about Terraform in one video.
    It was paced well, useful shortcuts and some great tips too.

  • @aemdeei
    @aemdeei Год назад +15

    This is one of the best tutorials I have come across. Simple and straightforward, that is how I can sum this up.
    Thank you for the wonderful contribution!

  • @zulfiqarlangah
    @zulfiqarlangah 4 месяца назад +3

    The best course for beginners. I highly recommend everyone to start from here.

  • @shivareddybattula5082
    @shivareddybattula5082 3 года назад +46

    This is by far one of the best content I came across. Inspite of me being new to terraform , AWS and Linux , I am already feeling comfortable to work on them after this video. Thanks a ton once again. Keep doing the good work.

  • @nerdchivepodcast6650
    @nerdchivepodcast6650 Год назад +5

    3 hours ago I knew nothing about Terraform. Now, I consider myself an expert because of this course. Thank you!

  • @theflymo
    @theflymo 4 года назад

    This course is excellent- practical in that you go through the process we all do in real life- google search > copy/paste code > hack it. Even the mistakes are really informative, as they're exactly the sort of things everyone comes up against when starting Terraform. Huge thanks to you guys!

  • @neerajkumar81
    @neerajkumar81 3 года назад +4

    Perfectly paced course for a beginner like me.
    I am still 30 minutes away to complete it, but I have learned a lot from it so far and wanted to thank the instructor.

    • @chandan1583
      @chandan1583 2 года назад

      I am getting this error while performing "terraform init" command
      PS G:\chandan\AWS\Terraform Project 1> terraform init
      terraform : The term 'terraform' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
      At line:1 char:1
      + terraform init
      + ~~~~~~~~~
      + CategoryInfo : ObjectNotFound: (terraform:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException

  • @KingstonFortune
    @KingstonFortune 2 года назад +6

    I had to pause the video to check the name of the instructor...this is a very good intro course to terraform, this has got me excited for a devops career, thank you very much Sanjeev for making this really clear and engaging to watch

  • @david2358
    @david2358 3 года назад +4

    I am new to terraform and I got started with this video and I feel like I am a pro now, thank you so much 🔥

  • @themikespellman
    @themikespellman 16 дней назад

    Excellent introductory guide for someone like me who has no prior knowledge of Terraform.

  • @impatientmaker8469
    @impatientmaker8469 2 года назад +7

    Great video! Perfect pace too. I followed along and had almost no issues. Since it's a year later, I used Ubuntu 20.04. Seems by default apache2 doesn't listen on 443, so clicking the web link in the AWS console for the EC2 instance doesn't work. Just change https to http and it will show your message.
    Couple notes:
    EOF is End Of File. That

  • @ashwinalvin4997
    @ashwinalvin4997 11 месяцев назад

    I'm a DevOps beginner, satisfied learning basics of Terraform.. Teaching is outstanding, very detailed and to the point 👏🤝 thank you

  • @moacirsouza
    @moacirsouza 3 года назад +9

    I wish there was a way to give more likes in order to show my deep, sincere appreciation for this amazing video and work. Thanks FCC, thanks Sanjeev.

  • @pokalupopitocloud7573
    @pokalupopitocloud7573 3 года назад +2

    This is much better than any lecture teaching terrafrom on Udemy. Good work. Thanks million.

  • @KevonMayers
    @KevonMayers 3 года назад +20

    Great video! Very clear presentation. Not sure if it was mentioned or not, but when you were having a "request timeout" around 1:45:25 when trying to ping the public ip, it is because the security group for the ec2 instance didn't have an inbound rule for ICMP traffic. Thanks for the great content!

    • @laxmankunwar9637
      @laxmankunwar9637 Год назад

      By default icmp n all ingress direction ports r blocked, he was doing ssh on port 2

    • @emmabeejaybinuyo
      @emmabeejaybinuyo 7 месяцев назад

      Yes, i noticed how he tried troubleshooting SSH by pinging ec2 instance, which by default is blocked. However, i loved how he realized the mistake looking into his security group. I was waiting for that error cos i saw his SSH ingress on port 2 when setting up terraform template.
      Overall, this was an excellent tutorial video. I should add that it makes sense to be familiar with setting up resources using the console, that way, it's easy to transition to terraform files.

  • @MurdexChannel
    @MurdexChannel 5 месяцев назад +1

    Loved your video, I learned so much in this 2 hour tutorial. I'm now confident working with Terraform and hope to land a job in Cloud soon.
    For those having problems with server saying CONNECTION REFUSED it is most likely that the user data is not running. You can instead create a .sh file in the same folder of the Terraform project and add the commands there omitting the EOF, just add the lines with sudo. We then access the .sh file doing the following in the user_data section:
    user_data = file("${path.module}/filename.sh")
    That should work
    Also I just discovered we can Output more than one value by using a list:
    output "name" {
    value = [resource.propert1, resource.property2....]
    }

  • @MVPMoe4ever
    @MVPMoe4ever Год назад +2

    This is by far the best Terraform explanations I have found out there. Simple, well explained and easy to follow and understand. Thank you so much. I love this video and am saving it.

  • @fielansshan3466
    @fielansshan3466 2 года назад

    Love how you showed the google process instead of trying to 'look smart by hiding the process in the background' like others.

  • @jagdishrawat8841
    @jagdishrawat8841 3 года назад +6

    where the hell this treasure was hidden, can't believe such material is available. Thanks Guys

  • @amanytarek3822
    @amanytarek3822 Год назад +1

    The instructor is so talented really.
    His way is so great and it's a really valuable content.
    Thank you

  • @sunilvalavala7071
    @sunilvalavala7071 3 года назад +5

    This video helped me a lot while doing a beginner level project. Thank you very much!

  • @krtirtho
    @krtirtho 4 месяца назад +1

    Now that I look back into VSCode, it's kinda crazy when your instructor gets hyped up for VSCode's built-in terminal lol. VSCode has truly changed the development world

  • @jnvsxx
    @jnvsxx 4 года назад +8

    First!!! I'm going to learn it since so many cloud engineer job openings have terraform listed in their descriptions. Also after learning Ansible I think Terraform is a great next step to take.

    • @gwynedd1
      @gwynedd1 4 года назад

      Have you looked into packer?
      Really nice for putting a lot of it in the AMI and you can use ansible to provision it.

  • @randonvidz2406
    @randonvidz2406 Год назад

    After watching this video prior to my interview for a DevOps engineer role, I was able to successfully ace the interview and secure the job.

  • @anilkumarpotula6296
    @anilkumarpotula6296 4 года назад +6

    Best Terraform introduction, hands down. Thank you.

  • @sklau5634
    @sklau5634 2 года назад +1

    Excellent refresher for me as I am trying to get Terraform Associate certification. Perfect Language, Pace, Content Flow and many more...I am very impressed and wanted to be like you when delivering a technical presentation...

  • @moacirsouza
    @moacirsouza 3 года назад +26

    I just can't get enough of FCC. You guys are too amazing for words!

    • @cyberprotec
      @cyberprotec 2 года назад

      Hi, thanks for the course. I had some challenges during on the practice project. (cidr_block and route).

  • @joekampf
    @joekampf 2 месяца назад

    A couple of suggestions for content.
    One thing that I think people miss on the Variable side of Terraform is you can use JSON files to hold your variable values. I find this to be easier to use than tfvars files especially when dealing with objects.
    You also have a lot more tools at your disposal for the automation of generating those files or parsing them for other automations.
    Another to use is the power of the data resources. Pulling in data from a file, or even pulling in attributes of resources that were not defined in your current Terraform project.

  • @jjperez9651
    @jjperez9651 2 года назад +20

    This course was soooo good. Very well put together, flowed nicely and covered alot of good information with real world examples to get started with Terraform. I have definitely subscribed.

  • @CandyLemon36
    @CandyLemon36 10 месяцев назад +1

    The depth of this material is astounding. A book I read with related themes sparked a major transformation in me. "AWS Unleashed: Mastering Amazon Web Services for Software Engineers" by Harrison Quill

  • @relativityboy
    @relativityboy 2 года назад +4

    Great! One hiccup -
    2 years on - could be worth updating with an SSL-Cert and enabling SSL in the apache server in the user_data script....
    or mention that the apache server is only going to be serving on port 80... and that browsers are now following that IP defaulting to HTTPs.
    This caused me a couple hours of pain, hoping you can help others a little (even if it's just an annotation on the vid)

  • @krishnakantmishra8683
    @krishnakantmishra8683 3 года назад +6

    Wow its just awesome. Thanks for making terraform looks so
    easy. The way you explain each small small concept is incredible.

  • @albertliu5760
    @albertliu5760 7 месяцев назад

    This course is amazing, after 3 years it has been uploaded it's still very useful

  • @Mauntium
    @Mauntium 4 года назад +8

    Remember, you have to hit CTRL + S before doing anything in the terminal, because it just doesn't see what's on your screen, it sees the last thing you saved.

    • @atassun
      @atassun 3 года назад +2

      you really saved my day .. I am from Intellij family (Auto save) ...

    • @dorjeetsering937
      @dorjeetsering937 3 года назад +4

      @@atassun @peter There is a toggle under File menu to turn on auto save.

  • @pankajchouthmal8697
    @pankajchouthmal8697 3 месяца назад

    Thank you for simplifying Terraform so effectively. Your breakdown of each concept is truly remarkable.

  • @jephteioudom821
    @jephteioudom821 4 года назад +100

    Thank you for this course. It was awesome. Please can you do another tutorial video with more advanced topics in terraform

    • @breibreii
      @breibreii 4 года назад +10

      yeah, that would be great :)

  • @subiyaseher4751
    @subiyaseher4751 8 месяцев назад

    So far the best course ever I have come across. The instructor explained very clearly the concepts.

  • @maiwand4023
    @maiwand4023 2 года назад +3

    What a nice video. Everything what I needed to know about terraform for myself. The other tutorials are talking to much about senseless points.
    Great tutorial! Go on like this.

  • @ishanbhawantha
    @ishanbhawantha 2 месяца назад

    Excellent Video. I am a Data engineering guy and I wanted to learn this TF. No words Excellent.

  • @nguyenvanthang7387
    @nguyenvanthang7387 4 года назад +4

    Look forward to seeing AWS Certified SysOps Administrator course comming soon!!

  • @aishwaryamurali450
    @aishwaryamurali450 Год назад +2

    Loved this video! sanjeev is a great teacher.. I completed his FASTAPI course as well. great way of explaining things ! Thanks sanjeev

  • @ranjeet1449
    @ranjeet1449 3 года назад +20

    this is such a great introductory course on terraform, thank you awesome people. Next can you do a tutorial on more advanced topics?

  • @MarioAlexandru90
    @MarioAlexandru90 8 месяцев назад

    Very good course, thank you very much! By the way, PPE key is automatically converted to PPK once added in Putty-- Auth just select Show all files and select the PPE key. no need to use PuttyGen to modify the key.

  • @sbylk99
    @sbylk99 2 года назад +59

    00:00 intrudction
    01:56 AWS account setup
    06:09 Windows installation
    10:06 Mac installation
    13:12 Linux installation
    17:40. IDE setup, VSCode + Terraform extension
    20:51 Terrafrom overview
    43:33 Modifying resources
    50:32 Delete resources
    54:54 Reference Resources
    1:04:49 Terraform files
    1:09:47 Practice Project
    1:50:33 Terraform commands
    1:54:05 Terraform output
    2:00:39 Target resource
    2:04:01 Variables

  • @halfbakedproductions7887
    @halfbakedproductions7887 2 года назад

    I like Terraform. It's not really programming per se, there's not a lot of problem solving or having to structure your code in a certain way, just tell it what you want and it'll make it happen for you. The documentation is also really very mature which means you don't have to learn too much by rote and just about everything you need is in there.
    It's obviously much faster, much less error prone, much less _boring_ than having to click around on a cloud provider's web portal.

  • @timsharpe8342
    @timsharpe8342 2 года назад +3

    Great course and I appreciate it was free. In the beginning, you said you would cover authentication/access into AWS without having to use the access key and secret key but I did not see that covered in this video. I'd like to test out some real-life deployments in our company sandbox account but we are only allowed to access the account using federated credentials and we are not allowed to use IAM users accounts.

  • @MrDayfabs
    @MrDayfabs 2 года назад

    oh my goodness. Who are you other than the best teacher of terraform in the whole world. Thanks dude!!!!

  • @bkarmay
    @bkarmay 3 года назад +19

    Great session, great technical skills, and teaching style! Top quality congrats and thank you.

  • @chandubharath1772
    @chandubharath1772 2 года назад

    Buddy no one can explain the way you did. This is soo in-detail. Thanks a lot.

  • @habeebzaman
    @habeebzaman 3 года назад +4

    Thank you so much for your hard work. You are a legend. Your tutoring skill is unreal. Please create a tutorial on Ansible and Grafana if possible.

  • @rijojose87
    @rijojose87 2 года назад

    Excellent vedio I have seen in terraform. I took 2 udemi course to learn it.but you gave everything in one. appreciate your time and effort .

  • @arung2136
    @arung2136 2 года назад +24

    00:00 introduction
    01:56 AWS account setup
    06:09 Windows installation
    10:06 Mac installation
    13:12 Linux installation
    17:40. IDE setup, VSCode + Terraform extension
    20:51 Terraform overview
    43:33 Modifying resources
    50:32 Delete resources
    54:54 Reference Resources
    1:04:49 Terraform files
    1:09:47 Practice Project
    1:50:33 Terraform commands
    1:54:05 Terraform output
    2:00:39 Target resource
    2:04:01 Variables

  • @jerweiyeoh7096
    @jerweiyeoh7096 3 года назад +2

    This guy, working hard for all of us, making videos in the middle of the night
    Appreciate it!
    I guess something that I would like to see added would be how can we break this large file into more modular sized in nested folders/ files style of architecture.
    Good job!

  • @LuminaraLyric
    @LuminaraLyric 3 года назад +9

    Wow. It escalated quickly. At first you were explaining how to extract an zip archive in Windows and then all of a sudden you were casually messing with the Linux network routing tables

  • @abdulrehmanbutt
    @abdulrehmanbutt 3 года назад

    This course is more-than enough to learn Terraform, and else one can learn after doing practice.

  • @kdjyothish
    @kdjyothish 4 года назад +16

    Lots of Love & power to freecodecamp!

  • @RachaelEdward
    @RachaelEdward Год назад

    I'm a beginner and trust me this is really helping me understand terraform way better than what i paid for on udemy!

  • @ebberz
    @ebberz 4 года назад +6

    That was a really nice introduction. Thanks for taking the time.

  • @shailvardhansingh6218
    @shailvardhansingh6218 3 года назад +1

    unbelievable. you just taught terraform in 2 hours and it was extremely easy to understand. Really an excellent video. :)

  • @diplomatic_koboko
    @diplomatic_koboko 4 года назад +3

    This was an amazing video. Learned so much from this. Terraform is much easier to use than CloudFormation

    • @bonduu01
      @bonduu01 3 года назад

      I agree 100%

  • @LoveisHell85
    @LoveisHell85 2 года назад +2

    Thank you for this. I actually purchased a course for terraform on udemy, but it was rubbish compared to this. Nice structure and clear presentation. Please make more videos

  • @kayoutube690
    @kayoutube690 4 года назад +5

    Where can i watch the complete videos? You have a very clear voice.

  • @blank001
    @blank001 2 года назад

    Can't thank you enough, earlier I was doing the server setup manually using console, that procedure was ok but reproducing a similar setup for another program was just a time consuming.
    Can't wait try this and migrate existing services to terraform

  • @thanhdang5607
    @thanhdang5607 4 года назад +6

    This should be one of the great videos that I've been watched.

  • @Zee.Sniper
    @Zee.Sniper 9 месяцев назад

    Excellent course by Sanjeev. He really has the art of teaching. I hope he does a course of python and PowerShell. He is the best at teaching.

  • @ericjones9514
    @ericjones9514 4 года назад +3

    Great tutorial! Thank you for organizing it into chapters that are easy to find in the video.

  • @shitcoder6326
    @shitcoder6326 4 года назад

    This video shows us that it is normal to make mistakes, even a guy with such comprehensive knowledge of terraform.

  • @adrianomarra7494
    @adrianomarra7494 2 года назад

    Best intro video in Terraforms for AWS Cloud by far IMO, I'd just add the instance as a dependency for the "aws_eip" as well to avoid any unexpected errors, so the depends_on would look something like "depends_on = [aws_internet_gateway.gw, aws_instance.web-server-instance]".

  • @miguelangulo1624
    @miguelangulo1624 3 года назад +5

    If i remember well from my days scripting with batch files, EOF means "End Of File"

  • @Chris_mba
    @Chris_mba Год назад +2

    This is very thoroughly explained. You are a skilled teacher. Thank you!

  • @SiddharthSinghFiery69
    @SiddharthSinghFiery69 3 года назад +10

    This is an incredibly awesome tutorial for Terraform, both for revising the tool or learning it for the very first time. Very nicely explained. Subbed to the channel.

  • @mithunmohan5727
    @mithunmohan5727 5 месяцев назад

    EOF= End Of File .
    Very nice terraform and aws tutorial available in youtube. Thank you 🙏

  • @bilaljaved6601
    @bilaljaved6601 3 года назад +4

    Thank you for creating this video.
    love the way how he delivered the whole lecture.

  • @Imetalh
    @Imetalh 4 месяца назад

    This is a solid beginner for anyone interested in learning Terraform.

  • @bonduu01
    @bonduu01 3 года назад +8

    Awesome content, you guys are angels in human form.

  • @Masaf_YT
    @Masaf_YT 2 года назад +1

    brother you are a fantastic, mindblowing lifesaver, no word to say about it..... word would be short for you. plz keep making video like this. plz make more video son terraform.

  • @thegunmaster2288
    @thegunmaster2288 3 года назад +3

    for egress_only_gateway_id , in my case it didn't work so i generated an ID in format of eigw-0135......, which fixed the issue.....And yes a really good tutorial....

  • @Martin-sr8yb
    @Martin-sr8yb 2 года назад

    I complete this course during my dev-ops career. Thanks

    • @kasrohith6140
      @kasrohith6140 2 года назад

      getting this type of error
      plz help me to solve
      Error launching source instance: AuthFailure: AWS was not able to validate the provided access credentials
      │ status code: 401, request id: 4016542e-c05c-4845-b696-70971d41f5b3

  • @mrmstechtalks3752
    @mrmstechtalks3752 4 года назад +4

    This is a great course - highly recommend it

  • @reuvenkapiloff1956
    @reuvenkapiloff1956 3 года назад

    Wow!!! this is mind blowing, how can you explain a seemingly complex tool so clearly????

  • @2015ankit
    @2015ankit 4 года назад +10

    Your billing address is visible at 3:02

    • @mmahal
      @mmahal 4 года назад +2

      send him a post card

  • @sandeep26sunny
    @sandeep26sunny Год назад

    Outstanding explanation and got an overview of terraform, got hands dirty and got hands on experience by following this tutorial and perfect tutorial for beginner like me. I will definetely subscribe now.

  • @mayanksharma5156
    @mayanksharma5156 4 года назад +21

    Dislikes are from people who use cloud formation.

  • @breibreii
    @breibreii 4 года назад +2

    Sanjeev Thiyagarajan, you are great, man! Thank you very much for this course!
    ⌨️ (1:09:45) Practice Project
    was a real gem to watch :)

  • @Cosmetolog_G
    @Cosmetolog_G 3 года назад +3

    1:38:52
    Ahahah, that's what I'm doing during the deployment to prod ))

  • @oleksiiolchedai7512
    @oleksiiolchedai7512 Год назад +1

    this video better then chat gpt, i can swear > i try it. THX man for this video

  • @romeobellon
    @romeobellon 3 года назад +5

    “Now it’s the time to start praying” 😂

  • @Neelamdas1
    @Neelamdas1 2 года назад

    This's really a very good video to provide overall understanding on Terraform. The person has explained step wise so that anybody can understand if he/she has a basic knowledge on AWS cloud platform. Lots of appreciation.

  • @knucklecorn
    @knucklecorn 4 года назад +3

    Basically just copying from the documentation and not clarifying much beyond that. Very annoying with the typos and mistakes all the time. I watched the video on Terraform backends too since I'm interested but it was just more of the same. You're better off reading the documentation.

  • @creecree2060
    @creecree2060 11 месяцев назад

    Thanks you very much - Excellent Tutorial. I am planning to apply for a job usingTerraform and I think this is a GREAT addition.

  • @ollyonearth
    @ollyonearth 3 года назад

    you are the best....thanks and God bless you. I learn terraform in just two hours.

  • @rajkumar-oy3ni
    @rajkumar-oy3ni 2 года назад

    All these days, people use to speak on terraform but I never use to get what it is, no videos gave me clarity...but these videos are excellent... Also can you please create a video to create dynamo DB and also way to pass values like name, region dynamically

  • @kalyanchatterjee8624
    @kalyanchatterjee8624 3 года назад

    I will never ever cancel my small monthly pledge to FCC. You're the best!

  • @chessmaster856
    @chessmaster856 11 месяцев назад

    We define the number of instances and state of the infrastructure and terraform will compare it with what is running and actually start stop update and make changes to real infrastructure. That is not only great concept , but actually works😂. Most dev ops people never wrote any program or tried to automated anything. They finally needed someone to do things like this. There should be a UI to display the configuration. A wizard style that Microsoft came up with in th 80s or 90s.

  • @jrb65
    @jrb65 3 года назад +1

    This is a great course for beginners to Terraform. Thanks a lot to the instructor for taking time to explain Terraform. And thanks to free code camp. This course is better than many paid courses out there

  • @eddyomo3043
    @eddyomo3043 2 года назад

    Finally, a tutorial that actually explains to beginners. Some other videos claim to be for beginners and then 5mins into the video, they start pulling steps put of thin air!
    Thank you so much for this. This is so simplified that I found this very very helpful!