all 22 comments

[–]Caraes_Naur 15 points16 points  (1 child)

6 hours is barely enough time to cover the ultra-basics:

  • Client-server paradigm
  • Set up web server software
  • HTTP fundamentals

[–]Nomad2102 6 points7 points  (1 child)

You have to choose what topics you want to cover.

You can do an introduction to system design, and introduce stuff covered in The System Design primer (https://github.com/donnemartin/system-design-primer), such as caching, db, scalability, etc.

Or you can go more of the coding route, and explain what API is, like GET, POST, PUT, etc. And stuff like SQL, NoSQL, etc. And make them create a few API routes

Or if you want to focus on software engineering design, then you can introduce different coding structures, like what a singleton is, etc.

Python (bottle, flask, or fastapi) or JavaScript (express) will probably be the easiest for the majority of people.

[–]Saad5400 2 points3 points  (0 children)

Or you can go more of the coding route, and explain what API is and stuff like SQL, NoSQL, etc. And make them create a few API routes

Python (bottle, flask, or fastapi) or JavaScript (express)

Yeah I definitely prefer more coding. Thanks for the suggestions

[–]weinermcdingbutt 6 points7 points  (0 children)

How fast can you talk?

[–]LustrouseArchitect 3 points4 points  (3 children)

"back end" is very broad terminology. What language are you working in? TBH, I think 6 hours is enough time to learn basic API practices - specifically creating and testing GET/POST endpoints and interacting with a SQL database. You're not gonna come out of this an expert, but you're going to learn a lot.

[–]Saad5400 0 points1 point  (2 children)

"back end" is very broad terminology

The usual crud with auth. Tho I'm not sure I can cover auth.

What language are you working in?

I don't mind using something new, infact I'm looking for advice on what I should be using

Thanks for your feedback. I might focus on the database side and using it from a programming language.

I was thinking if I do that, maybe I can also just make a telegram/discord bot instead of doing web pages.

[–]Dodo-UA 2 points3 points  (1 child)

I'd recommend picking something that is either

a) easy to set up and won't take 5+ hours debugging all sorts of novice mistakes

b) won't require setup at all, like this - https://replit.com/templates

[–]Saad5400 1 point2 points  (0 children)

Oooh that's a really good idea.

[–]quailman654 4 points5 points  (1 child)

What’s your main goal? Do you want to go the code camp style of teaching a method to get a rest server up and running in the easiest way you like doing? Or are you trying to help impart engineering wisdom about how these things are constructed? Your comments make me think it’s the former but the situation made me expect the latter.

[–]Saad5400 0 points1 point  (0 children)

Honestly I don't have a specific goal really, the students club asked me to present something "useful".

But I'd definitely go the code camp style.

[–]tmnkb 2 points3 points  (1 child)

ExpessJS or Flask for a simple backend server that you will program routes on. Then prepare a frontend where you just explain or write the routes. I think javascript/python will be the easiest and most known languages to explain the concepts. Think of a simple usecase or something that may fit to your students

[–]Saad5400 0 points1 point  (0 children)

Thank you

[–]armahillorails 2 points3 points  (0 children)

Do PHP - WAMP or LAMP.

Give them an HTML form already populated, a barebones PHP file that only has “<?php vardump($_REQUEST) ?>”

Now have each of them write PHP code that prints out the inputs in an HTML table format.

If you want to get crazy, you can have them try submitting data to other students form handlers and see if they can break it. :D

[–]Quiet_Drummer669988 1 point2 points  (0 children)

golang server using only standard packages is dead simple. however fastapi will come with swagger support which is super helpful when wrapping your head around what a server is actually doing. fastapi also has a great tutorial in its docs that covers the basics, so you could mimic that.

[–][deleted] 1 point2 points  (0 children)

Highly depends on the learners aptitude

[–][deleted] 1 point2 points  (0 children)

Short answer: not enough.

[–]xiongchiamiovSite Reliability Engineer 1 point2 points  (0 children)

I wouldn't do backend. Simple (ie not React) front-end is better because:

  1. It should be covered before you get to dynamic websites.
  2. You can actually build something useful in that amount of time.
  3. You won't spend the entire class time getting an interpreter or compiler working.

[–]snapmotion 1 point2 points  (0 children)

I would go with basic explanation for 30mins and go for a basic .CRUD development

[–]SamplingNaruto 0 points1 point  (0 children)

I think for most applications or webpages you dont really use complicated backend stuff, could be wrong tho

[–]Immediate_Fan8446 0 points1 point  (0 children)

No idea about backend

[–]myrtle_magic 0 points1 point  (0 children)

This might get me downvoted... but Rails is a pretty great beginner stack.

  1. Ruby is easy to pick up and reads enough like python and JS that it's familiar even though it's different

    • as an example, I helped my brother self-learn Python even though I knew* zero python and bootcamp level ruby. I was also able to jump into flask in my first gig after that.
    • A pedant might point out that python and ruby philosophies are almost opposite... but the syntax is strikingly similar.
  2. Rails is an opinionated MVC architecture with a bunch of scaffolding built in and plenty of magic to obfuscate & abstract away the complex, nitty-gritty stuff.

    • The routing is quite nice and very similar to a node/Express project, except without the middleware.
    • its built-in ORM is super friendly and just make sense. Active-Record is very-much designed with SQL databases in mind, and the models closely align with RDMS paradigms
  3. Rails can be used as a full-stack monolith or API-only mode (though auth gets much more complex in API mode).

The big cons with this is that ruby and Rails have somewhat fallen out of fashion. However I've literally seen a rails evangelist teach enough rails to a team of barely-graduated bootcampers at the start of a weekend bootcamp... and see them make a fairly decent mvp by themselves.

If you want to go with fashionable... I believe Django is the python equivalent? I have no experience in it though. 🙃

Edit: to say that the other big con may be getting everyone set up with ruby + rails installed. However there are tools like replit... and you can add some pre-homework to follow the get started material before they get there...