Avatrin said:
Hi
I want to learn and understand web development, and just knowing what to do is not enough for me; I, to the extent it is possible, want to know how the web works. So, if I develop a web app or website with Flask, I want to know what is going on under the hood (it's just how my head works... I cannot use anything without understanding it deeply to an extent).
HTML and CSS is something I've worked with for a year. I've also taken a few courses in Javascript. That's really the extent of my knowledge about the web alongside some YouTube videos about how the web works. So, I know practically nothing about the backend of web development.
Also, I have used Python for scientific use for several years.
So, what I am looking for is some understanding of web development, and also some tutorials on how to make web apps and websites using Flask.
A first step towards learning how the web works and how to develop applications for the web is to get a good understanding about the
history of the web and how things came to where they are now, if you have not already done so. A good starting point is
World Wide Web Foundation. This recommendation has not the purpose of learning history but to start forming some complete picture about how various technologies cooperate and interoperate - you can google specific terms and things you don't know as you go to this end, in order to create a "vehicle" for the operation of web applications of any kind.
Talking from my own educational experience about fifteen years ago, when I was taking lessons for the web developer certification and adapting to the present web world, the recommended sequence of topics is to start from networking - internetworking (ISO/OSI, TCP/IP protocol stacks),
HTTP protocol and go to
client side, learning HTML5, CSS, XML, JavaScript (
ECMAScript to be precise because JavaScript is more of a title of honor now as it was developed first (1996), submitted to ECMA for standardization (1997) and this resulted in ECMAScript), Databases (RDBMSs and NoSQLs) and then go to
server side. This side has several competitive - well not
really competitive any more, scripting languages / technologies like PHP - which is by far the dominant server side scripting language now , Python, ASP.NET, Java (for the web), ColdFusion and some others with even less usage (you can take a look
here for some usage stats).
Frameworks for both client and server side, are an indispensable part of today's web development scene which demands building complex apps in a fast and reliable manner. You must also learn about design patterns for the development of web apps like
MVC and I'd also recommend going further and learning about Pattern Oriented Software Architecture (POSA).
You can skip whatever you already know from the above but be careful at this because real knowledge comes only along with enough experience, meaning going into as much depth as you can for now and practicing - ideally
working, on these. From my professional experience I can tell you that you'll come across many unknown, not explicitly implied and other - at times surprising, things and you'll want to reiterate (several times in some cases) over the same or similar things.
As a good book, I would recommend
Deitel's Internet and World Wide Web How to Program.
For
Flask tutorial I would recommend
Full Stack Python's tutorial and also
Italo Maia's
Building Web Applications with Flask.