[Introduction to SQL and Data Modeling for the Web] Course Overview

[Introduction to SQL and Data Modeling for the Web] Course Overview

In this course, you'll learn the skills needed to traverse the stack and develop an entire database-backed web application. By the end of the course, you'll have the fundamentals you need to start building web applications for anything you can think of! (Well, almost anything!)

Here are some of the specific core concepts we'll cover:

How to do Create, Read, Update, and Delete (CRUD) operations

Create, Read, Update, and Delete (CRUD) operations How to apply these operations across both databases and web applications

databases and web applications How to set up relationships between elements of an application

relationships between elements of an application How to think about important principles and patterns in building data models for a web application

These skills are best learned by doing—by actually building web applications, rather than just reading about how to build them. So in this course, you'll first practice these skills in the context of building a database-backed to-do application, and then you'll get a second opportunity to demonstrate your new skills in your final project.

Prerequisites & Tech Stack

Here are the skills you'll need for this course:

Basic Programming in Python

Front-end web development (HTML, CSS, Javascript)

Terminal Command Basics

SQL and Relational Databases

And here is the tech stack we'll be gaining proficiency in:

Python 3

Flask

PostgresSQL

psycopg2

SQLAlchemy

Flask-SQLAlchemy

Non-technical prerequisites

I want to take a moment to talk about some of the "softer" requirements for being happy and successful in this course.

Let's pause for a second and discuss some strategies to help you along your journey. We will cover:

Having the right expectations

Sculpting out the time

Strategies for being proactive in your learning

Having the right expectations

This will likely be your first introduction to many concepts in full stack development and probably also your first introduction to being a software engineer. How exciting! And so you may be wondering, how long does it take to learn these things?... Being a good software engineer is about being a good beginner -- all, the, time. It doesn't matter if you've been in software for 1 month, 1 year, or 10 years. The field is constantly changing, every concept contains a rabbit hole of many more concepts to follow, and the point is not to learn "everything" -- it is about scoping clearly what you want to build next. And then, having the foundations and learning strategies for knowing what you'll need to learn to build that next feature, or fix that next bug.

The great oxymoron of mastering software is being aware of what you haven't mastered, but knowing how to learn them with time, for the rest of your career.

You may, in fact, never feel complete, in either this course or in your technical career, on whether you know everything you need to know to fully build any application whatsoever. And so it is normal to feel that there is something "missing" here: like, maybe I won't cover Application Architecture patterns very well, coding best practices, Javascript, CSS, HTML, Python, the Compiler, Performance best practices, Asynchronous programming, and so on so forth. But trust me, this course is deep and comprehensive, and it sets you up to ask those questions, well, and be able to answer them later. But first things first, I will teach you how to build your first full stack web app. You can research, ask, and get mentored on the rest, for the rest of your career to follow. :)

But, don't worry, you don't actually need to know everything to land a job, build your app, or be called a software master! I know I certainly don't know it all... and I've been doing this since 2012... Anyway, we hope to get you on a definite track for landing your first software job, be off to a very strong start, and knowing where you ought to improve upon in the future.

I will make sure that you will have all the resources for building your (first) web application, end to end, of what I hope to be many more to follow, where you will keep learning what it takes to do full stack development, in every application you continue to work on. A growth mindset will greatly help in making this a pleasant journey.

Sculpting out the time

Spinning multiple plates? Are you balancing a family, other classes, travels, or a job at the same time? It helps to schedule and block out a regular time and place to commit to this course to finish it end to end. Take a moment to plan how to set aside the appropriate amount of time you'll need to engage with and commit to this course and the Nanodegree as a whole. Buffer more time than you think you need, and ensure you try to mitigate other obstacles to accomplishing the time you'll need to master the concepts in this course.

Being proactive in your learning

In addition to engaging with your Udacity mentor, other useful strategies include working with peer students in the course, getting live feedback in how ready you are to interview for a job with (free) resources like interviewing.io and leetcode, and checking out supplementary Udacity courses to fill in the blanks for your learning. Things we will cover less in this course include:

HTML, CSS, and Javascript

Application Patterns

Algorithms and Data Structures

When self-studying, I like to find other peers who are on the same journey for social support and accountability, balancing my learning with multiple other resources, taking frequent breaks (see: the pomodoro method), studying in coffee shops and libraries (also see: coffeetivity), and so forth. Self studying is hard and you need to be in a distraction-free, good mood to get into a state of flow with it, so much like sleep hygiene, I recommend ensuring you're in a well set up environment to get yourself going. Exercise and good sleep help.

from http://l3leu.tistory.com/4 by ccl(A) rewrite - 2021-10-30 01:01:19