Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to Start Coding in 2019

How to Start Coding in 2019

One of the most valuable skills to learn in 2019 is learning how to code. Since the hardest part to any change you want to make in your life is usually starting, here is a very detailed step-by-step guide that teaches you exactly how to start learning how to code.

In this tutorial I will walk through the foundations of how to learn front end development, backend development and data science.

Tomiwa Ademidun

March 29, 2019
Tweet

More Decks by Tomiwa Ademidun

Other Decks in Technology

Transcript

  1. How to Start Coding in 2019 The Complete Guide to

    Start Coding for Clout in 2019, No Cap
  2. About Me • Tomiwa Ademidun, software engineering and business student

    at Ivey Business school, Canada • Founder atila.ca, easily find and apply to scholarships. • Founder of software engineering studio, tech.atila.ca • Software Engineering Intern @ Properly, Employee #2 • My Website: tomiwa.ca • Follow me on Twitter: @tomiwa1a 3
  3. Different Formats of this Talk This tutorial is available as

    a... 1. Slideshow 2. Video 3. Blog 4. Podcast 5. Source Code 4
  4. Why You Should Start Coding? • A fresh grad (with

    no work experience!) at Google in Silicon Valley can make $120k/year and $16k in bonus • Freedom: Work from anywhere, don’t need certification • Impact: With just a laptop and an idea your product can be used by many people • Even if you don’t code for a living, code can make your life easier ◦ Automating emails, developing your own personal website, scripts to download stuff you need, helpful little life hacks • If you decide to transition to a different career, employers value technical people like software engineers
  5. How This Guide Works • The hardest part of any

    change in your life is usually starting • This guide will outline what to learn first, and tricks for handling lack of motivation and when you want to give up • This talk will be very opinionated: ◦ There is no “one right way” ◦ But being opinionated reduces the amount of time spent debating between X and Y
  6. Understanding How You Learn and Why You Might Quit •

    I think that the best way to learn is by doing • Find a tutorial on how to build X, copy it word for word, • Once you feel comfortable with how X works, slightly modify X to do something different • Experiment and see if you learn better through written blog posts, books or videos
  7. What tools Should you use • Use a 13 inch

    Macbook Air ◦ Very light and powerful enough to run most developer tools ◦ Also very expensive - $ 1,019.00 • Chromebooks are an interesting alternative. ◦ $285 on Amazon ◦ a fancy touch screen one only costs $649 • If you get a Chromebook (and even if you don’t!) you should check out Cloud 9, it lets you write and develop applications in the cloud! • I strongly recommend using Github to save all your coding projects. Here is a very good tutorial on getting started with git and Github.
  8. Types of Coding • There are many types of coding:

    web development, mobile app development, hardware programming etc. • If you are a beginner, then you should probably start with either web development or mobile app development. ◦ They have the lowest learning curve and are the easiert to ship projects • I think you should start with web development because when you are just starting the most important thing is shipping quickly • You can see this article for why web is better than mobile for most applications.
  9. What Languages Should You Learn • Start with Javascript and

    Python • Most web applications are built using Javascript ◦ Javascript is the most popular programming language • Python is used in many data science and backend applications • Python also has a very intuitive syntax and • Python you can start coding right from command line on most (all?) computers
  10. Front End Development • Instead of building web apps from

    scratch, use frameworks to make your life easier ◦ Don’t reinvent the wheel ◦ Learn from my mistakes, I built one of my first websites in pure html/css/js and PHP, making my life harder for NO reason • The most popular ones are Angular, React and Vue.js • Very easy to waste time debating between which is better ◦ Read this article and this article, still no definitive winner ◦ They all have pros and cons and all of them have their uses • For example, read this article on why I built Atila.ca using Angular • Though I recommend new people learn React simply because it’s the most popular framework
  11. Learning React • Best way to learn React is by

    making things in React • Find tutorials for building React projects -> blindly “copy pasta” -> repeat • Don’t worry if you don’t understand what you’re doing • You will gradually learn the theory behind the WHY of how things work when you encounter a bug or decide to add a modification. • Unorthodox way of learning but for me this is fastest way to learn new ideas, ship products with the most SPEED
  12. Learning React Here is an awesome list of React projects

    that Dave Ceddia has created to start learning React. Here are 3 good projects to start learning React: 1. Simple To-do List 2. Dave Ceddia’s Practice Projects 3. Serverless Stack React - A bit more advance, full stack web app, build this after completing 3 other tutorials
  13. Learning Front End web dev • The most important skill

    you need to learn at this stage is problem solving and persistence. Or as I like it “how to effectively type things into Google”. • when you are first starting out, every problem you have faced is not new, don’t get discouraged • the internet is so awesome, the answer is probably on the internet somewhere • You just need to be clever about how to ask good questions. Incidentally, asking good questions is in my opinion a top 3 life skill (charisma and drive/optimism are the other 2)
  14. Learning Front End Web Dev • When you have finished

    making a project, I recommend you do two things: ◦ Share it with the world ( or just friends and family) ◦ Teach people how you made it • We are social creatures, showing people what you’ve made motivates you to make good stuff • Secondly, if you have supportive friends and family, they will react positively to what you made, motivating you to make more cool things.
  15. Learning Front End Web Dev • by teaching other people,

    you find the gaps in your own knowledge which helps you understand the concept better and you can do something nice for other people • teaching doesn’t necessarily mean literally tutoring someone one-on-one or giving a lecture. Simply writing a blog post, making a slide deck or recording a video can have same effect • Even if you never show anyone (not recommended) the act of making the content will help you learn better
  16. Learning Front End Web Dev - Github • Save all

    your work to Github. • For the first 1 or 2 projects I will allow you to cheat and not use Github as the learning curve can prematurely discourage people • But once you have built a couple projects, you NEED to start using Github. Annoying in short term, very helpful in long term. • Here are 3 resources you can use to start learning Git: 1. Official Github Hello World Guide 2. An Intro to Git and GitHub for Beginners (Tutorial) 3. GitHub For Beginners: Don’t Get Scared, Get Started
  17. Backend Engineering • Back end engineering is where most value

    in a company lies. • For example, Google and Bing’s homepage (front end) look relatively similar, their backend infrastructure is vastly different. • That backend is why Google search is a $59 billion/year (2013) product compared to Bing’s $3.2 billion/year (2013).
  18. Backend Engineering • The best way to start with backend

    development is by building a REST API server that can send data to various clients based on their actions. • For example, here is a simple REST API I built for serving scholarships information and here is some of the source code.
  19. Backend Engineering • I recommend you start by learning python

    and you use a framework like Django to help speed up your learning process. I recommend python because: 1. Python is one of the most popular programming languages 2. You can start coding right away from the command line 3. The syntax is very intuitive and matches speaking english 4. Python is used extensively in data science so if you decided to do more ML projects, the learning curve will b easier
  20. Backend Engineering • The two frameworks I recommend for learning

    python are Flask and Django. • I recommend building your first 1 or 2 python projects in Flask, then as you feel more comfortable start building apps with Django. • The Django Rest Framework is an excellent framework that can then be used to build REST APIs. • Ruby on Rails is another popular choice.
  21. Backend Engineering • Start by building a very simple REST

    API server, which takes some information from the user and sends some information back. • To keep you engaged, I recommend building a REST API that serves data on a topic which you are interested in. • For example, if you are interested in basketball, use the NBA API to build an API that displays the 5 starters in every NBA team and their points, rebound and assists per game. • Protip: try googling “X api” where X is something you’re interested in
  22. Backend Engineering Here are five great tutorials to start learning

    Flask, Django and Django Rest Framework: 1. Official Flask Tutorial 2. Miguel Grinberg’s Flask Tutorial - absolutely amazing! One of the best tutorials I have ever done and extremely detailed 3. Official Django Tutorial & Official Django Rest Framework Tutorial 4. Tango with Django - This one brings back memories, slightly outdated but this covers a wide array of topics as well 5. Django Girls Tutorial - I like this because it shows you how to install on a Chromebook and a cool section on how the internet works
  23. Data Science • Two years ago, I realized as more

    and more people enter coding, the basic front end development and even some back end development skills will be commoditized. • The really great opportunities will be available to people who are solving the most complex, business value-add problems. • I think that the most complex problems that have the highest ROI are in the field of data science. • This is also the least beginner friendly topic as most people in this industry have at least a Master’s or PhD. • One of my role models, Benjamin Franklin, finished his schooling at age 10, didn’t even graduate high school and he invented the lightning rod, bifocals and other cool stuff. So if you are willing to learn, and experiment you can do very well in this field.
  24. Data Science • My preferred method of learning primarily involves

    blindly copy and pasting machine learning tutorials. • Then I gradually modify and mix different tutorials together until I actually understand what I’m doing and what is happening at a deeper level. • Once I understand a machine learning concept I also try to write about it or give a short talk about what I learnt, this helps me crystallize my knowledge and other people can learn something useful as well.
  25. Data Science • A good website to start with that

    I really like is pythonprogramming.net. • Follow one of those tutorials and once you have completed the tutorial, try to make a slight modification to the final project. • Keep doing this for various tutorials and try to read wikipedia or google interesting concepts you come across. • The concepts and science and math you learn are more likely to be remembered by your brain as you would have applied them to create a practical project.
  26. Data Science • Another good site is Machine Learning Mastery.

    • A bit overwhelming so start with Your First Machine Learning Project in Python Step-By-Step. • I also gave a talk on an introduction to machine learning aimed at both beginners and relative experts, which you can check out (slides, blog post). • Here are 3 machine learning tutorials that are good: 1. Intro to Machine Learning with Scikit Learn and Python 2. Practical Machine Learning (I made my own tutorial based on this) 3. Your First Machine Learning Project in Python Step-By-Step
  27. Practice What I Preach Me giving a talk about Machine

    Learning at a my previous internship with RBC Amplify, July 18 2017
  28. Data Science Ideally, this is how your programming journey should

    go: 1. Build 3 projects using React or Angular tutorials 2. Build 3 REST APIs using python and Django (or Ruby on Rails) 3. Create a data science project that takes an input, processes the input using machine learning and generates an output
  29. Data Science Here is an example of how all three

    elements can tie in together: 1. User opens your web app and takes a picture of two basketball players. 2. Your data science function runs some analysis on the image and detects that its a picture of Lebron James and Michael Jordan. 3. Your REST API backend server returns some data back to your web app comparing the two players’ career statistics to each other.
  30. Coding Best Practices In addition to coding I recommend some

    best practices that will make it easier for people to keep up with what you are doing. 1. Create a personal webpage so people can learn more about you and you can put all your links in one place. I recommend github pages or squarespace 2. Add a well-documented README.md to all your projects on Github so people looking can understand how you made it and how they can run your project on their local machine. Here is a good README.md example for atila-web-app. 3. Pick the projects which you are most proud of and write a blog post and make a video explaining how you built the project. Even if you never show the blog post or video to anyone, the process of recording your thought process will help you understand what you are doing even better.
  31. Conclusion 1. The internet is amazing and companies like Google,

    Amazon, Facebook etc. have given us tremendous tools with tremendous leverage. But in order for you to take advantage of these opportunities you need to learn and apply the things you’ve learnt. 2. There’s a lot of stuff in this article, so just pick the easiest one and start working to get it done. Try to be the person in 2019, that you in 2020 will be proud of. What a time to be alive!