jph00 / notes

Stuff I find (see issues)
Creative Commons Attribution Share Alike 4.0 International
38 stars 1 forks source link

Full stack dev: topics to teach #3

Open jph00 opened 3 years ago

jph00 commented 3 years ago

This is the early planning of a new course "uncool full stack development" or something similar. Basically, I want to show people how to use simple broad-purpose tools, rather than SAAS and complex stuff like docker. So we'll be looking at cron, bash, perl, simple VPS servers, etc.

Why? Because: it's cheaper (use a single cheap server to do loads of stuff, rather than signing up for heaps of SAAS that do one little thing); you learn the foundations of everything else, which is knowledge that never goes out of date; rather than learning lots of domain specific languages, config files, and APIs, for every different service, you learn a small number of powerful foundations you can re-use everywhere; when you're working with SAAS or higher-level frameworks, you can debug your problems because you know what's happening underneath; lots of interviews ask about lower-level foundations, so it'll help you get recruited; for building a startup or hobby project, it's far cheaper, easier, and more scalable when you're in control of what you're doing and you understand how it all works.

Contents (links to sections)

Other similar syllabi:

jph00 commented 3 years ago

CLI tools

jph00 commented 3 years ago

Concepts

jph00 commented 3 years ago

Protocols/foundations

jph00 commented 3 years ago

Programming tools

jph00 commented 3 years ago

Basic services

jph00 commented 3 years ago

Things to implement

jph00 commented 3 years ago

Startup skills

jph00 commented 3 years ago

Little VPS projects

Full list

radekosmulski commented 3 years ago

potential concepts to cover

section, article, aside, footer, header, nav { display: block; }


* nice intro video to [openstack networking](https://www.youtube.com/watch?v=yqFpyubsYfE&t=2s)
* resources for going deeper on certain HTML & CSS concepts:
  - the best source on the internet to learn HTML & CSS concepts, [internetingishard](https://www.internetingishard.com/)
  - [scrimba](https://scrimba.com/allcourses?price=free) - really nice intro courses to grid, flex, html & css
  - [really, really good game for learning and practicing the flexbox api](https://mastery.games/flexboxzombies/)
  - [superb blog on building websites](https://mastery.games/)
  - [fun little game on flexbox](https://flexboxfroggy.com) + [fun little grid game](https://cssgridgarden.com/)
* how to make our website accessible? that's a big one and a hard one probably, this is [a great resource](https://www.w3.org/TR/wai-aria-practices/) <- btw this also can work as a really good reference point if we are looking to implement some behavior with javascript, a lot of nice vanilla js there
* [placekitten](https://placekitten.com/) - very useful for rapid prototyping and experimenting
* two really useful commands for working with images on linux (making them smaller before adding to your site):
  - `mogrify -resize 960x500 <file_name>` - will resize maintaining aspect ratio to the longer side!
  - `identify <file_name>` - gives you the details on an image (dimensions, size)
- firefox grid inspector ([really nice quick overview of the tool](https://youtu.be/t0b3uBoDkBs?t=1394))
- [semantic-ui](https://semantic-ui.com/) - build websites using HTML, adding classes to style components, more elements than mvpcss
- [how one successful entrepreneur went about building his online businesses](https://twitter.com/searchbound/status/1374084768002891783?s=20), the [answer](https://twitter.com/searchbound/status/1374118857162522625?s=20) that he gave to my questions is also outstanding
AriMKatz commented 3 years ago

Hi @jph00

Stumbled upon this issue and glad you're taking a look at Julia.

Here are some resources that might be helpful in developing content:

In particular, the above blogposts describe Julia's philosophy behind its unique facilities for running external commands, and the issues with python, perl and bash that motivated it.

Also some fast and composable text processing libraries:

These are in addition to Julia's native regex capabilities.

Also, I know some individuals who are using Julia for web, sysadmin and general scripting/automation tasks and might be able to help with developing a potential Julia side of the course, I'll reach out to them.

Edit: Some web scraping libraries:

Gokkulnath commented 3 years ago

@jph00 This repo Link has a comprehensive list and could give you some information regarding various self-hosted (alternatives) tools available.

hamelsmu commented 3 years ago

One thing that I always struggle with is the topic of asynchronous programming, and dealing with promises and/or Futures.

I never feel like I truly understand how to use it correctly. I also have some kind of frustration whenever I'm forced to use it, because it seems to me that there is a fair amount of boilerplate required (but perhaps I just don't know the best way to do things). Just wanted to throw that out there

jph00 commented 3 years ago

One thing that I always struggle with is the topic of asynchronous programming, and dealing with promises and/or Futures.

I never feel like I truly understand how to use it correctly. I also have some kind of frustration whenever I'm forced to use it, because it seems to me that there is a fair amount of boilerplate required (but perhaps I just don't know the best way to do things). Just wanted to throw that out there

In what situations have you felt forced to use it, specifically?

hamelsmu commented 3 years ago

In what situations have you felt forced to use it, specifically?

Thanks for asking :). Situations where I have felt forced to use it:

P.S. one beautiful thing about fastai is allowed me to really understand the concept of callbacks more deeply, which are often entangled or a required way of thinking in async programming (at least with the programming languages and libraries I have tried to use).

dienhoa commented 3 years ago

This is a great topic ! I'm really keen on following your new course (or following how it is built). Can I ask where the repository of it ? Thank you for always helping people learning interesting things :)

gojira commented 3 years ago

Wow this is a fantastic endeavor! I have always wished that Startup Engineering could still be accessed. Here is another class you can check out - MIT's 'Missing Semester'

tcapelle commented 3 years ago

I came to also point to https://missing.csail.mit.edu/

hamelsmu commented 1 year ago

@seem @radekosmulski we should start teaching this course. Between us we have lots of stuff we have done already here.

seeM commented 1 year ago

@seeM @radekosmulski we should start teaching this course. Between us we have lots of stuff we have done already here.

Yes! I'm very excited about all of this stuff!

gojira commented 1 year ago

Love that you're picking this up!

I'd love to see coverage on app deployment / development. I'm thinking of stuff like the folloiwing that I'm having to do / learn about more and more without any real background.

If somebody could distill the most valuable information about getting going with these in typical fastai fashion, I think it would be really valuable vs. spending 10 hours on some bootcamp with low information density.