David Lin

David Lin

Member Since September 8, 2016

Skills & Experience

  • Company

    BMW

  • Job Title

    Software Engineer

  • Spoken Languages

    • English
    • Mandarin Chinese

434 Achievements

  • What is Asynchronous Programming?
  • Docker Use Cases
  • Sorting Algorithms
  • Merge Sort and Linked Lists
  • The Merge Sort Algorithm
  • Building a Linked List
  • Exploring Arrays
  • Recursion and Space Complexity
  • Algorithms in Code
  • Time Complexity
  • Playing a Counting Game
  • Getting the REST You Need 2
  • Go Further With Mongo
  • Working With Collections
  • Writing a Classifier
  • Machine Learning Vocabulary
  • Introduction to Machine Learning
  • JavaScript Frameworks, Libraries, and Developer Roles
  • JavaScript Outside of the Browser
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • JavaScript Objects and Conditionals
  • JavaScript Arrays and Loops
  • JavaScript Functions
  • Data Types and Variables
  • Callbacks and the DOM
  • Callbacks with Timers
  • Introduction to Callback Functions
  • Exterminator
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • Actions and Animations
  • Game Loop and Texture Atlas
  • Intro to Sprite Kit
  • Day 3: Getting Creative
  • Day 2: Advanced Selecting
  • Day 1: Joining Tables
  • Orientation: Selecting Data
  • Displaying Additional Views
  • Using the Vending Machine
  • Loading Data From a Resource
  • Modeling an Interface
  • Adding Sound Effects
  • Personalizing The Story
  • Refactoring Our Code
  • Creating the User Interface Programmatically
  • Creating a Story
  • Navigating Through An Adventure
  • Requesting Real Data
  • Enhancing the iTunes Endpoint
  • Next Steps
  • Financing Our Company
  • Selling Your Product
  • Marketing Your Product
  • Product Market Fit
  • Discovery
  • Writing Great Swift
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Iteration
  • Gotchas and Wins
  • Creation
  • Downloading Album Artwork
  • URLs and Parameter Encoding
  • Building the User Interface
  • Modeling iTunes Search Results
  • Big Data at Netflix
  • Where and How Big Data Is Used
  • What is Big Data
  • Project Setup
  • Entity Framework and Databases
  • Introducing Entity Framework
  • Functional!
  • Unit Testing
  • Now You're Querying!
  • Sets and Dictionaries
  • Lists
  • Arrays
  • Reformatting User Input
  • Validating a Form with Regular Expressions
  • Regular Expressions
  • Events
  • Hello, jQuery!
  • Inserting and Saving Data Using a Context
  • Understanding the Core Data Stack
  • Finishing the Game
  • Introducing JavaScript
  • Decoupling the Data Source
  • Sorting Contacts Into Sections
  • Static Table Views for Detail Interfaces
  • Displaying Contact Data
  • A High Level Overview
  • Dark Sky API Client
  • Downloading JSON Data Asynchronously
  • Fetching Data From the Web
  • Modeling Forecast Data
  • Access Control
  • Memory Management in Swift
  • Extensions and Protocols
  • Value Semantics, Type Methods and Inheritance
  • Object Initialization
  • Textures in the Standard Shader
  • Properties
  • Adding Reviews and a Map
  • Understanding Materials
  • Retrieving Restaurant Details Using Operations
  • Exporting Models Into Unity
  • Scene File Organization and Clean-up
  • Simplifying Networking Code
  • Obtaining a Location Fix
  • Using the Delegate Pattern in iOS
  • The Delegate Pattern
  • Authorization with Third Party Libraries
  • Go Concurrency Overview
  • Go Custom Types Overview
  • Go Data Structures Overview
  • Go Flow Control Overview
  • Go Syntax Overview
  • Abstraction
  • System.Object
  • Polymorphism
  • Data Retreiver
  • Serialized!
  • Data Parser
  • Data Reader
  • Loops and Final Touches
  • Encapsulation with Properties
  • Encapsulation and Arrays
  • Dice Roller
  • Inheritance
  • Python: Advanced Objects
  • Python: Inheritance
  • Python: Instant Objects
  • Methods
  • Object-Oriented Programming
  • Perfect
  • Perform
  • Adding Surface Detail to a Model
  • Console I/O
  • Prepare and Plan
  • Optimizing the Model
  • Box Modeling Techniques
  • Generics and Protocols
  • Generic Types
  • Working with Primitives
  • Getting Started in Maya LT
  • Higher Order Functions
  • Key Concepts in Unity
  • Generic Functions, Parameters and Constraints
  • Debugging Games
  • Error Handling and Memory Management
  • Building Standard Library Functions
  • Closure Expressions
  • First Class Functions
  • Lights, Audio, and Animation
  • Scala Collections
  • Assets and Game Objects
  • Functional Programming with Scala
  • Review Functional Programming Fundamentals
  • Reduction and Aggregation
  • Meet Streams
  • Java's Functional Toolset
  • The 3D Views
  • Build and Share a Unity Game
  • Game Audio
  • Score, Enemies, and Game State
  • Pickups
  • Player Input and Cameras
  • The Unity Editor and Scene Setup
  • Introduction to Video Games
  • Pickups
  • Player Input and Cameras
  • The Unity Editor and Scene Setup
  • Introduction to Video Games
  • Adding a New Web Page
  • Make It Beautiful with CSS
  • HTML: The Structural Foundation of Web Pages and Applications
  • Getting Familiar with HTML and CSS
  • Dungeon Game 2
  • Python Sets
  • Python Tuples
  • Python Dictionaries
  • Python Slices
  • Python Lists
  • Users and Authorization
  • Django Authentication
  • Security and Customization
  • Make the REST Framework Work for You
  • RESTful Django
  • Customizing Class-based Views
  • Classy Views
  • Detail View
  • List View
  • The Django Admin
  • Total Control
  • Basic ORM Usage
  • Same Old ORM
  • Inlines and Media
  • Django Model Forms
  • Django Models
  • Django Forms
  • Building Custom Filters
  • Building Custom Tags
  • Template Tags and Filters
  • Test Time!
  • Final Details
  • Django Templates
  • Model Administration
  • What a View
  • Say Hello to Django
  • API Protection
  • Resourceful Blueprints
  • Tacocat Challenge
  • How to Win Friends
  • Decoupling the Data
  • Broadcasting
  • Saving Data with CloudKit
  • Recording a Voice Memo
  • Takin' Names
  • Improving Our User Interface
  • View Controllers and Views
  • Getting Started with iOS Development
  • Making Strong Users
  • Creating Flexible Objects Using Protocols
  • Character Builder
  • Writing Your Own Java Annotation
  • Protocol Basics
  • Error Handling
  • Using Java's Built-In Annotations
  • Objects and Optionals
  • Structs As Data Models
  • Running Apps on a Device
  • Introduction to Optionals
  • Introduction to Enumerations
  • Perfecting the Prototype
  • Using your New Tools
  • Differentiating Between Objects
  • Class Inheritance
  • Classes in Swift
  • Complex Data Structures
  • Getting Started with Java
  • Control Flow With Conditional Statements
  • Control Flow With Loops
  • Dictionaries in Swift
  • Introduction to Collections
  • Adding Power to Functions
  • Functions in Swift
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • Flask Templates
  • Welcome to Flask
  • Covering Your Bases
  • Be Assertive!
  • What Is Testing?
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • Python Regular Expressions
  • Timezones
  • Math Quiz App
  • Dates and Times
  • Buggy Logs
  • Cleaner Code
  • The Lambda Lambada
  • Functional Workhorses
  • Functional Rules
  • Hack-n-Slash
  • Python Inheritance
  • Python Objects
  • Dungeon Game
  • Filtering the Data
  • Tuples
  • Saving and Displaying Selfies
  • Adding Metadata to Photos
  • Adding Image Filters
  • Dictionaries
  • Slices
  • Lists Redux
  • Taking a Selfie
  • Paged Scrolling
  • Understanding Scroll Views
  • Transitions, Gestures and More
  • Show Me the Data
  • Introduction to CollectionViews
  • Letter Game App
  • Number Game App
  • Shopping List App
  • Logic in Python
  • Python Data Types
  • Python For Beginners
  • MVC
  • Notifications
  • KVC and KVO
  • Singletons
  • Two-stage Object Creation
  • What Are Design Patterns?
  • Tying It All together
  • Diving Deeper
  • Memory, Arrays and Loops, Oh My!
  • Getting Oriented - Object-Oriented, That Is
  • Immersive Examples
  • Scope and Loops
  • More Operators
  • Operators and Conditionals
  • Data Types and Variables
  • Intro to Objective-C
  • Deleting and Updating Data
  • Understanding MongoDB
  • Fetching Data Using Fetch Requests
  • Inserting and Saving Data Using a Context
  • Quiz Practice Project
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • JavaScript Objects
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • JavaScript Arrays
  • Understanding the Core Data Stack
  • JavaScript Loops
  • JavaScript Functions
  • JavaScript Conditional Statements
  • Objective-C in Action
  • Intermediate Topics in Objective-C
  • The Objective-C Mindset
  • Working with Text
  • Ordering, Limiting and Paging Results
  • Subqueries
  • Basic Types, Structures and Syntax
  • Moving from Swift to Objective-C
  • Implementing Maps and Search
  • Set Operations
  • Joining Table Data with SQL
  • JavaScript Numbers
  • Table Relationships
  • Database Keys
  • Getting Started with MongoDB
  • Obtaining a Location Fix
  • JavaScript Variables
  • Introducing JavaScript
  • Displaying Data in Table Views
  • Enhancing the Networking Stack
  • URLs and Parameter Encoding
  • Introduction to UITableView
  • Implementing a Forecast Client
  • Protocol Oriented Networking
  • Fetching Data From the Web
  • Modeling Forecast Data
  • Visual Format Language
  • Auto Layout in Code
  • Trait Collections
  • Inequalities, Content and Priorities
  • The Constraint Equation
  • A History Lesson
  • Asynchronous Error Handling
  • Closures in Cocoa Touch
  • Building Standard Library Functions
  • Closure Expressions
  • First Class Functions
  • Generics with Swift 2 - Beyond Basics
  • Generics with Swift 2
  • Reading Data from Databases with SQL
  • Adding Sound Effects
  • Refactoring the Model
  • DNS Basics
  • Graphic Basics
  • Finding the Data You Want
  • Creating the User Interface Programmatically
  • Why Version Control Matters
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • Get Involved in Open Source
  •  Create a Web Presence on GitHub
  • Creating a Story
  •  Working on a Team
  • Getting Data from a Database
  • Data, Databases and SQL
  • Database Normalization
  • Navigating Through an Adventure
  • Working By Yourself
  • Hello, GitHub!
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • What is the MailChimp API
  • Getting the REST You Need
  • Delegation in iOS
  • Introduction to Delegates
  • Memory Management in Swift 2
  • Extensions and Protocols
  • Value Semantics, Type Methods and Inheritance
  • Object Initialization in Swift 2
  • Properties in Swift 2
  • Displaying Additional Views
  • Using the Vending Machine
  • Loading Data From a Resource
  • Modeling An Interface
  • Error Handling in Swift 2.0
  • Creating Flexible Objects Using Protocols
  • Swift 2.0 Protocols
  • Objects and Optionals
  • Introduction to Optionals
  • Introduction to Enumerations
  • Running Apps on a Device
  • Improving Our User Interface
  • Structs as Data Models
  • View Controllers and Views
  • Getting Started with iOS Development
  • Differentiating Between Objects
  • Class Inheritance
  • Classes
  • Complex Data Structures
  • Function Parameters
  • Functions in Swift 2.0
  • Control Flow with Conditional Statements
  • Control Flow With Loops
  • WWW
  • The Internet
  • Computer Languages
  • Computer Basics
  • Swift Dictionaries
  • Introduction to Collections
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • Newbie