navigation

Get into web development

This is the first course that i’m bulding to teach for a friend of mine who want to learn programming after his master in philosophy.

The starting point for this course is being a PC gamer with no prior experiences about software programming and networking. Being a PC gamer prior to going into programming i knew some of the basic of how computer work loving console and PC and hearing a lot about spec.

The ending point would be to be knowledgeable of modern front-end development with understanding of the cloud and how to work in this modern virtual space with good understanding of deeper concept of programmation to really open all the gate for is future independent work afterward. Because the main goal should always be independant. I think of a teacher of computer science as a starter on a motor , all i need is to start the beast and unleash it.

The course will not re-explain everything , i will leave a lot of open reading that the student can read or not in most case, depending on how deep he wanted to learn each topic. Not everything is required in the end but more information and knowledge is never bad.

Introducing myself and my experiences.

Topics of the course

Here is a first draft of the subject of this course.

  • Introduction to programmation
    • How do we write code from source code to executable. ( PC architecture , assembly , compiler , linker and shared library )
    • What are the paradigm of programming. (oop , structural , functional )
    • The different flavor of language. (interpreted vs compiled vs both together)
    • Start the base of programming (condition , loop and variable type )
    • Object Orientated how do me organize code in 1995 (Class , interface , inheritance , polymorphism )
    • Functional Programming how do we not bore ourself with abstraction and classe ( first order function , mixin )
    • I don’t want to do things all be myself welcome to Framework and Library with the help of packet manager
    • Doctor i need a editor to help my migrain from writing code in a basic text editor
    • First little project an application that but all of this together
    • Scripting is fun , i can do things other that manually :0
  • The cloud
    • What , Where and Who is the damn cloud.
    • How do i get my code there (DNS , webserver and Paas)
    • I’m lazy can you plz build , test and deploy this for me CI/CD
    • We gona need a bigger ship to learn Docker
    • How do we scale this ? kubernetes is hard or is it ?
  • Web programming
    • I just put things inside <> and i design an interface.
    • Things getting pretty with the help of css
    • But how do we move things , thanks go javascript is a sound language
    • But how do we shared dynamic information help me database
    • Time to choice a development stack for a fullstack application
    • Get your end dirty it’s time to code mofo

The language use in this class

  • bash

for scripting and for being apart from normal languge

  • python

for scripting in a “real” language and for dynamic typing

  • go

to learn the base of programming , compilation , library and learning from the doc

  • Typescript or javascript front-end

depending of the choice of the student in framework for the final project

  • Typescript or go or kotlin

depending of the choice of the student in framework for the final project

End goal

By the end of the course the student will be able on it’s own to create a fullstack application with the following elements

  • Backend

  • Frontend

  • CD/CI

  • Testing

  • Hosting

  • Versioning

  • Capable of doing the same kind of job as myself.

Warning

This course in strongly opiniated. I will tell my experience what i dislike and what i like. Do not take all of this for granted. I feel strongly that i may be wrong and other developer must feel different about those topic.

What i like:

  • POSIX
  • Modularity
  • Open source
  • Typed language
  • Compile language

What i dislike:

  • Most interpreted language
  • Fragmented language
  • Dynamically type language
  • Big fat IDE
  • Propretary environment
  • Windows