Any Guides to Back End Programming Fundamentals?

After learning bit of front-end development (JavaScript, HTML/CSS/SASS, jQuery, React), I want to switch gears into back-end development. Theres a lot of great guides regarding tools out there (how to use node, rails, etc) but I’m looking for more conceptual/theoretical knowledge in terms of the “big picture” of back-end programming.

Most of the resources I’ve found dive into how to do things, like working with APIs, etc. However, I only still vaguely can explain server-side development as “fetching data from a database to deliver it to the front-end”, “writing algorithms”, “designing application infrastructure”, etc. Its kind of like learning how to build a piece of furniture, but I have no idea what the furniture is and what it looks like, and all the lessons I can find are about how to apply veneer, or lathe a block of wood into a rod-like shape.

I want to learn what these things mean comprehensively, and how all of the elements of the web-stack work together in more detail.

Right now I’ve been kind of randomly going through tutorials and watching videos on protocols and stuff but I feel like I’m not learning things in a good order.

Is there a sequence of resources anyone can recommend to me?

1 Like

i don’t have a good answer for you but can sympathize with you. At the same time I would not spend so much time looking for a good overview of the big picture vs diving in and WRITING YOUR OWN APIs in the form of the microservice projects here on FCC.

It wasn’t until after I wrote the microservices that I started to understand the things that the back end could offer me, aside from interfacing with a database.

My introduction to full stack was a book on PHP/MySQL which allowed me to write a full stack piece of software from scratch in 2 weeks while I was recovering from back surgery. I did not fully understnad it all,b ut it was functional.

I’ve expanded on that here at FCC simply by following the project outlines and tutorials, along with some outside reading (also in the form of tutorials). you’ll learn how they work together by putting them together yourself.

1 Like

I’ll run with that advice, makes sense.

Also I’d like to mention that I really hope I didn’t come off as unappreciative or negatively critical of the resources provided here and elsewhere. I’m really grateful for what is offered and really was just looking for more angles to approach the topic.

i’d keep going forward with the outline here at FCC for what to do/learn next and use some additional outside resources. I especially enjoy the Scotch.io tutorials.

2 Likes

This is what taught me the fundamentals for backend: https://www.udemy.com/understand-nodejs/
I had to go through it twice, and google for more reading material as I was going through the lecture videos so I could get a deeper understanding of some of the concepts presented.

Wait until the course is on sale for $10 or $20. I really like this person’s teaching style.

3 Likes

Wow that seems right on the money elise, thanks!

And P1xt, I’ll definitely get to CS50 soon, I’m slowly working my way through your awesome guide as well.

That looks like a great course! To the OPnthough I wouldn’t wait till it’s on sale to start understanding node. Start with learnyounode then the microservice apis are a natural extension of learnyounode. That ideny course definitely looks like it will fill in the gaps

1 Like

You can use code TEACHER204 right now to get the course for $15 (USD) .
I use the Honey Chrome extension, it automatically finds coupons.

1 Like

I am also working on learning back-end stuff. Some free resources I’ve found helpful include…

Starting with these basics if you do not understand them:

[Codecademy] (https://www.codecademy.com/) learn the command line

Linux Command Line Basics

Networking for Web Developers

Configuring Linux Web Servers

You can also look up more specific information on Wikipedia. For instance, this article on http is very informative.

For a good overview of developing full-stack JS apps, you should try reading [Programming JavaScript Applications] (http://chimera.labs.oreilly.com/books/1234000000262/index.html)

Finally, you should work through the tutorials in the freeCodeCamp back-end certificate. From what little I know about working in other languages/frameworks such as python, once you understand the concepts in one stack, you should find it easy to learn other stacks.

3 Likes

So I want to share my thoughts here as they pertain to the “what am I even doing?” surrounding the backend of web development…

I started writing full-stack JS apps (from tutorials) before I ever knew what Vanilla JavaScript meant.

I immediately jumped into the MEAN stack and didn’t understand that Angular was a framework for JS. I didn’t even understand what Node.js was, but it had ‘js’ in its name, so it was JavaScript in some way.

I was following along with tutorials and writing OAuth flows with Passport to get Facebook logins, all that stuff. Never did I understand where I was in the stack. I thought MongoDB was backend, and everything else was in the front.

After a full year of messing around blindly doing tutorials, I did a couple “tech-degrees”, took a course at a code camp, and had a very generic, boring, uninspired portfolio full of half assed web pages (I have come to realize I am not a designer, nor do I want to be one).

Once I completed the first app in the “Backend” portion of freeCodeCamp, I decided to make my own app. It involved Quickbooks, more OAuth stuff combined with an additional authentication service (Okta) and all hosted on Digital Ocean servers. It has a Nginx proxy, separate API talking to my DB and a scalable(?) frontend Angular app.

So Quickbooks has this window where auth tokens have to be refreshed between 120-150 days or the user has to re-authorize. To avoid this hassle, I wrote a simple little Node app that looks at my MongoDB once a week, checks all the token’s expiration dates and automatically requests and refreshes all the tokens. I believe this is a CRON job (I forget).

My point to this long-winded post is that I did all of this believing “I have no idea what I’m doing”. I still believe this on a daily basis and found this post while searching for “how to learn backend web dev”.

BTW - Digital Ocean has TONS of great tutorials on how to just “do stuff” with their servers. The stuff they are showing you how to do is the Backend of web development…

Hope that helps!

3 Likes

I like that, I think its a good perspective.

The deeper I dig into programming, the more I’m starting to have the feeling that to some extent “not knowing what you’re doing” is kind of relative state. And thats the fun of it, learning newer things, and challenging tougher projects kind of demands that you put yourself in that position, and there nothing wrong with it.

Cheers!